From 3068a3faa8f1517f64cb37b0a8bff1c15852fef6 Mon Sep 17 00:00:00 2001 From: Corey Osman Date: Mon, 20 Nov 2023 15:48:31 -0800 Subject: [PATCH] Adds helm chart to app version matrix * Previously, there was not an easy way to correlate the app version to a helm chart version. Many people ask this question in public slack channel or must get data themselves. This adds a script to produce the desired matrix data as a table, json, or yaml output to help folks who are upgrading. Signed-off-by: Corey Osman --- Makefile | 10 ++ linkerd.io/content/releases/_index.md | 11 ++ .../content/releases/release_matrix.json | 152 ++++++++++++++++++ .../content/releases/release_matrix.yaml | 118 ++++++++++++++ linkerd.io/data/releases/release_matrix.json | 152 ++++++++++++++++++ .../shortcodes/release-data-table.html | 58 +++++++ 6 files changed, 501 insertions(+) create mode 100644 linkerd.io/content/releases/release_matrix.json create mode 100644 linkerd.io/content/releases/release_matrix.yaml create mode 100644 linkerd.io/data/releases/release_matrix.json create mode 100644 linkerd.io/layouts/shortcodes/release-data-table.html diff --git a/Makefile b/Makefile index 2b368ce26f..a6f9ecf30b 100644 --- a/Makefile +++ b/Makefile @@ -140,6 +140,14 @@ replace-env-%: has-env-% tmp-sites sed 's/$*/$($*)/g' < $$fname > /tmp/__sed && mv /tmp/__sed $$fname; \ done +.PHONY: build-release-matrix +build-release-matrix: + @# Build release matrix + ./bin/generate_release_matrix.py --format=json > linkerd.io/data/releases/release_matrix.json + ./bin/generate_release_matrix.py --format=yaml > linkerd.io/content/releases/release_matrix.yaml + cp linkerd.io/data/releases/release_matrix.json linkerd.io/content/releases/release_matrix.json + + .PHONY: has-env-% has-env-%: @if [ ! $${$*:-} ]; then printf "You must define: $*\n" && exit 1; fi @@ -147,3 +155,5 @@ has-env-%: .PHONY: clean clean: rm -rf tmp + + diff --git a/linkerd.io/content/releases/_index.md b/linkerd.io/content/releases/_index.md index b360f8b90c..25f05ca11b 100644 --- a/linkerd.io/content/releases/_index.md +++ b/linkerd.io/content/releases/_index.md @@ -36,6 +36,17 @@ bugfixes or enhancements. Commercial providers of Linkerd (e.g. [Buoyant](https://buoyant.io)) may provide stronger support guarantees. +### Helm Version Matrix +The following version matrices include only the latest versions of the stable releases along with corresponding app and helm versions for linkerd and extensions. Use these to guide you to the right helm chart version or to automate workflows you might have. + +* [YAML matrix](./release_matrix.yaml) +* [JSON matrix](./release_matrix.json) + +{{< release-data-table />}} + + + + ## Edge (latest version: {{% latestedge %}}) Edge releases are frequent (usually, weekly) and can be used to work with the diff --git a/linkerd.io/content/releases/release_matrix.json b/linkerd.io/content/releases/release_matrix.json new file mode 100644 index 0000000000..36e28f6cf8 --- /dev/null +++ b/linkerd.io/content/releases/release_matrix.json @@ -0,0 +1,152 @@ +{ + "stable-2.13.7": { + "linkerd-control-plane": { + "chart_name": "linkerd2/linkerd-control-plane", + "chart_version": "1.12.7", + "chart_url": "https://artifacthub.io/packages/helm/linkerd2/linkerd-control-plane/1.12.7" + }, + "linkerd2-crds": { + "chart_name": "linkerd2/linkerd2-crds", + "chart_version": "1.6.1", + "chart_url": "https://artifacthub.io/packages/helm/linkerd2/linkerd2-crds/1.6.1" + }, + "linkerd-jaeger": { + "chart_name": "linkerd2/linkerd-jaeger", + "chart_version": "30.8.7", + "chart_url": "https://artifacthub.io/packages/helm/linkerd2/linkerd-jaeger/30.8.7" + }, + "linkerd-multicluster": { + "chart_name": "linkerd2/linkerd-multicluster", + "chart_version": "30.7.7", + "chart_url": "https://artifacthub.io/packages/helm/linkerd2/linkerd-multicluster/30.7.7" + }, + "linkerd-viz": { + "chart_name": "linkerd2/linkerd-viz", + "chart_version": "30.8.7", + "chart_url": "https://artifacthub.io/packages/helm/linkerd2/linkerd-viz/30.8.7" + }, + "linkerd2-cni": { + "chart_name": "linkerd2/linkerd2-cni", + "chart_version": "30.8.5", + "chart_url": "https://artifacthub.io/packages/helm/linkerd2/linkerd2-cni/30.8.5" + } + }, + "stable-2.14.5": { + "linkerd-control-plane": { + "chart_name": "linkerd2/linkerd-control-plane", + "chart_version": "1.16.6", + "chart_url": "https://artifacthub.io/packages/helm/linkerd2/linkerd-control-plane/1.16.6" + }, + "linkerd2-crds": { + "chart_name": "linkerd2/linkerd2-crds", + "chart_version": "1.8.0", + "chart_url": "https://artifacthub.io/packages/helm/linkerd2/linkerd2-crds/1.8.0" + }, + "linkerd-jaeger": { + "chart_name": "linkerd2/linkerd-jaeger", + "chart_version": "30.12.6", + "chart_url": "https://artifacthub.io/packages/helm/linkerd2/linkerd-jaeger/30.12.6" + }, + "linkerd-multicluster": { + "chart_name": "linkerd2/linkerd-multicluster", + "chart_version": "30.11.6", + "chart_url": "https://artifacthub.io/packages/helm/linkerd2/linkerd-multicluster/30.11.6" + }, + "linkerd-viz": { + "chart_name": "linkerd2/linkerd-viz", + "chart_version": "30.12.6", + "chart_url": "https://artifacthub.io/packages/helm/linkerd2/linkerd-viz/30.12.6" + }, + "linkerd2-cni": { + "chart_name": "linkerd2/linkerd2-cni", + "chart_version": "30.12.1", + "chart_url": "https://artifacthub.io/packages/helm/linkerd2/linkerd2-cni/30.12.1" + } + }, + "stable-2.12.6": { + "linkerd-control-plane": { + "chart_name": "linkerd2/linkerd-control-plane", + "chart_version": "1.9.8", + "chart_url": "https://artifacthub.io/packages/helm/linkerd2/linkerd-control-plane/1.9.8" + }, + "linkerd2-crds": { + "chart_name": "linkerd2/linkerd2-crds", + "chart_version": "1.6.1", + "chart_url": "https://artifacthub.io/packages/helm/linkerd2/linkerd2-crds/1.6.1" + }, + "linkerd-jaeger": { + "chart_name": "linkerd2/linkerd-jaeger", + "chart_version": "30.4.8", + "chart_url": "https://artifacthub.io/packages/helm/linkerd2/linkerd-jaeger/30.4.8" + }, + "linkerd-multicluster": { + "chart_name": "linkerd2/linkerd-multicluster", + "chart_version": "30.2.8", + "chart_url": "https://artifacthub.io/packages/helm/linkerd2/linkerd-multicluster/30.2.8" + }, + "linkerd-viz": { + "chart_name": "linkerd2/linkerd-viz", + "chart_version": "30.3.8", + "chart_url": "https://artifacthub.io/packages/helm/linkerd2/linkerd-viz/30.3.8" + }, + "linkerd2-cni": { + "chart_name": "linkerd2/linkerd2-cni", + "chart_version": "30.3.8", + "chart_url": "https://artifacthub.io/packages/helm/linkerd2/linkerd2-cni/30.3.8" + } + }, + "stable-2.10.2": { + "linkerd-jaeger": { + "chart_name": "linkerd2/linkerd-jaeger", + "chart_version": "2.10.2", + "chart_url": "https://artifacthub.io/packages/helm/linkerd2/linkerd-jaeger/2.10.2" + }, + "linkerd2": { + "chart_name": "linkerd2/linkerd2", + "chart_version": "2.10.2", + "chart_url": "https://artifacthub.io/packages/helm/linkerd2/linkerd2/2.10" + }, + "linkerd-multicluster": { + "chart_name": "linkerd2/linkerd-multicluster", + "chart_version": "2.10.2", + "chart_url": "https://artifacthub.io/packages/helm/linkerd2/linkerd-multicluster/2.10.2" + }, + "linkerd-viz": { + "chart_name": "linkerd2/linkerd-viz", + "chart_version": "2.10.2", + "chart_url": "https://artifacthub.io/packages/helm/linkerd2/linkerd-viz/2.10.2" + }, + "linkerd2-cni": { + "chart_name": "linkerd2/linkerd2-cni", + "chart_version": "2.10.2", + "chart_url": "https://artifacthub.io/packages/helm/linkerd2/linkerd2-cni/2.10.2" + } + }, + "stable-2.11.5": { + "linkerd-jaeger": { + "chart_name": "linkerd2/linkerd-jaeger", + "chart_version": "2.11.5", + "chart_url": "https://artifacthub.io/packages/helm/linkerd2/linkerd-jaeger/2.11.5" + }, + "linkerd2": { + "chart_name": "linkerd2/linkerd2", + "chart_version": "2.11.5", + "chart_url": "https://artifacthub.io/packages/helm/linkerd2/linkerd2/2.11" + }, + "linkerd-multicluster": { + "chart_name": "linkerd2/linkerd-multicluster", + "chart_version": "2.11.5", + "chart_url": "https://artifacthub.io/packages/helm/linkerd2/linkerd-multicluster/2.11.5" + }, + "linkerd-viz": { + "chart_name": "linkerd2/linkerd-viz", + "chart_version": "2.11.5", + "chart_url": "https://artifacthub.io/packages/helm/linkerd2/linkerd-viz/2.11.5" + }, + "linkerd2-cni": { + "chart_name": "linkerd2/linkerd2-cni", + "chart_version": "2.11.5", + "chart_url": "https://artifacthub.io/packages/helm/linkerd2/linkerd2-cni/2.11.5" + } + } +} diff --git a/linkerd.io/content/releases/release_matrix.yaml b/linkerd.io/content/releases/release_matrix.yaml new file mode 100644 index 0000000000..e2e45219a9 --- /dev/null +++ b/linkerd.io/content/releases/release_matrix.yaml @@ -0,0 +1,118 @@ +stable-2.10.2: + linkerd-jaeger: + chart_name: linkerd2/linkerd-jaeger + chart_url: https://artifacthub.io/packages/helm/linkerd2/linkerd-jaeger/2.10.2 + chart_version: 2.10.2 + linkerd-multicluster: + chart_name: linkerd2/linkerd-multicluster + chart_url: https://artifacthub.io/packages/helm/linkerd2/linkerd-multicluster/2.10.2 + chart_version: 2.10.2 + linkerd-viz: + chart_name: linkerd2/linkerd-viz + chart_url: https://artifacthub.io/packages/helm/linkerd2/linkerd-viz/2.10.2 + chart_version: 2.10.2 + linkerd2: + chart_name: linkerd2/linkerd2 + chart_url: https://artifacthub.io/packages/helm/linkerd2/linkerd2/2.10 + chart_version: 2.10.2 + linkerd2-cni: + chart_name: linkerd2/linkerd2-cni + chart_url: https://artifacthub.io/packages/helm/linkerd2/linkerd2-cni/2.10.2 + chart_version: 2.10.2 +stable-2.11.5: + linkerd-jaeger: + chart_name: linkerd2/linkerd-jaeger + chart_url: https://artifacthub.io/packages/helm/linkerd2/linkerd-jaeger/2.11.5 + chart_version: 2.11.5 + linkerd-multicluster: + chart_name: linkerd2/linkerd-multicluster + chart_url: https://artifacthub.io/packages/helm/linkerd2/linkerd-multicluster/2.11.5 + chart_version: 2.11.5 + linkerd-viz: + chart_name: linkerd2/linkerd-viz + chart_url: https://artifacthub.io/packages/helm/linkerd2/linkerd-viz/2.11.5 + chart_version: 2.11.5 + linkerd2: + chart_name: linkerd2/linkerd2 + chart_url: https://artifacthub.io/packages/helm/linkerd2/linkerd2/2.11 + chart_version: 2.11.5 + linkerd2-cni: + chart_name: linkerd2/linkerd2-cni + chart_url: https://artifacthub.io/packages/helm/linkerd2/linkerd2-cni/2.11.5 + chart_version: 2.11.5 +stable-2.12.6: + linkerd-control-plane: + chart_name: linkerd2/linkerd-control-plane + chart_url: https://artifacthub.io/packages/helm/linkerd2/linkerd-control-plane/1.9.8 + chart_version: 1.9.8 + linkerd-jaeger: + chart_name: linkerd2/linkerd-jaeger + chart_url: https://artifacthub.io/packages/helm/linkerd2/linkerd-jaeger/30.4.8 + chart_version: 30.4.8 + linkerd-multicluster: + chart_name: linkerd2/linkerd-multicluster + chart_url: https://artifacthub.io/packages/helm/linkerd2/linkerd-multicluster/30.2.8 + chart_version: 30.2.8 + linkerd-viz: + chart_name: linkerd2/linkerd-viz + chart_url: https://artifacthub.io/packages/helm/linkerd2/linkerd-viz/30.3.8 + chart_version: 30.3.8 + linkerd2-cni: + chart_name: linkerd2/linkerd2-cni + chart_url: https://artifacthub.io/packages/helm/linkerd2/linkerd2-cni/30.3.8 + chart_version: 30.3.8 + linkerd2-crds: + chart_name: linkerd2/linkerd2-crds + chart_url: https://artifacthub.io/packages/helm/linkerd2/linkerd2-crds/1.6.1 + chart_version: 1.6.1 +stable-2.13.7: + linkerd-control-plane: + chart_name: linkerd2/linkerd-control-plane + chart_url: https://artifacthub.io/packages/helm/linkerd2/linkerd-control-plane/1.12.7 + chart_version: 1.12.7 + linkerd-jaeger: + chart_name: linkerd2/linkerd-jaeger + chart_url: https://artifacthub.io/packages/helm/linkerd2/linkerd-jaeger/30.8.7 + chart_version: 30.8.7 + linkerd-multicluster: + chart_name: linkerd2/linkerd-multicluster + chart_url: https://artifacthub.io/packages/helm/linkerd2/linkerd-multicluster/30.7.7 + chart_version: 30.7.7 + linkerd-viz: + chart_name: linkerd2/linkerd-viz + chart_url: https://artifacthub.io/packages/helm/linkerd2/linkerd-viz/30.8.7 + chart_version: 30.8.7 + linkerd2-cni: + chart_name: linkerd2/linkerd2-cni + chart_url: https://artifacthub.io/packages/helm/linkerd2/linkerd2-cni/30.8.5 + chart_version: 30.8.5 + linkerd2-crds: + chart_name: linkerd2/linkerd2-crds + chart_url: https://artifacthub.io/packages/helm/linkerd2/linkerd2-crds/1.6.1 + chart_version: 1.6.1 +stable-2.14.5: + linkerd-control-plane: + chart_name: linkerd2/linkerd-control-plane + chart_url: https://artifacthub.io/packages/helm/linkerd2/linkerd-control-plane/1.16.6 + chart_version: 1.16.6 + linkerd-jaeger: + chart_name: linkerd2/linkerd-jaeger + chart_url: https://artifacthub.io/packages/helm/linkerd2/linkerd-jaeger/30.12.6 + chart_version: 30.12.6 + linkerd-multicluster: + chart_name: linkerd2/linkerd-multicluster + chart_url: https://artifacthub.io/packages/helm/linkerd2/linkerd-multicluster/30.11.6 + chart_version: 30.11.6 + linkerd-viz: + chart_name: linkerd2/linkerd-viz + chart_url: https://artifacthub.io/packages/helm/linkerd2/linkerd-viz/30.12.6 + chart_version: 30.12.6 + linkerd2-cni: + chart_name: linkerd2/linkerd2-cni + chart_url: https://artifacthub.io/packages/helm/linkerd2/linkerd2-cni/30.12.1 + chart_version: 30.12.1 + linkerd2-crds: + chart_name: linkerd2/linkerd2-crds + chart_url: https://artifacthub.io/packages/helm/linkerd2/linkerd2-crds/1.8.0 + chart_version: 1.8.0 + diff --git a/linkerd.io/data/releases/release_matrix.json b/linkerd.io/data/releases/release_matrix.json new file mode 100644 index 0000000000..36e28f6cf8 --- /dev/null +++ b/linkerd.io/data/releases/release_matrix.json @@ -0,0 +1,152 @@ +{ + "stable-2.13.7": { + "linkerd-control-plane": { + "chart_name": "linkerd2/linkerd-control-plane", + "chart_version": "1.12.7", + "chart_url": "https://artifacthub.io/packages/helm/linkerd2/linkerd-control-plane/1.12.7" + }, + "linkerd2-crds": { + "chart_name": "linkerd2/linkerd2-crds", + "chart_version": "1.6.1", + "chart_url": "https://artifacthub.io/packages/helm/linkerd2/linkerd2-crds/1.6.1" + }, + "linkerd-jaeger": { + "chart_name": "linkerd2/linkerd-jaeger", + "chart_version": "30.8.7", + "chart_url": "https://artifacthub.io/packages/helm/linkerd2/linkerd-jaeger/30.8.7" + }, + "linkerd-multicluster": { + "chart_name": "linkerd2/linkerd-multicluster", + "chart_version": "30.7.7", + "chart_url": "https://artifacthub.io/packages/helm/linkerd2/linkerd-multicluster/30.7.7" + }, + "linkerd-viz": { + "chart_name": "linkerd2/linkerd-viz", + "chart_version": "30.8.7", + "chart_url": "https://artifacthub.io/packages/helm/linkerd2/linkerd-viz/30.8.7" + }, + "linkerd2-cni": { + "chart_name": "linkerd2/linkerd2-cni", + "chart_version": "30.8.5", + "chart_url": "https://artifacthub.io/packages/helm/linkerd2/linkerd2-cni/30.8.5" + } + }, + "stable-2.14.5": { + "linkerd-control-plane": { + "chart_name": "linkerd2/linkerd-control-plane", + "chart_version": "1.16.6", + "chart_url": "https://artifacthub.io/packages/helm/linkerd2/linkerd-control-plane/1.16.6" + }, + "linkerd2-crds": { + "chart_name": "linkerd2/linkerd2-crds", + "chart_version": "1.8.0", + "chart_url": "https://artifacthub.io/packages/helm/linkerd2/linkerd2-crds/1.8.0" + }, + "linkerd-jaeger": { + "chart_name": "linkerd2/linkerd-jaeger", + "chart_version": "30.12.6", + "chart_url": "https://artifacthub.io/packages/helm/linkerd2/linkerd-jaeger/30.12.6" + }, + "linkerd-multicluster": { + "chart_name": "linkerd2/linkerd-multicluster", + "chart_version": "30.11.6", + "chart_url": "https://artifacthub.io/packages/helm/linkerd2/linkerd-multicluster/30.11.6" + }, + "linkerd-viz": { + "chart_name": "linkerd2/linkerd-viz", + "chart_version": "30.12.6", + "chart_url": "https://artifacthub.io/packages/helm/linkerd2/linkerd-viz/30.12.6" + }, + "linkerd2-cni": { + "chart_name": "linkerd2/linkerd2-cni", + "chart_version": "30.12.1", + "chart_url": "https://artifacthub.io/packages/helm/linkerd2/linkerd2-cni/30.12.1" + } + }, + "stable-2.12.6": { + "linkerd-control-plane": { + "chart_name": "linkerd2/linkerd-control-plane", + "chart_version": "1.9.8", + "chart_url": "https://artifacthub.io/packages/helm/linkerd2/linkerd-control-plane/1.9.8" + }, + "linkerd2-crds": { + "chart_name": "linkerd2/linkerd2-crds", + "chart_version": "1.6.1", + "chart_url": "https://artifacthub.io/packages/helm/linkerd2/linkerd2-crds/1.6.1" + }, + "linkerd-jaeger": { + "chart_name": "linkerd2/linkerd-jaeger", + "chart_version": "30.4.8", + "chart_url": "https://artifacthub.io/packages/helm/linkerd2/linkerd-jaeger/30.4.8" + }, + "linkerd-multicluster": { + "chart_name": "linkerd2/linkerd-multicluster", + "chart_version": "30.2.8", + "chart_url": "https://artifacthub.io/packages/helm/linkerd2/linkerd-multicluster/30.2.8" + }, + "linkerd-viz": { + "chart_name": "linkerd2/linkerd-viz", + "chart_version": "30.3.8", + "chart_url": "https://artifacthub.io/packages/helm/linkerd2/linkerd-viz/30.3.8" + }, + "linkerd2-cni": { + "chart_name": "linkerd2/linkerd2-cni", + "chart_version": "30.3.8", + "chart_url": "https://artifacthub.io/packages/helm/linkerd2/linkerd2-cni/30.3.8" + } + }, + "stable-2.10.2": { + "linkerd-jaeger": { + "chart_name": "linkerd2/linkerd-jaeger", + "chart_version": "2.10.2", + "chart_url": "https://artifacthub.io/packages/helm/linkerd2/linkerd-jaeger/2.10.2" + }, + "linkerd2": { + "chart_name": "linkerd2/linkerd2", + "chart_version": "2.10.2", + "chart_url": "https://artifacthub.io/packages/helm/linkerd2/linkerd2/2.10" + }, + "linkerd-multicluster": { + "chart_name": "linkerd2/linkerd-multicluster", + "chart_version": "2.10.2", + "chart_url": "https://artifacthub.io/packages/helm/linkerd2/linkerd-multicluster/2.10.2" + }, + "linkerd-viz": { + "chart_name": "linkerd2/linkerd-viz", + "chart_version": "2.10.2", + "chart_url": "https://artifacthub.io/packages/helm/linkerd2/linkerd-viz/2.10.2" + }, + "linkerd2-cni": { + "chart_name": "linkerd2/linkerd2-cni", + "chart_version": "2.10.2", + "chart_url": "https://artifacthub.io/packages/helm/linkerd2/linkerd2-cni/2.10.2" + } + }, + "stable-2.11.5": { + "linkerd-jaeger": { + "chart_name": "linkerd2/linkerd-jaeger", + "chart_version": "2.11.5", + "chart_url": "https://artifacthub.io/packages/helm/linkerd2/linkerd-jaeger/2.11.5" + }, + "linkerd2": { + "chart_name": "linkerd2/linkerd2", + "chart_version": "2.11.5", + "chart_url": "https://artifacthub.io/packages/helm/linkerd2/linkerd2/2.11" + }, + "linkerd-multicluster": { + "chart_name": "linkerd2/linkerd-multicluster", + "chart_version": "2.11.5", + "chart_url": "https://artifacthub.io/packages/helm/linkerd2/linkerd-multicluster/2.11.5" + }, + "linkerd-viz": { + "chart_name": "linkerd2/linkerd-viz", + "chart_version": "2.11.5", + "chart_url": "https://artifacthub.io/packages/helm/linkerd2/linkerd-viz/2.11.5" + }, + "linkerd2-cni": { + "chart_name": "linkerd2/linkerd2-cni", + "chart_version": "2.11.5", + "chart_url": "https://artifacthub.io/packages/helm/linkerd2/linkerd2-cni/2.11.5" + } + } +} diff --git a/linkerd.io/layouts/shortcodes/release-data-table.html b/linkerd.io/layouts/shortcodes/release-data-table.html new file mode 100644 index 0000000000..5c83adee91 --- /dev/null +++ b/linkerd.io/layouts/shortcodes/release-data-table.html @@ -0,0 +1,58 @@ +{{ $table := $.Site.Data.releases.release_matrix }} +{{ $data := .Inner }} +{{ $table_headers := slice "Chart Name" "Chart Version" "App Version" }} + + + + + + + + + + {{ range $release_version, $charts := $table }} + + + + + {{ end }} + +
Helm to App version matrix
Release Name
+ {{ $release_version }} + + + + + {{ range $table_headers }} {{ end }} + + + + {{ range $chart_name, $chart_data := $charts }} + + + + + + + + {{ end }} + +
{{ . | humanize }}
{{ $chart_name }} {{ $chart_data.chart_version }} {{ $release_version }}
+ +
\ No newline at end of file