@@ -71,13 +71,13 @@ def run_command(self, cmd):
7171 #print(err)
7272 return out , err
7373
74- def _create_kubecfg_file (self , sa , namespace , filename , token , ca , server , kubeconfig ):
74+ def _create_kubecfg_file (self , sa , namespace , filename , token , ca , server , kubeconfig , cluster_name = None ):
7575 #print("Creating kubecfg file")
7676 top_level_dict = {}
7777 top_level_dict ["apiVersion" ] = "v1"
7878 top_level_dict ["kind" ] = "Config"
7979
80- contextName = sa
80+ contextName = cluster_name if cluster_name else sa
8181
8282 usersList = []
8383 usertoken = {}
@@ -98,12 +98,12 @@ def _create_kubecfg_file(self, sa, namespace, filename, token, ca, server, kubec
9898
9999 clusterInfo = {}
100100 clusterInfo ["cluster" ] = cluster_details
101- clusterInfo ["name" ] = sa
101+ clusterInfo ["name" ] = cluster_name if cluster_name else sa
102102 clustersList .append (clusterInfo )
103103 top_level_dict ["clusters" ] = clustersList
104104
105105 context_details = {}
106- context_details ["cluster" ] = sa
106+ context_details ["cluster" ] = cluster_name if cluster_name else sa
107107 context_details ["user" ] = sa
108108 context_details ["namespace" ] = namespace
109109 contextInfo = {}
@@ -705,7 +705,7 @@ def _create_secret(self, sa, namespace, kubeconfig):
705705 sys .exit ()
706706 return out
707707
708- def _extract_kubeconfig (self , sa , namespace , filename , serverip = '' , kubecfg = '' ):
708+ def _extract_kubeconfig (self , sa , namespace , filename , serverip = '' , kubecfg = '' , cluster_name = None ):
709709 #print("Extracting kubeconfig")
710710 secretName = sa
711711 tokenFound = False
@@ -755,10 +755,10 @@ def _extract_kubeconfig(self, sa, namespace, filename, serverip='', kubecfg=''):
755755 else :
756756 server = api_server_ip
757757 #print("Kube API Server:" + server)
758- self ._create_kubecfg_file (sa , namespace , filename , token , ca_cert , server , kubeconfig )
758+ self ._create_kubecfg_file (sa , namespace , filename , token , ca_cert , server , kubeconfig , cluster_name )
759759
760760
761- def _generate_kubeconfig (self , sa , namespace , filename , api_server_ip = '' , kubeconfig = '' ):
761+ def _generate_kubeconfig (self , sa , namespace , filename , api_server_ip = '' , kubeconfig = '' , cluster_name = None ):
762762 cmdprefix = ""
763763 cmd = " kubectl create sa " + sa + " -n " + namespace + kubeconfig
764764 cmdToRun = cmdprefix + " " + cmd
@@ -778,7 +778,7 @@ def _generate_kubeconfig(self, sa, namespace, filename, api_server_ip='', kubeco
778778
779779 # Moving from here
780780 #print("Got secret token")
781- self ._extract_kubeconfig (sa , namespace , filename , serverip = api_server_ip , kubecfg = kubeconfig )
781+ self ._extract_kubeconfig (sa , namespace , filename , serverip = api_server_ip , kubecfg = kubeconfig , cluster_name = cluster_name )
782782
783783
784784if __name__ == '__main__' :
@@ -798,6 +798,9 @@ def _generate_kubeconfig(self, sa, namespace, filename, api_server_ip='', kubeco
798798 parser .add_argument ("-f" , "--filename" , help = '''This flag is used to specify the
799799 output file name in which generated provider kubeconfig will be store
800800 (The default value is kubeplus-saas-provider.json)''' )
801+ parser .add_argument ("-x" , "--clustername" , help = '''This flag is used to specify the name of the cluster.
802+ This name will be used in setting the value of the context attribute, along with the cluster name,
803+ in the generated kubeconfig file.''' )
801804 permission_help = "permissions file - use with update command.\n "
802805 permission_help = permission_help + "Should be a JSON file with the following structure:\n "
803806 permission_help = permission_help + "{perms:{<apiGroup1>:[{resource1|resource/resourceName::<resourceName>: [verb1, verb2, ...]}, {resource2: [..]}], {<apiGroup2>:[...]}}}"
@@ -826,6 +829,11 @@ def _generate_kubeconfig(self, sa, namespace, filename, api_server_ip='', kubeco
826829 #print("Permission file:" + pargs.permissionfile)
827830 permission_file = pargs .permissionfile
828831
832+ cluster_name = ''
833+ if pargs .clustername :
834+ #print("Cluster name:" + pargs.clustername)
835+ cluster_name = pargs .clustername
836+
829837 if action == 'update' and permission_file == '' :
830838 print ("Permission file missing. Please provide permission file." )
831839 print (permission_help )
@@ -858,11 +866,11 @@ def _generate_kubeconfig(self, sa, namespace, filename, api_server_ip='', kubeco
858866
859867 # 1. Generate Provider kubeconfig
860868 if sa == "kubeplus-saas-provider" :
861- kubeconfigGenerator ._generate_kubeconfig (sa , namespace , filename , api_server_ip = api_s_ip , kubeconfig = kubeconfigString )
869+ kubeconfigGenerator ._generate_kubeconfig (sa , namespace , filename , api_server_ip = api_s_ip , kubeconfig = kubeconfigString , cluster_name = cluster_name )
862870 kubeconfigGenerator ._apply_rbac (sa , namespace , entity = 'provider' , kubeconfig = kubeconfigString )
863871 print ("Provider kubeconfig created: " + filename )
864872 else :
865- kubeconfigGenerator ._generate_kubeconfig (sa , namespace , filename , api_server_ip = api_s_ip , kubeconfig = kubeconfigString )
873+ kubeconfigGenerator ._generate_kubeconfig (sa , namespace , filename , api_server_ip = api_s_ip , kubeconfig = kubeconfigString , cluster_name = cluster_name )
866874 kubeconfigGenerator ._apply_rbac (sa , namespace , entity = 'consumer' , kubeconfig = kubeconfigString )
867875 print ("Consumer kubeconfig created: " + filename )
868876
0 commit comments