Add a test to ensure upgrades work (#6)
* Add a test to ensure upgrades work Signed-off-by: Kevin Fox <[email protected]> * Update examples/production/run-tests.sh Co-authored-by: Faisal Memon <[email protected]> --------- Signed-off-by: Kevin Fox <[email protected]> Co-authored-by: Faisal Memon <[email protected]>
This commit is contained in:
@@ -239,3 +239,44 @@ jobs:
|
|||||||
|
|
||||||
- name: Install and test example
|
- name: Install and test example
|
||||||
run: ${{ matrix.example }}/run-tests.sh
|
run: ${{ matrix.example }}/run-tests.sh
|
||||||
|
|
||||||
|
upgrade-test:
|
||||||
|
runs-on: ubuntu-22.04
|
||||||
|
|
||||||
|
needs:
|
||||||
|
- lint-chart
|
||||||
|
- build-matrix
|
||||||
|
|
||||||
|
strategy:
|
||||||
|
fail-fast: false
|
||||||
|
matrix:
|
||||||
|
k8s:
|
||||||
|
- v1.27.2
|
||||||
|
- v1.26.4
|
||||||
|
- v1.25.9
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- name: Checkout
|
||||||
|
uses: actions/[email protected]
|
||||||
|
|
||||||
|
- name: Set up Helm
|
||||||
|
uses: azure/[email protected]
|
||||||
|
with:
|
||||||
|
version: ${{ env.HELM_VERSION }}
|
||||||
|
|
||||||
|
- name: Set up Python
|
||||||
|
uses: actions/setup-python@v4
|
||||||
|
with:
|
||||||
|
python-version: ${{ env.PYTHON_VERSION }}
|
||||||
|
|
||||||
|
- name: Create kind cluster
|
||||||
|
uses: helm/[email protected]
|
||||||
|
# Only build a kind cluster if there are chart changes to test.
|
||||||
|
with:
|
||||||
|
version: ${{ env.KIND_VERSION }}
|
||||||
|
node_image: kindest/node:v1.26.4
|
||||||
|
config: .github/kind/conf/kind-config.yaml
|
||||||
|
verbosity: 1
|
||||||
|
|
||||||
|
- name: Install and test example
|
||||||
|
run: examples/production/run-tests.sh -u
|
||||||
|
|||||||
@@ -2,6 +2,9 @@
|
|||||||
|
|
||||||
set -xe
|
set -xe
|
||||||
|
|
||||||
|
UPGRADE_VERSION=v0.13.0
|
||||||
|
UPGRADE_REPO=https://spiffe.github.io/helm-charts-hardened
|
||||||
|
|
||||||
SCRIPT="$(readlink -f "$0")"
|
SCRIPT="$(readlink -f "$0")"
|
||||||
SCRIPTPATH="$(dirname "${SCRIPT}")"
|
SCRIPTPATH="$(dirname "${SCRIPT}")"
|
||||||
TESTDIR="${SCRIPTPATH}/../../.github/tests"
|
TESTDIR="${SCRIPTPATH}/../../.github/tests"
|
||||||
@@ -15,6 +18,17 @@ source "${TESTDIR}/common.sh"
|
|||||||
helm_install=(helm upgrade --install --create-namespace)
|
helm_install=(helm upgrade --install --create-namespace)
|
||||||
ns=spire-server
|
ns=spire-server
|
||||||
|
|
||||||
|
UPGRADE_ARGS=""
|
||||||
|
|
||||||
|
for i in "$@"; do
|
||||||
|
case $i in
|
||||||
|
-u)
|
||||||
|
UPGRADE_ARGS="--repo $UPGRADE_REPO --version $UPGRADE_VERSION"
|
||||||
|
shift # past argument=value
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
|
||||||
teardown() {
|
teardown() {
|
||||||
helm uninstall --namespace "${ns}" spire 2>/dev/null || true
|
helm uninstall --namespace "${ns}" spire 2>/dev/null || true
|
||||||
kubectl delete ns "${ns}" 2>/dev/null || true
|
kubectl delete ns "${ns}" 2>/dev/null || true
|
||||||
@@ -70,7 +84,10 @@ spire-server:
|
|||||||
- "spire-server-federation.production.other"
|
- "spire-server-federation.production.other"
|
||||||
EOF
|
EOF
|
||||||
|
|
||||||
"${helm_install[@]}" spire charts/spire \
|
install_and_test() {
|
||||||
|
# Can't pass an array to a function. We completely control the string so its safe.
|
||||||
|
# shellcheck disable=SC2086
|
||||||
|
"${helm_install[@]}" spire "$1" \
|
||||||
--namespace "${ns}" \
|
--namespace "${ns}" \
|
||||||
--values "${SCRIPTPATH}/values.yaml" \
|
--values "${SCRIPTPATH}/values.yaml" \
|
||||||
--values "${SCRIPTPATH}/values-export-spiffe-oidc-discovery-provider-ingress-nginx.yaml" \
|
--values "${SCRIPTPATH}/values-export-spiffe-oidc-discovery-provider-ingress-nginx.yaml" \
|
||||||
@@ -80,9 +97,18 @@ EOF
|
|||||||
--set spiffe-oidc-discovery-provider.tests.tls.customCA=tls-cert,spire-server.tests.tls.customCA=tls-cert \
|
--set spiffe-oidc-discovery-provider.tests.tls.customCA=tls-cert,spire-server.tests.tls.customCA=tls-cert \
|
||||||
--set spire-agent.server.address=spire-server.production.other,spire-agent.server.port=443 \
|
--set spire-agent.server.address=spire-server.production.other,spire-agent.server.port=443 \
|
||||||
--values "${SCRIPTPATH}/example-your-values.yaml" \
|
--values "${SCRIPTPATH}/example-your-values.yaml" \
|
||||||
|
$2 \
|
||||||
--wait
|
--wait
|
||||||
|
|
||||||
helm test --namespace "${ns}" spire
|
helm test --namespace "${ns}" spire
|
||||||
|
}
|
||||||
|
|
||||||
|
if [[ -n "$UPGRADE_ARGS" ]]; then
|
||||||
|
install_and_test spire "$UPGRADE_ARGS"
|
||||||
|
# Any other upgrade steps go here. (Upgrade crds, delete statefulsets without cascade, etc.)
|
||||||
|
fi
|
||||||
|
|
||||||
|
install_and_test charts/spire ""
|
||||||
|
|
||||||
if helm get manifest -n spire-server spire | grep -i example; then
|
if helm get manifest -n spire-server spire | grep -i example; then
|
||||||
echo Global settings did not work. Please fix.
|
echo Global settings did not work. Please fix.
|
||||||
|
|||||||
Reference in New Issue
Block a user