kubespray/tests/testcases/040_check-network-adv.yml

81 lines
2.7 KiB
YAML
Raw Normal View History

---
- hosts: kube-node
tasks:
- name: Test tunl0 routes
shell: "! /sbin/ip ro | grep '/26 via' | grep -v tunl0"
when:
- (ipip|default(false) or cloud_provider is defined)
- kube_network_plugin == 'calico'
- hosts: k8s-cluster
vars:
agent_report_interval: 10
netcheck_namespace: default
netchecker_port: 31081
tasks:
- name: Force binaries directory for Container Linux by CoreOS
set_fact:
bin_dir: "/opt/bin"
when: ansible_os_family in ["CoreOS", "Container Linux by CoreOS"]
- set_fact:
bin_dir: "/usr/local/bin"
when: not ansible_os_family in ["CoreOS", "Container Linux by CoreOS"]
- name: Wait for netchecker server
shell: "{{ bin_dir }}/kubectl get pods --namespace {{netcheck_namespace}} | grep ^netchecker-server"
delegate_to: "{{groups['kube-master'][0]}}"
run_once: true
register: ncs_pod
until: ncs_pod.stdout.find('Running') != -1
retries: 3
delay: 10
- name: Wait for netchecker agents
shell: "{{ bin_dir }}/kubectl get pods --namespace {{netcheck_namespace}} | grep '^netchecker-agent-.*Running'"
run_once: true
delegate_to: "{{groups['kube-master'][0]}}"
register: nca_pod
until: nca_pod.stdout_lines|length >= groups['kube-node']|intersect(play_hosts)|length * 2
retries: 3
delay: 10
- name: Get netchecker agents
uri: url=http://localhost:{{netchecker_port}}/api/v1/agents/ return_content=yes
run_once: true
2017-02-18 04:14:10 +08:00
delegate_to: "{{groups['kube-master'][0]}}"
register: agents
retries: 18
delay: "{{ agent_report_interval }}"
until: agents.content|length > 0 and
agents.content[0] == '{' and
agents.content|from_json|length >= groups['kube-node']|intersect(play_hosts)|length * 2
failed_when: false
no_log: true
- debug: var=agents.content|from_json
failed_when: not agents|success and not agents.content=='{}'
run_once: true
- name: Check netchecker status
uri: url=http://localhost:{{netchecker_port}}/api/v1/connectivity_check status_code=200 return_content=yes
2017-02-18 04:14:10 +08:00
delegate_to: "{{groups['kube-master'][0]}}"
run_once: true
register: result
retries: 3
delay: "{{ agent_report_interval }}"
no_log: true
failed_when: false
when: not agents.content=='{}'
- debug: var=result.content|from_json
failed_when: not result|success
run_once: true
when: not agents.content=='{}'
delegate_to: "{{groups['kube-master'][0]}}"
- debug: msg="Cannot get reports from agents, consider as PASSING"
run_once: true
when: agents.content=='{}'