Skip to content

Merge branch 'kedacore:main' into main #2

Merge branch 'kedacore:main' into main

Merge branch 'kedacore:main' into main #2

name: Helm Chart CI (HTTP add-on)
on:
# Trigger the workflow on push or pull request,
# but only for the main branch
push:
branches:
- main
paths:
- ".github/workflows/ci-http-add-on.yml"
- "http-add-on/**"
pull_request:
branches:
- main
paths:
- ".github/workflows/ci-http-add-on.yml"
- "http-add-on/**"
concurrency:
group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }}
cancel-in-progress: true
jobs:
lint-helm-3-x:
name: Lint Helm Chart
runs-on: ubuntu-latest
steps:
- name: Check out code
uses: actions/checkout@v2
- name: Helm install
uses: Azure/setup-helm@v3
- name: Lint 'http-add-on' Helm chart
run: helm lint http-add-on
deploy-helm-3-x:
name: Deploy to Kubernetes ${{ matrix.kubernetesVersion }}
needs: lint-helm-3-x
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
kubernetesVersion: [v1.29, v1.28, v1.27, v1.26]
include:
- kubernetesVersion: v1.29
kindImage: kindest/node:v1.29.0@sha256:eaa1450915475849a73a9227b8f201df25e55e268e5d619312131292e324d570
- kubernetesVersion: v1.28
kindImage: kindest/node:v1.28.0@sha256:b7a4cad12c197af3ba43202d3efe03246b3f0793f162afb40a33c923952d5b31
- kubernetesVersion: v1.27
kindImage: kindest/node:v1.27.3@sha256:3966ac761ae0136263ffdb6cfd4db23ef8a83cba8a463690e98317add2c9ba72
- kubernetesVersion: v1.26
kindImage: kindest/node:v1.26.6@sha256:6e2d8b28a5b601defe327b98bd1c2d1930b49e5d8c512e1895099e4504007adb
steps:
- name: Check out code
uses: actions/checkout@v2
- name: Helm install
uses: Azure/setup-helm@v3
- name: Create k8s ${{ matrix.kubernetesVersion }} Kind Cluster
uses: helm/kind-action@main
with:
node_image: ${{ matrix.kindImage }}
- name: Show Kubernetes version
run: |
kubectl version
- name: Show Kubernetes nodes
run: |
kubectl get nodes -o wide
- name: Show Helm version
run: |
helm version
- name: Create KEDA namespace
run: kubectl create ns keda
- name: Generate values
run: |
cat <<EOF > keda-values.yaml
image:
keda:
tag: main
metricsApiServer:
tag: main
webhooks:
tag: main
- name: Install KEDA chart
run: helm install keda ./keda/ --namespace keda --values keda-values.yaml
- name: Generate values
run: |
cat <<EOF > test-values.yaml
additionalLabels:
random: value
images:
tag: canary
rbac:
aggregateToDefaultRoles: true
interceptor:
replicas:
min: 1
EOF
- name: Template Helm chart
run: helm template http-add-on ./http-add-on/ --namespace keda --values test-values.yaml
- name: Install Helm chart
run: helm install http-add-on ./http-add-on/ --namespace keda --values test-values.yaml --wait
- name: Show Kubernetes resources
run: kubectl get all --namespace keda
if: always()
- name: Get all HTTPScaledObjects
run: kubectl get httpscaledobjects
- name: Get all CRDs
run: kubectl get crds
- name: Get HTTPScaledObject CRD
run: kubectl get crds/httpscaledobjects.http.keda.sh
- name: Describe HTTPScaledObject CRD
run: kubectl describe crds/httpscaledobjects.http.keda.sh
- name: Validate Interceptor ScaledObject
run: |
for N in {1..3}
do
READY=$(kubectl get so/keda-add-ons-http-interceptor -n keda -o jsonpath='{.status.conditions[?(@.type=="Ready")].status}')
echo "ScaledObjet is ready: $READY"
if [[ "$READY" == "True" ]]; then
exit 0
fi
sleep 15s
done
exit 1