From 51222509b67eaa76a46e55e9e1865959de46774d Mon Sep 17 00:00:00 2001 From: Russ Allbery Date: Fri, 14 Jul 2023 08:31:29 -0700 Subject: [PATCH 1/6] Update versions for minikube testing Try to use the latest minikube and Kubernetes, and also bump the verisons of Vault and Argo CD. --- .github/workflows/ci.yaml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index bbae9b674b..c64b776347 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -87,8 +87,8 @@ jobs: if: steps.filter.outputs.minikube == 'true' uses: manusa/actions-setup-minikube@v2.7.2 with: - minikube version: 'v1.28.0' - kubernetes version: 'v1.25.2' + minikube version: 'v1.30.1' + kubernetes version: 'v1.26.3' - name: Test interaction with the cluster if: steps.filter.outputs.minikube == 'true' @@ -97,11 +97,11 @@ jobs: - name: Download installer dependencies if: steps.filter.outputs.minikube == 'true' run: | - curl -sSL -o /tmp/vault.zip https://releases.hashicorp.com/vault/1.12.1/vault_1.12.1_linux_amd64.zip + curl -sSL -o /tmp/vault.zip https://releases.hashicorp.com/vault/1.14.0/vault_1.14.0_linux_amd64.zip unzip /tmp/vault.zip sudo mv vault /usr/local/bin/vault sudo chmod +x /usr/local/bin/vault - sudo curl -sSL -o /usr/local/bin/argocd https://github.com/argoproj/argo-cd/releases/download/v2.7.6/argocd-linux-amd64 + sudo curl -sSL -o /usr/local/bin/argocd https://github.com/argoproj/argo-cd/releases/download/v2.7.7/argocd-linux-amd64 sudo chmod +x /usr/local/bin/argocd sudo apt-get install socat sudo pip install -r installer/requirements.txt From e9984081942a52c7e3ab2215e5c5e97ed626abc1 Mon Sep 17 00:00:00 2001 From: Russ Allbery Date: Fri, 14 Jul 2023 08:52:49 -0700 Subject: [PATCH 2/6] Switch minikube GitHub Actions The GitHub Action we were using to set up minikube seems to not be supported and doesn't work with the current version of Kubernetes. Switch to the GitHub Action recommended by the minikube docs. --- .github/workflows/ci.yaml | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index c64b776347..304be46aed 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -85,10 +85,9 @@ jobs: - name: Setup Minikube if: steps.filter.outputs.minikube == 'true' - uses: manusa/actions-setup-minikube@v2.7.2 + uses: medyagh/setup-minikube@v0.0.13 with: - minikube version: 'v1.30.1' - kubernetes version: 'v1.26.3' + kubernetes-version: "v1.27.3" - name: Test interaction with the cluster if: steps.filter.outputs.minikube == 'true' From 15baf33367897177df08bfba1b93e00d18efa75c Mon Sep 17 00:00:00 2001 From: Russ Allbery Date: Fri, 14 Jul 2023 09:25:43 -0700 Subject: [PATCH 3/6] Disable more services for minikube testing Disable the old Nublado v2 services. Disable noteburst since Nublado isn't installed, and therefore noteburst cannot set up workers anyway. --- environments/values-minikube.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/environments/values-minikube.yaml b/environments/values-minikube.yaml index 5a513cad05..fcb75dc490 100644 --- a/environments/values-minikube.yaml +++ b/environments/values-minikube.yaml @@ -7,7 +7,7 @@ alert-stream-broker: argo-workflows: enabled: false cachemachine: - enabled: true + enabled: false cert-manager: enabled: true datalinker: @@ -25,11 +25,11 @@ kubernetes-replicator: mobu: enabled: true moneypenny: - enabled: true + enabled: false narrativelog: enabled: false noteburst: - enabled: true + enabled: false nublado: enabled: false nublado2: From 1e91554f9b7596a8cdd463592555b59c4f79c697 Mon Sep 17 00:00:00 2001 From: Russ Allbery Date: Fri, 14 Jul 2023 10:36:20 -0700 Subject: [PATCH 4/6] Increase cpu and memory to max See if this solves the problem where Argo CD dies at the end of testing and therefore tests fail. --- .github/workflows/ci.yaml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 304be46aed..e6ec04ac79 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -88,6 +88,8 @@ jobs: uses: medyagh/setup-minikube@v0.0.13 with: kubernetes-version: "v1.27.3" + cpus: max + memory: max - name: Test interaction with the cluster if: steps.filter.outputs.minikube == 'true' From 91571a862d9278d0d5ef90de23d18088c5c25fae Mon Sep 17 00:00:00 2001 From: Russ Allbery Date: Fri, 14 Jul 2023 10:49:02 -0700 Subject: [PATCH 5/6] Be less aggressive about minikube memory Allocate 5.5GB instead of all available memory to leave some room for the system. --- .github/workflows/ci.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index e6ec04ac79..88c3464403 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -89,7 +89,7 @@ jobs: with: kubernetes-version: "v1.27.3" cpus: max - memory: max + memory: 5500m # Linux virtual machines have 7GB of RAM - name: Test interaction with the cluster if: steps.filter.outputs.minikube == 'true' From 54cc3afe13da2a1fc4b0cc2dee1979a4ad3fcc72 Mon Sep 17 00:00:00 2001 From: Russ Allbery Date: Fri, 14 Jul 2023 10:50:53 -0700 Subject: [PATCH 6/6] Add some more timeouts for minikube testing Currently the full test takes about 10 minutes. Cap it at 30 minutes with shorter caps on the individual steps. --- .github/workflows/ci.yaml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 88c3464403..4c79cf782b 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -61,6 +61,7 @@ jobs: minikube: name: Test deploy runs-on: ubuntu-latest + timeout-minutes: 30 needs: [helm] steps: @@ -108,7 +109,7 @@ jobs: sudo pip install -r installer/requirements.txt - name: Run installer - timeout-minutes: 30 + timeout-minutes: 15 if: steps.filter.outputs.minikube == 'true' run: | cd installer @@ -121,6 +122,7 @@ jobs: kubectl get ingress -A - name: Wait for all applications to be healthy + timeout-minutes: 15 if: steps.filter.outputs.minikube == 'true' run: | argocd app wait -l "argocd.argoproj.io/instance=science-platform" \