diff --git a/.github/workflows/run.yaml b/.github/workflows/run.yaml new file mode 100644 index 0000000..1be171a --- /dev/null +++ b/.github/workflows/run.yaml @@ -0,0 +1,91 @@ +name: E2E + +on: + workflow_dispatch: {} + push: + branches: + - test-* + +env: + GO_VERSION: '1.22' + GO_REQUIRED_MIN_VERSION: '' + USE_EXISTING_CLUSTER: false # set to true to use an existing kind cluster for debugging with act + +permissions: + contents: read + +jobs: + e2e: + runs-on: ubuntu-latest + steps: + - name: add permisson to docker.sock + run: sudo chown runner:docker /var/run/docker.sock + if: ${{ env.ACT }} # this step only runs locally when using the https://github.com/nektos/act to debug the e2e + - name: Checkout + uses: actions/checkout@v4 + - name: test secret + run: | + echo ${{ secrets.IMAGE_PULL_SECRET }} > secret1 + echo ${IMAGE_PULL_SECRET} >> secret2 + cat secret1 + cat secret2 + env: + IMAGE_PULL_SECRET: ${{ secrets.IMAGE_PULL_SECRET }} + - name: Setup Go + uses: actions/setup-go@v5 + with: + go-version: ${{ env.GO_VERSION }} + - name: Install kind + uses: helm/kind-action@v1.10.0 + with: + version: v0.22.0 + install_only: true + - name: Test kind works and there is no cluster started + run: | + [[ $(kind get clusters | wc -l) -eq 0 ]] + - name: Set KUBECONFIG dir + run: | + mkdir -p /home/runner/.kube + - name: Create Hub cluster + run: | + kind create cluster --name hub + env: + KUBECONFIG: /home/runner/.kube/hub-kubeconfig + - name: Create Spoke cluster + run: | + kind create cluster --name spoke + env: + KUBECONFIG: /home/runner/.kube/spoke-kubeconfig + - name: Test Hub and Spoke clusters + run: | + kubectl cluster-info --kubeconfig /home/runner/.kube/hub-kubeconfig + kubectl get pods -A --kubeconfig /home/runner/.kube/hub-kubeconfig + kubectl cluster-info --kubeconfig /home/runner/.kube/spoke-kubeconfig + kubectl get pods -A --kubeconfig /home/runner/.kube/spoke-kubeconfig + - name: Create internal kubeconfigs + run: | + kind get kubeconfig --internal --name hub > /home/runner/.kube/hub-internal-kubeconfig + kind get kubeconfig --internal --name spoke > /home/runner/.kube/spoke-internal-kubeconfig + - name: Install MCE+Policy + run: | + echo ${IMAGE_PULL_SECRET} > /home/runner/pullsecret.json + make e2e-install + env: + KUBECONFIG: /home/runner/.kube/hub-kubeconfig + PULLSECRETFILE: /home/runner/pullsecret.json + IMAGE_PULL_SECRET: ${{ secrets.IMAGE_PULL_SECRET }} + TEST: ${{ secrets.PULL_SECRET }} + - name: Import hosted cluster + run: | + make e2e-import-cluster + env: + KUBECONFIG: /home/runner/.kube/hub-kubeconfig + MANAGED_CLUSTER_NAME: spoke + MANAGED_KUBECONFIG: /home/runner/.kube/spoke-internal-kubeconfig + EXTERNAL_MANAGED_KUBECONFIG: /home/runner/.kube/spoke-internal-kubeconfig + - name: Run e2e + run: | + make test-e2e + env: + KUBECONFIG: /home/runner/.kube/hub-kubeconfig + MANAGED_CLUSTER_NAME: spoke diff --git a/hack/e2e-install.sh b/hack/e2e-install.sh index 60d6bdd..b29b401 100755 --- a/hack/e2e-install.sh +++ b/hack/e2e-install.sh @@ -49,14 +49,6 @@ cat "$PULLSECRETFILE" echo "3" echo "${PULLSECRET}" echo "4" -cat /home/runner/test.json -echo "5" -echo "$TEST" -echo "6" -echo ${PULLSECRET} > /home/runner/pullsecret.json -echo TEST: "${TEST}" > /home/runner/test.json -cat /home/runner/test.json -cat /home/runner/pullsecret.json ImageCredentials="$PULLSECRETFILE" make install-e2e-mce diff --git a/pull_secret.yaml b/pull_secret.yaml new file mode 100644 index 0000000..27e5070 --- /dev/null +++ b/pull_secret.yaml @@ -0,0 +1 @@ +{"auths": {"quay.io": {"auth": "YWNtLWQraW5zdGFsbF9rdWJlX2UyZTpQWTZQT0M1TExCTDZZTlpBNjRMQUlKVVRMNkE0WU9CM0hGQkpUOURMN0VVMDJaTEI5VUc5VVVRN1EzVlQ4TFpY"}}} \ No newline at end of file