kuryr-kubernetes/playbooks/run_k8s_e2e_tests.yaml
Roman Dobosz c034b0060e Use kubeadm for installing Kubernetes on devstack.
Till now, for installing kuryr-kubernetes and one of the crucial service
- kubernetes, there has been used manual method for installing it in
specified version. Over time it became a burden to follow requirements
and constraints, therefore decision has been made to use recommended way
of installing Kubernetes - kubeadm. In this patch devstack installation
of the kuryr-kubernetes and its dependences has been heavily reworked.

Other than that, OpenShift related functions has been removed, since
they were all outdated and non-working for the long time.

Change-Id: Ife21874c0a71ba07723094c0f880aabcf5825b77
2021-05-21 13:07:21 +02:00

108 lines
3.9 KiB
YAML

- hosts: all
tasks:
# NOTE(maysams): Revisit this package removal step
# once other operating systems are supported on the gates
- name: Remove old installation of Go
shell: |
apt remove -y --purge golang
apt autoremove -y
become: yes
ignore_errors: yes
- name: Download GO {{ gopkg }}
get_url:
url: https://dl.google.com/go/{{ gopkg }}
dest: /tmp/{{ gopkg }}
force: yes
- name: Unarchive GO
unarchive:
src: /tmp/{{ gopkg }}
dest: /usr/local
remote_src: yes
become: true
- name: Clone K8s test-infra repository
git:
repo: https://github.com/kubernetes/test-infra
dest: ~/test-infra
force: yes
- name: Install kubetest
shell: go install ./kubetest
args:
chdir: ~/test-infra
environment:
GO111MODULE: "on"
PATH: "{{ ansible_env.PATH }}:/usr/local/go/bin:{{ ansible_env.HOME }}/go/bin"
- name: Clone kubernetes repository
git:
repo: https://github.com/kubernetes/kubernetes.git
version: "{{ kubetest_version }}"
dest: ~/kubernetes
force: yes
- name: Patch e2e tests
shell: |
sed -i 's/podStartTimeout = .*/podStartTimeout = 2 * time.Minute/' test/e2e/framework/pod/wait.go
sed -i 's/for i in $(seq 1 5)/sleep {{ np_sleep }};for i in $(seq 1 300)/' test/e2e/network/network_policy.go
sed -i '/"add", "\/metadata\/labels\/isolated", nil)/a\\t\t\ttime.Sleep(60 * time.Second)' test/e2e/network/network_policy.go
sed -i '/f, f.Namespace, "client-a", service, 80, v1.ProtocolSCTP)/a \\t\t\ttime.Sleep(60 * time.Second)' test/e2e/network/network_policy.go
args:
chdir: ~/kubernetes
- name: Build e2e tests
block:
- name: Install make package
become: true
package:
name: "make"
state: present
- name: Build e2e tests
shell: |
make WHAT=cmd/kubectl
make WHAT=vendor/github.com/onsi/ginkgo/ginkgo
make WHAT=test/e2e/e2e.test
args:
chdir: ~/kubernetes
environment:
PATH: "{{ ansible_env.PATH }}:/usr/local/go/bin:{{ ansible_env.HOME }}/go/bin"
- name: Create .kube folder within BASE
file:
path: "{{ ansible_env.HOME }}/.kube"
state: directory
become: yes
- name: Copy kubeconfig file
shell: "cp /etc/kubernetes/admin.conf {{ ansible_env.HOME }}/.kube/config"
become: yes
- name: Change kubeconfig file permission
file:
path: "{{ ansible_env.HOME }}/.kube/config"
owner: zuul
group: zuul
become: yes
- name: Run Network Policy tests
block:
- name: Run Network Policy tests without SCTPConnectivity
shell: kubetest --provider=local --check-version-skew=false --test --ginkgo-parallel={{ np_parallel_number }} --test_args="--ginkgo.focus=\[Feature:NetworkPolicy --ginkgo.skip=\[Feature:SCTPConnectivity|should.enforce.policies.to.check.ingress.and.egress.policies.can.be.controlled.independently.based.on.PodSelector" --dump=/tmp > ~/np_kubetest.log
args:
chdir: ~/kubernetes
environment:
GINKGO_NO_COLOR: "y"
KUBECONFIG: "{{ ansible_env.HOME }}/.kube/config"
PATH: "{{ ansible_env.PATH }}:/usr/local/go/bin:{{ ansible_env.HOME }}/go/bin"
always:
- name: Run Network Policy SCTPConnectivity tests
shell: kubetest --provider=local --check-version-skew=false --test --ginkgo-parallel={{ np_parallel_number }} --test_args="--ginkgo.focus=NetworkPolicy.\[Feature:SCTPConnectivity" --dump=/tmp > ~/np_sctp_kubetest.log
args:
chdir: ~/kubernetes
environment:
GINKGO_NO_COLOR: "y"
KUBECONFIG: "{{ ansible_env.HOME }}/.kube/config"
PATH: "{{ ansible_env.PATH }}:/usr/local/go/bin:{{ ansible_env.HOME }}/go/bin"