CloudNatix logo

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:

  1. open ccoperator.yaml
  2. locate the Deployment resource of cloudnatix.ccoperator
  3. change the tag part of spec.template.spec.containers[0].image to point to the latest ccoperator

Using the Helm chart:

  1. open values.yaml
  2. change ccOperatorVersion to the target version
  3. 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.

  1. download the latest CLI
  2. rerun cnatix clusters configure to generate a new K8s YAML or a Helm chart
  3. adjust the YAML file (or the Helm chart)
  4. 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.
Previous
Cluster Controller Components
Next
Seeing metrics from Datadog