// createSecret extracts the kubeconfig for a given cluster and populates // a secret with that kubeconfig. func createSecret(hostFactory cmdutil.Factory, clientConfig *clientcmdapi.Config, namespace, contextName, secretName string, dryRun bool) (runtime.Object, error) { // Minify the kubeconfig to ensure that there is only information // relevant to the cluster we are registering. newClientConfig, err := minifyConfig(clientConfig, contextName) if err != nil { glog.V(2).Infof("Failed to minify the kubeconfig for the given context %q: %v", contextName, err) return nil, err } // Flatten the kubeconfig to ensure that all the referenced file // contents are inlined. err = clientcmdapi.FlattenConfig(newClientConfig) if err != nil { glog.V(2).Infof("Failed to flatten the kubeconfig for the given context %q: %v", contextName, err) return nil, err } // Boilerplate to create the secret in the host cluster. clientset, err := hostFactory.ClientSet() if err != nil { glog.V(2).Infof("Failed to serialize the kubeconfig for the given context %q: %v", contextName, err) return nil, err } return util.CreateKubeconfigSecret(clientset, newClientConfig, namespace, secretName, dryRun) }
func createControllerManagerKubeconfigSecret(clientset *client.Clientset, namespace, name, svcName, kubeconfigName string, entKeyPairs *entityKeyPairs, dryRun bool) (*api.Secret, error) { config := kubeadmkubeconfigphase.MakeClientConfigWithCerts( fmt.Sprintf("https://%s", svcName), name, "federation-controller-manager", certutil.EncodeCertPEM(entKeyPairs.ca.Cert), certutil.EncodePrivateKeyPEM(entKeyPairs.controllerManager.Key), certutil.EncodeCertPEM(entKeyPairs.controllerManager.Cert), ) return util.CreateKubeconfigSecret(clientset, config, namespace, kubeconfigName, dryRun) }