Kubernetes Upgrade
To upgrade the environment running on Kubernetes to the next release, follow these steps. Read all the instructions before you begin the upgrade process.
Upgrade for helm installations
To upgrade the installation, copy over the new images from Upload Nevis Docker Images then run:
# For the temporary credentials, click the download button for one of the Docker images at https://portal.nevis.net/portal/secure/releases/rolling
CLOUDSMITH_PASSWORD=<cloudsmith-pass>
RELEASE_NAME=<release-name>
RELEASE_NAMESPACE=<release-namespace>
helm upgrade nevisadmin4-crd nevisadmin4-crd --repo https://dl.cloudsmith.io/$CLOUDSMITH_PASSWORD/nevissecurity/rolling/helm/charts/
helm get values $RELEASE_NAME -n $RELEASE_NAMESPACE > old-values.yaml
helm upgrade $RELEASE_NAME nevisadmin4 -n $RELEASE_NAMESPACE -f old-values.yaml \
--repo https://dl.cloudsmith.io/$CLOUDSMITH_PASSWORD/nevissecurity/rolling/helm/charts/ \
--version <version-to-upgrade>
If the version is not provided, it will upgrade to the latest one.
Helm changelog
- v8.2505.0
- Updated the used Nevis component versions to the
8.2505.0release.
- Updated the used Nevis component versions to the
- v8.2411.0
- Updated the used Nevis component versions to the
8.2411.0release.
- Updated the used Nevis component versions to the
- v8.2405.0
- Updated the used Nevis component versions to the
8.2405.0release. - Added configuration values for OpenTelemetry and Product Analytics
- Gitea repositories will now be initialized when using the
bootstrapoption
- Updated the used Nevis component versions to the
- v7.2402.1
- Fixed the usage of the Git credentials when using the
git.usernameandgit.passwordvalues.
- Fixed the usage of the Git credentials when using the
- v7.2402.0
- Updated the used Nevis component versions to the
7.2402.0release. - Added values
nevisAdmin4.livenessProbeandnevisAdmin4.readinessProbeto be able to define custom liveness and readiness probes.
- Updated the used Nevis component versions to the
- v7.2311.1
- Added value
database.typeto support PostgreSQL database.
- Added value
- v7.2311.0
- Switched to new version schema.
- Updated the used Nevis component versions to the
7.2311.0release. - Added value
nevisOperator.image.tagto make it possible to specify a separate version for nevisOperator. - Added value
nevisAdmin4.extraEnvsto configure additional environment values for nevisAdmin 4. - Added value
nevisAdmin4.enabledto make it possible to only deploy the nevisOperator component. - Added value
nevisAdmin4.ingress.annotationsto configure additional annotations for the ingress of nevisAdmin 4.
- v1.4.3
- Updated the used Nevis component versions to the
4.20.2release.
- Updated the used Nevis component versions to the
- v1.4.2
- Fixed an issue that could cause the installation to fail if https authentication was used for git.
- v1.4.1
- Fixed an issue that could cause the installation to fail if tls was enabled for nevisAdmin 4.
- v1.4.0
- Updated the used Nevis component versions to the
4.20.0release. - Added value
nevisOperator.defaultImagePullPolicyto configure theimagePullPolicyof the deployed Nevis components. - Secret handling was refactored to use the specified secrets directly, this improves compatibility with tools that depends on
helm template.- The following values are now deprecated:
git.httpCredentialSecret,git.sshCredentialSecret,database.root.credentialSecret. They are still honored but will be removed in the future. -
caution
When using the new
database.root.preparedCredentialSecretproperty, theroot-credssecret will no longer be created. Adjust theRoot CredentialandRoot Credential Namespacein the database patterns of nevisAdmin 4 to use the prepared secret before the migration to this value.
- The following values are now deprecated:
- Updated the used Nevis component versions to the
- v1.3.2
- Use standard duration string for the CA certificate
- v1.3.1
- Fixed an issue that could cause the upgrade to fail if
nginx.controller.ingressClassResourcewas defined in the providedvalues.yaml. - Fixed an issue that caused the wrong ingress class to be used in nevisOperator if
nginx.controller.ingressClassResource.enabledwas set tofalse.
- Fixed an issue that could cause the upgrade to fail if
- v1.3.0
- Updated the used Nevis component versions to the
4.19.1release.
- Updated the used Nevis component versions to the
- v1.2.0
- Updated the used Nevis component versions to the
4.19release. - Added optional mariadb and gitea dependency.
- Added value
repositoryUrlMapto allow configuring separate git repository url for different component namespaces. - Added values for cors and ldap.
- Added values for overriding nevisAdmin 4 configuration files.
- Fixed an issue that caused an incorrect passphrase generated for the tls keystore.
- Added support for Kubernetes
v1.26, and removed support forv1.21.
- Updated the used Nevis component versions to the
- v1.1.1
- Fixed an issue that the initial random password of nevisAdmin 4 was generated with each install. This caused the password in the Kubernetes secret and the actual password to be different.
- v1.1.0
- Updated the used Nevis component versions to the
4.18release. - Added separate service account for the nevisAdmin 4 instance.
- Added new label and annotation values.
- Adjusted used
securityContextforrestrictedPod Security Standard. - Added multiple new values for credentials that can be used in place of prepared secrets.
- Updated ingress-nginx chart to
4.4.0. - Added support for Kubernetes
v1.25, and removed support forv1.20.
- Updated the used Nevis component versions to the
- v1.0.1
- Added cert-manager related values.
- Fixed null error when using the
--dry-runoption.
Performing the upgrade using the wizard script
The Kubernetes upgrade wizard script walks you through the Kubernetes upgrade process with minimal user input required. It can also roll back changes, to some extent.
Download the script kubernetes-upgrade.zip.
This script is in an experimental state. For production environments, it is therefore better to perform the Kubernetes upgrade manually. For instructions, see further below.
Arguments & flags
| Arguments | Description |
|---|---|
| -h, --help | Prints usage information. |
| -r, --run-option | Sets what you want to upgrade. Options: all, nevisadmin, operator, images, crd, permissions, cert-manager, nginx; Default: all; For more details on each option, see the table below. |
| -n, --nevisadmin4-namespace | Defines the namespace of nevisAdmin4. Must be set if --run-options is set to nevisadmin or all. |
| -o, --operator-namespace | Defines the namespace of nevisOperator. Must be set if --run-options is set to operator or all. |
| -c, --container-registry | Sets the container registry to which the new images are uploaded. This is also the registry from where to pull the images for nevisAdmin4 and nevisOperator. Has to be set. |
| -i, --internal-registry | Sets the container registry URL from where the images are pulled by the pods.Default: the value of --container-registry. |
| --rollback | Use this flag to roll back the operation(s) set in --run-options to their previous state, instead of having them upgraded. Rollback limitations: Note that you cannot roll back the following changes once they are executed by the script: Images being copied to the container registry specified in the --container-registry option; Database schema upgrades of nevisAdmin4; Custom resource definition updates; Permission updates; nginx update; cert-manager, in case it was upgraded from 1.4 to 1.7 (upgrades from 0.10 to 1.4 can be rolled back) |
Run options
| --run-options | Description |
|---|---|
| images | Copies the images to the container registry specified in the --container-registry parameter, from the source registry specified in the config.yaml file. |
| nevisadmin | Updates the database schema of nevisAdmin 4, then nevisAdmin 4 itself. Finally, it restarts nevisAdmin 4. |
| operator | Upgrades nevisOperator. |
| crd | Updates the custom resource definitions. |
| permissions | Updates the permissions. |
| cert-manager | Use this run-option if cert-manager was installed using the manifest provided in this installation guide. It installs the new version of cert-manager. It also adds an additional CA ClusterIssuer called ca-issuer, which can be used for automatic key management. Do not use this run-option If cert-manager was installed separately. |
| nginx | Use this run-option if nginx was installed with the manifest provided in this installation guide. It installs the new version of nginx. Do not use this run-option If nginx was installed separately. |
| all | Runs all of the above, except for cert-manager and nginx. |
The following code snippet shows a sample upgrade script, with the default values used by the installation guide:
./upgrade.sh -r all -c <your-registry>.azurecr.io -o nevisoperator-system -n nevisadmin4