Skip to main content

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 mediator Deployment and agent DaemonSet 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
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. Image Update: If the target version differs from the current deployment, it updates:
    • 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.