Marketplace
BrowsePublish
Marketplace
devops-toolkit/dot-kubernetes@v0.12.61
cluster-dok

cluster-dok

cluster-dok
devops-toolkit/dot-kubernetes@v0.12.61cluster-dok
Type

Composition

Referenced XRD

CompositeCluster

Source Codegithub.com/vfarcic/crossplane-kubernetes
Resources (16)

The following resources are composed to implement the referenced Composite Resource Definition (XRD).

Kind
Group
Version

DOKubernetesCluster

kubernetes.do.crossplane.io
v1alpha1

ProviderConfig

helm.crossplane.io
v1beta1

Release

helm.crossplane.io
v1beta1

Release

helm.crossplane.io
v1beta1

ProviderConfig

kubernetes.crossplane.io
v1alpha1

Object

kubernetes.crossplane.io
v1alpha1

Object

kubernetes.crossplane.io
v1alpha1

Object

kubernetes.crossplane.io
v1alpha1

Object

kubernetes.crossplane.io
v1alpha1

Object

kubernetes.crossplane.io
v1alpha1

Object

kubernetes.crossplane.io
v1alpha1

Object

kubernetes.crossplane.io
v1alpha1

Object

kubernetes.crossplane.io
v1alpha1

Object

kubernetes.crossplane.io
v1alpha1

Object

kubernetes.crossplane.io
v1alpha1

Object

kubernetes.crossplane.io
v1alpha1
YAML
kind: Composition
apiVersion: apiextensions.crossplane.io/v1
metadata:
  name: cluster-dok
  creationTimestamp: null
  labels:
    cluster: dok
    provider: digital-ocean
spec:
  compositeTypeRef:
    apiVersion: devopstoolkitseries.com/v1alpha1
    kind: CompositeCluster
  patchSets:
    - name: metadata
      patches:
        - fromFieldPath: metadata.labels
  resources:
    - name: dokcluster
      base:
        apiVersion: kubernetes.do.crossplane.io/v1alpha1
        kind: DOKubernetesCluster
        metadata:
          name: example-cluster
        spec:
          forProvider:
            autoUpgrade: false
            highlyAvailable: true
            maintenancePolicy:
              day: wednesday
              startTime: 00:00
            nodePools:
              - autoScale: true
                count: 1
                maxNodes: 20
                minNodes: 1
            region: nyc1
            surgeUpgrade: false
            version: 1.22.7-do.0
          providerConfigRef:
            name: crossplane-provider-do
      patches:
        - fromFieldPath: spec.id
          toFieldPath: metadata.name
        - fromFieldPath: spec.parameters.version
          toFieldPath: spec.forProvider.version
        - fromFieldPath: spec.id
          toFieldPath: spec.writeConnectionSecretToRef.name
          transforms:
            - type: string
              string:
                fmt: "%s-cluster"
        - fromFieldPath: spec.parameters.nodeSize
          toFieldPath: spec.forProvider.nodePools[0].size
          transforms:
            - type: map
              map:
                large: s-8vcpu-16gb
                medium: s-4vcpu-8gb
                small: s-2vcpu-4gb
        - fromFieldPath: spec.parameters.minNodeCount
          toFieldPath: spec.forProvider.nodePools[0].count
        - fromFieldPath: spec.parameters.minNodeCount
          toFieldPath: spec.forProvider.nodePools[0].minNodes
        - fromFieldPath: spec.id
          toFieldPath: spec.forProvider.nodePools[0].name
          transforms:
            - type: string
              string:
                fmt: "%s-nodes"
        - type: ToCompositeFieldPath
          fromFieldPath: metadata.name
          toFieldPath: status.clusterName
        - type: ToCompositeFieldPath
          fromFieldPath: status.State
          toFieldPath: status.controlPlaneStatus
        - type: ToCompositeFieldPath
          fromFieldPath: status.State
          toFieldPath: status.nodePoolStatus
        - fromFieldPath: spec.writeConnectionSecretToRef.namespace
          toFieldPath: spec.writeConnectionSecretToRef.namespace
      connectionDetails:
        - fromConnectionSecretKey: kubeconfig
        - name: value
          fromConnectionSecretKey: kubeconfig
      readinessChecks:
        - type: MatchString
          fieldPath: status.atProvider.status
          matchString: ACTIVE
    - name: helm
      base:
        apiVersion: helm.crossplane.io/v1beta1
        kind: ProviderConfig
        spec:
          credentials:
            secretRef:
              key: kubeconfig
            source: Secret
      patches:
        - fromFieldPath: spec.id
          toFieldPath: metadata.name
        - fromFieldPath: spec.writeConnectionSecretToRef.namespace
          toFieldPath: spec.credentials.secretRef.namespace
        - fromFieldPath: spec.id
          toFieldPath: spec.credentials.secretRef.name
          transforms:
            - type: string
              string:
                fmt: "%s-cluster"
      readinessChecks:
        - type: None
    - name: ingress
      base:
        apiVersion: helm.crossplane.io/v1beta1
        kind: Release
        spec:
          forProvider:
            chart:
              name: ingress-nginx
              repository: https://kubernetes.github.io/ingress-nginx
              version: 4.2.0
            namespace: ingress-nginx
            values:
              controller:
                annotations:
                  service.beta.kubernetes.io/aws-load-balancer-backend-protocol: tcp
                  service.beta.kubernetes.io/aws-load-balancer-cross-zone-load-balancing-enabled: "true"
                  service.beta.kubernetes.io/aws-load-balancer-type: nlb
                ingressClassResource:
                  default: true
          rollbackLimit: 3
      patches:
        - fromFieldPath: spec.id
          toFieldPath: metadata.name
          transforms:
            - type: string
              string:
                fmt: "%s-ingress"
        - fromFieldPath: spec.id
          toFieldPath: spec.providerConfigRef.name
    - name: crossplane
      base:
        apiVersion: helm.crossplane.io/v1beta1
        kind: Release
        spec:
          forProvider:
            chart:
              name: crossplane
              repository: https://charts.crossplane.io/stable
              version: 1.9.0
            namespace: crossplane-system
          rollbackLimit: 3
      patches:
        - fromFieldPath: spec.id
          toFieldPath: metadata.name
          transforms:
            - type: string
              string:
                fmt: "%s-crossplane"
        - fromFieldPath: spec.id
          toFieldPath: spec.providerConfigRef.name
    - name: kubernetes
      base:
        apiVersion: kubernetes.crossplane.io/v1alpha1
        kind: ProviderConfig
        spec:
          credentials:
            secretRef:
              key: kubeconfig
            source: Secret
      patches:
        - fromFieldPath: spec.id
          toFieldPath: metadata.name
        - fromFieldPath: spec.writeConnectionSecretToRef.namespace
          toFieldPath: spec.credentials.secretRef.namespace
        - fromFieldPath: spec.id
          toFieldPath: spec.credentials.secretRef.name
          transforms:
            - type: string
              string:
                fmt: "%s-cluster"
      readinessChecks:
        - type: None
    - name: ns-prod
      base:
        apiVersion: kubernetes.crossplane.io/v1alpha1
        kind: Object
        spec:
          forProvider:
            manifest:
              apiVersion: v1
              kind: Namespace
              metadata:
                name: production
      patches:
        - fromFieldPath: spec.id
          toFieldPath: metadata.name
          transforms:
            - type: string
              string:
                fmt: "%s-ns-prod"
        - fromFieldPath: spec.id
          toFieldPath: spec.providerConfigRef.name
    - name: ns-dev
      base:
        apiVersion: kubernetes.crossplane.io/v1alpha1
        kind: Object
        spec:
          forProvider:
            manifest:
              apiVersion: v1
              kind: Namespace
              metadata:
                name: dev
      patches:
        - fromFieldPath: spec.id
          toFieldPath: metadata.name
          transforms:
            - type: string
              string:
                fmt: "%s-ns-dev"
        - fromFieldPath: spec.id
          toFieldPath: spec.providerConfigRef.name
    - name: k8s-provider-sa
      base:
        apiVersion: kubernetes.crossplane.io/v1alpha1
        kind: Object
        spec:
          forProvider:
            manifest:
              apiVersion: v1
              kind: ServiceAccount
              metadata:
                name: provider-kubernetes
                namespace: crossplane-system
      patches:
        - fromFieldPath: spec.id
          toFieldPath: metadata.name
          transforms:
            - type: string
              string:
                fmt: "%s-k8s-provider-sa"
        - fromFieldPath: spec.id
          toFieldPath: spec.providerConfigRef.name
    - name: k8s-provider-crd
      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
      patches:
        - fromFieldPath: spec.id
          toFieldPath: metadata.name
          transforms:
            - type: string
              string:
                fmt: "%s-k8s-provider-crb"
        - fromFieldPath: spec.id
          toFieldPath: spec.providerConfigRef.name
    - name: k8s-provider-cc
      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
      patches:
        - fromFieldPath: spec.id
          toFieldPath: metadata.name
          transforms:
            - type: string
              string:
                fmt: "%s-k8s-provider-cc"
        - fromFieldPath: spec.id
          toFieldPath: spec.providerConfigRef.name
    - name: kubernetes-provider
      base:
        apiVersion: kubernetes.crossplane.io/v1alpha1
        kind: Object
        spec:
          forProvider:
            manifest:
              apiVersion: pkg.crossplane.io/v1
              kind: Provider
              metadata:
                name: crossplane-provider-kubernetes
              spec:
                controllerConfigRef:
                  name: provider-kubernetes
                package: xpkg.upbound.io/crossplane-contrib/provider-kubernetes:v0.6.0
      patches:
        - fromFieldPath: spec.id
          toFieldPath: metadata.name
          transforms:
            - type: string
              string:
                fmt: "%s-kubernetes-provider"
        - fromFieldPath: spec.id
          toFieldPath: spec.providerConfigRef.name
    - name: helm-provider
      base:
        apiVersion: kubernetes.crossplane.io/v1alpha1
        kind: Object
        spec:
          forProvider:
            manifest:
              apiVersion: pkg.crossplane.io/v1
              kind: Provider
              metadata:
                name: crossplane-provider-helm
              spec:
                controllerConfigRef:
                  name: provider-kubernetes
                package: xpkg.upbound.io/crossplane-contrib/provider-helm:v0.13.0
      patches:
        - fromFieldPath: spec.id
          toFieldPath: metadata.name
          transforms:
            - type: string
              string:
                fmt: "%s-helm-provider"
        - fromFieldPath: spec.id
          toFieldPath: spec.providerConfigRef.name
    - name: sql-provider
      base:
        apiVersion: kubernetes.crossplane.io/v1alpha1
        kind: Object
        spec:
          forProvider:
            manifest:
              apiVersion: pkg.crossplane.io/v1
              kind: Provider
              metadata:
                name: crossplane-provider-sql
              spec:
                package: crossplane/provider-sql:v0.5.0
      patches:
        - fromFieldPath: spec.id
          toFieldPath: metadata.name
          transforms:
            - type: string
              string:
                fmt: "%s-sql-provider"
        - fromFieldPath: spec.id
          toFieldPath: spec.providerConfigRef.name
    - name: config-app
      base:
        apiVersion: kubernetes.crossplane.io/v1alpha1
        kind: Object
        spec:
          forProvider:
            manifest:
              apiVersion: pkg.crossplane.io/v1
              kind: Configuration
              metadata:
                name: crossplane-app
              spec:
                package: xpkg.upbound.io/devops-toolkit/dot-application:v0.3.6
      patches:
        - fromFieldPath: spec.id
          toFieldPath: metadata.name
          transforms:
            - type: string
              string:
                fmt: "%s-config-app"
        - fromFieldPath: spec.id
          toFieldPath: spec.providerConfigRef.name
    - name: config-monitoring
      base:
        apiVersion: kubernetes.crossplane.io/v1alpha1
        kind: Object
        spec:
          forProvider:
            manifest:
              apiVersion: pkg.crossplane.io/v1
              kind: Configuration
              metadata:
                name: crossplane-monitoring
              spec:
                package: xpkg.upbound.io/devops-toolkit/dot-monitoring:v0.0.40
      patches:
        - fromFieldPath: spec.id
          toFieldPath: metadata.name
          transforms:
            - type: string
              string:
                fmt: "%s-config-monitoring"
        - fromFieldPath: spec.id
          toFieldPath: spec.providerConfigRef.name
    - name: config-sql
      base:
        apiVersion: kubernetes.crossplane.io/v1alpha1
        kind: Object
        spec:
          forProvider:
            manifest:
              apiVersion: pkg.crossplane.io/v1
              kind: Configuration
              metadata:
                name: crossplane-sql
              spec:
                package: xpkg.upbound.io/devops-toolkit/dot-sql:v0.7.14
      patches:
        - fromFieldPath: spec.id
          toFieldPath: metadata.name
          transforms:
            - type: string
              string:
                fmt: "%s-config-sql"
        - fromFieldPath: spec.id
          toFieldPath: spec.providerConfigRef.name
  writeConnectionSecretsToNamespace: crossplane-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.