Stop running k8s-on-openstack nested

The current code runs k8s-on-openstack's ansible in an ansible
task. This makes debugging failures especially difficult.

Instead, move the prep task to update-system-config, which will
ensure the repo is cloned, and move the post task to its own
playbook. The cinder storage class k8s action can be removed from
this completely as it's handled in the rook playbook.

Then just run the k8s-on-openstack playbook as usual, but without
the cd first so that our normal ansible.cfg works.

Change-Id: I6015e58daa940914d46602a2cb64ecac5d59fa2e
changes/57/635857/5
Monty Taylor 4 years ago
parent 07edd9d297
commit 0c4a981f73
  1. 11
      playbooks/bootstrap-k8s-nodes.yaml
  2. 35
      playbooks/run-k8s-on-openstack.yaml
  3. 8
      playbooks/update-system-config.yaml
  4. 15
      run_all.sh
  5. 3
      run_k8s_ansible.sh

@ -0,0 +1,11 @@
# k8s-on-openstack uses the baked in ubuntu user and ssh keypairs
# to interact with the host. Our other roles assume that we'll be
# logging in directly as root. Run base-repos logging in as ubuntu
# with become: true set so that we can overwrite the root ssh key
# with the one allowing direct login from bridge.
- hosts: "kubernetes:!disabled"
name: "Base: set up users and base package repositories on all hosts"
remote_user: ubuntu
become: true
roles:
- base-repos

@ -1,35 +0,0 @@
- hosts: "localhost:!disabled"
name: "System-config: Update the system-config repo on bridge"
connection: local
gather_facts: false
tasks:
- name: Make sure k8s-on-openstack repo is up to date
git:
repo: https://github.com/infraly/k8s-on-openstack
dest: /opt/k8s-on-openstack
# HEAD as of 2019-02-08
version: e27a313b1583c377e08385014b9a880da765924b
force: yes
- name: Run kubernetes deploy playbook
command: ./run_k8s_ansible.sh
args:
chdir: /opt/system-config
- name: Install cinder storage class
k8s:
context: gitea
state: present
definition: "{{ lookup('file', 'k8s/storage-class.yaml') | from_yaml }}"
# k8s-on-openstack uses the baked in ubuntu user and ssh keypairs
# to interact with the host. Our other roles assume that we'll be
# logging in directly as root. Run base-repos logging in as ubuntu
# with become: true set so that we can overwrite the root ssh key
# with the one allowing direct login from bridge.
- hosts: "kubernetes:!disabled"
name: "Base: set up users and base package repositories on all hosts"
remote_user: ubuntu
become: true
roles:
- base-repos

@ -18,3 +18,11 @@
command: ansible-galaxy install --roles-path /etc/ansible/roles --force -r roles.yaml
args:
chdir: /opt/system-config
- name: Make sure k8s-on-openstack repo is up to date
git:
repo: https://github.com/infraly/k8s-on-openstack
dest: /opt/k8s-on-openstack
# HEAD as of 2019-02-08
version: e27a313b1583c377e08385014b9a880da765924b
force: yes

@ -77,15 +77,20 @@ start_timer
timeout -k 2m 120m ansible-playbook ${ANSIBLE_PLAYBOOKS}/bridge.yaml
send_timer bridge
# Run the base playbook everywhere
# Run k8s-on-openstack
start_timer
timeout -k 2m 120m ansible-playbook -f 50 ${ANSIBLE_PLAYBOOKS}/base.yaml
timeout -k 2m 120m ${SYSTEM_CONFIG}/run_k8s_ansible.sh
send_timer k8s
# Run the k8s nodes bootstrap playbook
start_timer
timeout -k 2m 120m ansible-playbook -f 50 ${ANSIBLE_PLAYBOOKS}/bootstrap-k8s-nodes.yaml
send_timer base
# Run k8s-on-openstack
# Run the base playbook everywhere
start_timer
timeout -k 2m 120m ansible-playbook -f 50 ${ANSIBLE_PLAYBOOKS}/run-k8s-on-openstack.yaml
send_timer k8s
timeout -k 2m 120m ansible-playbook -f 50 ${ANSIBLE_PLAYBOOKS}/base.yaml
send_timer base
# These playbooks run on the gitea k8s cluster
start_timer

@ -39,5 +39,4 @@ export NODE_EXTRA_VOLUME_SIZE="80"
export USE_OCTAVIA="True"
export BLOCK_STORAGE_VERSION='v3'
cd /opt/k8s-on-openstack
ansible-playbook -v site.yaml
ansible-playbook -v /opt/k8s-on-openstack/site.yaml

Loading…
Cancel
Save