diff --git a/cluster/juju/layers/kubernetes-worker/config.yaml b/cluster/juju/layers/kubernetes-worker/config.yaml index b335495966b..b00417f9453 100644 --- a/cluster/juju/layers/kubernetes-worker/config.yaml +++ b/cluster/juju/layers/kubernetes-worker/config.yaml @@ -59,6 +59,15 @@ options: The value for this config must be a JSON array of credential objects, like this: [{"server": "my.registry", "username": "myUser", "password": "myPass"}] + ingress-ssl-chain-completion: + type: boolean + default: false + description: | + Enable chain completion for TLS certificates used by the nginx ingress + controller. Set this to true if you would like the ingress controller + to attempt auto-retrieval of intermediate certificates. The default + (false) is recommended for all production kubernetes installations, and + any environment which does not have outbound Internet access. nginx-image: type: string default: "auto" diff --git a/cluster/juju/layers/kubernetes-worker/reactive/kubernetes_worker.py b/cluster/juju/layers/kubernetes-worker/reactive/kubernetes_worker.py index d3678208689..e1ce3963359 100644 --- a/cluster/juju/layers/kubernetes-worker/reactive/kubernetes_worker.py +++ b/cluster/juju/layers/kubernetes-worker/reactive/kubernetes_worker.py @@ -700,6 +700,7 @@ def create_kubeconfig(kubeconfig, server, ca, key=None, certificate=None, @when_any('config.changed.default-backend-image', + 'config.changed.ingress-ssl-chain-completion', 'config.changed.nginx-image') @when('kubernetes-worker.config.created') def launch_default_ingress_controller(): @@ -742,6 +743,7 @@ def launch_default_ingress_controller(): return # Render the ingress daemon set controller manifest + context['ssl_chain_completion'] = config.get('ingress-ssl-chain-completion') context['ingress_image'] = config.get('nginx-image') if context['ingress_image'] == "" or context['ingress_image'] == "auto": images = {'amd64': 'quay.io/kubernetes-ingress-controller/nginx-ingress-controller:0.15.0', # noqa diff --git a/cluster/juju/layers/kubernetes-worker/templates/ingress-daemon-set.yaml b/cluster/juju/layers/kubernetes-worker/templates/ingress-daemon-set.yaml index 744913cab71..b305d32e7fb 100644 --- a/cluster/juju/layers/kubernetes-worker/templates/ingress-daemon-set.yaml +++ b/cluster/juju/layers/kubernetes-worker/templates/ingress-daemon-set.yaml @@ -176,3 +176,4 @@ spec: - /nginx-ingress-controller - --default-backend-service=$(POD_NAMESPACE)/default-http-backend - --configmap=$(POD_NAMESPACE)/nginx-load-balancer-conf + - --enable-ssl-chain-completion={{ ssl_chain_completion }}