|
apiVersion: apiextensions.crossplane.io/v1 |
|
kind: Composition |
|
metadata: |
|
name: vcluster.caas.telekom.de |
|
spec: |
|
compositeTypeRef: |
|
apiVersion: caas.telekom.de/v1alpha1 |
|
kind: Vcluster |
|
publishConnectionDetailsWithStoreConfigRef: |
|
name: default |
|
resources: |
|
- base: |
|
apiVersion: helm.crossplane.io/v1beta1 |
|
kind: Release |
|
metadata: {} |
|
spec: |
|
forProvider: |
|
chart: |
|
name: vcluster |
|
pullSecretRef: |
|
name: mtrchartrepo |
|
namespace: crossplane-system |
|
repository: oci://mtr.devops.telekom.de/caas/charts |
|
url: oci://mtr.devops.telekom.de/caas/charts/vcluster:0.15.2 |
|
version: 0.15.2 |
|
values: |
|
coredns: |
|
image: mtr.devops.telekom.de/rancher/mirrored-coredns-coredns:1.10.1 |
|
defaultImageRegistry: mtr.devops.telekom.de |
|
enableHA: false |
|
replicas: 3 |
|
storage: |
|
classname: local-path |
|
persistence: false |
|
syncer: |
|
image: /caas/vcluster:0.15.2 |
|
livenessProbe: |
|
enabled: false |
|
readinessProbe: |
|
enabled: false |
|
vcluster: |
|
env: |
|
- name: K3S_DATASTORE_ENDPOINT |
|
extraArgs: |
|
- --system-default-registry=mtr.devops.telekom.de |
|
- --token=a12345678 |
|
- --debug |
|
- -v 1 |
|
k3s: |
|
workloadKind: StatefulSet |
|
resources: |
|
limits: |
|
cpu: 200m |
|
memory: 1Gi |
|
requests: |
|
cpu: 50m |
|
memory: 16Mi |
|
storage: |
|
persistence: false |
|
providerConfigRef: |
|
name: crossplanecontrib-provider-helm |
|
rollbackLimit: 3 |
|
name: vcluster-master-helm-release |
|
patches: |
|
- fromFieldPath: metadata.name |
|
policy: |
|
fromFieldPath: Required |
|
toFieldPath: spec.forProvider.namespace |
|
type: FromCompositeFieldPath |
|
- combine: |
|
strategy: string |
|
string: |
|
fmt: http://%s-etcd-0.%s-etcd-headless.%s.svc.cluster.local:2379,http://%s-etcd-1.%s-etcd-headless.%s.svc.cluster.local:2379,http://%s-etcd-2.%s-etcd-headless.%s.svc.cluster.local:2379 |
|
variables: |
|
- fromFieldPath: metadata.name |
|
- fromFieldPath: metadata.name |
|
- fromFieldPath: metadata.name |
|
- fromFieldPath: metadata.name |
|
- fromFieldPath: metadata.name |
|
- fromFieldPath: metadata.name |
|
- fromFieldPath: metadata.name |
|
- fromFieldPath: metadata.name |
|
- fromFieldPath: metadata.name |
|
policy: |
|
fromFieldPath: Required |
|
toFieldPath: spec.forProvider.values.vcluster.env[0].value |
|
type: CombineFromComposite |
|
- fromFieldPath: spec.k8sversion |
|
policy: |
|
fromFieldPath: Required |
|
toFieldPath: spec.forProvider.values.vcluster.image |
|
transforms: |
|
- string: |
|
fmt: /rancher/k3s:%s |
|
type: Format |
|
type: string |
|
type: FromCompositeFieldPath |
|
- fromFieldPath: metadata.name |
|
policy: |
|
fromFieldPath: Required |
|
toFieldPath: metadata.annotations[crossplane.io/external-name] |
|
transforms: |
|
- string: |
|
fmt: '%s-vcluster' |
|
type: Format |
|
type: string |
|
type: FromCompositeFieldPath |
|
readinessChecks: |
|
- matchCondition: |
|
status: "True" |
|
type: Ready |
|
type: MatchCondition |
|
- base: |
|
apiVersion: helm.crossplane.io/v1beta1 |
|
kind: Release |
|
metadata: {} |
|
spec: |
|
forProvider: |
|
chart: |
|
name: etcd |
|
pullSecretRef: |
|
name: mtrchartrepo |
|
namespace: crossplane-system |
|
repository: oci://mtr.devops.telekom.de/caas/charts |
|
url: oci://mtr.devops.telekom.de/caas/charts/etcd:9.5.0 |
|
version: 9.5.0 |
|
values: |
|
auth: |
|
client: |
|
enableAuthentication: false |
|
secureTransport: false |
|
useAutoTLS: true |
|
rbac: |
|
allowNoneAuthentication: true |
|
create: false |
|
rootPassword: a12345678 |
|
token: |
|
enabled: false |
|
image: |
|
debug: true |
|
registry: mtr.devops.telekom.de |
|
repository: caas/etcd |
|
tag: 3.5.9-debian-11-r108 |
|
loglevel: debug |
|
replicaCount: 3 |
|
resources: |
|
limits: |
|
cpu: 200m |
|
memory: 1Gi |
|
requests: |
|
cpu: 50m |
|
memory: 16Mi |
|
providerConfigRef: |
|
name: crossplanecontrib-provider-helm |
|
rollbackLimit: 3 |
|
name: etcd-helm-release |
|
patches: |
|
- fromFieldPath: metadata.name |
|
policy: |
|
fromFieldPath: Required |
|
toFieldPath: spec.forProvider.namespace |
|
type: FromCompositeFieldPath |
|
- fromFieldPath: metadata.name |
|
policy: |
|
fromFieldPath: Required |
|
toFieldPath: metadata.annotations[crossplane.io/external-name] |
|
transforms: |
|
- string: |
|
fmt: '%s-etcd' |
|
type: Format |
|
type: string |
|
type: FromCompositeFieldPath |
|
readinessChecks: |
|
- matchCondition: |
|
status: "True" |
|
type: Ready |
|
type: MatchCondition |
|
- base: |
|
apiVersion: helm.crossplane.io/v1beta1 |
|
kind: Release |
|
metadata: {} |
|
spec: |
|
forProvider: |
|
chart: |
|
name: rancher-cluster |
|
pullSecretRef: |
|
name: mtrchartrepo |
|
namespace: crossplane-system |
|
repository: oci://mtr.devops.telekom.de/caas/charts |
|
url: oci://mtr.devops.telekom.de/caas/charts/rancher-cluster:0.0.29 |
|
version: 0.0.29 |
|
values: |
|
defaultImageRegistry: mtr.devops.telekom.de |
|
image: mtr.devops.telekom.de/mcsps/utils:latest |
|
rancher: |
|
url: https://k3s.otc.mcsps.de |
|
providerConfigRef: |
|
name: crossplanecontrib-provider-helm |
|
rollbackLimit: 3 |
|
name: vcluster-rancher-register |
|
patches: |
|
- fromFieldPath: metadata.name |
|
policy: |
|
fromFieldPath: Required |
|
toFieldPath: spec.forProvider.values.clustername |
|
type: FromCompositeFieldPath |
|
- fromFieldPath: metadata.name |
|
policy: |
|
fromFieldPath: Required |
|
toFieldPath: spec.forProvider.namespace |
|
type: FromCompositeFieldPath |
|
- fromFieldPath: metadata.name |
|
policy: |
|
fromFieldPath: Required |
|
toFieldPath: metadata.annotations[crossplane.io/external-name] |
|
transforms: |
|
- string: |
|
fmt: '%s-register-rancher' |
|
type: Format |
|
type: string |
|
type: FromCompositeFieldPath |
|
readinessChecks: |
|
- matchCondition: |
|
status: "True" |
|
type: Ready |
|
type: MatchCondition |
|
writeConnectionSecretsToNamespace: crossplane-system |
The last step is done within a Helm chart including a batch job: https://github.com/mcsps/helm-charts/tree/master/charts/rancher-cluster