From 75e8c38fc8c3859a9d3d593d0aaacaa0171fb0b7 Mon Sep 17 00:00:00 2001 From: Arthur Outhenin-Chalandre Date: Fri, 12 May 2023 14:55:00 +0200 Subject: [PATCH] playbooks: bootstrap in facts playbook Calling bootstrap in facts.yaml so that we can always collect facts even on new nodes. This is useful when you want to add nodes to an inventory beforehand and then collect facts and scale the cluster with the scale playbook and --limits. With dynamic inventory sometimes it might be more difficult to add the nodes after running the facts playbook in this specific situation. Signed-off-by: Arthur Outhenin-Chalandre --- playbooks/cluster.yml | 9 --------- playbooks/facts.yml | 13 +++++++++++++ playbooks/scale.yml | 10 ---------- playbooks/upgrade_cluster.yml | 13 ------------- 4 files changed, 13 insertions(+), 32 deletions(-) diff --git a/playbooks/cluster.yml b/playbooks/cluster.yml index 81da5be46ed..6e61459a138 100644 --- a/playbooks/cluster.yml +++ b/playbooks/cluster.yml @@ -12,15 +12,6 @@ - { role: kubespray-defaults } - { role: bastion-ssh-config, tags: ["localhost", "bastion"] } -- hosts: k8s_cluster:etcd - strategy: linear - any_errors_fatal: "{{ any_errors_fatal | default(true) }}" - gather_facts: false - environment: "{{ proxy_disable_env }}" - roles: - - { role: kubespray-defaults } - - { role: bootstrap-os, tags: bootstrap-os} - - name: Gather facts tags: always import_playbook: facts.yml diff --git a/playbooks/facts.yml b/playbooks/facts.yml index d9ce34081e9..4fff54f11a3 100644 --- a/playbooks/facts.yml +++ b/playbooks/facts.yml @@ -1,4 +1,17 @@ --- +- hosts: k8s_cluster:etcd:calico_rr + strategy: linear + any_errors_fatal: "{{ any_errors_fatal | default(true) }}" + gather_facts: false + environment: "{{ proxy_disable_env }}" + vars: + # Need to disable pipelining for bootstrap-os as some systems have requiretty in sudoers set, which makes pipelining + # fail. bootstrap-os fixes this on these systems, so in later plays it can be enabled. + ansible_ssh_pipelining: false + roles: + - { role: kubespray-defaults } + - { role: bootstrap-os, tags: bootstrap-os} + - name: Gather facts hosts: k8s_cluster:etcd:calico_rr gather_facts: False diff --git a/playbooks/scale.yml b/playbooks/scale.yml index 8e79bfa038b..4d95543b8d5 100644 --- a/playbooks/scale.yml +++ b/playbooks/scale.yml @@ -12,16 +12,6 @@ - { role: kubespray-defaults } - { role: bastion-ssh-config, tags: ["localhost", "bastion"] } -- name: Bootstrap any new workers - hosts: kube_node - strategy: linear - any_errors_fatal: "{{ any_errors_fatal | default(true) }}" - gather_facts: false - environment: "{{ proxy_disable_env }}" - roles: - - { role: kubespray-defaults } - - { role: bootstrap-os, tags: bootstrap-os } - - name: Gather facts tags: always import_playbook: facts.yml diff --git a/playbooks/upgrade_cluster.yml b/playbooks/upgrade_cluster.yml index 15809e845a1..96a8feb4579 100644 --- a/playbooks/upgrade_cluster.yml +++ b/playbooks/upgrade_cluster.yml @@ -12,19 +12,6 @@ - { role: kubespray-defaults } - { role: bastion-ssh-config, tags: ["localhost", "bastion"] } -- hosts: k8s_cluster:etcd:calico_rr - strategy: linear - any_errors_fatal: "{{ any_errors_fatal | default(true) }}" - gather_facts: false - environment: "{{ proxy_disable_env }}" - vars: - # Need to disable pipelining for bootstrap-os as some systems have requiretty in sudoers set, which makes pipelining - # fail. bootstrap-os fixes this on these systems, so in later plays it can be enabled. - ansible_ssh_pipelining: false - roles: - - { role: kubespray-defaults } - - { role: bootstrap-os, tags: bootstrap-os} - - name: Gather facts tags: always import_playbook: facts.yml