Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Select an option

  • Save egeneralov/6729750c0f8f6b94e2fddda9fd3b132d to your computer and use it in GitHub Desktop.

Select an option

Save egeneralov/6729750c0f8f6b94e2fddda9fd3b132d to your computer and use it in GitHub Desktop.
import os
import yaml
# CURRENT NAME CLUSTER AUTHINFO NAMESPACE
# group1-cluster1@kubernetes group1-cluster1 group1-cluster1
# group1-cluster2@group1-cluster2 group1-cluster2 group1-cluster2
# group2-cluster1@group2-cluster1 group2-cluster1 group2-cluster1
# * group2-cluster2@group2-cluster2 group2-cluster2 group2-cluster2
data = yaml.load('''
group1:
cluster1: 1.1.1.1
cluster2: 1.0.0.1
group2:
cluster1: 1.1.1.1
cluster2: 1.0.0.1
''')
all_env="KUBECONFIG="
first = True
for group in data.keys():
for name in data[group].keys():
ip = data[group][name]
# print(group, name, data[group][name])
file = f"/tmp/{group}-{name}.conf"
# cmd = f"scp {ip}:/etc/kubernetes/admin.conf {file}"
for cmd in [
f"scp {ip}:/etc/kubernetes/admin.conf {file}",
f"sed -i 's/kubernetes-admin/{group}-{name}/g' {file}",
f"sed -i 's/cluster.local/{group}-{name}/g' {file}",
f"sed -i 's/server: .*/server: https:\/\/{ip}:6443/g' {file}"
]:
print(cmd)
exit_code = os.system(cmd)
if exit_code != 0:
raise Exception(f"exit code {exit_code} for cmd {cmd}")
if first:
all_env += f"{file}"
first = False
else:
all_env += f":{file}"
print(f"{all_env} kubectl config view --flatten > ~/.kube/config")
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment