diff --git a/cluster/addons.go b/cluster/addons.go index 26301702..cda00a6a 100644 --- a/cluster/addons.go +++ b/cluster/addons.go @@ -17,9 +17,12 @@ const ( ) type ingressOptions struct { - RBACConfig string - Options map[string]string - NodeSelector map[string]string + RBACConfig string + Options map[string]string + NodeSelector map[string]string + AlpineImage string + IngressImage string + IngressBackend string } func (c *Cluster) deployK8sAddOns(ctx context.Context) error { @@ -130,9 +133,12 @@ func (c *Cluster) deployIngress(ctx context.Context) error { return nil } ingressConfig := ingressOptions{ - RBACConfig: c.Authorization.Mode, - Options: c.Ingress.Options, - NodeSelector: c.Ingress.NodeSelector, + RBACConfig: c.Authorization.Mode, + Options: c.Ingress.Options, + NodeSelector: c.Ingress.NodeSelector, + AlpineImage: c.SystemImages.Alpine, + IngressImage: c.SystemImages.Ingress, + IngressBackend: c.SystemImages.IngressBackend, } // Currently only deploying nginx ingress controller ingressYaml, err := addons.GetNginxIngressManifest(ingressConfig) diff --git a/cluster/defaults.go b/cluster/defaults.go index 7e632606..a34287d3 100644 --- a/cluster/defaults.go +++ b/cluster/defaults.go @@ -28,7 +28,10 @@ const ( DefaultNginxProxyImage = "rancher/rke-nginx-proxy:v0.1.1" DefaultCertDownloaderImage = "rancher/rke-cert-deployer:v0.1.1" DefaultKubernetesServicesSidecarImage = "rancher/rke-service-sidekick:v0.1.0" - DefaultIngressController = "nginx" + + DefaultIngressController = "nginx" + DefaultIngressImage = "rancher/nginx-ingress-controller:0.10.2" + DefaultIngressBackendImage = "rancher/nginx-ingress-controller-defaultbackend:1.4" DefaultEtcdImage = "rancher/etcd:v3.0.17" DefaultK8sImage = "rancher/k8s:v1.8.7-rancher1-1" @@ -160,6 +163,8 @@ func (c *Cluster) setClusterImageDefaults() { &c.SystemImages.CanalFlannel: DefaultCanalFlannelImage, &c.SystemImages.WeaveNode: DefaultWeaveImage, &c.SystemImages.WeaveCNI: DefaultWeaveCNIImage, + &c.SystemImages.Ingress: DefaultIngressImage, + &c.SystemImages.IngressBackend: DefaultIngressBackendImage, } for k, v := range systemImagesDefaultsMap { setDefaultIfEmpty(k, v) diff --git a/templates/nginx-ingress.go b/templates/nginx-ingress.go index 63cdd5c9..c44f4f18 100644 --- a/templates/nginx-ingress.go +++ b/templates/nginx-ingress.go @@ -188,14 +188,14 @@ spec: - sh - -c - sysctl -w net.core.somaxconn=32768; sysctl -w net.ipv4.ip_local_port_range="1024 65535" - image: alpine:3.6 + image: {{.AlpineImage}} imagePullPolicy: IfNotPresent name: sysctl securityContext: privileged: true containers: - name: nginx-ingress-controller - image: quay.io/kubernetes-ingress-controller/nginx-ingress-controller:0.10.2 + image: {{.IngressImage}} args: - /nginx-ingress-controller - --default-backend-service=$(POD_NAMESPACE)/default-http-backend @@ -257,7 +257,7 @@ spec: # Any image is permissable as long as: # 1. It serves a 404 page at / # 2. It serves 200 on a /healthz endpoint - image: gcr.io/google_containers/defaultbackend:1.4 + image: {{.IngressBackend}} livenessProbe: httpGet: path: /healthz