@@ -55,8 +55,6 @@ func FromSecret(ctx context.Context, c client.Reader, cluster client.ObjectKey)
5555
5656// New creates a new Kubeconfig using the cluster name and specified endpoint. 
5757func  New (clusterName , endpoint  string , caCert  * x509.Certificate , caKey  crypto.Signer , options  ... KubeConfigurationOption ) (* api.Config , error ) {
58- 	var  clientCert  * x509.Certificate 
59- 	var  encodedClientKey  []byte 
6058	cfg  :=  & certs.Config {
6159		CommonName :   "kubernetes-admin" ,
6260		Organization : []string {"system:masters" },
@@ -69,34 +67,19 @@ func New(clusterName, endpoint string, caCert *x509.Certificate, caKey crypto.Si
6967	kubeConfigOptions  :=  & KubeConfigurationOptions {}
7068	kubeConfigOptions .ApplyOptions (options )
7169
72- 	// Generate key based on the EncryptionAlgorithm if set. 
73- 	if  kubeConfigOptions .keyEncryptionAlgorithm  !=  ""  {
74- 		clientKey , err  :=  certs .NewSigner (kubeConfigOptions .keyEncryptionAlgorithm )
75- 		if  err  !=  nil  {
76- 			return  nil , errors .Wrap (err , "unable to create private key" )
77- 		}
78- 
79- 		clientCert , err  =  cfg .NewSignedCert (clientKey , caCert , caKey )
80- 		if  err  !=  nil  {
81- 			return  nil , errors .Wrap (err , "unable to sign certificate" )
82- 		}
83- 
84- 		encodedClientKey , err  =  certs .EncodePrivateKeyPEMFromSigner (clientKey )
85- 		if  err  !=  nil  {
86- 			return  nil , errors .Wrap (err , "unable to encode private key" )
87- 		}
88- 	} else  {
89- 		clientKey , err  :=  certs .NewPrivateKey ()
90- 		if  err  !=  nil  {
91- 			return  nil , errors .Wrap (err , "unable to create private key" )
92- 		}
70+ 	clientKey , err  :=  certs .NewSigner (kubeConfigOptions .keyEncryptionAlgorithm )
71+ 	if  err  !=  nil  {
72+ 		return  nil , errors .Wrap (err , "unable to create private key" )
73+ 	}
9374
94- 		 clientCert , err  =  cfg .NewSignedCert (clientKey , caCert , caKey )
95- 		 if  err  !=  nil  {
96- 			 return  nil , errors .Wrap (err , "unable to sign certificate" )
97- 		 }
75+ 	clientCert , err  : =cfg .NewSignedCert (clientKey , caCert , caKey )
76+ 	if  err  !=  nil  {
77+ 		return  nil , errors .Wrap (err , "unable to sign certificate" )
78+ 	}
9879
99- 		encodedClientKey  =  certs .EncodeCertPEM (clientCert )
80+ 	encodedClientKey , err  :=  certs .EncodePrivateKeyPEMFromSigner (clientKey )
81+ 	if  err  !=  nil  {
82+ 		return  nil , errors .Wrap (err , "unable to encode private key" )
10083	}
10184
10285	return  & api.Config {
@@ -139,7 +122,7 @@ func CreateSecretWithOwner(ctx context.Context, c client.Client, clusterName cli
139122	if  err  !=  nil  {
140123		return  err 
141124	}
142- 	out , err  :=  generateKubeconfig (ctx , c , clusterName , server , options )
125+ 	out , err  :=  generateKubeconfig (ctx , c , clusterName , server , options ... )
143126	if  err  !=  nil  {
144127		return  err 
145128	}
@@ -222,15 +205,15 @@ func RegenerateSecret(ctx context.Context, c client.Client, configSecret *corev1
222205	}
223206	endpoint  :=  config .Clusters [clusterName ].Server 
224207	key  :=  client.ObjectKey {Name : clusterName , Namespace : configSecret .Namespace }
225- 	out , err  :=  generateKubeconfig (ctx , c , key , endpoint , options )
208+ 	out , err  :=  generateKubeconfig (ctx , c , key , endpoint , options ... )
226209	if  err  !=  nil  {
227210		return  err 
228211	}
229212	configSecret .Data [secret .KubeconfigDataName ] =  out 
230213	return  c .Update (ctx , configSecret )
231214}
232215
233- func  generateKubeconfig (ctx  context.Context , c  client.Client , clusterName  client.ObjectKey , endpoint  string , options  [] KubeConfigurationOption ) ([]byte , error ) {
216+ func  generateKubeconfig (ctx  context.Context , c  client.Client , clusterName  client.ObjectKey , endpoint  string , options  ... KubeConfigurationOption ) ([]byte , error ) {
234217	clusterCA , err  :=  secret .GetFromNamespacedName (ctx , c , clusterName , secret .ClusterCA )
235218	if  err  !=  nil  {
236219		if  apierrors .IsNotFound (err ) {
0 commit comments