cpln operator command configures your Kubernetes cluster to work with the Control Plane operator. It creates the necessary secrets and service accounts for secure integration.
When to use this
ArgoCD integration
Set up credentials so ArgoCD can deploy to Control Plane
Operator authentication
Create the Kubernetes secret that grants operator access to your org
GitOps workflows
Enable Kubernetes-based CI/CD pipelines to manage Control Plane resources
Multi-cluster setup
Connect multiple Kubernetes clusters to a single Control Plane organization
Prerequisites
CLI installed
CLI installed
Install the Control Plane CLI. See Installation.
Kubernetes access
Kubernetes access
You need access to a Kubernetes cluster with permissions to create namespaces and secrets.
kubectl configured
kubectl configured
Ensure
kubectl is configured and can communicate with your cluster.Install the operator
Create the Kubernetes secret that grants the operator access to your organization:Options
| Option | Description |
|---|---|
--serviceaccount, -s | Service account name for the operator (required) |
--serviceaccount-group, -g | Group to assign the service account to (default: superusers) |
--export | Output resources to stdout instead of applying them |
Basic installation
- Creates the service account
k8s-operatorif it doesn’t exist - Assigns it to the
superusersgroup - Generates an authentication key
- Creates a Kubernetes secret in the
controlplanenamespace
Specify a group
Assign the service account to a specific group:Export for review
Preview the Kubernetes resources without applying:Uninstall the operator
Remove the operator secret from your cluster:- Finds the secret in the
controlplanenamespace (identified by annotation) - Deletes the secret
- Exits with code 0 if the secret doesn’t exist
The service account in Control Plane is not deleted. Remove it separately if needed.
Troubleshooting
Installation fails with secret conflict
Installation fails with secret conflict
A secret with the organization name already exists but wasn’t created by the operator. Either:
- Delete the existing secret manually
- Use a different organization name
Permission denied
Permission denied
Ensure your
kubectl context has permissions to create secrets in the controlplane namespace:Namespace doesn't exist
Namespace doesn't exist
Create the
controlplane namespace if it doesn’t exist: