Read the federation controller manager kubeconfig from a filesystem path.
This decoupling from the Kubernetes API allows admins to run federation control plane components wherever they like, even outside Kubernetes.
This commit is contained in:
parent
a96f028208
commit
362c561bd4
@ -52,10 +52,6 @@ import (
|
|||||||
)
|
)
|
||||||
|
|
||||||
const (
|
const (
|
||||||
// TODO(madhusudancs): Consider making this configurable via a flag.
|
|
||||||
// "federation-apiserver-kubeconfig" is a reserved secret name which
|
|
||||||
// stores the kubeconfig for federation-apiserver.
|
|
||||||
KubeconfigSecretName = "federation-apiserver-kubeconfig"
|
|
||||||
// "federation-apiserver-secret" was the old name we used to store
|
// "federation-apiserver-secret" was the old name we used to store
|
||||||
// Federation API server kubeconfig secret. Unfortunately, this name
|
// Federation API server kubeconfig secret. Unfortunately, this name
|
||||||
// is very close to "federation-apiserver-secrets" and causes a lot
|
// is very close to "federation-apiserver-secrets" and causes a lot
|
||||||
@ -95,8 +91,7 @@ func Run(s *options.CMServer) error {
|
|||||||
glog.Errorf("unable to register configz: %s", err)
|
glog.Errorf("unable to register configz: %s", err)
|
||||||
}
|
}
|
||||||
// Create the config to talk to federation-apiserver.
|
// Create the config to talk to federation-apiserver.
|
||||||
kubeconfigGetter := util.KubeconfigGetterForSecret(KubeconfigSecretName)
|
restClientCfg, err := clientcmd.BuildConfigFromFlags(s.Master, s.Kubeconfig)
|
||||||
restClientCfg, err := clientcmd.BuildConfigFromKubeconfigGetter(s.Master, kubeconfigGetter)
|
|
||||||
if err != nil || restClientCfg == nil {
|
if err != nil || restClientCfg == nil {
|
||||||
// Retry with the deprecated name in 1.4.
|
// Retry with the deprecated name in 1.4.
|
||||||
// TODO(madhusudancs): Remove this in 1.5.
|
// TODO(madhusudancs): Remove this in 1.5.
|
||||||
|
@ -17,17 +17,24 @@ spec:
|
|||||||
- name: ssl-certs
|
- name: ssl-certs
|
||||||
hostPath:
|
hostPath:
|
||||||
path: /etc/ssl/certs
|
path: /etc/ssl/certs
|
||||||
|
- name: kubeconfig
|
||||||
|
secret:
|
||||||
|
secretName: federation-apiserver-kubeconfig
|
||||||
containers:
|
containers:
|
||||||
- name: controller-manager
|
- name: controller-manager
|
||||||
volumeMounts:
|
volumeMounts:
|
||||||
- name: ssl-certs
|
- name: ssl-certs
|
||||||
readOnly: true
|
readOnly: true
|
||||||
mountPath: /etc/ssl/certs
|
mountPath: /etc/ssl/certs
|
||||||
|
- name: kubeconfig
|
||||||
|
readOnly: true
|
||||||
|
mountPath: "/etc/federation/controller-manager",
|
||||||
image: {{.FEDERATION_CONTROLLER_MANAGER_IMAGE_REPO}}:{{.FEDERATION_CONTROLLER_MANAGER_IMAGE_TAG}}
|
image: {{.FEDERATION_CONTROLLER_MANAGER_IMAGE_REPO}}:{{.FEDERATION_CONTROLLER_MANAGER_IMAGE_TAG}}
|
||||||
command:
|
command:
|
||||||
- /usr/local/bin/hyperkube
|
- /usr/local/bin/hyperkube
|
||||||
- federation-controller-manager
|
- federation-controller-manager
|
||||||
- --master=https://{{.FEDERATION_APISERVER_DEPLOYMENT_NAME}}:443
|
- --master=https://{{.FEDERATION_APISERVER_DEPLOYMENT_NAME}}:443
|
||||||
|
- --kubeconfig=/etc/federation/controller-manager/kubeconfig
|
||||||
- --dns-provider={{.FEDERATION_DNS_PROVIDER}}
|
- --dns-provider={{.FEDERATION_DNS_PROVIDER}}
|
||||||
- --dns-provider-config={{.FEDERATION_DNS_PROVIDER_CONFIG}}
|
- --dns-provider-config={{.FEDERATION_DNS_PROVIDER_CONFIG}}
|
||||||
- --federation-name={{.FEDERATION_NAME}}
|
- --federation-name={{.FEDERATION_NAME}}
|
||||||
|
Loading…
Reference in New Issue
Block a user