kube: add .volume field on PVCs and ConfigMaps

Change-Id: I93eec44bd6df4ecb0044a4797faa9bf6fd26802d
Reviewed-on: https://gerrit.hackerspace.pl/c/hscloud/+/1811
Reviewed-by: q3k <q3k@hackerspace.pl>
changes/11/1811/4
radex 2023-11-24 13:28:57 +01:00
parent 7a4c27d28c
commit 4ffc64d97d
29 changed files with 54 additions and 46 deletions

View File

@ -29,7 +29,7 @@ local postgres = import '../../kube/postgres_v.libsonnet';
template+: {
spec+: {
volumes_: {
media: kube.PersistentVolumeClaimVolume(top.media),
media: top.media.volume,
},
containers_: {
default: kube.Container('default') {

View File

@ -87,7 +87,7 @@ local kube = import "../../../kube/kube.libsonnet";
spec+: {
volumes_: {
config: kube.SecretVolume(bridge.config),
data: kube.PersistentVolumeClaimVolume(bridge.dataVolume),
data: bridge.dataVolume.volume,
registration: { secret: { secretName: "appservice-irc-%s-registration" % [name] } },
} + (if cfg.passwordEncryptionKeySecret != null then {
key: { secret: { secretName: cfg.passwordEncryptionKeySecret } },

View File

@ -99,7 +99,7 @@ local kube = import "../../../kube/kube.libsonnet";
spec+: {
volumes_: {
config: kube.SecretVolume(bridge.config),
data: kube.PersistentVolumeClaimVolume(bridge.dataVolume),
data: bridge.dataVolume.volume,
registration: { secret: { secretName: "appservice-telegram-%s-registration" % [name] } },
},
initContainers: [

View File

@ -71,8 +71,8 @@ local kube = import "../../../kube/kube.libsonnet";
template+: {
spec+: {
volumes_: {
config: kube.ConfigMapVolume(top.configMap),
data: kube.PersistentVolumeClaimVolume(top.dataVolume),
config: top.configMap.volume,
data: top.dataVolume.volume,
},
containers_: {
coturn: kube.Container("coturn") {

View File

@ -170,8 +170,8 @@ local postgres = import "../../../kube/postgres.libsonnet";
template+: {
spec+: {
volumes_: {
data: kube.PersistentVolumeClaimVolume(top.dataVolume),
config: kube.ConfigMapVolume(top.synapseConfigMap),
data: top.dataVolume.volume,
config: top.synapseConfigMap.volume,
} + {
[k]: { secret: { secretName: "appservice-%s-registration" % [k] } }
for k in std.objectFields(top.appservices)
@ -309,7 +309,7 @@ local postgres = import "../../../kube/postgres.libsonnet";
template+: {
spec+: {
volumes_: {
config: kube.ConfigMapVolume(top.riotConfigMap),
config: top.riotConfigMap.volume,
},
containers_: {
web: kube.Container("riot-web") {

View File

@ -58,7 +58,7 @@ local kube = import "../../../kube/kube.libsonnet";
template+: {
spec+: {
volumes_: {
config: kube.ConfigMapVolume(top.configMap),
config: top.configMap.volume,
},
containers_: {
web: kube.Container("riot-web") {

View File

@ -121,13 +121,13 @@ local kube = import "../../../kube/kube.libsonnet";
template+: {
spec+: {
volumes_: {
config: kube.ConfigMapVolume(top.configMap),
config: top.configMap.volume,
secrets: { secret: { secretName: "synapse" } },
} + {
[k]: { secret: { secretName: "appservice-%s-registration" % [k] } }
for k in std.objectFields(top.appservices)
} + if worker.cfg.mountData then {
data: kube.PersistentVolumeClaimVolume(top.dataVolume),
data: top.dataVolume.volume,
} else {},
containers_: {
web: kube.Container("synapse") {

View File

@ -61,7 +61,7 @@ local kube = import "../../kube/hscloud.libsonnet";
},
},
volumes_: {
data: kube.PersistentVolumeClaimVolume(top.pvc),
data: top.pvc.volume,
},
},
},

View File

@ -152,7 +152,7 @@ local kube = import "../../../kube/kube.libsonnet";
template+: {
spec+: {
volumes_: {
config: kube.ConfigMapVolume(radio.configMap),
config: radio.configMap.volume,
},
containers_: {
radio: kube.Container(radio.makeName("radio")) {

View File

@ -92,7 +92,7 @@ local kube = import "../../../kube/hscloud.libsonnet";
template+: {
spec+: {
volumes_: {
cache: kube.PersistentVolumeClaimVolume(ix.octorpki.cache),
cache: ix.octorpki.cache.volume,
},
containers_: {
octorpki: kube.Container(ix.name("octorpki")){
@ -241,8 +241,8 @@ local kube = import "../../../kube/hscloud.libsonnet";
alice: ix.component("alice") {
port: 7340,
volumes: {
config: kube.ConfigMapVolume(ix.alice.configMap),
theme: kube.ConfigMapVolume(ix.alice.themeMap),
config: ix.alice.configMap.volume,
theme: ix.alice.themeMap.volume,
},
volumeMounts: {
config: {

View File

@ -79,7 +79,7 @@ local prototext = import "../../../kube/prototext.libsonnet";
},
},
volumes_: {
config: kube.ConfigMapVolume(env.config),
config: env.config.volume,
secret: kube.SecretVolume(env.secret),
},
},

View File

@ -315,7 +315,7 @@ local bindServiceAccountClusterRole(sa, cr) = kube.ClusterRoleBinding(cr.metadat
cni_bin: kube.HostPathVolume("/opt/cni/bin"),
cni_config: kube.HostPathVolume("/opt/cni/conf"),
secrets: kube.SecretVolume(env.secrets),
bird_cfg_template: kube.ConfigMapVolume(env.calicoMetallbBird),
bird_cfg_template: env.calicoMetallbBird.volume,
# TODO flexvol-driver-host, policysync
},
initContainers_: {

View File

@ -191,8 +191,8 @@ local kube = import "../../../kube/kube.libsonnet";
template+: {
spec+: {
volumes_: {
data: kube.PersistentVolumeClaimVolume(env.authVolumeClaim),
config: kube.ConfigMapVolume(env.authConfig),
data: env.authVolumeClaim.volume,
config: env.authConfig.volume,
certs: {
secret: { secretName: env.authCertificate.spec.secretName },
},
@ -232,7 +232,7 @@ local kube = import "../../../kube/kube.libsonnet";
template+: {
spec+: {
volumes_: {
config: kube.ConfigMapVolume(env.registryConfig),
config: env.registryConfig.volume,
certs: {
secret: { secretName: env.registryCertificate.spec.secretName },
},

View File

@ -980,9 +980,9 @@ local oa = kube.OpenAPI;
},
},
volumes_: {
data: kube.PersistentVolumeClaimVolume(cluster.benji.data),
data: cluster.benji.data.volume,
benjiconfig: kube.SecretVolume(cluster.benji.config),
extrabins: kube.ConfigMapVolume(cluster.benji.extrabins),
extrabins: cluster.benji.extrabins.volume,
monendpoints: {
configMap: {
name: "rook-ceph-mon-endpoints",

View File

@ -176,7 +176,7 @@ local kube = import "../../../kube/hscloud.libsonnet";
fsGroup: 1000, # gerrit uid
},
volumes_: {
config: kube.ConfigMapVolume(top.configmap),
config: top.configmap.volume,
secure: { secret: { secretName: cfg.secureSecret} },
} {
[name]: kube.PersistentVolumeClaimVolume(top.volumes[name])

View File

@ -16,8 +16,8 @@ local kube = import "../../kube/kube.libsonnet";
cfg+: {
image: cfg.image,
volumes+: {
data: kube.PersistentVolumeClaimVolume(sourcegraph.pvc.data),
etc: kube.PersistentVolumeClaimVolume(sourcegraph.pvc.etc),
data: sourcegraph.pvc.data.volume,
etc: sourcegraph.pvc.etc.volume,
},
securityContext: {
runAsUser: 0,

View File

@ -113,9 +113,9 @@ local proxy = import "proxy.libsonnet";
template+: {
spec+: {
volumes_: {
data: kube.PersistentVolumeClaimVolume(top.volumeClaimData),
mods: kube.PersistentVolumeClaimVolume(top.volumeClaimMods),
config: kube.ConfigMapVolume(top.configMap),
data: top.volumeClaimData.volume,
mods: top.volumeClaimMods.volume,
config: top.configMap.volume,
},
initContainers_: {
modproxy: kube.Container("modproxy") {

View File

@ -20,7 +20,7 @@ local kube = import "../../../kube/kube.libsonnet";
template+: {
spec+: {
volumes_: {
cas: kube.PersistentVolumeClaimVolume(top.pvc),
cas: top.pvc.volume,
},
containers_: {
proxy: kube.Container("proxy") {

View File

@ -162,10 +162,10 @@ local kube = import "../../kube/kube.libsonnet";
fsGroup: 1000,
},
volumes_: {
backups: kube.PersistentVolumeClaimVolume(game.pvcs.backups),
saves: kube.PersistentVolumeClaimVolume(game.pvcs.saves),
server: kube.PersistentVolumeClaimVolume(game.pvcs.server),
scripts: kube.ConfigMapVolume(game.scripts),
backups: game.pvcs.backups.volume,
saves: game.pvcs.saves.volume,
server: game.pvcs.server.volume,
scripts: game.scripts.volume,
},
},
},

View File

@ -38,7 +38,7 @@ local redis = import "../../kube/redis.libsonnet";
cfg+: {
image: cfg.image,
volumes+: {
data: kube.PersistentVolumeClaimVolume(pretalx.volumeData),
data: pretalx.volumeData.volume,
config: kube.SecretVolume(pretalx.config),
},

View File

@ -78,7 +78,7 @@ local redis = import "../../kube/redis.libsonnet";
template+: {
spec+: {
volumes_: {
data: kube.PersistentVolumeClaimVolume(top.dataVolume),
data: top.dataVolume.volume,
},
securityContext: {

View File

@ -32,11 +32,19 @@ kube {
},
},
// Remove deprecated `volume.beta.kubernetes.io/storage-class` annotation
PersistentVolumeClaim(name): kube.PersistentVolumeClaim(name) {
// Convenience for creating a volume from a PVC
volume:: kube.PersistentVolumeClaimVolume(self),
// Remove deprecated `volume.beta.kubernetes.io/storage-class` annotation
metadata+: { annotations: {} },
},
ConfigMap(name): kube.ConfigMap(name) {
// Convenience for creating a volume from a ConfigMap
volume:: kube.ConfigMapVolume(self),
},
// Add `target` field
Service(name): kube.Service(name) {
// Deployment, Pod, DaemonSet, etc. that this Service is targeting.

View File

@ -78,7 +78,7 @@ local kube = import "kube.libsonnet";
template+: {
spec+: {
volumes_: {
data: kube.PersistentVolumeClaimVolume(postgres.volumeClaim),
data: postgres.volumeClaim.volume,
},
containers_: {
postgres: kube.Container(postgres.makeName("postgres")) {

View File

@ -57,7 +57,7 @@ local kube = import "kube.libsonnet";
template+: {
spec+: {
volumes_: {
data: kube.PersistentVolumeClaimVolume(postgres.volumeClaim),
data: postgres.volumeClaim.volume,
},
containers_: {
postgres: kube.Container(postgres.makeName("postgres")) {

View File

@ -54,7 +54,7 @@ local kube = import "kube.libsonnet";
template+: {
spec+: {
volumes_: {
data: kube.PersistentVolumeClaimVolume(redis.volumeClaim),
data: redis.volumeClaim.volume,
},
containers_: {
redis: kube.Container(redis.makeName("redis")) {

View File

@ -246,8 +246,8 @@ local kube = import "../../../kube/kube.libsonnet";
{ key: "CriticalAddonsOnly", operator: "Exists" },
],
volumes_: {
data: kube.PersistentVolumeClaimVolume(prometheus.pvc),
configmap: kube.ConfigMapVolume(prometheus.configmap),
data: prometheus.pvc.volume,
configmap: prometheus.configmap.volume,
},
},
},

View File

@ -110,7 +110,7 @@ local kube = import "../../../kube/hscloud.libsonnet";
}
},
volumes_: {
data: kube.PersistentVolumeClaimVolume(victoria.pvc),
data: victoria.pvc.volume,
secret: kube.SecretVolume(victoria.authSecret),
},
},
@ -219,7 +219,7 @@ local kube = import "../../../kube/hscloud.libsonnet";
},
},
volumes_: {
data: kube.PersistentVolumeClaimVolume(grafana.pvc),
data: grafana.pvc.volume,
config: kube.SecretVolume(grafana.config) {
secret+: {
items: [

View File

@ -18,7 +18,7 @@ local kube = import "../../../kube/hscloud.libsonnet";
template+: {
spec+: {
volumes_: {
data: kube.PersistentVolumeClaimVolume(top.data),
data: top.data.volume,
},
containers_: {
default: kube.Container("default") {

View File

@ -73,7 +73,7 @@ local kube = import "../../../kube/hscloud.libsonnet";
template+: {
spec+: {
volumes_: {
data: kube.PersistentVolumeClaimVolume(mysql.volume),
data: mysql.volume.volume,
},
containers_: {
default: kube.Container("default") {