Marketplace
BrowsePublish
Marketplace
upbound/configuration-gcp-database@v0.5.0
xsqlinstances.gcp.platform.upbound.io

xsqlinstances.gcp.platform.upbound.io

xsqlinstances.gcp.platform.upbound.io
upbound/configuration-gcp-database@v0.5.0xsqlinstances.gcp.platform.upbound.io
Type

Composition

Referenced XRD

XSQLInstance

Source Codegithub.com/upbound/configuration-gcp-database
YAML
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
Marketplace

Discover the building blocks for your internal cloud platform.

© 2022 Upbound, Inc.

SolutionsProvidersConfigurations
LearnDocumentationTry for Free
MorePrivacy PolicyTerms & Conditions
Marketplace

© 2022 Upbound, Inc.

Marketplace

Discover the building blocksfor your internal cloud platform.