Add an action to find new versions of helm charts (#184)
Co-authored-by: Marco Franssen <[email protected]>
This commit is contained in:
co-authored by
Marco Franssen
parent
2c360a50fd
commit
17d62f1246
@@ -0,0 +1,17 @@
|
||||
[
|
||||
{
|
||||
"name": "kube-prometheus-stack",
|
||||
"repo": "https://prometheus-community.github.io/helm-charts",
|
||||
"version": "45.10.1"
|
||||
},
|
||||
{
|
||||
"name": "cert-manager",
|
||||
"repo": "https://charts.jetstack.io",
|
||||
"version": "v1.11.1"
|
||||
},
|
||||
{
|
||||
"name": "ingress-nginx",
|
||||
"repo": "https://kubernetes.github.io/ingress-nginx",
|
||||
"version": "4.6.0"
|
||||
}
|
||||
]
|
||||
@@ -0,0 +1,6 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
REPOS=$(jq -r '.[] | "export " + ("HELM_REPO_" + .name | ascii_upcase | gsub("-";"_")) + "=" + .repo' .github/tests/charts.json)
|
||||
VERSIONS=$(jq -r '.[] | "export " + ("VERSION_" + .name | ascii_upcase | gsub("-";"_")) + "=" + .version' .github/tests/charts.json)
|
||||
eval "$REPOS"
|
||||
eval "$VERSIONS"
|
||||
@@ -1,3 +1,3 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
helm install kube-prometheus-stack kube-prometheus-stack --version 45.7.1 --repo https://prometheus-community.github.io/helm-charts -n "$scenario" --wait
|
||||
helm install kube-prometheus-stack kube-prometheus-stack --version $VERSION_KUBE_PROMETHEUS_STACK --repo $HELM_REPO_KUBE_PROMETHEUS_STACK -n "$scenario" --wait
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
helm install ingress-nginx ingress-nginx --version 4.5.2 --repo https://kubernetes.github.io/ingress-nginx -n "$scenario" --set controller.extraArgs.enable-ssl-passthrough=
|
||||
helm install ingress-nginx ingress-nginx --version "$VERSION_INGRESS_NGINX" --repo "$HELM_REPO_INGRESS_NGINX" -n "$scenario" --set controller.extraArgs.enable-ssl-passthrough=
|
||||
kubectl wait --namespace ingress-nginx --for=condition=ready pod --selector=app.kubernetes.io/component=controller -n "$scenario"
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
helm install cert-manager cert-manager --namespace cert-manager --create-namespace --version v1.11.0 --set installCRDs=true --repo https://charts.jetstack.io --wait
|
||||
helm install cert-manager cert-manager --namespace cert-manager --create-namespace --version "$VERSION_CERT_MANAGER" --set installCRDs=true --repo "$HELM_REPO_CERT_MANAGER" --wait
|
||||
SCRIPT_DIR=$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )
|
||||
kubectl apply -f $SCRIPT_DIR/cert-manager-ca.yaml -n "$scenario"
|
||||
|
||||
@@ -0,0 +1,49 @@
|
||||
name: Check versions
|
||||
|
||||
on:
|
||||
schedule:
|
||||
- cron: '0 8 * * 1'
|
||||
|
||||
# Allows you to run this workflow manually from the Actions tab
|
||||
workflow_dispatch:
|
||||
|
||||
env:
|
||||
HELM_VERSION: v3.11.1
|
||||
|
||||
jobs:
|
||||
check-helm-chart-versions:
|
||||
runs-on: ubuntu-22.04
|
||||
|
||||
permissions:
|
||||
contents: write
|
||||
pull-requests: write
|
||||
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/[email protected]
|
||||
|
||||
- name: Set up Helm
|
||||
uses: azure/[email protected]
|
||||
with:
|
||||
version: ${{ env.HELM_VERSION }}
|
||||
|
||||
- name: Update test chart versions
|
||||
run: |
|
||||
./.github/workflows/scripts/update-versions.sh
|
||||
git diff
|
||||
|
||||
- name: Create Pull Request
|
||||
id: cpr
|
||||
uses: peter-evans/[email protected]
|
||||
with:
|
||||
title: Bump test chart dependencies
|
||||
branch: bump-test-chart-deps
|
||||
commit-message: Bump test chart dependencies
|
||||
body: Bump the Helm charts used in test scenarios to latest available versions.
|
||||
signoff: true
|
||||
add-paths: |
|
||||
.github/tests
|
||||
|
||||
- name: Check outputs
|
||||
if: ${{ steps.cpr.outputs.pull-request-number }}
|
||||
run: 'echo "::notice title=PR #${{ steps.cpr.outputs.pull-request-number }}::${{ steps.cpr.outputs.pull-request-url }}"'
|
||||
@@ -199,6 +199,8 @@ jobs:
|
||||
export scenario="$(basename "${TEST_DIR}")"
|
||||
export EXTRA_HELM_ARGS=""
|
||||
|
||||
source .github/tests/charts.sh
|
||||
|
||||
[ "${scenario}" != "default" ] && kubectl create namespace "${scenario}"
|
||||
[ -x "${TEST_DIR}/pre-install.sh" ] && "${TEST_DIR}/pre-install.sh"
|
||||
[ -f "${TEST_DIR}/.env" ] && source "${TEST_DIR}/.env"
|
||||
|
||||
Executable
+24
@@ -0,0 +1,24 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
SCRIPT=$(readlink -f "$0")
|
||||
SCRIPTPATH=$(dirname "$SCRIPT")
|
||||
|
||||
CHARTJSON=$SCRIPTPATH/../../tests/charts.json
|
||||
|
||||
jq -r ".[].name" "${CHARTJSON}" | while read -r CHART; do
|
||||
ENTRYQUERY='.[] | select(.name == "'$CHART'")'
|
||||
REPO_URL="$(jq -r "$ENTRYQUERY | .repo" "${CHARTJSON}")"
|
||||
VERSION="$(jq -r "$ENTRYQUERY | .version" "${CHARTJSON}")"
|
||||
echo Processing: ${CHART}
|
||||
echo " repo: $REPO_URL"
|
||||
echo " current version: $VERSION"
|
||||
helm repo add "$CHART" "$REPO_URL" > /dev/null
|
||||
helm repo update "$CHART" > /dev/null
|
||||
LATEST_VERSION=$(helm search repo --regexp "$CHART/$CHART\v" -o json | jq -r '.[0].version')
|
||||
echo " latest version: $LATEST_VERSION"
|
||||
if [ "x$VERSION" != "x$LATEST_VERSION" ]; then
|
||||
echo " New version found!"
|
||||
jq "( $ENTRYQUERY ).version |= "'"${LATEST_VERSION}"' "${CHARTJSON}" > /tmp/$$
|
||||
mv /tmp/$$ "${CHARTJSON}"
|
||||
fi
|
||||
done
|
||||
Reference in New Issue
Block a user