fix: remove k8s 1.16 from acceptance testing (#848)

* remove 1.16 from the versions tested in .github/workflows/acceptance.yaml as kind no longer supports creating a k8s 1.16 cluster
* update vault-helm's minimum support k8s version to 1.20 in README and Chart.yaml
* refactor server-ingress's templating and unit tests applied to k8s versions < 1.20
This commit is contained in:
Thy Ton 2023-02-27 12:04:17 -08:00 committed by GitHub
parent e31e70ea0b
commit f4f05aaa74
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
8 changed files with 13 additions and 30 deletions

View file

@ -7,7 +7,7 @@ jobs:
strategy: strategy:
fail-fast: false fail-fast: false
matrix: matrix:
kind-k8s-version: [1.16.15, 1.20.15, 1.21.14, 1.22.15, 1.23.12, 1.24.6, 1.25.3] kind-k8s-version: [1.20.15, 1.21.14, 1.22.15, 1.23.12, 1.24.6, 1.25.3]
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- uses: actions/checkout@v3 - uses: actions/checkout@v3

View file

@ -1,5 +1,8 @@
## Unreleased ## Unreleased
Changes:
* Earliest Kubernetes version tested is now 1.20
Features: Features:
* server: New `extraPorts` option for adding ports to the Vault server statefulset [GH-841](https://github.com/hashicorp/vault-helm/pull/841) * server: New `extraPorts` option for adding ports to the Vault server statefulset [GH-841](https://github.com/hashicorp/vault-helm/pull/841)

View file

@ -5,7 +5,7 @@ apiVersion: v2
name: vault name: vault
version: 0.23.0 version: 0.23.0
appVersion: 1.12.1 appVersion: 1.12.1
kubeVersion: ">= 1.16.0-0" kubeVersion: ">= 1.20.0-0"
description: Official HashiCorp Vault Chart description: Official HashiCorp Vault Chart
home: https://www.vaultproject.io home: https://www.vaultproject.io
icon: https://github.com/hashicorp/vault/raw/f22d202cde2018f9455dec755118a9b84586e082/Vault_PrimaryLogo_Black.png icon: https://github.com/hashicorp/vault/raw/f22d202cde2018f9455dec755118a9b84586e082/Vault_PrimaryLogo_Black.png

View file

@ -21,7 +21,7 @@ this README. Please refer to the Kubernetes and Helm documentation.
The versions required are: The versions required are:
* **Helm 3.6+** * **Helm 3.6+**
* **Kubernetes 1.16+** - This is the earliest version of Kubernetes tested. * **Kubernetes 1.20+** - This is the earliest version of Kubernetes tested.
It is possible that this chart works with earlier versions but it is It is possible that this chart works with earlier versions but it is
untested. untested.

View file

@ -61,19 +61,12 @@ spec:
{{- end }} {{- end }}
{{- range (.paths | default (list "/")) }} {{- range (.paths | default (list "/")) }}
- path: {{ . }} - path: {{ . }}
{{ if semverCompare ">= 1.19.0-0" $kubeVersion }}
pathType: {{ $pathType }} pathType: {{ $pathType }}
{{ end }}
backend: backend:
{{ if semverCompare ">= 1.19.0-0" $kubeVersion }}
service: service:
name: {{ $serviceName }} name: {{ $serviceName }}
port: port:
number: {{ $servicePort }} number: {{ $servicePort }}
{{ else }}
serviceName: {{ $serviceName }}
servicePort: {{ $servicePort }}
{{ end }}
{{- end }} {{- end }}
{{- end }} {{- end }}
{{- end }} {{- end }}

View file

@ -36,7 +36,7 @@ load _helpers
local actual=$(helm template \ local actual=$(helm template \
--show-only templates/injector-disruptionbudget.yaml \ --show-only templates/injector-disruptionbudget.yaml \
--set 'injector.podDisruptionBudget.minAvailable=2' \ --set 'injector.podDisruptionBudget.minAvailable=2' \
--kube-version 1.19.5 \ --kube-version 1.20.15 \
. | tee /dev/stderr | . | tee /dev/stderr |
yq '.apiVersion == "policy/v1beta1"' | tee /dev/stderr) yq '.apiVersion == "policy/v1beta1"' | tee /dev/stderr)
[ "${actual}" = "true" ] [ "${actual}" = "true" ]

View file

@ -104,7 +104,7 @@ load _helpers
--show-only templates/server-disruptionbudget.yaml \ --show-only templates/server-disruptionbudget.yaml \
--set 'server.ha.enabled=true' \ --set 'server.ha.enabled=true' \
--set 'server.ha.replicas=1' \ --set 'server.ha.replicas=1' \
--kube-version 1.19.5 \ --kube-version 1.20.15 \
. | tee /dev/stderr | . | tee /dev/stderr |
yq '.apiVersion == "policy/v1beta1"' | tee /dev/stderr) yq '.apiVersion == "policy/v1beta1"' | tee /dev/stderr)
[ "${actual}" = "true" ] [ "${actual}" = "true" ]

View file

@ -197,7 +197,7 @@ load _helpers
[ "${actual}" = "release-name-vault" ] [ "${actual}" = "release-name-vault" ]
} }
@test "server/ingress: k8s 1.18.3 uses regular service when not ha - yaml" { @test "server/ingress: k8s 1.20.15 uses correct service format when not ha - yaml" {
cd `chart_dir` cd `chart_dir`
local actual=$(helm template \ local actual=$(helm template \
@ -206,9 +206,9 @@ load _helpers
--set 'server.dev.enabled=false' \ --set 'server.dev.enabled=false' \
--set 'server.ha.enabled=false' \ --set 'server.ha.enabled=false' \
--set 'server.service.enabled=true' \ --set 'server.service.enabled=true' \
--kube-version 1.18.3 \ --kube-version 1.20.15 \
. | tee /dev/stderr | . | tee /dev/stderr |
yq -r '.spec.rules[0].http.paths[0].backend.serviceName' | tee /dev/stderr) yq -r '.spec.rules[0].http.paths[0].backend.service.name' | tee /dev/stderr)
[ "${actual}" = "release-name-vault" ] [ "${actual}" = "release-name-vault" ]
} }
@ -227,32 +227,19 @@ load _helpers
[ "${actual}" = "release-name-vault" ] [ "${actual}" = "release-name-vault" ]
} }
@test "server/ingress: pathType is added to Kubernetes version == 1.19.0" { @test "server/ingress: pathType is added to Kubernetes version == 1.20.15" {
cd `chart_dir` cd `chart_dir`
local actual=$(helm template \ local actual=$(helm template \
--show-only templates/server-ingress.yaml \ --show-only templates/server-ingress.yaml \
--set 'server.ingress.enabled=true' \ --set 'server.ingress.enabled=true' \
--set server.ingress.pathType=ImplementationSpecific \ --set server.ingress.pathType=ImplementationSpecific \
--kube-version 1.19.0 \ --kube-version 1.20.15 \
. | tee /dev/stderr | . | tee /dev/stderr |
yq -r '.spec.rules[0].http.paths[0].pathType' | tee /dev/stderr) yq -r '.spec.rules[0].http.paths[0].pathType' | tee /dev/stderr)
[ "${actual}" = "ImplementationSpecific" ] [ "${actual}" = "ImplementationSpecific" ]
} }
@test "server/ingress: pathType is not added to Kubernetes versions < 1.19" {
cd `chart_dir`
local actual=$(helm template \
--show-only templates/server-ingress.yaml \
--set 'server.ingress.enabled=true' \
--set server.ingress.pathType=ImplementationSpecific \
--kube-version 1.18.3 \
. | tee /dev/stderr |
yq -r '.spec.rules[0].http.paths[0].pathType' | tee /dev/stderr)
[ "${actual}" = "null" ]
}
@test "server/ingress: pathType is added to Kubernetes versions > 1.19" { @test "server/ingress: pathType is added to Kubernetes versions > 1.19" {
cd `chart_dir` cd `chart_dir`