blob: ec89291e780e249f5dd31b9ea62ca732c5e7fef0 [file] [log] [blame]
local kube = import "../../../kube/kube.libsonnet";
{
IX: {
local ix = self,
local cfg = ix.cfg,
cfg:: {
octorpki: {
image: "registry.k0.hswaw.net/q3k/octorpki:1565367301-909a166cac3bdade6d5b8344fa590aa884114911",
storageClassName: "waw-hdd-redundant-2",
resources: {
requests: { cpu: "100m", memory: "500Mi" },
limits: { cpu: "500m", memory: "1Gi" },
},
},
appName: "ix",
namespace: error "namespace must be defined",
prefix: "",
},
namespace: kube.Namespace(cfg.namespace),
name(component):: cfg.prefix + component,
metadata(component):: {
namespace: cfg.namespace,
labels: {
"app.kubernetes.io/name": cfg.appName,
"app.kubernetes.io/managed-by": "kubecfg",
"app.kubernetes.io/component": component,
},
},
octorpki: {
cache: kube.PersistentVolumeClaim(ix.name("octorpki")) {
metadata+: ix.metadata("octorpki"),
spec+: {
storageClassName: cfg.octorpki.storageClassName,
accessModes: [ "ReadWriteOnce" ],
resources: {
requests: {
storage: "2Gi",
},
},
},
},
deployment: kube.Deployment(ix.name("octorpki")) {
metadata+: ix.metadata("octorpki"),
spec+: {
template+: {
spec+: {
volumes_: {
cache: kube.PersistentVolumeClaimVolume(ix.octorpki.cache),
},
containers_: {
octorpki: kube.Container(ix.name("octorpki")){
image: cfg.octorpki.image,
args: [
"/octorpki/entrypoint.sh",
],
ports_: {
client: { containerPort: 8080 },
},
volumeMounts_: {
cache: { mountPath: "/cache" },
},
resources: cfg.octorpki.resources,
},
},
},
},
},
},
svc: kube.Service(ix.name("octorpki")) {
metadata+: ix.metadata("octorpki"),
target_pod:: ix.octorpki.deployment.spec.template,
spec+: {
ports: [
{ name: "client", port: 8080, targetPort: 8080, protocol: "TCP" },
],
},
},
},
},
}