Deploy an External Provisioner¶
In this tutorial, you add a CoderProvisioner to a control plane that already exists. A CoderProvisioner runs external provisioner daemons for Coder.
Time: 5 minutes.
Prerequisites¶
Complete Deploy a Coder Control Plane first. The control plane codercontrolplane-sample in the namespace coder must be Ready, and its operator access must be ready (the default).
Make sure that the phase is Ready and that operatorAccessReady is true:
kubectl get codercontrolplane codercontrolplane-sample -n coder \
-o jsonpath='{.status.phase}{"\n"}{.status.operatorAccessReady}{"\n"}'
Expected output:
Ready
true
1. Check the license entitlement¶
External provisioners require the applicable Coder license entitlement. Show its value:
kubectl get codercontrolplane codercontrolplane-sample -n coder \
-o jsonpath='{.status.externalProvisionerDaemonsEntitlement}{"\n"}'
- If the value is
entitledorgrace_period, continue to step 2. - If the value is
not_entitled, update the license of the control plane first.
2. Deploy the provisioner¶
kubectl apply -f "https://raw.githubusercontent.com/coder/coder-k8s/main/config/samples/coder_v1alpha1_coderprovisioner.yaml"
3. Verify¶
kubectl get coderprovisioner coderprovisioner-sample -n coder \
-o jsonpath='{.status.phase}{"\n"}{range .status.conditions[*]}{.type}={.status} {.reason}{"\n"}{end}'
Expected result: the phase is Ready, and the conditions include DeploymentReady=True.
The operator creates these resources in the coder namespace:
| Kind | Name |
|---|---|
| Deployment | provisioner-coderprovisioner-sample |
| ServiceAccount | coderprovisioner-sample-provisioner |
| Role | provisioner-coderprovisioner-sample |
| RoleBinding | provisioner-coderprovisioner-sample |
| Secret (provisioner key) | coderprovisioner-sample-provisioner-key |
kubectl get deployment,role,rolebinding provisioner-coderprovisioner-sample -n coder
kubectl get sa coderprovisioner-sample-provisioner -n coder
kubectl get secret coderprovisioner-sample-provisioner-key -n coder
4. Clean up (optional)¶
kubectl delete coderprovisioner coderprovisioner-sample -n coder
To remove all the other resources, do the steps in the control plane cleanup.