devops-toolkit/dot-kubernetes@v1.0.66,v1.0.65,v1.0.64,v1.0.63,v1.0.62,v1.0.61,v1.0.60,v1.0.59,v1.0.58,v1.0.57,v1.0.56,v1.0.55,v1.0.54,v1.0.53,v1.0.52,v1.0.51,v1.0.50,v1.0.49,v1.0.48,v1.0.47
cluster-google-official

cluster-google-official

cluster-google-official
devops-toolkit/dot-kubernetes@v1.0.66,v1.0.65,v1.0.64,v1.0.63,v1.0.62,v1.0.61,v1.0.60,v1.0.59,v1.0.58,v1.0.57,v1.0.56,v1.0.55,v1.0.54,v1.0.53,v1.0.52,v1.0.51,v1.0.50,v1.0.49,v1.0.48,v1.0.47cluster-google-official
Type

Composition

Referenced XRD

CompositeCluster

Source Codegithub.com/vfarcic/crossplane-kubernetes
YAML
kind: Composition
apiVersion: apiextensions.crossplane.io/v1
metadata:
  name: cluster-google-official
  creationTimestamp: null
  labels:
    cluster: gke
    provider: google-official
spec:
  compositeTypeRef:
    apiVersion: devopstoolkitseries.com/v1alpha1
    kind: CompositeCluster
  mode: Pipeline
  pipeline:
    - step: patch-and-transform
      functionRef:
        name: function-patch-and-transform
      input:
        apiVersion: pt.fn.crossplane.io/v1beta1
        kind: Resources
        resources:
          - base:
              apiVersion: container.gcp.upbound.io/v1beta1
              kind: Cluster
              spec:
                forProvider:
                  clusterAutoscaling:
                    - autoProvisioningDefaults:
                        - management:
                            - autoRepair: true
                              autoUpgrade: true
                  initialNodeCount: 1
                  location: us-east1
                  removeDefaultNodePool: true
            connectionDetails:
              - fromConnectionSecretKey: kubeconfig
                name: kubeconfig
                type: FromConnectionSecretKey
              - fromConnectionSecretKey: kubeconfig
                name: value
                type: FromConnectionSecretKey
            name: gkecluster
            patches:
              - fromFieldPath: spec.id
                toFieldPath: metadata.name
              - fromFieldPath: spec.id
                toFieldPath: spec.writeConnectionSecretToRef.name
                transforms:
                  - string:
                      fmt: "%s-cluster"
                      type: Format
                    type: string
              - fromFieldPath: spec.claimRef.namespace
                toFieldPath: spec.writeConnectionSecretToRef.namespace
              - fromFieldPath: spec.parameters.version
                toFieldPath: spec.forProvider.minMasterVersion
              - fromFieldPath: metadata.name
                toFieldPath: status.clusterName
                type: ToCompositeFieldPath
              - fromFieldPath: status.message
                toFieldPath: status.controlPlaneStatus
                type: ToCompositeFieldPath
              - fromFieldPath: status.atProvider.clusterIpv4Cidr
                toFieldPath: status.field1
                type: ToCompositeFieldPath
          - base:
              apiVersion: container.gcp.upbound.io/v1beta1
              kind: NodePool
              spec:
                forProvider:
                  autoscaling:
                    - maxNodeCount: 3
                  clusterSelector:
                    matchControllerRef: true
                  management:
                    - autoRepair: true
                      autoUpgrade: true
                  nodeConfig:
                    - oauthScopes:
                        - https://www.googleapis.com/auth/cloud-platform
                      taint:
                        - effect: NO_EXECUTE
                          key: node.cilium.io/agent-not-ready
                          value: "true"
                  nodeLocations:
                    - us-east1-b
                    - us-east1-c
                    - us-east1-d
            name: nodepool
            patches:
              - fromFieldPath: spec.id
                toFieldPath: metadata.name
              - fromFieldPath: spec.parameters.version
                toFieldPath: spec.forProvider.version
              - fromFieldPath: spec.parameters.minNodeCount
                toFieldPath: spec.forProvider.initialNodeCount
              - fromFieldPath: spec.parameters.minNodeCount
                toFieldPath: spec.forProvider.autoscaling[0].minNodeCount
              - fromFieldPath: spec.parameters.nodeSize
                toFieldPath: spec.forProvider.nodeConfig[0].machineType
                transforms:
                  - map:
                      large: e2-standard-16
                      medium: e2-standard-4
                      small: e2-standard-2
                    type: map
              - fromFieldPath: status.message
                toFieldPath: status.nodePoolStatus
                type: ToCompositeFieldPath
          - base:
              apiVersion: helm.crossplane.io/v1beta1
              kind: ProviderConfig
              spec:
                credentials:
                  secretRef:
                    key: kubeconfig
                    name: kubeconfig
                    namespace: crossplane-system
                  source: Secret
                identity:
                  secretRef:
                    key: creds
                    name: gcp-creds
                    namespace: crossplane-system
                  source: Secret
                  type: GoogleApplicationCredentials
            name: helm
            patches:
              - fromFieldPath: spec.id
                toFieldPath: metadata.name
              - fromFieldPath: spec.claimRef.namespace
                toFieldPath: spec.credentials.secretRef.namespace
              - fromFieldPath: spec.id
                toFieldPath: spec.credentials.secretRef.name
                transforms:
                  - string:
                      fmt: "%s-cluster"
                      type: Format
                    type: string
            readinessChecks:
              - type: None
          - base:
              apiVersion: helm.crossplane.io/v1beta1
              kind: Release
              spec:
                forProvider:
                  chart:
                    name: crossplane
                    repository: https://charts.crossplane.io/stable
                    version: 1.13.2
                  namespace: crossplane-system
                  set: []
                rollbackLimit: 3
            name: crossplane
            patches:
              - fromFieldPath: spec.id
                toFieldPath: metadata.name
                transforms:
                  - string:
                      fmt: "%s-crossplane"
                      type: Format
                    type: string
              - fromFieldPath: spec.id
                toFieldPath: spec.providerConfigRef.name
          - base:
              apiVersion: helm.crossplane.io/v1beta1
              kind: Release
              spec:
                forProvider:
                  chart:
                    name: cilium
                    repository: https://helm.cilium.io
                    version: 1.14.2
                  namespace: kube-system
                  set:
                    - name: nodeinit.enabled
                      value: "true"
                    - name: nodeinit.reconfigureKubelet
                      value: "true"
                    - name: nodeinit.removeCbrBridge
                      value: "true"
                    - name: cni.binPath
                      value: /home/kubernetes/bin
                    - name: gke.enabled
                      value: "true"
                    - name: ipam.mode
                      value: kubernetes
                    - name: ipv4NativeRoutingCIDR
                rollbackLimit: 3
            name: cilium
            patches:
              - fromFieldPath: spec.id
                toFieldPath: metadata.name
                transforms:
                  - string:
                      fmt: "%s-cilium"
                      type: Format
                    type: string
              - fromFieldPath: spec.id
                toFieldPath: spec.providerConfigRef.name
              - fromFieldPath: status.field1
                toFieldPath: spec.forProvider.set[6].value
                type: FromCompositeFieldPath
          - base:
              apiVersion: kubernetes.crossplane.io/v1alpha1
              kind: ProviderConfig
              spec:
                credentials:
                  secretRef:
                    key: kubeconfig
                    name: kubeconfig
                    namespace: crossplane-system
                  source: Secret
                identity:
                  secretRef:
                    key: creds
                    name: gcp-creds
                    namespace: crossplane-system
                  source: Secret
                  type: GoogleApplicationCredentials
            name: kubernetes
            patches:
              - fromFieldPath: spec.id
                toFieldPath: metadata.name
              - fromFieldPath: spec.claimRef.namespace
                toFieldPath: spec.credentials.secretRef.namespace
              - fromFieldPath: spec.id
                toFieldPath: spec.credentials.secretRef.name
                transforms:
                  - string:
                      fmt: "%s-cluster"
                      type: Format
                    type: string
            readinessChecks:
              - type: None
          - base:
              apiVersion: kubernetes.crossplane.io/v1alpha1
              kind: Object
              spec:
                forProvider:
                  manifest:
                    apiVersion: v1
                    kind: ServiceAccount
                    metadata:
                      name: provider-kubernetes
                      namespace: crossplane-system
            name: k8s-provider-sa
            patches:
              - fromFieldPath: spec.id
                toFieldPath: metadata.name
                transforms:
                  - string:
                      fmt: "%s-k8s-provider-sa"
                      type: Format
                    type: string
              - fromFieldPath: spec.id
                toFieldPath: spec.providerConfigRef.name
          - base:
              apiVersion: kubernetes.crossplane.io/v1alpha1
              kind: Object
              spec:
                forProvider:
                  manifest:
                    apiVersion: rbac.authorization.k8s.io/v1
                    kind: ClusterRoleBinding
                    metadata:
                      name: provider-kubernetes
                    roleRef:
                      apiGroup: rbac.authorization.k8s.io
                      kind: ClusterRole
                      name: cluster-admin
                    subjects:
                      - kind: ServiceAccount
                        name: provider-kubernetes
                        namespace: crossplane-system
            name: k8s-provider-crb
            patches:
              - fromFieldPath: spec.id
                toFieldPath: metadata.name
                transforms:
                  - string:
                      fmt: "%s-k8s-provider-crb"
                      type: Format
                    type: string
              - fromFieldPath: spec.id
                toFieldPath: spec.providerConfigRef.name
          - base:
              apiVersion: kubernetes.crossplane.io/v1alpha1
              kind: Object
              spec:
                forProvider:
                  manifest:
                    apiVersion: pkg.crossplane.io/v1alpha1
                    kind: ControllerConfig
                    metadata:
                      name: provider-kubernetes
                    spec:
                      serviceAccountName: provider-kubernetes
            name: k8s-provider-cc
            patches:
              - fromFieldPath: spec.id
                toFieldPath: metadata.name
                transforms:
                  - string:
                      fmt: "%s-k8s-provider-cc"
                      type: Format
                    type: string
              - fromFieldPath: spec.id
                toFieldPath: spec.providerConfigRef.name
          - base:
              apiVersion: kubernetes.crossplane.io/v1alpha1
              kind: Object
              spec:
                forProvider:
                  manifest:
                    apiVersion: pkg.crossplane.io/v1
                    kind: Provider
                    metadata:
                      name: crossplane-kubernetes-provider
                    spec:
                      controllerConfigRef:
                        name: provider-kubernetes
                      package: xpkg.upbound.io/crossplane-contrib/provider-kubernetes:v0.9.0
            name: kubernetes-provider
            patches:
              - fromFieldPath: spec.id
                toFieldPath: metadata.name
                transforms:
                  - string:
                      fmt: "%s-kubernetes-provider"
                      type: Format
                    type: string
              - fromFieldPath: spec.id
                toFieldPath: spec.providerConfigRef.name
          - base:
              apiVersion: kubernetes.crossplane.io/v1alpha1
              kind: Object
              spec:
                forProvider:
                  manifest:
                    apiVersion: pkg.crossplane.io/v1
                    kind: Provider
                    metadata:
                      name: crossplane-helm-provider
                    spec:
                      controllerConfigRef:
                        name: provider-kubernetes
                      package: xpkg.upbound.io/crossplane-contrib/provider-helm:v0.15.0
            name: helm-provider
            patches:
              - fromFieldPath: spec.id
                toFieldPath: metadata.name
                transforms:
                  - string:
                      fmt: "%s-helm-provider"
                      type: Format
                    type: string
              - fromFieldPath: spec.id
                toFieldPath: spec.providerConfigRef.name
          - base:
              apiVersion: kubernetes.crossplane.io/v1alpha1
              kind: Object
              spec:
                forProvider:
                  manifest:
                    apiVersion: pkg.crossplane.io/v1
                    kind: Configuration
                    metadata:
                      name: crossplane-config-sql
                    spec:
                      controllerConfigRef:
                        name: provider-kubernetes
                      package: xpkg.upbound.io/devops-toolkit/dot-sql:v0.8.11
            name: config-sql
            patches:
              - fromFieldPath: spec.id
                toFieldPath: metadata.name
                transforms:
                  - string:
                      fmt: "%s-config-sql"
                      type: Format
                    type: string
              - fromFieldPath: spec.id
                toFieldPath: spec.providerConfigRef.name
    - step: namespaces
      functionRef:
        name: loop
      input:
        apiVersion: pt.fn.crossplane.io/v1beta1
        kind: Resources
        namePrefix: ns-
        paths:
          - spec.forProvider.manifest.metadata.name
          - spec.providerConfigRef.name = spec.id
        resources:
          - base:
              apiVersion: kubernetes.crossplane.io/v1alpha1
              kind: Object
              spec:
                forProvider:
                  manifest:
                    apiVersion: v1
                    kind: Namespace
        valuesXrPath: spec.parameters.namespaces
  writeConnectionSecretsToNamespace: crossplane-system
Discover the building blocks for your internal cloud platform.
© 2025 Upbound, Inc.
Solutions