From 05bfad377c5ded9a09aaa4e46c29f171ac9128cc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ey=C3=BE=C3=B3r=20Magn=C3=BAsson?= Date: Sun, 2 Jun 2019 17:10:35 +0200 Subject: [PATCH] feat(k8s): optionally enable ingress controll for remote k8s --- docs/reference/providers/kubernetes.md | 9 +++++++++ garden-service/src/plugins/kubernetes/config.ts | 4 ++++ garden-service/src/plugins/kubernetes/kubernetes.ts | 8 +++++++- 3 files changed, 20 insertions(+), 1 deletion(-) diff --git a/docs/reference/providers/kubernetes.md b/docs/reference/providers/kubernetes.md index d89a763713..635267501b 100644 --- a/docs/reference/providers/kubernetes.md +++ b/docs/reference/providers/kubernetes.md @@ -578,6 +578,14 @@ The external HTTPS port of the cluster's ingress controller. Specify which namespace to deploy services to (defaults to ). Note that the framework generates other namespaces as well with this name as a prefix. +| Type | Required | +| ---- | -------- | +| `string` | No +### `environments[].providers[].setupIngressController` +[environments](#environments) > [providers](#environments[].providers[]) > setupIngressController + +Set this to `nginx` to install/enable the NGINX ingress controller. + | Type | Required | | ---- | -------- | | `string` | No @@ -643,4 +651,5 @@ environments: ingressHttpPort: 80 ingressHttpsPort: 443 namespace: + setupIngressController: false ``` diff --git a/garden-service/src/plugins/kubernetes/config.ts b/garden-service/src/plugins/kubernetes/config.ts index be762f0477..eba89e9ce0 100644 --- a/garden-service/src/plugins/kubernetes/config.ts +++ b/garden-service/src/plugins/kubernetes/config.ts @@ -274,5 +274,9 @@ export const configSchema = kubernetesConfigBase "Specify which namespace to deploy services to (defaults to ). " + "Note that the framework generates other namespaces as well with this name as a prefix.", ), + setupIngressController: Joi.string() + .allow("nginx", false, null) + .default(false) + .description("Set this to `nginx` to install/enable the NGINX ingress controller."), _system: Joi.any().meta({ internal: true }), }) diff --git a/garden-service/src/plugins/kubernetes/kubernetes.ts b/garden-service/src/plugins/kubernetes/kubernetes.ts index acf76e99ed..2502795e17 100644 --- a/garden-service/src/plugins/kubernetes/kubernetes.ts +++ b/garden-service/src/plugins/kubernetes/kubernetes.ts @@ -26,10 +26,16 @@ import { ConfigurationError } from "../../exceptions" export const name = "kubernetes" export async function configureProvider({ projectName, config }: ConfigureProviderParams) { + config._systemServices = [] + if (!config.namespace) { config.namespace = projectName } + if (config.setupIngressController === "nginx") { + config._systemServices.push("ingress-controller", "default-backend") + } + if (config.buildMode === "cluster-docker") { if (config.deploymentRegistry) { throw new ConfigurationError( @@ -47,7 +53,7 @@ export async function configureProvider({ projectName, config }: ConfigureProvid } // Deploy build services on init - config._systemServices = ["docker-daemon", "docker-registry", "registry-proxy"] + config._systemServices.push("docker-daemon", "docker-registry", "registry-proxy") } else if (!config.deploymentRegistry) { throw new ConfigurationError(