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

cluster-civo

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

Composition

Referenced XRD

CompositeCluster

Source Codegithub.com/vfarcic/devops-toolkit-crossplane/tree/master/packages/k8s
Resources (16)

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

Kind
Group
Version

CivoKubernetes

cluster.civo.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-civo
  creationTimestamp: null
  labels:
    cluster: ck
    provider: civo
spec:
  compositeTypeRef:
    apiVersion: devopstoolkitseries.com/v1alpha1
    kind: CompositeCluster
  patchSets:
    - name: metadata
      patches:
        - fromFieldPath: metadata.labels
  resources:
    - name: civocluster
      base:
        apiVersion: cluster.civo.crossplane.io/v1alpha1
        kind: CivoKubernetes
        spec:
          connectionDetails:
            connectionSecretNamePrefix: cluster-civo
            connectionSecretNamespace: crossplane-system
          pools:
            - count: 1
              id: 8382e422-dcdd-461f-afb4-2ab67f171c3e
              size: g3.k3s.small
          providerConfigRef:
            name: crossplane-provider-civo
      patches:
        - fromFieldPath: spec.id
          toFieldPath: metadata.name
        - fromFieldPath: spec.id
          toFieldPath: spec.name
        - fromFieldPath: spec.parameters.minNodeCount
          toFieldPath: spec.pools[0].count
        - fromFieldPath: spec.parameters.nodeSize
          toFieldPath: spec.pools[0].size
          transforms:
            - type: map
              map:
                large: g3.k3s.xlarge
                medium: g3.k3s.medium
                small: g3.k3s.small
        - type: ToCompositeFieldPath
          fromFieldPath: metadata.name
          toFieldPath: status.clusterName
      connectionDetails:
        - fromConnectionSecretKey: kubeconfig
        - name: value
          fromConnectionSecretKey: kubeconfig
    - 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: cluster-civo-%s
      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.6.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: cluster-civo-%s
      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: k8s-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-k8s-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: 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: vfarcic/crossplane-app:v0.2.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: vfarcic/crossplane-monitoring:v0.0.39
      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: vfarcic/crossplane-sql:v0.2.17
      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.