forked from hswaw/hscloud
85 lines
3.1 KiB
Plaintext
85 lines
3.1 KiB
Plaintext
|
local kube = import "../../../kube/kube.libsonnet";
|
||
|
|
||
|
{
|
||
|
IX: {
|
||
|
local ix = self,
|
||
|
local cfg = ix.cfg,
|
||
|
cfg:: {
|
||
|
octorpki: {
|
||
|
image: "registry.k0.hswaw.net/q3k/octorpki:1564072856-3bfb2ef7fd180e774f74bbc9eebf6d97b9d80003",
|
||
|
storageClassName: "waw-hdd-redundant-1",
|
||
|
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" },
|
||
|
],
|
||
|
},
|
||
|
},
|
||
|
},
|
||
|
},
|
||
|
}
|