GuidesChangelogDiscussions
Log In

Provider Install

Providers extend Crossplane to enable infrastructure resource provisioning. In order to provision a resource, a Custom Resource Definition(CRD) needs to be registered in your Kubernetes cluster and its controller should be watching the Custom Resources those CRDs define. Provider packages contain many Custom Resource Definitions and their controllers.

For this integration, Crossplane is implemented as a provider for Crossplane, implementing controllers for:

  • Application management
  • Jobs management
  • Framework management

Installing Crossplane

Crossplane can be easily installed into any existing Kubernetes cluster using the regularly published Helm chart and the steps below:

kubectl create namespace crossplane-system
helm repo add crossplane-stable https://charts.crossplane.io/stable
helm repo update
helm install crossplane --namespace crossplane-system crossplane-stable/crossplane --set packageCache.sizeLimit=512Mi

📘

Crossplane install details

You can find detailed instructions on how to install Crossplane directly from Crossplane's official documentation available here

Installing the Ketch Provider

To install the Ketch provider package, apply the following resource to the cluster where Crossplane is running:

apiVersion: pkg.crossplane.io/v1
kind: Provider
metadata:
  name: provider-ketch
spec:
  package: "shipasoftware/kcp-provider:0.0.1"

📘

Crossplane 1.6+ API Graduation

As off Crossplane 1.6, the API version of pkg.crossplane has moved from "pkg.crossplane.io/v1beta1" to "pkg.crossplane.io/v1". If using Crossplane less than 1.6, use v1beta1.

Apply the definition above to your cluster:

kubectl apply -f crossplane-provider-ketch.yaml

Cluster Permission

The Ketch provider needs the permission below to be applied, so it can adequately manage the resource lifecycle in your cluster:

SA=$(kubectl -n crossplane-system get sa -o name | grep provider-ketch | sed -e 's|serviceaccount\/|crossplane-system:|g')
kubectl create clusterrolebinding provider-ketch-admin-binding --clusterrole cluster-admin --serviceaccount="${SA}"

Your Ketch provider is now installed and ready to be used with Crossplane.