Composition
XCompositeCluster
kind: Composition
apiVersion: apiextensions.crossplane.io/v1
metadata:
name: xcompositeclusters.platform.acme.co
creationTimestamp: null
spec:
compositeTypeRef:
apiVersion: platform.acme.co/v1alpha1
kind: XCompositeCluster
mode: Pipeline
pipeline:
- step: compose
functionRef:
name: crossplane-contrib-function-patch-and-transform
input:
apiVersion: pt.fn.crossplane.io/v1beta1
kind: Resources
resources:
- base:
apiVersion: platform.acme.co/v1alpha1
kind: XCluster
spec:
parameters:
project: acme-project
name: cluster-nop
patches:
- fromFieldPath: metadata.name
toFieldPath: metadata.name
transforms:
- string:
fmt: "%s-cluster"
type: Format
type: string
type: FromCompositeFieldPath
- fromFieldPath: spec.parameters.nodeCount
toFieldPath: spec.parameters.initialNodeCount
type: FromCompositeFieldPath
- fromFieldPath: metadata.name
toFieldPath: spec.parameters.networkRef.name
transforms:
- string:
fmt: "%s-net"
type: Format
type: string
type: FromCompositeFieldPath
- fromFieldPath: metadata.name
toFieldPath: spec.parameters.subnetworkRef.name
transforms:
- string:
fmt: "%s-subnet"
type: Format
type: string
type: FromCompositeFieldPath
- fromFieldPath: spec.parameters.location
toFieldPath: spec.parameters.location
type: FromCompositeFieldPath
- base:
apiVersion: platform.acme.co/v1alpha1
kind: XServiceAccount
spec:
parameters: {}
name: sa-nop
patches:
- fromFieldPath: metadata.name
toFieldPath: metadata.name
transforms:
- string:
fmt: "%s-sa"
type: Format
type: string
type: FromCompositeFieldPath
- fromFieldPath: metadata.name
toFieldPath: spec.parameters.displayName
transforms:
- string:
fmt: "%s service account"
type: Format
type: string
type: FromCompositeFieldPath
- base:
apiVersion: platform.acme.co/v1alpha1
kind: XNodePool
spec:
parameters:
nodeConfig:
- preemptible: true
name: nodepool-nop
patches:
- fromFieldPath: metadata.name
toFieldPath: metadata.name
transforms:
- string:
fmt: "%s-nodepool"
type: Format
type: string
type: FromCompositeFieldPath
- fromFieldPath: spec.parameters.nodeCount
toFieldPath: spec.parameters.nodeConfig[0].nodeCount
type: FromCompositeFieldPath
- fromFieldPath: spec.parameters.size
toFieldPath: spec.parameters.nodeConfig[0].machineType
type: FromCompositeFieldPath
- fromFieldPath: metadata.name
toFieldPath: spec.parameters.nodeConfig[0].serviceAccountRef.name
transforms:
- string:
fmt: "%s-sa"
type: Format
type: string
type: FromCompositeFieldPath
- fromFieldPath: metadata.name
toFieldPath: spec.parameters.nodeConfig[0].clusterRef.name
transforms:
- string:
fmt: "%s-cluster"
type: Format
type: string
type: FromCompositeFieldPath
- base:
apiVersion: platform.acme.co/v1alpha1
kind: XNetwork
spec:
parameters:
autoCreateSubnetworks: true
routingMode: GLOBAL
name: network-nop
patches:
- fromFieldPath: metadata.name
toFieldPath: metadata.name
transforms:
- string:
fmt: "%s-net"
type: Format
type: string
type: FromCompositeFieldPath
- base:
apiVersion: platform.acme.co/v1alpha1
kind: XSubnetwork
spec:
parameters:
ipCidrRange: 10.2.0.0/16
secondaryIpRange:
- ipCidrRange: 192.168.10.0/24
rangeName: test-secondary-range-update1
name: subnet-nop
patches:
- fromFieldPath: metadata.name
toFieldPath: metadata.name
transforms:
- string:
fmt: "%s-subnet"
type: Format
type: string
type: FromCompositeFieldPath
- fromFieldPath: metadata.name
toFieldPath: spec.parameters.networkRef.name
transforms:
- string:
fmt: "%s-net"
type: Format
type: string
type: FromCompositeFieldPath
- fromFieldPath: spec.parameters.location
toFieldPath: spec.parameters.region
type: FromCompositeFieldPath