xsqlinstances.gcp.platform.upbound.io
kind: Composition
apiVersion: apiextensions.crossplane.io/v1
metadata:
name: xsqlinstances.gcp.platform.upbound.io
creationTimestamp: null
labels:
provider: gcp
spec:
compositeTypeRef:
apiVersion: gcp.platform.upbound.io/v1alpha1
kind: XSQLInstance
mode: Pipeline
pipeline:
- step: patch-and-transform
functionRef:
name: crossplane-contrib-function-patch-and-transform
input:
apiVersion: pt.fn.crossplane.io/v1beta1
kind: Resources
patchSets:
- name: providerConfigRef
patches:
- fromFieldPath: spec.parameters.providerConfigName
toFieldPath: spec.providerConfigRef.name
type: FromCompositeFieldPath
- name: deletionPolicy
patches:
- fromFieldPath: spec.parameters.deletionPolicy
toFieldPath: spec.deletionPolicy
type: FromCompositeFieldPath
- name: region
patches:
- fromFieldPath: spec.parameters.region
toFieldPath: spec.forProvider.region
type: FromCompositeFieldPath
resources:
- base:
apiVersion: compute.gcp.upbound.io/v1beta1
kind: GlobalAddress
spec:
forProvider:
addressType: INTERNAL
prefixLength: 16
purpose: VPC_PEERING
name: PrivateIPAddress
patches:
- patchSetName: providerConfigRef
type: PatchSet
- patchSetName: deletionPolicy
type: PatchSet
- fromFieldPath: spec.parameters.networkRef.id
toFieldPath: spec.forProvider.networkSelector.matchLabels[networks.gcp.platform.upbound.io/network-id]
- base:
apiVersion: servicenetworking.gcp.upbound.io/v1beta1
kind: Connection
spec:
forProvider:
reservedPeeringRangesSelector:
matchControllerRef: true
service: servicenetworking.googleapis.com
name: PrivateConnection
patches:
- patchSetName: providerConfigRef
type: PatchSet
- patchSetName: deletionPolicy
type: PatchSet
- fromFieldPath: spec.parameters.networkRef.id
toFieldPath: spec.forProvider.networkSelector.matchLabels[networks.gcp.platform.upbound.io/network-id]
- base:
apiVersion: sql.gcp.upbound.io/v1beta1
kind: User
spec:
forProvider:
instanceSelector:
matchControllerRef: true
connectionDetails:
- fromFieldPath: metadata.annotations[crossplane.io/external-name]
name: username
type: FromFieldPath
- fromConnectionSecretKey: attribute.password
name: password
type: FromConnectionSecretKey
name: DatabaseUser
patches:
- patchSetName: providerConfigRef
type: PatchSet
- patchSetName: deletionPolicy
type: PatchSet
- 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
- combine:
strategy: string
string:
fmt: "%suser-%.8s"
variables:
- fromFieldPath: spec.parameters.engine
- fromFieldPath: metadata.uid
toFieldPath: metadata.annotations[crossplane.io/external-name]
type: CombineFromComposite
- combine:
strategy: string
string:
fmt: "%s-gcp-%s-user"
variables:
- fromFieldPath: metadata.uid
- fromFieldPath: spec.parameters.engine
toFieldPath: spec.writeConnectionSecretToRef.name
type: CombineFromComposite
- fromFieldPath: spec.writeConnectionSecretToRef.namespace
toFieldPath: spec.writeConnectionSecretToRef.namespace
- base:
apiVersion: sql.gcp.upbound.io/v1beta1
kind: Database
spec:
forProvider:
instanceSelector:
matchControllerRef: true
name: UpboundDatabase
patches:
- patchSetName: providerConfigRef
type: PatchSet
- patchSetName: deletionPolicy
type: PatchSet
- fromFieldPath: metadata.name
toFieldPath: metadata.annotations[crossplane.io/external-name]
transforms:
- match:
fallbackValue: null
patterns:
- regexp: .*
result: upbound
type: regexp
type: match
type: FromCompositeFieldPath
- base:
apiVersion: sql.gcp.upbound.io/v1beta1
kind: DatabaseInstance
spec:
forProvider:
deletionProtection: false
settings:
- diskSize: 20
ipConfiguration:
- ipv4Enabled: false
tier: db-f1-micro
connectionDetails:
- fromConnectionSecretKey: privateIP
name: host
type: FromConnectionSecretKey
- fromConnectionSecretKey: serverCACertificateCert
name: serverCACertificateCert
type: FromConnectionSecretKey
name: DBInstance
patches:
- patchSetName: providerConfigRef
type: PatchSet
- patchSetName: deletionPolicy
type: PatchSet
- patchSetName: region
type: PatchSet
- combine:
strategy: string
string:
fmt: "%s-gcp-%s"
variables:
- fromFieldPath: metadata.uid
- fromFieldPath: spec.parameters.engine
toFieldPath: spec.writeConnectionSecretToRef.name
type: CombineFromComposite
- fromFieldPath: spec.writeConnectionSecretToRef.namespace
toFieldPath: spec.writeConnectionSecretToRef.namespace
- fromFieldPath: spec.parameters.storageGB
toFieldPath: spec.forProvider.settings[0].diskSize
- fromFieldPath: spec.parameters.networkRef.id
toFieldPath: spec.forProvider.settings[0].ipConfiguration[0].privateNetworkRef.name
- combine:
strategy: string
string:
fmt: "%s_%s"
variables:
- fromFieldPath: spec.parameters.engine
- fromFieldPath: spec.parameters.engineVersion
toFieldPath: spec.forProvider.databaseVersion
transforms:
- string:
convert: ToUpper
type: Convert
type: string
type: CombineFromComposite
writeConnectionSecretsToNamespace: upbound-system
© 2022 Upbound, Inc.
Discover the building blocksfor your internal cloud platform.