From b15b30f59f63b3e0e0016425168d4bb429c9ec1b Mon Sep 17 00:00:00 2001 From: Jon Edvald Date: Mon, 10 Jun 2019 21:39:40 +0200 Subject: [PATCH] fix(k8s): startup error when using remote kubernetes provider --- .../src/plugins/container/config.ts | 1 - .../src/plugins/kubernetes/kubernetes.ts | 9 +-------- .../src/plugins/kubernetes/system.ts | 20 ++++++++++--------- 3 files changed, 12 insertions(+), 18 deletions(-) diff --git a/garden-service/src/plugins/container/config.ts b/garden-service/src/plugins/container/config.ts index a32f2fda80..04853d0de3 100644 --- a/garden-service/src/plugins/container/config.ts +++ b/garden-service/src/plugins/container/config.ts @@ -261,7 +261,6 @@ export interface ContainerRegistryConfig { export const containerRegistryConfigSchema = Joi.object() .keys({ hostname: Joi.string() - .hostname() .required() .description("The hostname (and optionally port, if not the default port) of the registry.") .example("gcr.io"), diff --git a/garden-service/src/plugins/kubernetes/kubernetes.ts b/garden-service/src/plugins/kubernetes/kubernetes.ts index 2502795e17..0fab7b0f9d 100644 --- a/garden-service/src/plugins/kubernetes/kubernetes.ts +++ b/garden-service/src/plugins/kubernetes/kubernetes.ts @@ -37,13 +37,6 @@ export async function configureProvider({ projectName, config }: ConfigureProvid } if (config.buildMode === "cluster-docker") { - if (config.deploymentRegistry) { - throw new ConfigurationError( - `kubernetes: deploymentRegistry should not be set in config if using cluster-docker build mode`, - { config }, - ) - } - // This is a special configuration, used in combination with the registry-proxy service, // to make sure every node in the cluster can resolve the image from the registry we deploy in-cluster. config.deploymentRegistry = { @@ -55,7 +48,7 @@ export async function configureProvider({ projectName, config }: ConfigureProvid // Deploy build services on init config._systemServices.push("docker-daemon", "docker-registry", "registry-proxy") - } else if (!config.deploymentRegistry) { + } else if (config.name !== "local-kubernetes" && !config.deploymentRegistry) { throw new ConfigurationError( `kubernetes: must specify deploymentRegistry in config if using local build mode`, { config }, diff --git a/garden-service/src/plugins/kubernetes/system.ts b/garden-service/src/plugins/kubernetes/system.ts index 0968fb906b..e62dd42576 100644 --- a/garden-service/src/plugins/kubernetes/system.ts +++ b/garden-service/src/plugins/kubernetes/system.ts @@ -13,7 +13,7 @@ import * as semver from "semver" import { STATIC_DIR, DEFAULT_API_VERSION } from "../../constants" import { Garden } from "../../garden" -import { KubernetesProvider, KubernetesPluginContext } from "./config" +import { KubernetesProvider, KubernetesPluginContext, KubernetesConfig } from "./config" import { LogEntry } from "../../logger/log-entry" import { KubeApi } from "./api" import { createNamespace } from "./namespace" @@ -34,6 +34,15 @@ export const systemNamespace = "garden-system" export const systemMetadataNamespace = "garden-system--metadata" export async function getSystemGarden(provider: KubernetesProvider, variables: PrimitiveMap): Promise { + const sysProvider: KubernetesConfig = { + ...provider.config, + + environments: ["default"], + name: provider.name, + namespace: systemNamespace, + _systemServices: [], + } + return Garden.factory(systemProjectPath, { environmentName: "default", config: { @@ -45,14 +54,7 @@ export async function getSystemGarden(provider: KubernetesProvider, variables: P environments: [ { name: "default", variables: {} }, ], - providers: [ - { - name: "local-kubernetes", - context: provider.config.context, - namespace: systemNamespace, - _systemServices: [], - }, - ], + providers: [sysProvider], variables, }, })