Merge "Add support for custom container image name"

This commit is contained in:
Zuul 2020-05-05 17:00:55 +00:00 committed by Gerrit Code Review
commit 0b1d0c1445
7 changed files with 48 additions and 23 deletions

View File

@ -2,10 +2,12 @@ let Kubernetes = ../../Kubernetes.dhall
let F = ../functions.dhall
let InputExecutor = (../input.dhall).Executor.Type
let JobVolume = (../input.dhall).JobVolume.Type
in \(app-name : Text)
-> \(image-name : Optional Text)
-> \(input-executor : InputExecutor)
-> \(data-dir : List F.Volume.Type)
-> \(volumes : List F.Volume.Type)
-> \(env : List Kubernetes.EnvVar.Type)
@ -31,7 +33,7 @@ in \(app-name : Text)
, claim-size = 0
, container = Kubernetes.Container::{
, name = "executor"
, image = image-name
, image = input-executor.image
, args = Some [ "zuul-executor", "-d" ]
, imagePullPolicy = Some "IfNotPresent"
, ports = Some

View File

@ -2,8 +2,10 @@ let Kubernetes = ../../Kubernetes.dhall
let F = ../functions.dhall
let InputMerger = (../input.dhall).Merger.Type
in \(app-name : Text)
-> \(image-name : Optional Text)
-> \(input-merger : InputMerger)
-> \(data-dir : List F.Volume.Type)
-> \(volumes : List F.Volume.Type)
-> \(env : List Kubernetes.EnvVar.Type)
@ -18,7 +20,7 @@ in \(app-name : Text)
, volumes = volumes
, container = Kubernetes.Container::{
, name = "merger"
, image = image-name
, image = input-merger.image
, args = Some [ "zuul-merger", "-d" ]
, imagePullPolicy = Some "IfNotPresent"
, env = Some env

View File

@ -5,9 +5,8 @@ let F = ../functions.dhall
let InputPreview = (../input.dhall).Preview.Type
in \(app-name : Text)
-> \(image-name : Optional Text)
-> \(data-dir : List F.Volume.Type)
-> \(input-preview : InputPreview)
-> \(data-dir : List F.Volume.Type)
-> F.KubernetesComponent::{
, Service = Some (F.mkService app-name "preview" "preview" 80)
, Deployment = Some
@ -19,7 +18,7 @@ in \(app-name : Text)
, data-dir = data-dir
, container = Kubernetes.Container::{
, name = "preview"
, image = image-name
, image = input-preview.image
, imagePullPolicy = Some "IfNotPresent"
, ports = Some
[ Kubernetes.ContainerPort::{

View File

@ -30,10 +30,9 @@ let registry-env =
)
in \(app-name : Text)
-> \(image-name : Optional Text)
-> \(input-registry : InputRegistry)
-> \(data-dir : List F.Volume.Type)
-> \(volumes : List F.Volume.Type)
-> \(input-registry : InputRegistry)
-> F.KubernetesComponent::{
, Service = Some (F.mkService app-name "registry" "registry" 9000)
, StatefulSet = Some
@ -47,7 +46,7 @@ in \(app-name : Text)
, claim-size = F.defaultNat input-registry.storage-size 20
, container = Kubernetes.Container::{
, name = "registry"
, image = image-name
, image = input-registry.image
, args = Some
[ "zuul-registry"
, "-c"

View File

@ -2,8 +2,10 @@ let Kubernetes = ../../Kubernetes.dhall
let F = ../functions.dhall
let InputScheduler = (../input.dhall).Scheduler.Type
in \(app-name : Text)
-> \(image-name : Optional Text)
-> \(input-scheduler : InputScheduler)
-> \(data-dir : List F.Volume.Type)
-> \(volumes : List F.Volume.Type)
-> \(env : List Kubernetes.EnvVar.Type)
@ -20,7 +22,7 @@ in \(app-name : Text)
, claim-size = 5
, container = Kubernetes.Container::{
, name = "scheduler"
, image = image-name
, image = input-scheduler.image
, args = Some [ "zuul-scheduler", "-d" ]
, imagePullPolicy = Some "IfNotPresent"
, ports = Some

View File

@ -2,8 +2,10 @@ let Kubernetes = ../../Kubernetes.dhall
let F = ../functions.dhall
let InputWeb = (../input.dhall).Web.Type
in \(app-name : Text)
-> \(image-name : Optional Text)
-> \(input-web : InputWeb)
-> \(data-dir : List F.Volume.Type)
-> \(volumes : List F.Volume.Type)
-> \(env : List Kubernetes.EnvVar.Type)
@ -19,7 +21,7 @@ in \(app-name : Text)
, volumes = volumes
, container = Kubernetes.Container::{
, name = "web"
, image = image-name
, image = input-web.image
, args = Some [ "zuul-web", "-d" ]
, imagePullPolicy = Some "IfNotPresent"
, ports = Some

View File

@ -148,6 +148,17 @@ in \(input : Input)
let image = \(name : Text) -> "${org}/${name}:${version}"
let set-image =
\(default-name : Text)
-> \(input-name : Optional Text)
-> { image =
merge
{ None = Some default-name
, Some = \(_ : Text) -> input-name
}
input-name
}
let etc-zuul =
Volume::{
, name = input.name ++ "-secret-zuul"
@ -306,7 +317,7 @@ in \(input : Input)
}
, Zuul =
let zuul-image =
\(name : Text) -> Some (image ("zuul-" ++ name))
\(name : Text) -> set-image (image "zuul-${name}")
let zuul-env =
F.mkEnvVarValue (toMap { HOME = "/var/lib/zuul" })
@ -357,14 +368,18 @@ in \(input : Input)
in { Scheduler =
./components/Scheduler.dhall
input.name
(zuul-image "scheduler")
( input.scheduler
// zuul-image "scheduler" input.scheduler.image
)
zuul-data-dir
(zuul-volumes # [ sched-config ])
(zuul-env # db-secret-env # zk-hosts-secret-env)
, Executor =
./components/Executor.dhall
input.name
(zuul-image "executor")
( input.executor
// zuul-image "executor" input.executor.image
)
zuul-data-dir
(zuul-volumes # [ executor-ssh-key ])
(zuul-env # db-nosecret-env)
@ -372,30 +387,34 @@ in \(input : Input)
, Web =
./components/Web.dhall
input.name
(zuul-image "web")
(input.web // zuul-image "web" input.web.image)
zuul-data-dir
zuul-volumes
(zuul-env # db-secret-env # zk-hosts-secret-env)
, Merger =
./components/Merger.dhall
input.name
(zuul-image "merger")
( input.merger
// zuul-image "merger" input.merger.image
)
zuul-data-dir
zuul-volumes
(zuul-env # db-nosecret-env)
, Registry =
./components/Registry.dhall
input.name
(zuul-image "registry")
( input.registry
// zuul-image "registry" input.registry.image
)
zuul-data-dir
[ etc-zuul-registry ]
input.registry
, Preview =
./components/Preview.dhall
input.name
(zuul-image "preview")
( input.preview
// zuul-image "preview" input.preview.image
)
zuul-data-dir
input.preview
}
, Nodepool =
let nodepool-image =