Versioning System Update
Overview
This document describes the changes in versioning system for Tetrate Istio Distro (TID) and Tetrate Istio Subscription (TIS) Helm charts. This update aims to streamline the version numbering and enhance clarity in our release process. Below is a detailed overview of the changes made from the previous schema to the new schema.
Previous Schema - Prior to December 2023
- Chart Version: 1.20.0
- App Version: 1.20.0-tetrate-v0
The previous schema used upstream version for Chart version and utilized a hyphen (-
) and the letter v
in the App Version to denote specific build or release iterations.
New Schema - December 2023 and later
- Chart Version: 1.20.0+tetrate0
- App Version: 1.20.0-tetrate0
In the new schema, we have made the following changes:
- Chart Version are now using format MAJOR.MINOR.PATCH+DISTRO with following rules
- MAJOR version follows upstream Istio MAJOR version
- MINOR version follows upstream Istio MINOR version
- PATCH version follows upstream Istio PATCH version
- DISTRO version is used to track Tetrate Istio Distro specific changes
- Chart Version now include a plus sign (
+
) and a DISTRO version number. The DISTRO version number is used to track TID specific changes. Prior to this, TID Helm charts version mirrored the versioning of upstream Istio, leading to potential confusion around identifying TID-specific releases and tracking distinct changes. - Following the Semantic Versioning rules, DISTRO version is not considered when comparing versions, but used as metadata to track TID specific changes.
- The adoption of a plus sign (
+
) instead of a hyphen (-
) for versioning is to adhere to the Semantic Versioning rules. Hyphen is considered a pre-release version indicator and will not shows up in Helm search results unless using--devel
flag. - App Version still use a hyphen (
-
) instead of a plus sign (+
) to maintain compliance with Kubernetes naming convention. - Using
1.20.0-tetrate0
instead of1.20.0-tetrate-v0
is to strongly emphasize the fact that TID don’t have any variant or development stages compared to upstream Istio. TID rebuild the upstream and distribute it.
Following is example output from helm search repo
command
NAME CHART VERSION APP VERSION DESCRIPTION
tid/base 1.20.0+tetrate0 1.20.0-tetrate0 Helm chart for deploying Istio cluster resource...
tid/istiod 1.20.0+tetrate0 1.20.0-tetrate0 Helm chart for istio-cni components
The helm chart is designed to work for both FIPS and non-FIPS deployments. To install FIPS version, set image registry to FIPS image registry.
Distro Versioning
TID distro version is using following format tetrateN
where N is a number starting from 0 and incremented for each new distro release.
tetrate0
- first TID release following upstream Istio release. For example,1.20.0+tetrate0
is the first TID release based on upstream Istio 1.20.0 release.tetrate1
totetrateN
- subsequent TID releases with changes on top of upstream Istio release. This could include bug fixes, security fixes, or other changes. For example,1.20.0+tetrate1
is the second TID release based on upstream Istio 1.20.0 release with CVE fixes.
Migration Strategy
TID will facilitate a smooth transition by maintaining two separate Helm repositories: the existing repository will continue using the old versioning scheme, while a new repository will adopt the new versioning format. This dual-repository approach allows users to choose between the old and new versioning systems for TID Helm charts until the TID 1.24.0 release. This strategy ensures minimal disruption to current workflows, as users can gradually adjust to the new versioning format. Post the TID 1.24.0 release, the old versioning scheme and its associated repository will be phased out, consolidating all users on the updated format in the new repository.
Legacy repository — valid until TID 1.24.0 release
- Github repo https://github.com/tetratelabs/helm-charts
- Helm repo https://tetratelabs.github.io/helm-charts/
New repository — please change your scripts to use these, along with the new versioning scheme
- Github repo https://github.com/tetratelabs/charts
- Helm repo https://tis.tetrate.io/charts