From 0d057d8e10fd5e29156516196ffec60ecb115087 Mon Sep 17 00:00:00 2001 From: hu xinhui Date: Wed, 30 Aug 2017 15:36:13 +0800 Subject: Add k8s support JIRA: - Add a new k8s scenario for compass Change-Id: Ic5f58a6152315333684e4f2752aaa0d5d870d9ee Signed-off-by: hu xinhui --- .../roles/kargo/files/generate_inventories.py | 57 ++++++++++++++++++++++ 1 file changed, 57 insertions(+) create mode 100644 deploy/adapters/ansible/kubernetes/roles/kargo/files/generate_inventories.py (limited to 'deploy/adapters/ansible/kubernetes/roles/kargo/files/generate_inventories.py') diff --git a/deploy/adapters/ansible/kubernetes/roles/kargo/files/generate_inventories.py b/deploy/adapters/ansible/kubernetes/roles/kargo/files/generate_inventories.py new file mode 100644 index 00000000..62f29d84 --- /dev/null +++ b/deploy/adapters/ansible/kubernetes/roles/kargo/files/generate_inventories.py @@ -0,0 +1,57 @@ +import yaml +import sys +from jinja2 import Environment + +INVENTORY_TEMPLATE = """ +[all] +{% for host, ip in hosts.iteritems() %} +{{ host }} ansible_ssh_host={{ ip }} ansible_ssh_pass=root ansible_user=root +{% endfor %} +[kube-master] +host1 +host2 + +[etcd] +host1 +host2 +host3 + +[kube-node] +host2 +host3 +host4 +host5 + +[k8s-cluster:children] +kube-node +kube-master + +[calico-rr] +[vault] +""" + + +def create_inventory_file(inventories_path, hosts): + content = Environment().from_string(INVENTORY_TEMPLATE).render(hosts=hosts) + with open(inventories_path, 'w+') as f: + f.write(content) + + +def fetch_all_sorted_external_ip(ip_cfg): + hosts = {} + for host, settings in ip_cfg.iteritems(): + external = settings["external"]["ip"] + hosts[host] = external + return hosts + + +def main(inventories_path, ip_cfg): + hosts = fetch_all_sorted_external_ip(ip_cfg) + create_inventory_file(inventories_path, hosts) + + +if __name__ == "__main__": + path = yaml.load(sys.argv[1]) + ipv_cfg = yaml.load(sys.argv[2]) + + main(path, ipv_cfg) -- cgit 1.2.3-korg