mirror of https://github.com/kubeflow/examples.git
81 lines
2.0 KiB
Plaintext
81 lines
2.0 KiB
Plaintext
local k8s = import "k8s.libsonnet";
|
|
|
|
local apps = k8s.apps;
|
|
local core = k8s.core;
|
|
local extensions = k8s.extensions;
|
|
|
|
local hidden = {
|
|
mapContainers(f):: {
|
|
local podContainers = super.spec.template.spec.containers,
|
|
spec+: {
|
|
template+: {
|
|
spec+: {
|
|
// IMPORTANT: This overwrites the 'containers' field
|
|
// for this deployment.
|
|
containers: std.map(f, podContainers),
|
|
},
|
|
},
|
|
},
|
|
},
|
|
|
|
mapContainersWithName(names, f) ::
|
|
local nameSet =
|
|
if std.type(names) == "array"
|
|
then std.set(names)
|
|
else std.set([names]);
|
|
local inNameSet(name) = std.length(std.setInter(nameSet, std.set([name]))) > 0;
|
|
self.mapContainers(
|
|
function(c)
|
|
if std.objectHas(c, "name") && inNameSet(c.name)
|
|
then f(c)
|
|
else c
|
|
),
|
|
};
|
|
|
|
k8s + {
|
|
apps:: apps + {
|
|
v1beta1:: apps.v1beta1 + {
|
|
local v1beta1 = apps.v1beta1,
|
|
|
|
daemonSet:: v1beta1.daemonSet + {
|
|
mapContainers(f):: hidden.mapContainers(f),
|
|
mapContainersWithName(names, f):: hidden.mapContainersWithName(names, f),
|
|
},
|
|
|
|
deployment:: v1beta1.deployment + {
|
|
mapContainers(f):: hidden.mapContainers(f),
|
|
mapContainersWithName(names, f):: hidden.mapContainersWithName(names, f),
|
|
},
|
|
},
|
|
},
|
|
|
|
core:: core + {
|
|
v1:: core.v1 + {
|
|
list:: {
|
|
new(items)::
|
|
{apiVersion: "v1"} +
|
|
{kind: "List"} +
|
|
self.items(items),
|
|
|
|
items(items):: if std.type(items) == "array" then {items+: items} else {items+: [items]},
|
|
},
|
|
},
|
|
},
|
|
|
|
extensions:: extensions + {
|
|
v1beta1:: extensions.v1beta1 + {
|
|
local v1beta1 = extensions.v1beta1,
|
|
|
|
daemonSet:: v1beta1.daemonSet + {
|
|
mapContainers(f):: hidden.mapContainers(f),
|
|
mapContainersWithName(names, f):: hidden.mapContainersWithName(names, f),
|
|
},
|
|
|
|
deployment:: v1beta1.deployment + {
|
|
mapContainers(f):: hidden.mapContainers(f),
|
|
mapContainersWithName(names, f):: hidden.mapContainersWithName(names, f),
|
|
},
|
|
},
|
|
},
|
|
}
|