Upgrading
Binary upgrade
CCattler is a single binary (cca). To upgrade:
- Download the new version from GitHub Releases
- Replace the binary on each node
- Restart services
Control plane
bash
# Download new binary
curl -fsSL https://github.com/boyadzhievb/ccattler/releases/latest/download/install.sh | bash
# Restart the server
sudo systemctl restart cca-serverWorker nodes
Roll upgrades one node at a time to avoid service disruption:
bash
# On each worker node:
sudo systemctl stop cca-agent
# Replace binary (install script or manual copy)
sudo systemctl start cca-agentThe agent re-registers with the control plane and resumes reporting observed state. Workloads continue running during the agent restart.
Ansible upgrade
If you deployed with Ansible, re-run the deployment script with the updated release:
bash
DEMO_MODE=inventory curl -fsSL https://github.com/boyadzhievb/ccattler/releases/latest/download/install-demo.sh | bashThis updates the local binary, downloads the latest playbooks, and re-deploys across all nodes in your inventory.
Version compatibility
- Control plane and agents should run the same version. Minor version mismatches are tolerated (agents can be one minor version behind the server).
- etcd — CCattler uses the etcd v3 API. Compatible with etcd 3.5+.
- Certificates — existing certificates remain valid across upgrades. The CA and node certificates are not version-dependent.
Rolling back
If an upgrade causes issues:
- Stop the new version on affected nodes
- Replace with the previous binary
- Restart services
State in etcd is not version-dependent — the previous binary can read and write the same keys.