blob: def1d79241120152dceac941fcb26d718936b96f [file] [log] [blame]
Serge Bazanskibeefe442019-07-30 13:03:03 +02001local kube = import "../../../kube/kube.libsonnet";
2
3{
4 IX: {
5 local ix = self,
6 local cfg = ix.cfg,
7 cfg:: {
8 octorpki: {
9 image: "registry.k0.hswaw.net/q3k/octorpki:1564072856-3bfb2ef7fd180e774f74bbc9eebf6d97b9d80003",
10 storageClassName: "waw-hdd-redundant-1",
11 resources: {
12 requests: { cpu: "100m", memory: "500Mi" },
13 limits: { cpu: "500m", memory: "1Gi" },
14 },
15 },
16
17 appName: "ix",
18 namespace: error "namespace must be defined",
19 prefix: "",
20 },
21
22 namespace: kube.Namespace(cfg.namespace),
23 name(component):: cfg.prefix + component,
24 metadata(component):: {
25 namespace: cfg.namespace,
26 labels: {
27 "app.kubernetes.io/name": cfg.appName,
28 "app.kubernetes.io/managed-by": "kubecfg",
29 "app.kubernetes.io/component": component,
30 },
31 },
32
33 octorpki: {
34 cache: kube.PersistentVolumeClaim(ix.name("octorpki")) {
35 metadata+: ix.metadata("octorpki"),
36 spec+: {
37 storageClassName: cfg.octorpki.storageClassName,
38 accessModes: [ "ReadWriteOnce" ],
39 resources: {
40 requests: {
41 storage: "2Gi",
42 },
43 },
44 },
45 },
46 deployment: kube.Deployment(ix.name("octorpki")) {
47 metadata+: ix.metadata("octorpki"),
48 spec+: {
49 template+: {
50 spec+: {
51 volumes_: {
52 cache: kube.PersistentVolumeClaimVolume(ix.octorpki.cache),
53 },
54 containers_: {
55 octorpki: kube.Container(ix.name("octorpki")){
56 image: cfg.octorpki.image,
57 args: [
58 "/octorpki/entrypoint.sh",
59 ],
60 ports_: {
61 client: { containerPort: 8080 },
62 },
63 volumeMounts_: {
64 cache: { mountPath: "/cache" },
65 },
66 resources: cfg.octorpki.resources,
67 },
68 },
69 },
70 },
71 },
72 },
73 svc: kube.Service(ix.name("octorpki")) {
74 metadata+: ix.metadata("octorpki"),
75 target_pod:: ix.octorpki.deployment.spec.template,
76 spec+: {
77 ports: [
78 { name: "client", port: 8080, targetPort: 8080, protocol: "TCP" },
79 ],
80 },
81 },
82 },
83 },
84}