feat: add optional in-cluster dashboard deployment #230
Workflow file for this run
This file contains hidden or 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: ci.yaml | |
| on: | |
| push: | |
| branches: | |
| - main | |
| pull_request: | |
| branches: | |
| - main | |
| jobs: | |
| helm-lint: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout code | |
| uses: actions/checkout@0c366fd6a839edf440554fa01a7085ccba70ac98 # v6.0.1 | |
| - name: Set up Helm | |
| uses: azure/setup-helm@1a275c3b69536ee54be43f2070a358922e12c8d4 # pin v4.3 | |
| with: | |
| version: v3.20.0 | |
| - name: Lint Helm chart | |
| run: helm lint chart | |
| - name: Create Kind cluster | |
| uses: helm/kind-action@ef37e7f390d99f746eb8b610417061a60e82a6cc # pin v1 | |
| - name: Install Argo CD # required for CRDs for now until we handle | |
| run: | | |
| helm repo add argo https://argoproj.github.io/argo-helm | |
| helm repo update | |
| helm install argocd argo/argo-cd --namespace argocd --create-namespace --wait --timeout 5m | |
| - name: Install Helm chart | |
| run: | | |
| # Initial apply to install CRDs. It's expected to fail, since we install the ControllerConfiguration CRD and a ControllerConfiguration CR in the same apply. | |
| kubectl create namespace promoter-system | |
| helm template promoter chart/ --namespace promoter-system | kubectl apply -f - || true | |
| helm template promoter chart/ --namespace promoter-system | kubectl apply -f - | |
| - name: Verify installation | |
| run: | | |
| kubectl get pods -n promoter-system | |
| kubectl wait --for=condition=Ready pods --all -n promoter-system --timeout=120s | |
| kubectl get all -n promoter-system | |
| echo "=== All pod logs ===" | |
| for pod in $(kubectl get pods -n promoter-system -o jsonpath='{.items[*].metadata.name}'); do | |
| echo "--- Logs for $pod ---" | |
| kubectl logs "$pod" -n promoter-system --all-containers=true || true | |
| done | |
| - name: Diagnose failed pods | |
| if: failure() | |
| run: | | |
| echo "=== Pods ===" | |
| kubectl get pods -n promoter-system -o wide || true | |
| echo "=== Namespace events ===" | |
| kubectl get events -n promoter-system --sort-by='.lastTimestamp' || true | |
| echo "=== Pod descriptions ===" | |
| for pod in $(kubectl get pods -n promoter-system -o jsonpath='{.items[*].metadata.name}'); do | |
| echo "--- Describe $pod ---" | |
| kubectl describe pod "$pod" -n promoter-system || true | |
| echo "--- Logs for $pod ---" | |
| kubectl logs "$pod" -n promoter-system --all-containers=true --previous=true 2>/dev/null || true | |
| kubectl logs "$pod" -n promoter-system --all-containers=true || true | |
| done |