apisix/.github/workflows/chaos.yml

70 lines
2.4 KiB
YAML
Raw Normal View History

name: Chaos Test
on:
pull_request:
branches:
- master
paths-ignore:
- 'docs/**'
concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: true
jobs:
chaos-test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2.3.4
with:
submodules: recursive
- name: setup go
uses: actions/setup-go@v2.1.3
with:
go-version: "1.14"
- name: Creating minikube cluster
run: |
bash ./t/chaos/setup_chaos_utils.sh start_minikube
wget https://raw.githubusercontent.com/apache/apisix-docker/master/alpine-local/Dockerfile
mkdir logs
docker build -t apache/apisix:alpine-local --build-arg APISIX_PATH=. -f Dockerfile .
minikube cache add apache/apisix:alpine-local -v 7 --alsologtostderr
- name: Print cluster information
run: |
kubectl config view
kubectl cluster-info
kubectl get nodes
kubectl get pods -n kube-system
kubectl version
- name: Deploy Etcd Operator
run: |
git clone https://github.com/api7/etcd-operator.git --depth 1
bash etcd-operator/example/rbac/create_role.sh
kubectl create -f etcd-operator/example/deployment.yaml
bash ./t/chaos/setup_chaos_utils.sh ensure_pods_ready etcd-operator "True" 30
kubectl create -f etcd-operator/example/example-etcd-cluster.yaml
bash ./t/chaos/setup_chaos_utils.sh ensure_pods_ready etcd "True True True" 30
- name: Deploy APISIX
run: |
bash ./t/chaos/setup_chaos_utils.sh modify_config
kubectl create configmap apisix-gw-config.yaml --from-file=./conf/config.yaml
kubectl apply -f ./kubernetes/deployment.yaml
kubectl apply -f ./kubernetes/service.yaml
bash ./t/chaos/setup_chaos_utils.sh ensure_pods_ready apisix-gw "True" 30
kubectl apply -f https://raw.githubusercontent.com/istio/istio/master/samples/httpbin/httpbin.yaml
bash ./t/chaos/setup_chaos_utils.sh ensure_pods_ready httpbin "True" 30
nohup kubectl port-forward svc/apisix-gw-lb 9080:9080 >/dev/null 2>&1 &
- name: Deploy Chaos mesh
run: |
curl -sSL https://mirrors.chaos-mesh.org/v1.1.1/install.sh | bash
- name: run test
working-directory: ./t/chaos
run: go test -v