Causely Operator
The Causely Operator manages version updates for Causely components running in your Kubernetes cluster. It periodically checks for version updates from the Causely backend and, when a new version is available, presents an update button in the UI. You must click the button to apply the update.
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
- Update Notifications: Surfaces an update button in the UI when a new version is available, you click it to apply the update to the
mediatorDeployment andagentDaemonSet - Zero Downtime: Uses Kubernetes rolling updates to minimize service disruption
When to Use the Operator
The operator is useful in scenarios where:
- You prefer centralized version control from the Causely backend
- You want a guided, one-click update experience rather than managing Helm upgrades manually
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
- Update Available: If the target version differs from the current deployment, an update button appears in the Causely UI. Clicking it triggers the update for:
- 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.