CHYT Update Guide
This document outlines how to update CHYT using the Kubernetes operator.
Important Information Before Updating
During a CHYT update:
- The YTsaurus cluster continues operating normally.
- YTsaurus server components aren’t restarted.
- Data access via the YTsaurus API remains available.
- CHYT clusters are temporarily unavailable.
- The update installs the new version alongside the current one without replacing it (Multiple CHYT Versions).
- Cliques automatically use the latest created resource with
makeDefault: trueas the default version.
Before updating:
-
Verify compatibility between CHYT, YTsaurus, and Strawberry versions.
Refer to the compatibility table.
-
Ensure the
strawberry controlleris installed and configured — CHYT depends on it.Important
Confirm that the
strawberry controlleris properly set up. -
Review available CHYT versions and their changes.
See the CHYT releases.
Preparation for the Update
1. Check the Current CHYT Version
Use the current CHYT specification to retrieve the version:
kubectl get chyt -n <namespace> -o yaml | grep image
Example output:
image: ghcr.io/ytsaurus/chyt:2.17.3
2. Check CHYT Status
Verify that CHYT is in the Finished state:
kubectl get chyt -n <namespace>
Example output:
NAME STATUS
<chyt-name> Finished
If CHYT isn’t in the Finished state, wait for ongoing operations to complete.
3. Save a Backup of the CHYT Specification
Save a backup of the current CHYT specification:
kubectl get chyt -n <namespace> -o yaml > chyt-backup.yaml
Updating CHYT
The operator doesn’t modify existing CHYT resources. Instead, it creates a new version as a separate resource.
1. Prepare the Specification for the New Version
Use the current CHYT specification as a basis:
kubectl get chyt <chyt-name> -n <namespace> -o yaml
Create a chyt-<new-version>.yaml file with:
- A new resource name in the
metadata.namefield. - A new image version in the
imagefield. makeDefault: trueto set the new version as default for cliques.
Example specification for version 2.18.0:
apiVersion: cluster.ytsaurus.tech/v1
kind: Chyt
metadata:
name: chyt-2-18-0
namespace: <namespace>
spec:
image: ghcr.io/ytsaurus/chyt:2.18.0
makeDefault: true
ytsaurus:
name: <ytsaurus-name>
2. Apply the New Version
Apply the new version specification:
kubectl apply -f chyt-<new-version>.yaml -n <namespace>
The operator creates a new CHYT resource and uploads its artifacts to Cypress. The existing resource remains unchanged.
3. Track the Update Progress
Monitor the CHYT status during the update:
kubectl get chyt -n <namespace> -w
Update States:
| Status | Description |
|---|---|
CreatingUser |
The operator creates a user in Cypress. |
UploadingIntoCypress |
The operator uploads files to Cypress. |
CreatingChPublicClique |
The operator creates a public clique. |
Finished |
The update is complete. |
4. Verify the Update
-
Confirm that both resources are in the
Finishedstate:kubectl get chyt -n <namespace>Example output:
NAME STATUS <chyt-name> Finished <new-chyt-name> Finished -
Check the new image version:
kubectl get chyt -n <namespace> -o yaml | grep imageExample output:
image: ghcr.io/ytsaurus/chyt:2.18.0
Multiple CHYT Versions on a Single Cluster
The update process adds a new CHYT version as a separate resource, allowing multiple versions to coexist on the same YTsaurus cluster.
- Each version has its own image.
- Cliques use the latest resource with
makeDefault: trueas the default. - You don’t need to modify the previous resource — it automatically loses default status.
Removing an Old CHYT Version
When the old CHYT version is no longer needed:
-
Delete the CHYT resource:
kubectl delete chyt <old-chyt-name> -n <namespace> -
Remove old artifacts from Cypress (if necessary):
- Open the
//sys/bin/ytserver-clickhouseand//sys/bin/clickhouse-trampolinedirectories. - Locate old version files by creation date.
- Delete them from the context menu.
- Open the