Merge "Refactor ZooKeeper service configuration"

This commit is contained in:
Zuul 2020-05-05 17:00:56 +00:00 committed by Gerrit Code Review
commit ae56155d26
1 changed files with 62 additions and 78 deletions

View File

@ -58,78 +58,62 @@ in \(input : Input)
-> let zk-conf = -> let zk-conf =
merge merge
{ None = { None =
[ Volume::{ { ServiceVolumes =
, name = "${input.name}-secret-zk" [ Volume::{
, dir = "/conf-tls" , name = "${input.name}-secret-zk"
, files = , dir = "/conf-tls"
[ { path = "zoo.cfg" , files =
, content = ./files/zoo.cfg.dhall "/conf" "/conf" [ { path = "zoo.cfg"
} , content = ./files/zoo.cfg.dhall "/conf" "/conf"
]
}
]
, Some = \(some : UserSecret) -> [] : List Volume.Type
}
input.zookeeper
let zk-client-conf =
merge
{ None =
[ Volume::{
, name = "${input.name}-zookeeper-tls"
, dir = "/etc/zookeeper-tls"
}
]
, Some = \(some : UserSecret) -> [] : List Volume.Type
}
input.zookeeper
let zk-hosts-zuul =
merge
{ None =
''
hosts=zk:2281
tls_cert=/etc/zookeeper-tls/tls.crt
tls_key=/etc/zookeeper-tls/tls.key
tls_ca=/etc/zookeeper-tls/ca.crt
''
, Some = \(some : UserSecret) -> "hosts=%(ZUUL_ZK_HOSTS)"
}
input.zookeeper
let zk-hosts-nodepool =
merge
{ None =
''
zookeeper-servers:
- host: zk
port: 2281
zookeeper-tls:
cert: /etc/zookeeper-tls/tls.crt
key: /etc/zookeeper-tls/tls.key
ca: /etc/zookeeper-tls/ca.crt
''
, Some =
\(some : UserSecret)
-> ''
zookeeper-servers:
- hosts: %(ZUUL_ZK_HOSTS)"
''
}
input.zookeeper
let {- Add support for TLS protected external zookeeper service
-} zk-hosts-secret-env =
merge
{ None = [] : List Kubernetes.EnvVar.Type
, Some =
\(some : UserSecret)
-> F.mkEnvVarSecret
[ { name = "ZUUL_ZK_HOSTS"
, secret = some.secretName
, key = F.defaultText some.key "hosts"
} }
] ]
}
]
, ClientVolumes =
[ Volume::{
, name = "${input.name}-zookeeper-tls"
, dir = "/etc/zookeeper-tls"
}
]
, Zuul =
''
hosts=zk:2281
tls_cert=/etc/zookeeper-tls/tls.crt
tls_key=/etc/zookeeper-tls/tls.key
tls_ca=/etc/zookeeper-tls/ca.crt
''
, Nodepool =
''
zookeeper-servers:
- host: zk
port: 2281
zookeeper-tls:
cert: /etc/zookeeper-tls/tls.crt
key: /etc/zookeeper-tls/tls.key
ca: /etc/zookeeper-tls/ca.crt
''
, Env = [] : List Kubernetes.EnvVar.Type
}
, Some =
\(some : UserSecret)
-> let empty = [] : List Volume.Type
in { ServiceVolumes = empty
, ClientVolumes = empty
, Zuul = "hosts=%(ZUUL_ZK_HOSTS)"
, Nodepool =
''
zookeeper-servers:
- hosts: %(ZUUL_ZK_HOSTS)"
''
, Env =
F.mkEnvVarSecret
[ { name = "ZUUL_ZK_HOSTS"
, secret = some.secretName
, key = F.defaultText some.key "hosts"
}
]
}
} }
input.zookeeper input.zookeeper
@ -168,7 +152,7 @@ in \(input : Input)
, dir = "/etc/zuul" , dir = "/etc/zuul"
, files = , files =
[ { path = "zuul.conf" [ { path = "zuul.conf"
, content = ./files/zuul.conf.dhall input zk-hosts-zuul , content = ./files/zuul.conf.dhall input zk-conf.Zuul
} }
] ]
} }
@ -196,7 +180,7 @@ in \(input : Input)
, dir = "/etc/nodepool" , dir = "/etc/nodepool"
, files = , files =
[ { path = "nodepool.yaml" [ { path = "nodepool.yaml"
, content = ./files/nodepool.yaml.dhall zk-hosts-nodepool , content = ./files/nodepool.yaml.dhall zk-conf.Nodepool
} }
] ]
} }
@ -311,7 +295,7 @@ in \(input : Input)
{ None = { None =
./components/ZooKeeper.dhall ./components/ZooKeeper.dhall
input.name input.name
(zk-client-conf # zk-conf) (zk-conf.ClientVolumes # zk-conf.ServiceVolumes)
, Some = , Some =
\(some : UserSecret) \(some : UserSecret)
-> F.KubernetesComponent.default -> F.KubernetesComponent.default
@ -366,7 +350,7 @@ in \(input : Input)
} }
let zuul-volumes = let zuul-volumes =
[ etc-zuul, gearman-config ] # zk-client-conf [ etc-zuul, gearman-config ] # zk-conf.ClientVolumes
in { Scheduler = in { Scheduler =
./components/Scheduler.dhall ./components/Scheduler.dhall
@ -376,7 +360,7 @@ in \(input : Input)
) )
zuul-data-dir zuul-data-dir
(zuul-volumes # [ sched-config ]) (zuul-volumes # [ sched-config ])
(zuul-env # db-secret-env # zk-hosts-secret-env) (zuul-env # db-secret-env # zk-conf.Env)
, Executor = , Executor =
./components/Executor.dhall ./components/Executor.dhall
input.name input.name
@ -393,7 +377,7 @@ in \(input : Input)
(input.web // zuul-image "web" input.web.image) (input.web // zuul-image "web" input.web.image)
zuul-data-dir zuul-data-dir
zuul-volumes zuul-volumes
(zuul-env # db-secret-env # zk-hosts-secret-env) (zuul-env # db-secret-env # zk-conf.Env)
, Merger = , Merger =
./components/Merger.dhall ./components/Merger.dhall
input.name input.name
@ -483,7 +467,7 @@ in \(input : Input)
[ etc-nodepool, nodepool-config ] [ etc-nodepool, nodepool-config ]
# openstack-config # openstack-config
# kubernetes-config # kubernetes-config
# zk-client-conf # zk-conf.ClientVolumes
let shard-config = let shard-config =
"cat /etc/nodepool/nodepool.yaml /etc/nodepool-config/*.yaml > /var/lib/nodepool/config.yaml; " "cat /etc/nodepool/nodepool.yaml /etc/nodepool-config/*.yaml > /var/lib/nodepool/config.yaml; "
@ -604,7 +588,7 @@ in \(input : Input)
Volume.Type Volume.Type
Kubernetes.Resource Kubernetes.Resource
mkSecret mkSecret
( zk-conf ( zk-conf.ServiceVolumes
# [ etc-zuul, etc-nodepool, etc-zuul-registry ] # [ etc-zuul, etc-nodepool, etc-zuul-registry ]
) )
# mkUnion Components.Backend.Database # mkUnion Components.Backend.Database