1111 K8sError ,
1212 get_cluster_of_current_context ,
1313 get_namespaces_by_type ,
14- get_service_accounts_in_namespace ,
14+ get_token_for_service_acount ,
15+ get_warnet_user_service_accounts_in_namespace ,
1516 open_kubeconfig ,
1617)
1718from .namespaces import copy_namespaces_defaults , namespaces
1819from .network import copy_network_defaults
19- from .process import run_command
2020
2121
2222@click .group (name = "admin" , hidden = True )
@@ -84,21 +84,21 @@ def create_kubeconfigs(kubeconfig_dir, token_duration):
8484 for v1namespace in warnet_namespaces :
8585 namespace = v1namespace .metadata .name
8686 click .echo (f"Processing namespace: { namespace } " )
87- service_accounts = get_service_accounts_in_namespace (namespace )
87+ service_accounts = get_warnet_user_service_accounts_in_namespace (namespace )
8888
8989 for sa in service_accounts :
90+ name = sa .metadata .name
9091 # Create a token for the ServiceAccount with specified duration
91- command = f"kubectl create token { sa } -n { namespace } --duration={ token_duration } s"
9292 try :
93- token = run_command ( command )
93+ token = get_token_for_service_acount ( sa , token_duration )
9494 except Exception as e :
9595 click .echo (
96- f"Failed to create token for ServiceAccount { sa } in namespace { namespace } . Error: { str (e )} . Skipping..."
96+ f"Failed to create token for ServiceAccount { name } in namespace { namespace } . Error: { str (e )} . Skipping..."
9797 )
9898 continue
9999
100100 # Create a kubeconfig file for the user
101- kubeconfig_file = os .path .join (kubeconfig_dir , f"{ sa } -{ namespace } -kubeconfig" )
101+ kubeconfig_file = os .path .join (kubeconfig_dir , f"{ name } -{ namespace } -kubeconfig" )
102102
103103 # TODO: move yaml out of python code to resources/manifests/
104104 #
@@ -109,21 +109,25 @@ def create_kubeconfigs(kubeconfig_dir, token_duration):
109109 "apiVersion" : "v1" ,
110110 "kind" : "Config" ,
111111 "clusters" : [cluster ],
112- "users" : [{"name" : sa , "user" : {"token" : token }}],
112+ "users" : [{"name" : name , "user" : {"token" : token }}],
113113 "contexts" : [
114114 {
115- "name" : f"{ sa } -{ namespace } " ,
116- "context" : {"cluster" : cluster ["name" ], "namespace" : namespace , "user" : sa },
115+ "name" : f"{ name } -{ namespace } " ,
116+ "context" : {
117+ "cluster" : cluster ["name" ],
118+ "namespace" : namespace ,
119+ "user" : name ,
120+ },
117121 }
118122 ],
119- "current-context" : f"{ sa } -{ namespace } " ,
123+ "current-context" : f"{ name } -{ namespace } " ,
120124 }
121125
122126 # Write to a YAML file
123127 with open (kubeconfig_file , "w" ) as f :
124128 yaml .dump (kubeconfig_dict , f , default_flow_style = False )
125129
126- click .echo (f" Created kubeconfig file for { sa } : { kubeconfig_file } " )
130+ click .echo (f" Created kubeconfig file for { name } : { kubeconfig_file } " )
127131
128132 click .echo ("---" )
129133 click .echo (
0 commit comments