kind: Composition
apiVersion: apiextensions.crossplane.io/v1
metadata:
name: xspaces.spaces.platformref.upbound.io
creationTimestamp: null
spec:
compositeTypeRef:
apiVersion: spaces.platformref.upbound.io/v1alpha1
kind: XSpace
mode: Pipeline
pipeline:
- step: patch-and-transform
functionRef:
name: upboundcare-function-conditional-patch-and-transform
input:
apiVersion: pt.fn.crossplane.io/v1beta1
kind: Resources
resources:
- base:
apiVersion: spaces.platformref.upbound.io/v1alpha1
kind: XCluster
name: managed-kubernetes-cluster
patches:
- fromFieldPath: spec.parameters.deletionPolicy
toFieldPath: spec.parameters.deletionPolicy
type: FromCompositeFieldPath
- fromFieldPath: spec.parameters.providerConfigName
toFieldPath: spec.parameters.providerConfigName
type: FromCompositeFieldPath
- fromFieldPath: spec.parameters.cloud
toFieldPath: spec.parameters.cloud
type: FromCompositeFieldPath
- fromFieldPath: spec.parameters.id
toFieldPath: spec.parameters.id
type: FromCompositeFieldPath
- fromFieldPath: spec.parameters.region
toFieldPath: spec.parameters.region
type: FromCompositeFieldPath
- fromFieldPath: spec.parameters.version
toFieldPath: spec.parameters.version
type: FromCompositeFieldPath
- fromFieldPath: spec.parameters.iam
toFieldPath: spec.parameters.iam
type: FromCompositeFieldPath
- fromFieldPath: spec.parameters.nodes
toFieldPath: spec.parameters.nodes
type: FromCompositeFieldPath
- base:
apiVersion: spaces.platformref.upbound.io/v1alpha1
kind: XInit
name: spaces-init
patches:
- fromFieldPath: spec.parameters.id
toFieldPath: spec.parameters.providerConfigName
type: FromCompositeFieldPath
- fromFieldPath: spec.parameters.operators.certmanager
toFieldPath: spec.parameters.operators.certmanager
type: FromCompositeFieldPath
- fromFieldPath: spec.parameters.operators.ingressnginx
toFieldPath: spec.parameters.operators.ingressnginx
type: FromCompositeFieldPath
- fromFieldPath: spec.parameters.operators.externaldns
toFieldPath: spec.parameters.operators.externaldns
type: FromCompositeFieldPath
- fromFieldPath: spec.parameters.operators.crossplane
toFieldPath: spec.parameters.operators.crossplane
type: FromCompositeFieldPath
- base:
apiVersion: spaces.platformref.upbound.io/v1alpha1
kind: XCore
name: spaces-core
patches:
- fromFieldPath: spec.parameters.id
toFieldPath: spec.parameters.providerConfigName
type: FromCompositeFieldPath
- fromFieldPath: spec.parameters.spaces
toFieldPath: spec.parameters.spaces
type: FromCompositeFieldPath
- base:
apiVersion: apiextensions.crossplane.io/v1alpha1
kind: Usage
spec:
by:
apiVersion: spaces.platformref.upbound.io/v1alpha1
kind: XCore
resourceSelector:
matchControllerRef: true
of:
apiVersion: spaces.platformref.upbound.io/v1alpha1
kind: XInit
resourceSelector:
matchControllerRef: true
name: usageXInitByXCore
readinessChecks:
- type: None
- base:
apiVersion: apiextensions.crossplane.io/v1alpha1
kind: Usage
spec:
by:
apiVersion: spaces.platformref.upbound.io/v1alpha1
kind: XInit
resourceSelector:
matchControllerRef: true
of:
apiVersion: spaces.platformref.upbound.io/v1alpha1
kind: XCluster
resourceSelector:
matchControllerRef: true
name: usageXClusterByXInit
readinessChecks:
- type: None
- base:
apiVersion: gitops.platform.upbound.io/v1alpha1
kind: XArgo
condition: >
"argocd" in observed.composite.resource.spec.parameters.operators
&&
observed.composite.resource.spec.parameters.operators.argocd.enabled == true
name: argocd
patches:
- fromFieldPath: spec.parameters.id
toFieldPath: spec.parameters.providerConfigName
type: FromCompositeFieldPath
- fromFieldPath: spec.parameters.operators.argocd.ingressUrl
toFieldPath: spec.parameters.ingressUrl
type: FromCompositeFieldPath
- fromFieldPath: spec.parameters.operators.argocd.git
toFieldPath: spec.parameters.source.git
type: FromCompositeFieldPath
- fromFieldPath: spec.parameters.operators.argocd.resourceExclusions
toFieldPath: spec.parameters.resourceExclusions
type: FromCompositeFieldPath
- fromFieldPath: spec.parameters.operators.argocd.resourceInclusions
toFieldPath: spec.parameters.resourceInclusions
type: FromCompositeFieldPath
- base:
apiVersion: apiextensions.crossplane.io/v1alpha1
kind: Usage
spec:
by:
apiVersion: gitops.platform.upbound.io/v1alpha1
kind: XArgo
resourceSelector:
matchControllerRef: true
of:
apiVersion: spaces.platformref.upbound.io/v1alpha1
kind: XCluster
resourceSelector:
matchControllerRef: true
condition: >
"argocd" in observed.composite.resource.spec.parameters.operators
&&
observed.composite.resource.spec.parameters.operators.argocd.enabled == true
name: usageXClusterByXArgo
- step: ordered-creation
functionRef:
name: crossplane-contrib-function-sequencer
input:
apiVersion: template.fn.crossplane.io/v1beta1
kind: Input
rules:
- sequence:
- managed-kubernetes-cluster
- spaces-init
- sequence:
- spaces-init
- spaces-core
- sequence:
- spaces-core
- argocd
- sequence:
- spaces-core
- usageXClusterByXArgo
writeConnectionSecretsToNamespace: upbound-system