User Guide
Updating CloudNatix Cluster Controller
CloudNatix Cluster Controller consists of multiple pods. CCOperator is a Kubernetes operator pod that is created initially. The CCOperator pod then creates other pods, each of which is responsible for specific functionality of Cluster Controller.
Updating CCOperator
To update CCOperator, you can take one of the following approaches:
Use the files for installation generated by the last cnatix clusters configure
command run
Unless instructed to use the latest YAML file (Helm chart), you can bump the CCOperator version by using the existing files.
cnatix clusters configure
command saves the generated YAML file and Helm chart into the $HOME/.cnatix
directory (or some other path you specified by the --workspace
flag).
$HOME/.cnatix/cluster-configs/<cluster name>/ccoperator
: Helm chart$HOME/.cnatix/cluster-configs/<cluster name>/ccoperator.yaml
: YAML file
Unless you have deleted them, you can find these files generated by your last run of the command.
Using the YAML file:
- open
ccoperator.yaml
- locate the
Deployment
resource ofcloudnatix.ccoperator
- change the tag part of
spec.template.spec.containers[0].image
to point to the latestccoperator
Using the Helm chart:
- open
values.yaml
- change
ccOperatorVersion
to the target version - run
helm upgrade -n cloudnatix --create-namespace ccoperator $HOME/.cnatix/cluster-configs/<cluster name>/ccoperator
Re-generate the files for installation
If you have deleted the files for installation generated by the last cnatix clusters configure
command run, or the target version needs the latest YAML file (or Helm chart) (e.g., because a new configuration item has been added), please re-generate and use the files as follows.
- download the latest CLI
- rerun
cnatix clusters configure
to generate a new K8s YAML or a Helm chart - adjust the YAML file (or the Helm chart)
- apply the YAML file (or run Helm upgrade with the Helm chart) following the commands provided by the
cnatix clusters configure
command
Pull and use the latest Helm chart from ChartMuseum
You can pull the latest Helm chart of CCOperator from https://charts.cloudnatix.com
.
Here is an example command to pull the chart.
helm repo add cloudnatix https://charts.cloudnatix.com
helm repo update
helm pull cloudnatix/ccoperator
Fill the fields in values.yaml
and then run Helm upgrade with it.
Updating other Cluster Controller Components
Cluster Controller components other than CCOperator can be updated via the cnatix
CLI or they can be auto-upgraded.
You can see a list of Cluster Controller components that are installed to a cluster with the following command:
cnatix clusters components --cluster <cluster name>
To update component versions, you can use the cnatix
CLI or specify the versions in the Helm chart.
cnatix clusters components update spec
is the CLI command for updating a component to a specific version.
cnatix clusters components update spec \
--cluster <cluster name> \
--kind <component name> \
--version <version> \
(--upgradable)
Set --upgradable
if you want to enable the auto-update of the specified component.
componentSpecs
in the values file can be used to specify component versions in the Helm chart. Here is an example:
ccOperatorVersion: 0.241.0
autoUpgrade: false
componentSpecs:
authtokenrefresher:
version: 0.23.0
upgradable: false
cluster-watcher:
version: 0.223.0
upgradable: false
clusteragent:
version: 0.156.0
upgradable: true
connect-agent:
version: 0.159.0
upgradable: true
kube-prometheus-stack:
version: 37.2.0
upgradable: true
vpa:
version: 0.14.0
upgradable: true
This is supported by the ccoperator
Helm chart v0.466.0
or later. ccOperatorVersion
needs to be 0.241.0
or later. autoUpgrade
needs to be set to false
.
Please do not update component versions with cnatix clusters components update spec
if you manage the components version via the Helm chart values file.
if you manage the components version via the Helm chart values file.
Distributions and Channels
CloudNatix uses "distributions" and "channels" to manage software releases.
Distributions are of the form YY.R
where YY
is the year (i.e. 20 for 2020, etc.) and R
is the one-indexed release number (1, 2, etc.). CloudNatix releases a new distribution when a major change is released. Such a major change might be backward incompatible or might require human intervention for update.
In a single distribution, component versions are tied to "channels". Channels provide the means of grouping component versions into well defined swim lanes that reflect the component version’s stability.
Currently CloudNatix maintains the following three channels:
testing
: All component versions start in this channel once released and immediately undergo automated testing and QA.rapid
: Component version that has passed all testing and QA, but might have issues that need to be identified via more extensive integration testing and live trials in customer environments.stable
: Component version that has passed all testing, extensive integration testing and live trials in customer environments.