From 89f5746065b8d7ce2638bde69f0238740429d626 Mon Sep 17 00:00:00 2001 From: "Dr. Stefan Schimanski" Date: Wed, 10 Oct 2018 12:00:06 +0200 Subject: [PATCH 1/2] bootkube: allow overriding control plane operator images --- pkg/asset/ignition/bootstrap/bootstrap.go | 64 ++++++++++++++++------- pkg/asset/ignition/content/bootkube.go | 10 ++-- 2 files changed, 51 insertions(+), 23 deletions(-) diff --git a/pkg/asset/ignition/bootstrap/bootstrap.go b/pkg/asset/ignition/bootstrap/bootstrap.go index 62c40fcc195..d25961c985e 100644 --- a/pkg/asset/ignition/bootstrap/bootstrap.go +++ b/pkg/asset/ignition/bootstrap/bootstrap.go @@ -31,15 +31,18 @@ const ( // bootstrapTemplateData is the data to use to replace values in bootstrap // template files. type bootstrapTemplateData struct { - BootkubeImage string - CloudProvider string - CloudProviderConfig string - ClusterDNSIP string - DebugConfig string - EtcdCertSignerImage string - EtcdCluster string - EtcdctlImage string - ReleaseImage string + BootkubeImage string + CloudProvider string + CloudProviderConfig string + ClusterDNSIP string + ClusterKubeApiserverOperatorImage string + ClusterKubeControllerManagerOperatorImage string + ClusterKubeSchedulerOperatorImage string + DebugConfig string + EtcdCertSignerImage string + EtcdCluster string + EtcdctlImage string + ReleaseImage string } // Bootstrap is an asset that generates the ignition config for bootstrap nodes. @@ -143,21 +146,42 @@ func (a *Bootstrap) getTemplateData(installConfig *types.InstallConfig) (*bootst } releaseImage := defaultReleaseImage - if ri, ok := os.LookupEnv("OPENSHIFT_INSTALL_RELEASE_IMAGE_OVERRIDE"); ok && ri != "" { + if override, ok := os.LookupEnv("OPENSHIFT_INSTALL_RELEASE_IMAGE_OVERRIDE"); ok && override != "" { log.Warn("Found override for ReleaseImage. Please be warned, this is not advised") - releaseImage = ri + releaseImage = override + } + + clusterKubeApiserverOperatorImage := "" + if override, ok := os.LookupEnv("OPENSHIFT_INSTALL_KUBE_APISERVER_OPERATOR_IMAGE_OVERRIDE"); ok && override != "" { + log.Warn("Found override for cluster-kube-apiserver-operator. Please be warned, this is not advised") + clusterKubeApiserverOperatorImage = override + } + + clusterKubeControllerManagerOperatorImage := "" + if override, ok := os.LookupEnv("OPENSHIFT_INSTALL_KUBE_CONTROLLER_MANAGER_OPERATOR_IMAGE_OVERRIDE"); ok && override != "" { + log.Warn("Found override for cluster-kube-controller-manager-operator. Please be warned, this is not advised") + clusterKubeControllerManagerOperatorImage = override + } + + clusterKubeSchedulerOperatorImage := "" + if override, ok := os.LookupEnv("OPENSHIFT_INSTALL_KUBE_SCHEDULER_OPERATOR_IMAGE_OVERRIDE"); ok && override != "" { + log.Warn("Found override for cluster-kube-scheduler-operator. Please be warned, this is not advised") + clusterKubeSchedulerOperatorImage = override } return &bootstrapTemplateData{ - ClusterDNSIP: clusterDNSIP, - CloudProvider: getCloudProvider(installConfig), - CloudProviderConfig: getCloudProviderConfig(installConfig), - DebugConfig: "", - EtcdCertSignerImage: "quay.io/coreos/kube-etcd-signer-server:678cc8e6841e2121ebfdb6e2db568fce290b67d6", - EtcdctlImage: "quay.io/coreos/etcd:v3.2.14", - BootkubeImage: "quay.io/coreos/bootkube:v0.10.0", - ReleaseImage: releaseImage, - EtcdCluster: strings.Join(etcdEndpoints, ","), + ClusterDNSIP: clusterDNSIP, + CloudProvider: getCloudProvider(installConfig), + CloudProviderConfig: getCloudProviderConfig(installConfig), + DebugConfig: "", + EtcdCertSignerImage: "quay.io/coreos/kube-etcd-signer-server:678cc8e6841e2121ebfdb6e2db568fce290b67d6", + EtcdctlImage: "quay.io/coreos/etcd:v3.2.14", + BootkubeImage: "quay.io/coreos/bootkube:v0.10.0", + ClusterKubeApiserverOperatorImage: clusterKubeApiserverOperatorImage, + ClusterKubeControllerManagerOperatorImage: clusterKubeControllerManagerOperatorImage, + ClusterKubeSchedulerOperatorImage: clusterKubeSchedulerOperatorImage, + ReleaseImage: releaseImage, + EtcdCluster: strings.Join(etcdEndpoints, ","), }, nil } diff --git a/pkg/asset/ignition/content/bootkube.go b/pkg/asset/ignition/content/bootkube.go index ec19dd9af6f..046be7184c7 100644 --- a/pkg/asset/ignition/content/bootkube.go +++ b/pkg/asset/ignition/content/bootkube.go @@ -34,9 +34,13 @@ MACHINE_CONFIG_CONTROLLER_IMAGE=$(podman run --rm {{.ReleaseImage}} image machin MACHINE_CONFIG_SERVER_IMAGE=$(podman run --rm {{.ReleaseImage}} image machine-config-server) MACHINE_CONFIG_DAEMON_IMAGE=$(podman run --rm {{.ReleaseImage}} image machine-config-daemon) -KUBE_APISERVER_OPERATOR_IMAGE=$(podman run --rm {{.ReleaseImage}} image cluster-kube-apiserver-operator) -KUBE_CONTROLLER_MANAGER_OPERATOR_IMAGE=$(podman run --rm {{.ReleaseImage}} image cluster-kube-controller-manager-operator) -KUBE_SCHEDULER_OPERATOR_IMAGE=$(podman run --rm {{.ReleaseImage}} image cluster-kube-scheduler-operator) +KUBE_APISERVER_OPERATOR_IMAGE="{{.ClusterKubeApiserverOperatorImage}}" +KUBE_CONTROLLER_MANAGER_OPERATOR_IMAGE="{{.ClusterKubeControllerManagerOperatorImage}}" +KUBE_SCHEDULER_OPERATOR_IMAGE="{{.ClusterKubeSchedulerOperatorImage}}" + +KUBE_APISERVER_OPERATOR_IMAGE=${KUBE_APISERVER_OPERATOR_IMAGE:-$(podman run --rm {{.ReleaseImage}} image cluster-kube-apiserver-operator)} +KUBE_CONTROLLER_MANAGER_OPERATOR_IMAGE=${KUBE_CONTROLLER_MANAGER_OPERATOR_IMAGE:-$(podman run --rm {{.ReleaseImage}} image cluster-kube-controller-manager-operator)} +KUBE_SCHEDULER_OPERATOR_IMAGE=${KUBE_SCHEDULER_OPERATOR_IMAGE:-$(podman run --rm {{.ReleaseImage}} image cluster-kube-scheduler-operator)} OPENSHIFT_HYPERSHIFT_IMAGE=$(podman run --rm {{.ReleaseImage}} image hypershift) OPENSHIFT_HYPERKUBE_IMAGE=$(podman run --rm {{.ReleaseImage}} image hyperkube) From 18253db3d0dbe40ce8ea32bec670c0b98be1d451 Mon Sep 17 00:00:00 2001 From: "Dr. Stefan Schimanski" Date: Wed, 10 Oct 2018 12:24:44 +0200 Subject: [PATCH 2/2] bootkube: fix kube-apiserver cp command --- pkg/asset/ignition/content/bootkube.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkg/asset/ignition/content/bootkube.go b/pkg/asset/ignition/content/bootkube.go index 046be7184c7..c3222561450 100644 --- a/pkg/asset/ignition/content/bootkube.go +++ b/pkg/asset/ignition/content/bootkube.go @@ -81,8 +81,8 @@ then --config-output-file=/assets/kube-apiserver-bootstrap/config cp kube-apiserver-bootstrap/config /etc/kubernetes/bootstrap-configs/kube-apiserver-config.yaml - cp --recursive kube-controller-manager-bootstrap/bootstrap-manifests/* bootstrap-manifests/ - cp --recursive kube-controller-manager-bootstrap/manifests manifests/ + cp --recursive kube-apiserver-bootstrap/bootstrap-manifests/* bootstrap-manifests/ + cp --recursive kube-apiserver-bootstrap/manifests manifests/ fi if [ ! -d kube-controller-manager-bootstrap ]