Skip to main content

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 mediator Deployment and agent DaemonSet
  • 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
note

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

  1. Polling: The operator periodically connects to the Causely Gateway via gRPC
  2. Version Check: It retrieves the target version configured for your repository
  3. 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 mediator Deployment (mediator and ML containers)
    • The agent DaemonSet (agent container)
  4. 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.