Causely Operator
The Causely Operator automates version management for Causely components running in your Kubernetes cluster. It periodically checks for version updates from the Causely backend and automatically updates the mediator and agent images to keep your deployment current.
Overview
The operator runs as a Kubernetes deployment and performs the following tasks:
- Version Synchronization: Polls the Causely Gateway every 60 seconds to check for version updates
- Automated Updates: Updates the
mediatorDeployment andagentDaemonSet images when a new version is available - Zero Downtime: Uses Kubernetes rolling updates to minimize service disruption
When to Use the Operator
The operator is useful in scenarios where:
- You want Causely to manage version updates automatically
- You prefer centralized version control from the Causely backend
- You want to reduce manual intervention for routine updates
The operator is disabled by default. Most users manage versions through Helm upgrades or GitOps workflows.
Enabling the Operator
Using Helm Values
Add the following to your causely-values.yaml:
operator:
enabled: true
Using --set Flag
You can also enable the operator directly via the --set flag:
helm upgrade causely \
oci://us-docker.pkg.dev/public-causely/public/causely \
--namespace=causely \
--set operator.enabled=true
Verifying the Operator
After enabling, verify the operator is running:
kubectl get deployment operator -n causely
kubectl get pods -n causely -l app=causely-operator
How It Works
- Polling: The operator periodically connects to the Causely Gateway via gRPC
- Version Check: It retrieves the target version configured for your repository
- Image Update: If the target version differs from the current deployment, it updates:
- The
mediatorDeployment (mediator and ML containers) - The
agentDaemonSet (agent container)
- The
- Rolling Update: Kubernetes handles the rolling update process automatically
Troubleshooting
Operator Pod Not Starting
Check if the mediator ConfigMap exists:
kubectl get configmap mediator -n causely
The operator shares configuration with the mediator. Ensure the mediator is properly installed first.
"Version is empty" in Logs
This indicates no target version is configured in the Causely backend. The operator will continue polling until a version is set.
Permission Errors
The operator requires permissions to update Deployments and DaemonSets. Verify the RBAC resources are created:
kubectl get clusterrole causely-operator
kubectl get clusterrolebinding causely-operator
Disabling the Operator
To disable the operator, set operator.enabled: false in your values file and upgrade:
helm upgrade causely \
oci://us-docker.pkg.dev/public-causely/public/causely \
--namespace=causely \
--set operator.enabled=false
This removes the operator Deployment but does not affect the mediator or agent versions.