mirror of
https://github.com/rancher/rke.git
synced 2025-08-02 07:43:04 +00:00
Add SystemImages type
This commit is contained in:
parent
4d99760ebc
commit
3a1394e739
10
cluster.yml
10
cluster.yml
@ -74,11 +74,11 @@ system_images:
|
||||
alpine: alpine:latest
|
||||
nginx_proxy: rancher/rke-nginx-proxy:v0.1.1
|
||||
cert_downloader: rancher/rke-cert-deployer:v0.1.1
|
||||
service_sidekick_image: rancher/rke-service-sidekick:v0.1.0
|
||||
kubedns_image: gcr.io/google_containers/k8s-dns-kube-dns-amd64:1.14.5
|
||||
dnsmasq_image: gcr.io/google_containers/k8s-dns-dnsmasq-nanny-amd64:1.14.5
|
||||
kubedns_sidecar_image: gcr.io/google_containers/k8s-dns-sidecar-amd64:1.14.5
|
||||
kubedns_autoscaler_image: gcr.io/google_containers/cluster-proportional-autoscaler-amd64:1.0.0
|
||||
kubernetes_services_sidecar: rancher/rke-service-sidekick:v0.1.0
|
||||
kubedns: gcr.io/google_containers/k8s-dns-kube-dns-amd64:1.14.5
|
||||
dnsmasq: gcr.io/google_containers/k8s-dns-dnsmasq-nanny-amd64:1.14.5
|
||||
kubedns_sidecar: gcr.io/google_containers/k8s-dns-sidecar-amd64:1.14.5
|
||||
kubedns_autoscaler: gcr.io/google_containers/cluster-proportional-autoscaler-amd64:1.0.0
|
||||
|
||||
# all addon manifests MUST specify a namespace
|
||||
addons: |-
|
||||
|
@ -40,10 +40,10 @@ func (c *Cluster) deployKubeDNS(ctx context.Context) error {
|
||||
kubeDNSConfig := map[string]string{
|
||||
addons.KubeDNSServer: c.ClusterDNSServer,
|
||||
addons.KubeDNSClusterDomain: c.ClusterDomain,
|
||||
addons.KubeDNSImage: c.SystemImages[KubeDNSImage],
|
||||
addons.DNSMasqImage: c.SystemImages[DNSMasqImage],
|
||||
addons.KubeDNSSidecarImage: c.SystemImages[KubeDNSSidecarImage],
|
||||
addons.KubeDNSAutoScalerImage: c.SystemImages[KubeDNSAutoScalerImage],
|
||||
addons.KubeDNSImage: c.SystemImages.KubeDNS,
|
||||
addons.DNSMasqImage: c.SystemImages.DNSmasq,
|
||||
addons.KubeDNSSidecarImage: c.SystemImages.KubeDNSSidecar,
|
||||
addons.KubeDNSAutoScalerImage: c.SystemImages.KubeDNSAutoscaler,
|
||||
}
|
||||
kubeDNSYaml, err := addons.GetKubeDNSManifest(kubeDNSConfig)
|
||||
if err != nil {
|
||||
|
@ -22,7 +22,7 @@ func SetUpAuthentication(ctx context.Context, kubeCluster, currentCluster *Clust
|
||||
kubeCluster.Certificates = currentCluster.Certificates
|
||||
} else {
|
||||
log.Infof(ctx, "[certificates] Attempting to recover certificates from backup on host [%s]", kubeCluster.EtcdHosts[0].Address)
|
||||
kubeCluster.Certificates, err = pki.FetchCertificatesFromHost(ctx, kubeCluster.EtcdHosts, kubeCluster.EtcdHosts[0], kubeCluster.SystemImages[AplineImage], kubeCluster.LocalKubeConfigPath)
|
||||
kubeCluster.Certificates, err = pki.FetchCertificatesFromHost(ctx, kubeCluster.EtcdHosts, kubeCluster.EtcdHosts[0], kubeCluster.SystemImages.Alpine, kubeCluster.LocalKubeConfigPath)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
@ -42,7 +42,7 @@ func SetUpAuthentication(ctx context.Context, kubeCluster, currentCluster *Clust
|
||||
return fmt.Errorf("Failed to generate Kubernetes certificates: %v", err)
|
||||
}
|
||||
log.Infof(ctx, "[certificates] Temporarily saving certs to etcd host [%s]", kubeCluster.EtcdHosts[0].Address)
|
||||
if err := pki.DeployCertificatesOnHost(ctx, kubeCluster.EtcdHosts, kubeCluster.EtcdHosts[0], kubeCluster.Certificates, kubeCluster.SystemImages[CertDownloaderImage], pki.TempCertPath); err != nil {
|
||||
if err := pki.DeployCertificatesOnHost(ctx, kubeCluster.EtcdHosts, kubeCluster.EtcdHosts[0], kubeCluster.Certificates, kubeCluster.SystemImages.CertDownloader, pki.TempCertPath); err != nil {
|
||||
return err
|
||||
}
|
||||
log.Infof(ctx, "[certificates] Saved certs to etcd host [%s]", kubeCluster.EtcdHosts[0].Address)
|
||||
|
@ -43,14 +43,6 @@ const (
|
||||
UpdateStateTimeout = 30
|
||||
GetStateTimeout = 30
|
||||
KubernetesClientTimeOut = 30
|
||||
AplineImage = "alpine"
|
||||
NginxProxyImage = "nginx_proxy"
|
||||
CertDownloaderImage = "cert_downloader"
|
||||
KubeDNSImage = "kubedns_image"
|
||||
DNSMasqImage = "dnsmasq_image"
|
||||
KubeDNSSidecarImage = "kubedns_sidecar_image"
|
||||
KubeDNSAutoScalerImage = "kubedns_autoscaler_image"
|
||||
ServiceSidekickImage = "service_sidekick_image"
|
||||
NoneAuthorizationMode = "none"
|
||||
LocalNodeAddress = "127.0.0.1"
|
||||
LocalNodeHostname = "localhost"
|
||||
@ -66,7 +58,7 @@ func (c *Cluster) DeployControlPlane(ctx context.Context) error {
|
||||
if err := services.RunControlPlane(ctx, c.ControlPlaneHosts,
|
||||
c.EtcdHosts,
|
||||
c.Services,
|
||||
c.SystemImages[ServiceSidekickImage],
|
||||
c.SystemImages.KubernetesServicesSidecar,
|
||||
c.Authorization.Mode,
|
||||
c.LocalConnDialerFactory); err != nil {
|
||||
return fmt.Errorf("[controlPlane] Failed to bring up Control Plane: %v", err)
|
||||
@ -84,8 +76,8 @@ func (c *Cluster) DeployWorkerPlane(ctx context.Context) error {
|
||||
c.WorkerHosts,
|
||||
c.EtcdHosts,
|
||||
c.Services,
|
||||
c.SystemImages[NginxProxyImage],
|
||||
c.SystemImages[ServiceSidekickImage],
|
||||
c.SystemImages.NginxProxy,
|
||||
c.SystemImages.KubernetesServicesSidecar,
|
||||
c.LocalConnDialerFactory); err != nil {
|
||||
return fmt.Errorf("[workerPlane] Failed to bring up Worker Plane: %v", err)
|
||||
}
|
||||
@ -189,22 +181,19 @@ func (c *Cluster) setClusterServicesDefaults() {
|
||||
}
|
||||
|
||||
func (c *Cluster) setClusterImageDefaults() {
|
||||
if c.SystemImages == nil {
|
||||
// don't break if the user didn't define rke_images
|
||||
c.SystemImages = make(map[string]string)
|
||||
}
|
||||
systemImagesDefaultsMap := map[string]string{
|
||||
AplineImage: DefaultAplineImage,
|
||||
NginxProxyImage: DefaultNginxProxyImage,
|
||||
CertDownloaderImage: DefaultCertDownloaderImage,
|
||||
KubeDNSImage: DefaultKubeDNSImage,
|
||||
DNSMasqImage: DefaultDNSMasqImage,
|
||||
KubeDNSSidecarImage: DefaultKubeDNSSidecarImage,
|
||||
KubeDNSAutoScalerImage: DefaultKubeDNSAutoScalerImage,
|
||||
ServiceSidekickImage: DefaultServiceSidekickImage,
|
||||
|
||||
systemImagesDefaultsMap := map[*string]string{
|
||||
&c.SystemImages.Alpine: DefaultAplineImage,
|
||||
&c.SystemImages.NginxProxy: DefaultNginxProxyImage,
|
||||
&c.SystemImages.CertDownloader: DefaultCertDownloaderImage,
|
||||
&c.SystemImages.KubeDNS: DefaultKubeDNSImage,
|
||||
&c.SystemImages.KubeDNSSidecar: DefaultKubeDNSSidecarImage,
|
||||
&c.SystemImages.DNSmasq: DefaultDNSmasqImage,
|
||||
&c.SystemImages.KubeDNSAutoscaler: DefaultKubeDNSAutoScalerImage,
|
||||
&c.SystemImages.KubernetesServicesSidecar: DefaultKubernetesServicesSidecarImage,
|
||||
}
|
||||
for k, v := range systemImagesDefaultsMap {
|
||||
setDefaultIfEmptyMapValue(c.SystemImages, k, v)
|
||||
setDefaultIfEmpty(k, v)
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -17,11 +17,11 @@ const (
|
||||
DefaultNetworkPlugin = "flannel"
|
||||
DefaultNetworkCloudProvider = "none"
|
||||
|
||||
DefaultInfraContainerImage = "gcr.io/google_containers/pause-amd64:3.0"
|
||||
DefaultAplineImage = "alpine:latest"
|
||||
DefaultNginxProxyImage = "rancher/rke-nginx-proxy:v0.1.1"
|
||||
DefaultCertDownloaderImage = "rancher/rke-cert-deployer:v0.1.1"
|
||||
DefaultServiceSidekickImage = "rancher/rke-service-sidekick:v0.1.0"
|
||||
DefaultInfraContainerImage = "gcr.io/google_containers/pause-amd64:3.0"
|
||||
DefaultAplineImage = "alpine:latest"
|
||||
DefaultNginxProxyImage = "rancher/rke-nginx-proxy:v0.1.1"
|
||||
DefaultCertDownloaderImage = "rancher/rke-cert-deployer:v0.1.1"
|
||||
DefaultKubernetesServicesSidecarImage = "rancher/rke-service-sidekick:v0.1.0"
|
||||
|
||||
DefaultEtcdImage = "quay.io/coreos/etcd:latest"
|
||||
DefaultK8sImage = "rancher/k8s:v1.8.5-rancher4"
|
||||
@ -42,7 +42,7 @@ const (
|
||||
DefaultCanalFlannelImage = "quay.io/coreos/flannel:v0.9.1"
|
||||
|
||||
DefaultKubeDNSImage = "gcr.io/google_containers/k8s-dns-kube-dns-amd64:1.14.5"
|
||||
DefaultDNSMasqImage = "gcr.io/google_containers/k8s-dns-dnsmasq-nanny-amd64:1.14.5"
|
||||
DefaultDNSmasqImage = "gcr.io/google_containers/k8s-dns-dnsmasq-nanny-amd64:1.14.5"
|
||||
DefaultKubeDNSSidecarImage = "gcr.io/google_containers/k8s-dns-sidecar-amd64:1.14.5"
|
||||
DefaultKubeDNSAutoScalerImage = "gcr.io/google_containers/cluster-proportional-autoscaler-amd64:1.0.0"
|
||||
)
|
||||
|
@ -72,14 +72,14 @@ func (c *Cluster) InvertIndexHosts() error {
|
||||
func (c *Cluster) SetUpHosts(ctx context.Context) error {
|
||||
if c.Authentication.Strategy == X509AuthenticationProvider {
|
||||
log.Infof(ctx, "[certificates] Deploying kubernetes certificates to Cluster nodes")
|
||||
if err := pki.DeployCertificatesOnMasters(ctx, c.ControlPlaneHosts, c.Certificates, c.SystemImages[CertDownloaderImage]); err != nil {
|
||||
if err := pki.DeployCertificatesOnMasters(ctx, c.ControlPlaneHosts, c.Certificates, c.SystemImages.CertDownloader); err != nil {
|
||||
return err
|
||||
}
|
||||
if err := pki.DeployCertificatesOnWorkers(ctx, c.WorkerHosts, c.Certificates, c.SystemImages[CertDownloaderImage]); err != nil {
|
||||
if err := pki.DeployCertificatesOnWorkers(ctx, c.WorkerHosts, c.Certificates, c.SystemImages.CertDownloader); err != nil {
|
||||
return err
|
||||
}
|
||||
// Deploying etcd certificates
|
||||
if err := pki.DeployCertificatesOnEtcd(ctx, c.EtcdHosts, c.Certificates, c.SystemImages[CertDownloaderImage]); err != nil {
|
||||
if err := pki.DeployCertificatesOnEtcd(ctx, c.EtcdHosts, c.Certificates, c.SystemImages.CertDownloader); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
|
@ -343,7 +343,7 @@ func (c *Cluster) deployListenerOnPlane(ctx context.Context, portList []string,
|
||||
}
|
||||
func (c *Cluster) deployListener(ctx context.Context, host *hosts.Host, portList []string, containerName string) error {
|
||||
imageCfg := &container.Config{
|
||||
Image: c.SystemImages[AplineImage],
|
||||
Image: c.SystemImages.Alpine,
|
||||
Cmd: []string{
|
||||
"nc",
|
||||
"-kl",
|
||||
@ -412,7 +412,7 @@ func (c *Cluster) runServicePortChecks(ctx context.Context) error {
|
||||
for _, host := range c.EtcdHosts {
|
||||
runHost := host
|
||||
errgrp.Go(func() error {
|
||||
return checkPlaneTCPPortsFromHost(ctx, runHost, etcdPortList, c.EtcdHosts, c.SystemImages[AplineImage])
|
||||
return checkPlaneTCPPortsFromHost(ctx, runHost, etcdPortList, c.EtcdHosts, c.SystemImages.Alpine)
|
||||
})
|
||||
}
|
||||
if err := errgrp.Wait(); err != nil {
|
||||
@ -424,7 +424,7 @@ func (c *Cluster) runServicePortChecks(ctx context.Context) error {
|
||||
for _, host := range c.ControlPlaneHosts {
|
||||
runHost := host
|
||||
errgrp.Go(func() error {
|
||||
return checkPlaneTCPPortsFromHost(ctx, runHost, etcdPortList, c.EtcdHosts, c.SystemImages[AplineImage])
|
||||
return checkPlaneTCPPortsFromHost(ctx, runHost, etcdPortList, c.EtcdHosts, c.SystemImages.Alpine)
|
||||
})
|
||||
}
|
||||
if err := errgrp.Wait(); err != nil {
|
||||
@ -434,7 +434,7 @@ func (c *Cluster) runServicePortChecks(ctx context.Context) error {
|
||||
for _, host := range c.WorkerHosts {
|
||||
runHost := host
|
||||
errgrp.Go(func() error {
|
||||
return checkPlaneTCPPortsFromHost(ctx, runHost, etcdPortList, c.EtcdHosts, c.SystemImages[AplineImage])
|
||||
return checkPlaneTCPPortsFromHost(ctx, runHost, etcdPortList, c.EtcdHosts, c.SystemImages.Alpine)
|
||||
})
|
||||
}
|
||||
if err := errgrp.Wait(); err != nil {
|
||||
@ -448,7 +448,7 @@ func (c *Cluster) runServicePortChecks(ctx context.Context) error {
|
||||
for _, host := range c.ControlPlaneHosts {
|
||||
runHost := host
|
||||
errgrp.Go(func() error {
|
||||
return checkPlaneTCPPortsFromHost(ctx, runHost, workerPortList, c.WorkerHosts, c.SystemImages[AplineImage])
|
||||
return checkPlaneTCPPortsFromHost(ctx, runHost, workerPortList, c.WorkerHosts, c.SystemImages.Alpine)
|
||||
})
|
||||
}
|
||||
if err := errgrp.Wait(); err != nil {
|
||||
@ -462,7 +462,7 @@ func (c *Cluster) runServicePortChecks(ctx context.Context) error {
|
||||
for _, host := range c.WorkerHosts {
|
||||
runHost := host
|
||||
errgrp.Go(func() error {
|
||||
return checkPlaneTCPPortsFromHost(ctx, runHost, controlPlanePortList, c.ControlPlaneHosts, c.SystemImages[AplineImage])
|
||||
return checkPlaneTCPPortsFromHost(ctx, runHost, controlPlanePortList, c.ControlPlaneHosts, c.SystemImages.Alpine)
|
||||
})
|
||||
}
|
||||
return errgrp.Wait()
|
||||
|
@ -56,7 +56,7 @@ func reconcileWorker(ctx context.Context, currentCluster, kubeCluster *Cluster,
|
||||
return fmt.Errorf("Failed to delete worker node %s from cluster", toDeleteHost.Address)
|
||||
}
|
||||
// attempting to clean services/files on the host
|
||||
if err := reconcileHost(ctx, toDeleteHost, true, false, currentCluster.SystemImages[AplineImage], currentCluster.DockerDialerFactory); err != nil {
|
||||
if err := reconcileHost(ctx, toDeleteHost, true, false, currentCluster.SystemImages.Alpine, currentCluster.DockerDialerFactory); err != nil {
|
||||
log.Warnf(ctx, "[reconcile] Couldn't clean up worker node [%s]: %v", toDeleteHost.Address, err)
|
||||
continue
|
||||
}
|
||||
@ -97,7 +97,7 @@ func reconcileControl(ctx context.Context, currentCluster, kubeCluster *Cluster,
|
||||
return fmt.Errorf("Failed to delete controlplane node %s from cluster", toDeleteHost.Address)
|
||||
}
|
||||
// attempting to clean services/files on the host
|
||||
if err := reconcileHost(ctx, toDeleteHost, false, false, currentCluster.SystemImages[AplineImage], currentCluster.DockerDialerFactory); err != nil {
|
||||
if err := reconcileHost(ctx, toDeleteHost, false, false, currentCluster.SystemImages.Alpine, currentCluster.DockerDialerFactory); err != nil {
|
||||
log.Warnf(ctx, "[reconcile] Couldn't clean up controlplane node [%s]: %v", toDeleteHost.Address, err)
|
||||
continue
|
||||
}
|
||||
@ -110,7 +110,7 @@ func reconcileControl(ctx context.Context, currentCluster, kubeCluster *Cluster,
|
||||
cpChanged := hosts.IsHostListChanged(currentCluster.ControlPlaneHosts, kubeCluster.ControlPlaneHosts)
|
||||
if cpChanged {
|
||||
log.Infof(ctx, "[reconcile] Rolling update nginx hosts with new list of control plane hosts")
|
||||
err := services.RollingUpdateNginxProxy(ctx, kubeCluster.ControlPlaneHosts, kubeCluster.WorkerHosts, currentCluster.SystemImages[NginxProxyImage])
|
||||
err := services.RollingUpdateNginxProxy(ctx, kubeCluster.ControlPlaneHosts, kubeCluster.WorkerHosts, currentCluster.SystemImages.NginxProxy)
|
||||
if err != nil {
|
||||
return fmt.Errorf("Failed to rolling update Nginx hosts with new control plane hosts")
|
||||
}
|
||||
@ -173,7 +173,7 @@ func reconcileEtcd(ctx context.Context, currentCluster, kubeCluster *Cluster, ku
|
||||
continue
|
||||
}
|
||||
// attempting to clean services/files on the host
|
||||
if err := reconcileHost(ctx, etcdHost, false, true, currentCluster.SystemImages[AplineImage], currentCluster.DockerDialerFactory); err != nil {
|
||||
if err := reconcileHost(ctx, etcdHost, false, true, currentCluster.SystemImages.Alpine, currentCluster.DockerDialerFactory); err != nil {
|
||||
log.Warnf(ctx, "[reconcile] Couldn't clean up etcd node [%s]: %v", etcdHost.Address, err)
|
||||
continue
|
||||
}
|
||||
@ -199,7 +199,7 @@ func reconcileEtcd(ctx context.Context, currentCluster, kubeCluster *Cluster, ku
|
||||
currentCluster.Certificates = crtMap
|
||||
for _, etcdHost := range etcdToAdd {
|
||||
// deploy certificates on new etcd host
|
||||
if err := pki.DeployCertificatesOnHost(ctx, kubeCluster.EtcdHosts, etcdHost, currentCluster.Certificates, kubeCluster.SystemImages[CertDownloaderImage], pki.CertPathPrefix); err != nil {
|
||||
if err := pki.DeployCertificatesOnHost(ctx, kubeCluster.EtcdHosts, etcdHost, currentCluster.Certificates, kubeCluster.SystemImages.CertDownloader, pki.CertPathPrefix); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
|
@ -25,7 +25,7 @@ func (c *Cluster) ClusterRemove(ctx context.Context) error {
|
||||
}
|
||||
|
||||
// Clean up all hosts
|
||||
if err := cleanUpHosts(ctx, c.ControlPlaneHosts, c.WorkerHosts, c.EtcdHosts, c.SystemImages[AplineImage]); err != nil {
|
||||
if err := cleanUpHosts(ctx, c.ControlPlaneHosts, c.WorkerHosts, c.EtcdHosts, c.SystemImages.Alpine); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user