From 56e41f0647bf467afda4c9c38cf37a52c6f0f4bb Mon Sep 17 00:00:00 2001 From: Max Gautier Date: Tue, 26 Nov 2024 14:43:37 +0100 Subject: [PATCH] Remove contrib/dind contrib/dind use inventory_builder, which is removed. It overlaps with the function of kind (Kubernetes in Docker) and has not see change (apart from linting driven ones) for a long time. It also does not seem to work (provisioning playbook crash). --- contrib/dind/README.md | 177 ------------------ contrib/dind/dind-cluster.yaml | 11 -- contrib/dind/group_vars/all/all.yaml | 3 - contrib/dind/group_vars/all/distro.yaml | 41 ---- contrib/dind/hosts | 15 -- contrib/dind/kubespray-dind.yaml | 22 --- contrib/dind/requirements.txt | 1 - .../dind/roles/dind-cluster/tasks/main.yaml | 73 -------- contrib/dind/roles/dind-host/tasks/main.yaml | 87 --------- .../templates/inventory_builder.sh.j2 | 3 - contrib/dind/run-test-distros.sh | 93 --------- contrib/dind/test-most_distros-some_CNIs.env | 11 -- .../test-some_distros-kube_router_combo.env | 6 - contrib/dind/test-some_distros-most_CNIs.env | 8 - 14 files changed, 551 deletions(-) delete mode 100644 contrib/dind/README.md delete mode 100644 contrib/dind/dind-cluster.yaml delete mode 100644 contrib/dind/group_vars/all/all.yaml delete mode 100644 contrib/dind/group_vars/all/distro.yaml delete mode 100644 contrib/dind/hosts delete mode 100644 contrib/dind/kubespray-dind.yaml delete mode 100644 contrib/dind/requirements.txt delete mode 100644 contrib/dind/roles/dind-cluster/tasks/main.yaml delete mode 100644 contrib/dind/roles/dind-host/tasks/main.yaml delete mode 100644 contrib/dind/roles/dind-host/templates/inventory_builder.sh.j2 delete mode 100755 contrib/dind/run-test-distros.sh delete mode 100644 contrib/dind/test-most_distros-some_CNIs.env delete mode 100644 contrib/dind/test-some_distros-kube_router_combo.env delete mode 100644 contrib/dind/test-some_distros-most_CNIs.env diff --git a/contrib/dind/README.md b/contrib/dind/README.md deleted file mode 100644 index 5e72cfc2c..000000000 --- a/contrib/dind/README.md +++ /dev/null @@ -1,177 +0,0 @@ -# Kubespray DIND experimental setup - -This ansible playbook creates local docker containers -to serve as Kubernetes "nodes", which in turn will run -"normal" Kubernetes docker containers, a mode usually -called DIND (Docker-IN-Docker). - -The playbook has two roles: - -- dind-host: creates the "nodes" as containers in localhost, with - appropriate settings for DIND (privileged, volume mapping for dind - storage, etc). -- dind-cluster: customizes each node container to have required - system packages installed, and some utils (swapoff, lsattr) - symlinked to /bin/true to ease mimicking a real node. - -This playbook has been test with Ubuntu 16.04 as host and ubuntu:16.04 -as docker images (note that dind-cluster has specific customization -for these images). - -The playbook also creates a `/tmp/kubespray.dind.inventory_builder.sh` -helper (wraps up running `contrib/inventory_builder/inventory.py` with -node containers IPs and prefix). - -## Deploying - -See below for a complete successful run: - -1. Create the node containers - -```shell -# From the kubespray root dir -cd contrib/dind -pip install -r requirements.txt - -ansible-playbook -i hosts dind-cluster.yaml - -# Back to kubespray root -cd ../.. -``` - -NOTE: if the playbook run fails with something like below error -message, you may need to specifically set `ansible_python_interpreter`, -see `./hosts` file for an example expanded localhost entry. - -```shell -failed: [localhost] (item=kube-node1) => {"changed": false, "item": "kube-node1", "msg": "Failed to import docker or docker-py - No module named requests.exceptions. Try `pip install docker` or `pip install docker-py` (Python 2.6)"} -``` - -2. Customize kubespray-dind.yaml - -Note that there's coupling between above created node containers -and `kubespray-dind.yaml` settings, in particular regarding selected `node_distro` -(as set in `group_vars/all/all.yaml`), and docker settings. - -```shell -$EDITOR contrib/dind/kubespray-dind.yaml -``` - -3. Prepare the inventory and run the playbook - -```shell -INVENTORY_DIR=inventory/local-dind -mkdir -p ${INVENTORY_DIR} -rm -f ${INVENTORY_DIR}/hosts.ini -CONFIG_FILE=${INVENTORY_DIR}/hosts.ini /tmp/kubespray.dind.inventory_builder.sh - -ansible-playbook --become -e ansible_ssh_user=debian -i ${INVENTORY_DIR}/hosts.ini cluster.yml --extra-vars @contrib/dind/kubespray-dind.yaml -``` - -NOTE: You could also test other distros without editing files by -passing `--extra-vars` as per below commandline, -replacing `DISTRO` by either `debian`, `ubuntu`, `centos`, `fedora`: - -```shell -cd contrib/dind -ansible-playbook -i hosts dind-cluster.yaml --extra-vars node_distro=DISTRO - -cd ../.. -CONFIG_FILE=inventory/local-dind/hosts.ini /tmp/kubespray.dind.inventory_builder.sh -ansible-playbook --become -e ansible_ssh_user=DISTRO -i inventory/local-dind/hosts.ini cluster.yml --extra-vars @contrib/dind/kubespray-dind.yaml --extra-vars bootstrap_os=DISTRO -``` - -## Resulting deployment - -See below to get an idea on how a completed deployment looks like, -from the host where you ran kubespray playbooks. - -### node_distro: debian - -Running from an Ubuntu Xenial host: - -```shell -$ uname -a -Linux ip-xx-xx-xx-xx 4.4.0-1069-aws #79-Ubuntu SMP Mon Sep 24 -15:01:41 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux - -$ docker ps -CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES -1835dd183b75 debian:9.5 "sh -c 'apt-get -qy …" 43 minutes ago Up 43 minutes kube-node5 -30b0af8d2924 debian:9.5 "sh -c 'apt-get -qy …" 43 minutes ago Up 43 minutes kube-node4 -3e0d1510c62f debian:9.5 "sh -c 'apt-get -qy …" 43 minutes ago Up 43 minutes kube-node3 -738993566f94 debian:9.5 "sh -c 'apt-get -qy …" 44 minutes ago Up 44 minutes kube-node2 -c581ef662ed2 debian:9.5 "sh -c 'apt-get -qy …" 44 minutes ago Up 44 minutes kube-node1 - -$ docker exec kube-node1 kubectl get node -NAME STATUS ROLES AGE VERSION -kube-node1 Ready master,node 18m v1.12.1 -kube-node2 Ready master,node 17m v1.12.1 -kube-node3 Ready node 17m v1.12.1 -kube-node4 Ready node 17m v1.12.1 -kube-node5 Ready node 17m v1.12.1 - -$ docker exec kube-node1 kubectl get pod --all-namespaces -NAMESPACE NAME READY STATUS RESTARTS AGE -default netchecker-agent-67489 1/1 Running 0 2m51s -default netchecker-agent-6qq6s 1/1 Running 0 2m51s -default netchecker-agent-fsw92 1/1 Running 0 2m51s -default netchecker-agent-fw6tl 1/1 Running 0 2m51s -default netchecker-agent-hostnet-8f2zb 1/1 Running 0 3m -default netchecker-agent-hostnet-gq7ml 1/1 Running 0 3m -default netchecker-agent-hostnet-jfkgv 1/1 Running 0 3m -default netchecker-agent-hostnet-kwfwx 1/1 Running 0 3m -default netchecker-agent-hostnet-r46nm 1/1 Running 0 3m -default netchecker-agent-lxdrn 1/1 Running 0 2m51s -default netchecker-server-864bd4c897-9vstl 1/1 Running 0 2m40s -default sh-68fcc6db45-qf55h 1/1 Running 1 12m -kube-system coredns-7598f59475-6vknq 1/1 Running 0 14m -kube-system coredns-7598f59475-l5q5x 1/1 Running 0 14m -kube-system kube-apiserver-kube-node1 1/1 Running 0 17m -kube-system kube-apiserver-kube-node2 1/1 Running 0 18m -kube-system kube-controller-manager-kube-node1 1/1 Running 0 18m -kube-system kube-controller-manager-kube-node2 1/1 Running 0 18m -kube-system kube-proxy-5xx9d 1/1 Running 0 17m -kube-system kube-proxy-cdqq4 1/1 Running 0 17m -kube-system kube-proxy-n64ls 1/1 Running 0 17m -kube-system kube-proxy-pswmj 1/1 Running 0 18m -kube-system kube-proxy-x89qw 1/1 Running 0 18m -kube-system kube-scheduler-kube-node1 1/1 Running 4 17m -kube-system kube-scheduler-kube-node2 1/1 Running 4 18m -kube-system kubernetes-dashboard-5db4d9f45f-548rl 1/1 Running 0 14m -kube-system nginx-proxy-kube-node3 1/1 Running 4 17m -kube-system nginx-proxy-kube-node4 1/1 Running 4 17m -kube-system nginx-proxy-kube-node5 1/1 Running 4 17m -kube-system weave-net-42bfr 2/2 Running 0 16m -kube-system weave-net-6gt8m 2/2 Running 0 16m -kube-system weave-net-88nnc 2/2 Running 0 16m -kube-system weave-net-shckr 2/2 Running 0 16m -kube-system weave-net-xr46t 2/2 Running 0 16m - -$ docker exec kube-node1 curl -s http://localhost:31081/api/v1/connectivity_check -{"Message":"All 10 pods successfully reported back to the server","Absent":null,"Outdated":null} -``` - -## Using ./run-test-distros.sh - -You can use `./run-test-distros.sh` to run a set of tests via DIND, -and excerpt from this script, to get an idea: - -```shell -# The SPEC file(s) must have two arrays as e.g. -# DISTROS=(debian centos) -# EXTRAS=( -# 'kube_network_plugin=calico' -# 'kube_network_plugin=flannel' -# 'kube_network_plugin=weave' -# ) -# that will be tested in a "combinatory" way (e.g. from above there'll be -# be 6 test runs), creating a sequenced -nn.out with each output. -# -# Each $EXTRAS element will be whitespace split, and passed as --extra-vars -# to main kubespray ansible-playbook run. -``` - -See e.g. `test-some_distros-most_CNIs.env` and -`test-some_distros-kube_router_combo.env` in particular for a richer -set of CNI specific `--extra-vars` combo. diff --git a/contrib/dind/dind-cluster.yaml b/contrib/dind/dind-cluster.yaml deleted file mode 100644 index 0c61c3f2d..000000000 --- a/contrib/dind/dind-cluster.yaml +++ /dev/null @@ -1,11 +0,0 @@ ---- -- name: Create nodes as docker containers - hosts: localhost - gather_facts: false - roles: - - { role: dind-host } - -- name: Customize each node containers - hosts: containers - roles: - - { role: dind-cluster } diff --git a/contrib/dind/group_vars/all/all.yaml b/contrib/dind/group_vars/all/all.yaml deleted file mode 100644 index fd619a05e..000000000 --- a/contrib/dind/group_vars/all/all.yaml +++ /dev/null @@ -1,3 +0,0 @@ ---- -# See distro.yaml for supported node_distro images -node_distro: debian diff --git a/contrib/dind/group_vars/all/distro.yaml b/contrib/dind/group_vars/all/distro.yaml deleted file mode 100644 index 279536c00..000000000 --- a/contrib/dind/group_vars/all/distro.yaml +++ /dev/null @@ -1,41 +0,0 @@ ---- -distro_settings: - debian: &DEBIAN - image: "debian:9.5" - user: "debian" - pid1_exe: /lib/systemd/systemd - init: | - sh -c "apt-get -qy update && apt-get -qy install systemd-sysv dbus && exec /sbin/init" - raw_setup: apt-get -qy update && apt-get -qy install dbus python sudo iproute2 - raw_setup_done: test -x /usr/bin/sudo - agetty_svc: getty@* - ssh_service: ssh - extra_packages: [] - ubuntu: - <<: *DEBIAN - image: "ubuntu:16.04" - user: "ubuntu" - init: | - /sbin/init - centos: &CENTOS - image: "centos:8" - user: "centos" - pid1_exe: /usr/lib/systemd/systemd - init: | - /sbin/init - raw_setup: yum -qy install policycoreutils dbus python sudo iproute iptables - raw_setup_done: test -x /usr/bin/sudo - agetty_svc: getty@* serial-getty@* - ssh_service: sshd - extra_packages: [] - fedora: - <<: *CENTOS - image: "fedora:latest" - user: "fedora" - raw_setup: yum -qy install policycoreutils dbus python sudo iproute iptables; mkdir -p /etc/modules-load.d - extra_packages: - - hostname - - procps - - findutils - - kmod - - iputils diff --git a/contrib/dind/hosts b/contrib/dind/hosts deleted file mode 100644 index 356aa2675..000000000 --- a/contrib/dind/hosts +++ /dev/null @@ -1,15 +0,0 @@ -[local] -# If you created a virtualenv for ansible, you may need to specify running the -# python binary from there instead: -#localhost ansible_connection=local ansible_python_interpreter=/home/user/kubespray/.venv/bin/python -localhost ansible_connection=local - -[containers] -kube-node1 -kube-node2 -kube-node3 -kube-node4 -kube-node5 - -[containers:vars] -ansible_connection=docker diff --git a/contrib/dind/kubespray-dind.yaml b/contrib/dind/kubespray-dind.yaml deleted file mode 100644 index 6d57cf00d..000000000 --- a/contrib/dind/kubespray-dind.yaml +++ /dev/null @@ -1,22 +0,0 @@ ---- -# kubespray-dind.yaml: minimal kubespray ansible playbook usable for DIND -# See contrib/dind/README.md -kube_api_anonymous_auth: true - -kubelet_fail_swap_on: false - -# Docker nodes need to have been created with same "node_distro: debian" -# at contrib/dind/group_vars/all/all.yaml -bootstrap_os: debian - -docker_version: latest - -docker_storage_options: -s overlay2 --storage-opt overlay2.override_kernel_check=true -g /dind/docker - -dns_mode: coredns - -deploy_netchecker: true -netcheck_agent_image_repo: quay.io/l23network/k8s-netchecker-agent -netcheck_server_image_repo: quay.io/l23network/k8s-netchecker-server -netcheck_agent_image_tag: v1.0 -netcheck_server_image_tag: v1.0 diff --git a/contrib/dind/requirements.txt b/contrib/dind/requirements.txt deleted file mode 100644 index bdb967096..000000000 --- a/contrib/dind/requirements.txt +++ /dev/null @@ -1 +0,0 @@ -docker diff --git a/contrib/dind/roles/dind-cluster/tasks/main.yaml b/contrib/dind/roles/dind-cluster/tasks/main.yaml deleted file mode 100644 index 1a3630f9f..000000000 --- a/contrib/dind/roles/dind-cluster/tasks/main.yaml +++ /dev/null @@ -1,73 +0,0 @@ ---- -- name: Set_fact distro_setup - set_fact: - distro_setup: "{{ distro_settings[node_distro] }}" - -- name: Set_fact other distro settings - set_fact: - distro_user: "{{ distro_setup['user'] }}" - distro_ssh_service: "{{ distro_setup['ssh_service'] }}" - distro_extra_packages: "{{ distro_setup['extra_packages'] }}" - -- name: Null-ify some linux tools to ease DIND - file: - src: "/bin/true" - dest: "{{ item }}" - state: link - force: true - with_items: - # DIND box may have swap enable, don't bother - - /sbin/swapoff - # /etc/hosts handling would fail on trying to copy file attributes on edit, - # void it by successfully returning nil output - - /usr/bin/lsattr - # disable selinux-isms, sp needed if running on non-Selinux host - - /usr/sbin/semodule - -- name: Void installing dpkg docs and man pages on Debian based distros - copy: - content: | - # Delete locales - path-exclude=/usr/share/locale/* - # Delete man pages - path-exclude=/usr/share/man/* - # Delete docs - path-exclude=/usr/share/doc/* - path-include=/usr/share/doc/*/copyright - dest: /etc/dpkg/dpkg.cfg.d/01_nodoc - mode: "0644" - when: - - ansible_os_family == 'Debian' - -- name: Install system packages to better match a full-fledge node - package: - name: "{{ item }}" - state: present - with_items: "{{ distro_extra_packages + ['rsyslog', 'openssh-server'] }}" - -- name: Start needed services - service: - name: "{{ item }}" - state: started - with_items: - - rsyslog - - "{{ distro_ssh_service }}" - -- name: Create distro user "{{ distro_user }}" - user: - name: "{{ distro_user }}" - uid: 1000 - # groups: sudo - append: true - -- name: Allow password-less sudo to "{{ distro_user }}" - copy: - content: "{{ distro_user }} ALL=(ALL) NOPASSWD:ALL" - dest: "/etc/sudoers.d/{{ distro_user }}" - mode: "0640" - -- name: "Add my pubkey to {{ distro_user }} user authorized keys" - ansible.posix.authorized_key: - user: "{{ distro_user }}" - state: present - key: "{{ lookup('file', lookup('env', 'HOME') + '/.ssh/id_rsa.pub') }}" diff --git a/contrib/dind/roles/dind-host/tasks/main.yaml b/contrib/dind/roles/dind-host/tasks/main.yaml deleted file mode 100644 index e0dc71008..000000000 --- a/contrib/dind/roles/dind-host/tasks/main.yaml +++ /dev/null @@ -1,87 +0,0 @@ ---- -- name: Set_fact distro_setup - set_fact: - distro_setup: "{{ distro_settings[node_distro] }}" - -- name: Set_fact other distro settings - set_fact: - distro_image: "{{ distro_setup['image'] }}" - distro_init: "{{ distro_setup['init'] }}" - distro_pid1_exe: "{{ distro_setup['pid1_exe'] }}" - distro_raw_setup: "{{ distro_setup['raw_setup'] }}" - distro_raw_setup_done: "{{ distro_setup['raw_setup_done'] }}" - distro_agetty_svc: "{{ distro_setup['agetty_svc'] }}" - -- name: Create dind node containers from "containers" inventory section - community.docker.docker_container: - image: "{{ distro_image }}" - name: "{{ item }}" - state: started - hostname: "{{ item }}" - command: "{{ distro_init }}" - # recreate: true - privileged: true - tmpfs: - - /sys/module/nf_conntrack/parameters - volumes: - - /boot:/boot - - /lib/modules:/lib/modules - - "{{ item }}:/dind/docker" - register: containers - with_items: "{{ groups.containers }}" - tags: - - addresses - -- name: Gather list of containers IPs - set_fact: - addresses: "{{ containers.results | map(attribute='ansible_facts') | map(attribute='docker_container') | map(attribute='NetworkSettings') | map(attribute='IPAddress') | list }}" - tags: - - addresses - -- name: Create inventory_builder helper already set with the list of node containers' IPs - template: - src: inventory_builder.sh.j2 - dest: /tmp/kubespray.dind.inventory_builder.sh - mode: "0755" - tags: - - addresses - -- name: Install needed packages into node containers via raw, need to wait for possible systemd packages to finish installing - raw: | - # agetty processes churn a lot of cpu time failing on inexistent ttys, early STOP them, to rip them in below task - pkill -STOP agetty || true - {{ distro_raw_setup_done }} && echo SKIPPED && exit 0 - until [ "$(readlink /proc/1/exe)" = "{{ distro_pid1_exe }}" ] ; do sleep 1; done - {{ distro_raw_setup }} - delegate_to: "{{ item._ansible_item_label | default(item.item) }}" - with_items: "{{ containers.results }}" - register: result - changed_when: result.stdout.find("SKIPPED") < 0 - -- name: Remove gettys from node containers - raw: | - until test -S /var/run/dbus/system_bus_socket; do sleep 1; done - systemctl disable {{ distro_agetty_svc }} - systemctl stop {{ distro_agetty_svc }} - delegate_to: "{{ item._ansible_item_label | default(item.item) }}" - with_items: "{{ containers.results }}" - changed_when: false - -# Running systemd-machine-id-setup doesn't create a unique id for each node container on Debian, -# handle manually -- name: Re-create unique machine-id (as we may just get what comes in the docker image), needed by some CNIs for mac address seeding (notably weave) - raw: | - echo {{ item | hash('sha1') }} > /etc/machine-id.new - mv -b /etc/machine-id.new /etc/machine-id - cmp /etc/machine-id /etc/machine-id~ || true - systemctl daemon-reload - delegate_to: "{{ item._ansible_item_label | default(item.item) }}" - with_items: "{{ containers.results }}" - -- name: Early hack image install to adapt for DIND - raw: | - rm -fv /usr/bin/udevadm /usr/sbin/udevadm - delegate_to: "{{ item._ansible_item_label | default(item.item) }}" - with_items: "{{ containers.results }}" - register: result - changed_when: result.stdout.find("removed") >= 0 diff --git a/contrib/dind/roles/dind-host/templates/inventory_builder.sh.j2 b/contrib/dind/roles/dind-host/templates/inventory_builder.sh.j2 deleted file mode 100644 index 48e17583e..000000000 --- a/contrib/dind/roles/dind-host/templates/inventory_builder.sh.j2 +++ /dev/null @@ -1,3 +0,0 @@ -#!/bin/bash -# NOTE: if you change HOST_PREFIX, you also need to edit ./hosts [containers] section -HOST_PREFIX=kube-node python3 contrib/inventory_builder/inventory.py {% for ip in addresses %} {{ ip }} {% endfor %} diff --git a/contrib/dind/run-test-distros.sh b/contrib/dind/run-test-distros.sh deleted file mode 100755 index 3695276aa..000000000 --- a/contrib/dind/run-test-distros.sh +++ /dev/null @@ -1,93 +0,0 @@ -#!/bin/bash -# Q&D test'em all: creates full DIND kubespray deploys -# for each distro, verifying it via netchecker. - -info() { - local msg="$*" - local date="$(date -Isec)" - echo "INFO: [$date] $msg" -} -pass_or_fail() { - local rc="$?" - local msg="$*" - local date="$(date -Isec)" - [ $rc -eq 0 ] && echo "PASS: [$date] $msg" || echo "FAIL: [$date] $msg" - return $rc -} -test_distro() { - local distro=${1:?};shift - local extra="${*:-}" - local prefix="${distro[${extra}]}" - ansible-playbook -i hosts dind-cluster.yaml -e node_distro=$distro - pass_or_fail "$prefix: dind-nodes" || return 1 - (cd ../.. - INVENTORY_DIR=inventory/local-dind - mkdir -p ${INVENTORY_DIR} - rm -f ${INVENTORY_DIR}/hosts.ini - CONFIG_FILE=${INVENTORY_DIR}/hosts.ini /tmp/kubespray.dind.inventory_builder.sh - # expand $extra with -e in front of each word - extra_args=""; for extra_arg in $extra; do extra_args="$extra_args -e $extra_arg"; done - ansible-playbook --become -e ansible_ssh_user=$distro -i \ - ${INVENTORY_DIR}/hosts.ini cluster.yml \ - -e @contrib/dind/kubespray-dind.yaml -e bootstrap_os=$distro ${extra_args} - pass_or_fail "$prefix: kubespray" - ) || return 1 - local node0=${NODES[0]} - docker exec ${node0} kubectl get pod --all-namespaces - pass_or_fail "$prefix: kube-api" || return 1 - let retries=60 - while ((retries--)); do - # Some CNI may set NodePort on "main" node interface address (thus no localhost NodePort) - # e.g. kube-router: https://github.com/cloudnativelabs/kube-router/pull/217 - docker exec ${node0} curl -m2 -s http://${NETCHECKER_HOST:?}:31081/api/v1/connectivity_check | grep successfully && break - sleep 2 - done - [ $retries -ge 0 ] - pass_or_fail "$prefix: netcheck" || return 1 -} - -NODES=($(egrep ^kube_node hosts)) -NETCHECKER_HOST=localhost - -: ${OUTPUT_DIR:=./out} -mkdir -p ${OUTPUT_DIR} - -# The SPEC file(s) must have two arrays as e.g. -# DISTROS=(debian centos) -# EXTRAS=( -# 'kube_network_plugin=calico' -# 'kube_network_plugin=flannel' -# 'kube_network_plugin=weave' -# ) -# that will be tested in a "combinatory" way (e.g. from above there'll be -# be 6 test runs), creating a sequenced -nn.out with each output. -# -# Each $EXTRAS element will be whitespace split, and passed as --extra-vars -# to main kubespray ansible-playbook run. - -SPECS=${*:?Missing SPEC files, e.g. test-most_distros-some_CNIs.env} -for spec in ${SPECS}; do - unset DISTROS EXTRAS - echo "Loading file=${spec} ..." - . ${spec} || continue - : ${DISTROS:?} || continue - echo "DISTROS:" "${DISTROS[@]}" - echo "EXTRAS->" - printf " %s\n" "${EXTRAS[@]}" - let n=1 - for distro in "${DISTROS[@]}"; do - for extra in "${EXTRAS[@]:-NULL}"; do - # Magic value to let this for run once: - [[ ${extra} == NULL ]] && unset extra - docker rm -f "${NODES[@]}" - printf -v file_out "%s/%s-%02d.out" ${OUTPUT_DIR} ${spec} $((n++)) - { - info "${distro}[${extra}] START: file_out=${file_out}" - time test_distro ${distro} ${extra} - } |& tee ${file_out} - # sleeping for the sake of the human to verify if they want - sleep 2m - done - done -done -egrep -H '^(....:|real)' $(ls -tr ${OUTPUT_DIR}/*.out) diff --git a/contrib/dind/test-most_distros-some_CNIs.env b/contrib/dind/test-most_distros-some_CNIs.env deleted file mode 100644 index f6e4e1a8c..000000000 --- a/contrib/dind/test-most_distros-some_CNIs.env +++ /dev/null @@ -1,11 +0,0 @@ -# Test spec file: used from ./run-test-distros.sh, will run -# each distro in $DISTROS overloading main kubespray ansible-playbook run -# Get all DISTROS from distro.yaml (shame no yaml parsing, but nuff anyway) -# DISTROS="${*:-$(egrep -o '^ \w+' group_vars/all/distro.yaml|paste -s)}" -DISTROS=(debian ubuntu centos fedora) - -# Each line below will be added as --extra-vars to main playbook run -EXTRAS=( - 'kube_network_plugin=calico' - 'kube_network_plugin=weave' -) diff --git a/contrib/dind/test-some_distros-kube_router_combo.env b/contrib/dind/test-some_distros-kube_router_combo.env deleted file mode 100644 index f2677129b..000000000 --- a/contrib/dind/test-some_distros-kube_router_combo.env +++ /dev/null @@ -1,6 +0,0 @@ -DISTROS=(debian centos) -NETCHECKER_HOST=${NODES[0]} -EXTRAS=( - 'kube_network_plugin=kube-router {"kube_router_run_service_proxy":false}' - 'kube_network_plugin=kube-router {"kube_router_run_service_proxy":true}' -) diff --git a/contrib/dind/test-some_distros-most_CNIs.env b/contrib/dind/test-some_distros-most_CNIs.env deleted file mode 100644 index 2fb185c15..000000000 --- a/contrib/dind/test-some_distros-most_CNIs.env +++ /dev/null @@ -1,8 +0,0 @@ -DISTROS=(debian centos) -EXTRAS=( - 'kube_network_plugin=calico {}' - 'kube_network_plugin=canal {}' - 'kube_network_plugin=cilium {}' - 'kube_network_plugin=flannel {}' - 'kube_network_plugin=weave {}' -)