From 27958e42475bffb29236bcf146f65c6676e05ce9 Mon Sep 17 00:00:00 2001 From: Remous-Aris Koutsiamanis <1357969+ariskou@users.noreply.github.com> Date: Wed, 10 Apr 2019 14:52:14 +0200 Subject: [PATCH] Fix "Prevent inventory.py from configuring an even number of nodes in etcd" #4399 (#4465) by making clusters with fewer than 3 nodes have only 1 etcd node --- contrib/inventory_builder/inventory.py | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/contrib/inventory_builder/inventory.py b/contrib/inventory_builder/inventory.py index a457d627c..f9379b68e 100644 --- a/contrib/inventory_builder/inventory.py +++ b/contrib/inventory_builder/inventory.py @@ -93,14 +93,15 @@ class KubesprayInventory(object): self.purge_invalid_hosts(self.hosts.keys(), PROTECTED_NAMES) self.set_all(self.hosts) self.set_k8s_cluster() - self.set_etcd(list(self.hosts.keys())[:3]) + etcd_hosts_count = 3 if len(self.hosts.keys()) >= 3 else 1 + self.set_etcd(list(self.hosts.keys())[:etcd_hosts_count]) if len(self.hosts) >= SCALE_THRESHOLD: - self.set_kube_master(list(self.hosts.keys())[3:5]) + self.set_kube_master(list(self.hosts.keys())[etcd_hosts_count:5]) else: self.set_kube_master(list(self.hosts.keys())[:2]) self.set_kube_node(self.hosts.keys()) if len(self.hosts) >= SCALE_THRESHOLD: - self.set_calico_rr(list(self.hosts.keys())[:3]) + self.set_calico_rr(list(self.hosts.keys())[:etcd_hosts_count]) else: # Show help if no options self.show_help() sys.exit(0)