Update Helm release kube-prometheus-stack to v68.4.5 #654
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: dry-run in kind | |
env: | |
kind_version: "v0.15.0" | |
kind_kubectl_version: "v1.25.0" | |
argocd_params: "--grpc-web --insecure --server argocd.127.0.0.1.nip.io" | |
argocd_version: "2.4.11" | |
argocd_projects_dir: "argocd/projects" | |
go_version: '>=1.18.0' | |
ACK_GINKGO_DEPRECATIONS: "1.16.5" | |
KEPTN_VERSION: "0.13.6" | |
on: | |
workflow_dispatch: | |
workflow_run: | |
workflows: | |
- "trivy check" | |
- "sh-checker" | |
branches: | |
- main | |
pull_request: | |
branches: | |
- main | |
types: | |
- completed | |
pull_request: | |
branches: | |
- main | |
# paths: | |
# - .github/workflows/dry-run.yml | |
# - argocd/** | |
# - kind/** | |
# - tests/e2e/** | |
# - Makefile | |
# push: | |
# branches-ignore: | |
# - main | |
# paths: | |
# - .github/workflows/dry-run.yml | |
# - argocd/** | |
# - kind/** | |
# - tests/e2e/** | |
# - Makefile | |
jobs: | |
dry-run: | |
runs-on: ubuntu-latest | |
# if: ${{ github.event.workflow_run.conclusion == 'success' }} | |
permissions: | |
checks: write | |
pull-requests: write | |
steps: | |
- name: "prepare env: clone repo" | |
uses: actions/checkout@v4 | |
# - name: "prepare env: show vars" | |
# run: env | |
# - name: "debug: end workflow" | |
# run: "false" | |
- name: "prepare env: install make" | |
run: | | |
sudo apt update | |
sudo apt install make -y | |
- name: "prepare env: install golang" | |
uses: actions/setup-go@v5 | |
with: | |
go-version: ${{ env.go_version }} | |
- name: "prepare env: init kind" | |
uses: helm/kind-action@main | |
with: | |
version: "${{ env.kind_version }}" | |
kubectl_version: "${{ env.kind_kubectl_version }}" | |
install_only: true | |
- name: "cluster create" | |
run: make kind-create | |
- name: "debug info: golang version" | |
run: go version | |
- name: "debug info: kubectl version" | |
run: kubectl version | |
- name: "debug info: k8s nodes and cluster-info" | |
run: kubectl get nodes -o wide; kubectl cluster-info | |
- name: "prepare cluster: fix prometheus-operator's CRDs" | |
run: make kind-install-crds | |
- name: "prepare cluster: install cilium" | |
run: make cilium-install-ci | |
- name: "prepare cluster: show all pods" | |
run: sleep 5 && kubectl get pods -A | |
- name: "prepare cluster: install ArgoCD" | |
run: make argocd-deploy | |
- name: "prepare cluster: wait for argo-cd server ready" | |
run: kubectl wait -n argocd --timeout=2m --for=condition=available deployment argocd-single-server | |
- name: "prepare cluster: install nginx-ingress (and gateway-api CRDs)" | |
run: make nginx-ingress-deploy | |
- name: "prepare cluster: wait for argo-cd nginx init" | |
run: sleep 15 | |
# - name: "prepare cluster: install cert-manager" | |
# run: make cert-manager-deploy | |
- name: "argo-cd: wait to ingress ready" | |
run: kubectl wait -n ingress-nginx --timeout=2m --for=condition=available deployment nginx-ingress-ingress-nginx-controller | |
- name: "debug info: show all deployments" | |
if: always() | |
run: kubectl get deployments -A | |
- name: "debug info: show all pods" | |
if: always() | |
run: kubectl get pods -A | |
- name: "debug info: show all services" | |
if: always() | |
run: kubectl get svc -A | |
- name: "argo-cd: cli init" | |
uses: clowdhaus/argo-cd-action/@main | |
with: | |
version: ${{ env.argocd_version }} | |
command: version | |
options: --client | |
- name: "argo-cd: create projects" | |
run: kubectl apply -f ${{ env.argocd_projects_dir }} | |
# - name: "argo-cd: install changed app's defs" | |
# run: ./scripts/detect_updated_argocd_apps.sh | |
- name: "argo-cd: install prometheus-stack-deploy" | |
run: make prometheus-stack-deploy | |
- name: "fixtures: decrease cpu requests for some workload" | |
run: | | |
kubectl -n kube-system scale deployment coredns --replicas=1 | |
kubectl -n kube-system patch deployment coredns --patch '{"spec": {"template": {"spec": {"containers": [{"name": "coredns", "resources": {"requests": {"cpu": "25m"}}}]}}}}' | |
argocd ${{ env.argocd_params }} app set nginx-ingress -p controller.resources.requests.cpu=25m | |
sleep 5 | |
# kubectl -n ingress-nginx delete pods -l app.kubernetes.io/component=controller | |
kubectl wait -n ingress-nginx --timeout=2m --for=condition=available deployment nginx-ingress-ingress-nginx-controller | |
- name: "argo-cd: keptn-prepare-images and install projects" | |
run: | | |
make keptn-prepare-images | |
kubectl -n argocd apply -f argocd/projects/system-keptn.yaml | |
- name: "argo-cd: install argo-rollouts (and sleep)" | |
run: kubectl -n argocd apply -f argocd/argo-rollouts.yaml && sleep 10 | |
- name: "argo-cd: install keptn-nats (and sleep)" | |
run: kubectl -n argocd apply -f argocd/keptn-nats.yaml && sleep 10 | |
- name: "argo-cd: install keptn-mongodb (and sleep)" | |
run: kubectl -n argocd apply -f argocd/keptn-mongodb.yaml && sleep 10 | |
- name: "keptn: wait for keptn nats ready" | |
id: keptnWaitToReady1 | |
timeout-minutes: 10 | |
run: | | |
kubectl -n keptn wait --timeout=10m pod --for=condition=ready -l app=keptn-nats-cluster | |
- name: "keptn: debug info (nats & mongodb)" | |
if: failure() && steps.keptnWaitToReady1.outcome == 'failure' | |
run: | | |
kubectl -n keptn get deployments,sts --show-kind=true || true | |
kubectl -n keptn get pods -o wide --show-kind=true || true | |
kubectl -n keptn get sc,pv,pvc --show-kind=true || true | |
kubectl -n keptn get svc --show-kind=true || true | |
kubectl -n keptn get smon --show-kind=true || true | |
# kubectl -n keptn describe sts -l app=keptn-nats-cluster || true | |
# kubectl -n keptn describe deployments -l app.kubernetes.io/component=mongodb || true | |
# kubectl -n keptn describe pod -l app.kubernetes.io/component=mongodb || true | |
- name: "argo-cd: install keptn control plane (and sleep)" | |
run: kubectl -n argocd apply -f argocd/keptn.yaml && sleep 10 | |
- name: "keptn: wait for deploy keptn services" | |
id: keptnWaitToReady2 | |
timeout-minutes: 15 | |
run: | | |
kubectl -n keptn wait --timeout=10m deployments --for=condition=available -l app.kubernetes.io/component=mongodb | |
kubectl -n keptn wait --timeout=15m deployments --for=condition=available -l argocd.argoproj.io/instance=keptn | |
- name: "keptn: debug info" | |
if: failure() && steps.keptnWaitToReady2.outcome == 'failure' | |
run: | | |
kubectl -n keptn get deployments,sts --show-kind=true || true | |
kubectl -n keptn get pods --show-kind=true -o wide || true | |
kubectl -n keptn get sc,pv,pvc --show-kind=true || true | |
kubectl -n keptn get svc --show-kind=true || true | |
kubectl -n keptn get smon --show-kind=true || true | |
echo "debug shipyard: " | |
kubectl -n keptn describe deployments/shipyard-controller || true | |
echo "debug statistic service:" | |
kubectl -n keptn describe deployments/statistics-service || true | |
kubectl -n keptn describe rs -l app.kubernetes.io/name=statistics-service || true | |
kubectl -n keptn describe pod -l app.kubernetes.io/name=statistics-service || true | |
echo "debug configuration service:" | |
kubectl -n keptn describe persistentvolumeclaim/configuration-volume || true | |
- name: "argo-cd: show all apps" | |
if: always() | |
run: argocd app list ${{ env.argocd_params }} | |
- name: "keptn: download cli" | |
run: curl --no-progress-meter -sL https://get.keptn.sh | bash | |
- name: "keptn: set login (and check keptn api)" | |
run: make keptn-set-login | |
- name: "keptn: wait to roll-out bridge" | |
id: keptnWaitToReady3 | |
run: kubectl -n keptn rollout status --watch --timeout=5m deployments.apps bridge | |
- name: "keptn: wait to roll-out bridge - debug info" | |
if: failure() && steps.keptnWaitToReady3.outcome == 'failure' | |
run: | | |
kubectl -n keptn get deployment bridge || true | |
kubectl -n keptn get deployment -l app.kubernetes.io/name=bridge || true | |
kubectl -n keptn describe pod -l app.kubernetes.io/name=bridge || true | |
- name: "keptn: prepare helm chart for hello" | |
run: make keptn-helloserver-prepare-helm-charts | |
- name: "keptn: install podtato-head project & app" | |
run: make keptn-create-project-podtato-head | |
- name: "keptn: show projects" | |
run: keptn get projects | |
- name: "keptn: show services for podtato-head project" | |
run: keptn get service --project=podtato-head | |
- name: "run test-network test: create assets" | |
run: make test-network-apply-assets | |
- name: "run test-network test: wait to assets" | |
id: runNetTestWait | |
run: | | |
kubectl wait -n test-network --timeout=3m --for=condition=available deployment client | |
kubectl wait -n test-network --timeout=3m --for=condition=available deployment podinfo | |
- name: "run test-network test - (double) check" | |
run: | | |
rs=$(make test-network-check-status) | |
echo "$rs" | |
echo "$rs" |grep "greetings from podinfo" | |
- name: "run test-network test: debug" | |
if: failure() && steps.runNetTestWait.outcome == 'failure' | |
run: | | |
kubectl -n test-network get po,svc,cnp --show-kind=true || true | |
kubectl -n test-network describe deployments/client || true | |
kubectl -n test-network describe rs -l app=client || true | |
- name: "e2e tests: install dependencies" | |
run: | | |
cd tests/e2e | |
go mod vendor | |
go env -w GO111MODULE=auto | |
- name: "e2e tests: list" | |
run: go list ./... | |
- name: "e2e tests: run" | |
id: runE2eTests | |
run: | | |
cd tests/e2e | |
go test ./... -report-dir=./junit -v | |
- name: Publish Test Results | |
uses: EnricoMi/publish-unit-test-result-action/composite@v1 | |
if: always() | |
with: | |
comment_mode: off | |
files: 'tests/e2e/**/junit_*.xml' | |
- name: "e2e tests: debug info" | |
if: failure() && steps.runE2eTests.outcome == 'failure' | |
run: | | |
kubectl get pods -A -o wide --show-kind=true || true | |
kubectl get svc -A --show-kind=true || true | |
kubectl get secrets -A --show-kind=true || true | |
kubectl get cnp -A --show-kind=true || true | |
kubectl get ccnp -A --show-kind=true || true | |
kubectl get issuers -A --show-kind=true || true | |
kubectl get certificates -A --show-kind=true || true | |
kubectl get smon -A --show-kind=true || true | |
- name: "keptn: show status of podtato-head" | |
if: always() | |
run: | | |
kubectl -n podtato-head-dev get deployment || true | |
kubectl -n podtato-head-prod get deployment || true | |
kubectl -n podtato-head-dev get pods || true | |
kubectl -n podtato-head-prod get pods || true | |
kubectl -n podtato-head-dev get smon || true | |
kubectl -n podtato-head-prod get smon || true | |
- name: "debug: kind node details" | |
if: always() | |
run: kubectl describe node |