Set chart appVersion with 'helm package' on release

Use the '--app-version' parameter to 'helm package' to dynamically
set the chart 'appVersion' field. We can then omit the hardcoded
'appVersion' field in the Chart.yaml file.

The chart 'version' field is also set by 'helm package' but we still
need to define it in the Chart.yaml file since 'help dep update'
requires it. The placeholder 'version' field is now set to 0.0.0 just
to give it some value.

For E2E, since the version fields are no longer hardcoded, it now
simulates a release by running 'helm package' and extracting the tar
files to HELM_REPO_LOCATION, now set to ./helm_repo.

Signed-off-by: Tom Pantelis <tompantelis@gmail.com>
This commit is contained in:
Tom Pantelis
2023-12-01 17:01:36 -05:00
committed by Thomas Pantelis
parent 66cf1522c0
commit 279ca0490a
11 changed files with 25 additions and 24 deletions
+1 -1
View File
@@ -11,7 +11,7 @@ jobs:
e2e: e2e:
name: E2E name: E2E
if: contains(github.event.pull_request.labels.*.name, 'ready-to-test') if: contains(github.event.pull_request.labels.*.name, 'ready-to-test')
timeout-minutes: 45 timeout-minutes: 120
runs-on: ubuntu-latest runs-on: ubuntu-latest
strategy: strategy:
fail-fast: false fail-fast: false
+3
View File
@@ -53,6 +53,9 @@ jobs:
- name: Set up helm/chart-testing - name: Set up helm/chart-testing
uses: helm/chart-testing-action@e6669bcd63d7cb57cb4380c33043eebe5d111992 uses: helm/chart-testing-action@e6669bcd63d7cb57cb4380c33043eebe5d111992
- name: Set up local helm repo
run: make local-helm-repo
- name: Run helm/chart-testing (lint) - name: Run helm/chart-testing (lint)
run: ct lint --config ct.yaml run: ct lint --config ct.yaml
+1
View File
@@ -4,3 +4,4 @@
*.tgz *.tgz
Makefile.dapper Makefile.dapper
Dockerfile.* Dockerfile.*
helm_repo
+13 -4
View File
@@ -1,6 +1,6 @@
BASE_BRANCH ?= release-0.14 BASE_BRANCH ?= release-0.14
export BASE_BRANCH export BASE_BRANCH
export HELM_REPO_LOCATION=. export HELM_REPO_LOCATION=./helm_repo
ifneq (,$(DAPPER_HOST_ARCH)) ifneq (,$(DAPPER_HOST_ARCH))
@@ -25,11 +25,20 @@ export SUBCTL_VERSION
# Targets to make # Targets to make
e2e: E2E_ARGS=cluster1 cluster2 CHART_PACKAGES := submariner-k8s-broker-$(CHARTS_VERSION).tgz submariner-operator-$(CHARTS_VERSION).tgz
local-helm-repo: $(CHART_PACKAGES)
mkdir -p $(HELM_REPO_LOCATION)
for archive in $^; do \
tar xzf $$archive -C $(HELM_REPO_LOCATION); \
done
e2e: local-helm-repo
$(SCRIPTS_DIR)/e2e.sh
%.tgz: %.tgz:
helm dep update $(subst -$(CHARTS_VERSION),,$(basename $(@F))) helm dep update $(subst -$(CHARTS_VERSION),,$(basename $(@F)))
helm package --version $(CHARTS_VERSION) $(subst -$(CHARTS_VERSION),,$(basename $(@F))) helm package --version $(CHARTS_VERSION) --app-version $(CHARTS_VERSION) $(subst -$(CHARTS_VERSION),,$(basename $(@F)))
helm-docs: helm-docs:
# Avoid polluting repo with helm-docs' README/LICENSE or other files in the release archive # Avoid polluting repo with helm-docs' README/LICENSE or other files in the release archive
@@ -45,7 +54,7 @@ helm-docs:
exit 1; \ exit 1; \
fi fi
release: submariner-k8s-broker-$(CHARTS_VERSION).tgz submariner-operator-$(CHARTS_VERSION).tgz release: $(CHART_PACKAGES)
git checkout gh-pages git checkout gh-pages
mv *.tgz $(CHARTS_DIR) mv *.tgz $(CHARTS_DIR)
if [ -f $(CHARTS_DIR)/index.yaml ]; then \ if [ -f $(CHARTS_DIR)/index.yaml ]; then \
+2 -2
View File
@@ -1,7 +1,7 @@
--- ---
charts: charts:
- submariner-operator - ./helm_repo/submariner-operator
- submariner-k8s-broker - ./helm_repo/submariner-k8s-broker
# Tests that maintainer name is valid GitHub account, which isn't what we want # Tests that maintainer name is valid GitHub account, which isn't what we want
# See: https://github.com/helm/chart-testing/issues/192 # See: https://github.com/helm/chart-testing/issues/192
validate-maintainers: false validate-maintainers: false
+1 -2
View File
@@ -1,8 +1,7 @@
--- ---
name: submariner-k8s-broker name: submariner-k8s-broker
version: 0.14.0-m1 version: 0.0.0
apiVersion: v2 apiVersion: v2
appVersion: 0.14.0-m1
description: Submariner Kubernetes Broker description: Submariner Kubernetes Broker
keywords: keywords:
home: https://submariner-io.github.io/ home: https://submariner-io.github.io/
+1 -2
View File
@@ -1,8 +1,7 @@
--- ---
name: submariner-operator name: submariner-operator
version: 0.14.0-m1 version: 0.0.0
apiVersion: v2 apiVersion: v2
appVersion: 0.14.0-m1
description: Submariner enables direct networking between Pods and Services in different Kubernetes clusters description: Submariner enables direct networking between Pods and Services in different Kubernetes clusters
keywords: keywords:
home: https://submariner-io.github.io/ home: https://submariner-io.github.io/
-2
View File
@@ -24,8 +24,6 @@ Submariner enables direct networking between Pods and Services in different Kube
| broker.namespace | string | `"xyz"` | | | broker.namespace | string | `"xyz"` | |
| broker.server | string | `"example.k8s.apiserver"` | | | broker.server | string | `"example.k8s.apiserver"` | |
| broker.token | string | `"test"` | | | broker.token | string | `"test"` | |
| gateway.image.repository | string | `"quay.io/submariner/submariner-gateway"` | |
| gateway.image.tag | string | `"0.14.0"` | |
| ipsec.debug | bool | `false` | | | ipsec.debug | bool | `false` | |
| ipsec.forceUDPEncaps | bool | `false` | | | ipsec.forceUDPEncaps | bool | `false` | |
| ipsec.ikePort | int | `500` | | | ipsec.ikePort | int | `500` | |
-4
View File
@@ -1,7 +1,3 @@
Submariner is now installed. Submariner is now installed.
{{- if .Values.gateway.nodeSelectorEnabled }}
If you haven't done so yet, please label a node as `submariner.io/gateway=true` to elect it for running Submariner.
{{- end }}
By default, Submariner runs with 1 replica. If you have more than one Gateway host, you can scale Submariner to N replicas, and the other Submariner pods will simply join the leader election pool. By default, Submariner runs with 1 replica. If you have more than one Gateway host, you can scale Submariner to N replicas, and the other Submariner pods will simply join the leader election pool.
@@ -23,7 +23,7 @@ spec:
namespace: {{ .Release.Namespace }} namespace: {{ .Release.Namespace }}
natEnabled: {{ .Values.submariner.natEnabled }} natEnabled: {{ .Values.submariner.natEnabled }}
repository: {{ .Values.submariner.images.repository }} repository: {{ .Values.submariner.images.repository }}
version: {{ .Values.submariner.images.tag }} version: {{ default .Chart.AppVersion .Values.submariner.images.tag }}
{{- with .Values.images }} {{- with .Values.images }}
{{- if . }} {{- if . }}
imageOverrides: imageOverrides:
+2 -6
View File
@@ -15,7 +15,7 @@ submariner:
coreDNSCustomConfig: {} coreDNSCustomConfig: {}
images: images:
repository: quay.io/submariner repository: quay.io/submariner
tag: "0.14.0-m1" tag: ""
broker: broker:
server: example.k8s.apiserver server: example.k8s.apiserver
token: test token: test
@@ -39,15 +39,11 @@ leadership:
operator: operator:
image: image:
repository: quay.io/submariner/submariner-operator repository: quay.io/submariner/submariner-operator
tag: "0.14.0-m1" tag: ""
pullPolicy: IfNotPresent pullPolicy: IfNotPresent
resources: {} resources: {}
tolerations: [] tolerations: []
affinity: {} affinity: {}
gateway:
image:
repository: quay.io/submariner/submariner-gateway
tag: "0.14.0-m1"
serviceAccounts: serviceAccounts:
operator: operator:
create: true create: true