The following resources are composed to implement the referenced Composite Resource Definition (XRD).
GlobalAddress
Connection
User
DatabaseInstance
kind: Composition
apiVersion: apiextensions.crossplane.io/v1
metadata:
name: xpostgresqlinstances.gcp.platformref.upbound.io
creationTimestamp: null
labels:
provider: gcp
spec:
compositeTypeRef:
apiVersion: gcp.platformref.upbound.io/v1alpha1
kind: XPostgreSQLInstance
resources:
- name: PrivateIPAddress
base:
apiVersion: compute.gcp.upbound.io/v1beta1
kind: GlobalAddress
spec:
forProvider:
addressType: INTERNAL
prefixLength: 16
purpose: VPC_PEERING
patches:
- fromFieldPath: spec.parameters.clusterRef.id
toFieldPath: spec.forProvider.networkSelector.matchLabels[networks.gcp.platformref.upbound.io/network-id]
- name: PrivateConnection
base:
apiVersion: servicenetworking.gcp.upbound.io/v1beta1
kind: Connection
spec:
forProvider:
reservedPeeringRangesSelector:
matchControllerRef: true
service: servicenetworking.googleapis.com
patches:
- fromFieldPath: spec.parameters.clusterRef.id
toFieldPath: spec.forProvider.networkSelector.matchLabels[networks.gcp.platformref.upbound.io/network-id]
- name: DatabaseUser
base:
apiVersion: sql.gcp.upbound.io/v1beta1
kind: User
spec:
forProvider:
instanceSelector:
matchControllerRef: true
patches:
- fromFieldPath: spec.parameters.passwordSecretRef.namespace
toFieldPath: spec.forProvider.passwordSecretRef.namespace
- fromFieldPath: spec.parameters.passwordSecretRef.name
toFieldPath: spec.forProvider.passwordSecretRef.name
- fromFieldPath: spec.parameters.passwordSecretRef.key
toFieldPath: spec.forProvider.passwordSecretRef.key
- name: DBInstance
base:
apiVersion: sql.gcp.upbound.io/v1beta1
kind: DatabaseInstance
spec:
forProvider:
databaseVersion: POSTGRES_13
deletionProtection: false
region: us-west2
settings:
- diskSize: 20
tier: db-f1-micro
patches:
- fromFieldPath: metadata.uid
toFieldPath: spec.writeConnectionSecretToRef.name
transforms:
- type: string
string:
fmt: "%s-gcp-postgresql"
- fromFieldPath: spec.writeConnectionSecretToRef.namespace
toFieldPath: spec.writeConnectionSecretToRef.namespace
- fromFieldPath: spec.parameters.storageGB
toFieldPath: spec.forProvider.settings[0].diskSize
- fromFieldPath: spec.parameters.clusterRef.id
toFieldPath: spec.forProvider.settings[0].ipConfiguration[0].privateNetworkRef.name
connectionDetails:
- fromConnectionSecretKey: privateIP
- fromConnectionSecretKey: serverCACertificateCert
writeConnectionSecretsToNamespace: upbound-system