Skip to content

Upgrading Comet on Kuberntes

Upgrading Comet using the Helm Chart

Generally-speaking, it is not necessary to upgrade the helm chart in order to upgrade your version of Comet.

All that is required is to update your override values passed to the helm chart to specify the version(s) to which you would like to upgrade.

# ...
frontend:
  frontendVersion: x.x.x
  # ...
backend:
  backendVersion: x.x.x
  # ...
  optimizer:
    # ...
    version: x.x.x
    # ...
# ...

Then run the helm upgrade to apply the change (or run it using your CI/CD tool):

helm upgrade <release-name> comet-ml/comet-ml --version <your current version of the helm chart> -f override-values.yaml

Or, if yuou are using a local copy of the helm chart:

helm upgrade <release-name> . -f override-values.yaml

Using Private Image Registries

If you install Comet using a private image registry, make sure that the versions you are specifying have been uploaded to the registry for all the relevant Comet images.

Please reach out to Comet Deployment Support if you need help acquiring these images to upload to your private registry.

Upgrading the Comet ML Helm Chart

Normal Upgrade Steps

helm upgrade <release-name> comet-ml/comet-ml -f override-values.yaml

Optionally, you can specify the version of the helm chart to upgrade to:

helm upgrade <release-name> comet-ml/comet-ml --version <x.x.x> -f override-values.yaml

From <=4.0.x to >=4.1.x

Chart Name changed to 'comet-ml', so update repository pull accordingly.

Due to a change in label selectors, it is not possible to execute a helm upgrade, instead it is necessary to uninstall and reinstall the chart.

Internal Redis

A change in how the Internal Redis is installed requires moving some non-default configurations. The following shows to where certain custom settings have been moved.

# Prior to 4.1.0
redis:
  enableInternalRedis: true
  image:
    repoistory: docker.io/redis
    tag: 5.0.7
  mpm:
    redisHost: "redis-internal"
    redisPort: "6379"
    redisToken: "NA"
    backupPath: "/opt/comet-ml/backups/redis/regular"
    maxTotalWorkers: "60"
    maxWaitTimeMs: "5000"
    redisSsl: false
    readTimeoutMs: "2000"
  persistenceVolume:
    storageClassName: "comet-generic"
    redisInternalVolumeSize: "10Gi"
  service:
    type: ClusterIP
    port: 6379
  nodeSelector: {}
  tolerations: []
  affinity: {}

Becomes:

# From 4.1.0
backend:
  mpm:
    # …
    redis:
      backupPath: "/opt/comet-ml/backups/redis/regular"
      maxTotalWorkers: "60"
      maxWaitTimeMs: "5000"
      readTimeoutMs: "2000"
# …
redis:
  enableInternalRedis: true
  redisHost: "redis-internal"
  redisPort: "6379"
  redisToken: "NA"
  redisSSL: false
redisInternal:
  image:
    registry: docker.io
    repoistory: redis
    tag: 5.0.7
  master:
    service:
      type: ClusterIP
      ports:
        redis: 6379
    persistence:
      enabled: true
      storageClass: "comet-generic"
      size: 10Gi
    nodeSelector: {}
    tolerations: []
    affinity: {}

Be sure to compare your override values to the defaults in values.yaml or those emitted from helm show values comet-ml/comet-ml as it is not necessary to override values when not deviating from the default.

Feb. 9, 2024