Upgrading auto-deploy-app chart for Auto DevOps

Auto DevOps provides the auto-deploy-app chart for deploying your application to the Kubernetes cluster with Helm/Tiller. Major version changes of this chart could have a significantly different resource architecture, and may not be backwards compatible.

This guide provides instructions on how to upgrade your deployments to use the latest chart and resource architecture.

Compatibility

The following table lists the version compatibility between GitLab and auto-deploy-image (with the auto-deploy-app chart).

GitLab version auto-deploy-image version Notes
v10.0 and higher v0.1.0 and higher v0 and v1 charts are backwards compatible.

Upgrade Guide

The Auto DevOps project must use the unmodified chart managed by GitLab. Customized charts are unsupported.

v1 chart

The v1 chart is backward compatible with the v0 chart, so no configuration changes are needed.

Troubleshooting

Major version mismatch warning

If deploying a chart that has a major version that is different from the previous one, the new chart might not be correctly deployed. This could be due to an architectural change. If that happens, the deployment job fails with a message similar to:

*************************************************************************************
                                   [WARNING]
Detected a major version difference between the the chart that is currently deploying (auto-deploy-app-v0.7.0), and the previously deployed chart (auto-deploy-app-v1.0.0).
A new major version might not be backward compatible with the current release (production). The deployment could fail or be stuck in an unrecoverable status.
...

To clear this error message and resume deployments, you must do one of the following:

Use a specific chart version

To use a specific chart version, you must specify a corresponding version of auto-deploy-image. Do this by customizing the image in your .gitlab-ci.yml.

For example, create the following .gitlab-ci.yml file in the project. It configures Auto DevOps to use auto-deploy-image version v0.17.0 for deployment jobs. It will download the chart from chart repository:

include:
  - template: Auto-DevOps.gitlab-ci.yml

.auto-deploy:
  image: "registry.gitlab.com/gitlab-org/cluster-integration/auto-deploy-image:v0.17.0"

Ignore warning and continue deploying

If you are certain that the new chart version is safe to be deployed, you can add the AUTO_DEVOPS_FORCE_DEPLOY_V<N> environment variable to force the deployment to continue, where <N> is the major version.

For example, if you want to deploy the v2.0.0 chart on a deployment that previously used the v0.17.0 chart, add AUTO_DEVOPS_FORCE_DEPLOY_V2.