| 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" }, |
| ], |
| }, |
| }, |
| }, |
| }, |
| } |