blob: 5b75c79061518b15125e6214e7b19705b265f25d [file] [log] [blame]
Sergiusz Bazanskib13b7ff2019-08-29 20:12:24 +02001# Deploy prodvider (prodaccess server) in cluster.
2
3local kube = import "../../../kube/kube.libsonnet";
4
5{
6 Environment: {
7 local env = self,
8 local cfg = env.cfg,
9
10 cfg:: {
11 namespace: "prodvider",
12 image: "registry.k0.hswaw.net/cluster/prodvider:1567199084-2e1c08fa7a41faac2ef3f79a1bb82f8841a68016",
13
14 pki: {
15 intermediate: {
16 cert: importstr "../../certs/ca-kube-prodvider.cert",
17 key: importstr "../../secrets/plain/ca-kube-prodvider.key",
18 },
19 kube: {
20 cert: importstr "../../certs/ca-kube.crt",
21 },
22 }
23 },
24
25 namespace: kube.Namespace(cfg.namespace),
26
27 metadata(component):: {
28 namespace: cfg.namespace,
29 labels: {
30 "app.kubernetes.io/name": "prodvider",
31 "app.kubernetes.io/managed-by": "kubecfg",
32 "app.kubernetes.io/component": component,
33 },
34 },
35
36 secret: kube.Secret("ca") {
37 metadata+: env.metadata("prodvider"),
38 data_: {
39 "intermediate-ca.crt": cfg.pki.intermediate.cert,
40 "intermediate-ca.key": cfg.pki.intermediate.key,
41 "ca.crt": cfg.pki.kube.cert,
42 },
43 },
44
45 deployment: kube.Deployment("prodvider") {
46 metadata+: env.metadata("prodvider"),
47 spec+: {
48 replicas: 3,
49 template+: {
50 spec+: {
51 volumes_: {
52 ca: kube.SecretVolume(env.secret),
53 },
54 containers_: {
55 prodvider: kube.Container("prodvider") {
56 image: cfg.image,
57 args: [
58 "/cluster/prodvider/prodvider",
59 "-listen_address", "0.0.0.0:8080",
60 "-ca_key_path", "/opt/ca/intermediate-ca.key",
61 "-ca_certificate_path", "/opt/ca/intermediate-ca.crt",
62 "-kube_ca_certificate_path", "/opt/ca/ca.crt",
63 ],
64 volumeMounts_: {
65 ca: { mountPath: "/opt/ca" },
66 }
67 },
68 },
69 },
70 },
71 },
72 },
73
74 svc: kube.Service("prodvider") {
75 metadata+: env.metadata("prodvider"),
76 target_pod:: env.deployment.spec.template,
77 spec+: {
78 type: "LoadBalancer",
79 ports: [
80 { name: "public", port: 443, targetPort: 8080, protocol: "TCP" },
81 ],
82 },
83 },
84 },
85}