blob: c5abec746c4a2394f20e2d86f350652c421eb3a6 [file] [log] [blame]
Radek Pietruszewskif5844312023-10-27 22:41:18 +02001local kube = import "../../../kube/hscloud.libsonnet";
radexae2a7252023-08-13 11:45:59 +02002
3{
4 local top = self,
5 local cfg = self.cfg,
6
7 cfg:: {
8 name: "demo-next",
radex5365e7e2023-08-15 18:07:28 +02009 image: "registry.k0.hswaw.net/radex/next-bruh:v2",
radexae2a7252023-08-13 11:45:59 +020010 domain: "demo-next.hs.radex.io",
11 },
12
13 ns: kube.Namespace("personal-radex"),
14
15 deployment: top.ns.Contain(kube.Deployment(cfg.name)) {
16 spec+: {
radex5365e7e2023-08-15 18:07:28 +020017 replicas: 1,
radexae2a7252023-08-13 11:45:59 +020018 template+: {
19 spec+: {
radex5365e7e2023-08-15 18:07:28 +020020 volumes_: {
21 data: kube.PersistentVolumeClaimVolume(top.data),
22 },
radexae2a7252023-08-13 11:45:59 +020023 containers_: {
24 default: kube.Container("default") {
25 image: cfg.image,
26 resources: {
27 requests: { cpu: "0.01", memory: "64M" },
28 limits: { cpu: "1", memory: "256M" },
29 },
radex5365e7e2023-08-15 18:07:28 +020030 env_: {
31 DATA_PATH: "/data",
32 },
radexae2a7252023-08-13 11:45:59 +020033 ports_: {
34 http: { containerPort: 3000 },
35 },
radex5365e7e2023-08-15 18:07:28 +020036 volumeMounts_: {
37 data: { mountPath: '/data' },
38 }
radexae2a7252023-08-13 11:45:59 +020039 },
40 },
41 },
42 },
43 },
44 },
45
radex5365e7e2023-08-15 18:07:28 +020046 data: top.ns.Contain(kube.PersistentVolumeClaim("data")) {
47 spec+: {
48 storageClassName: "waw-hdd-redundant-3",
49 accessModes: [ "ReadWriteOnce" ],
50 resources: {
51 requests: {
52 storage: "1Gi",
53 },
54 },
55 },
56 },
radexae2a7252023-08-13 11:45:59 +020057 service: top.ns.Contain(kube.Service(cfg.name)) {
58 target_pod:: top.deployment.spec.template,
59 },
60
Radek Pietruszewskif5844312023-10-27 22:41:18 +020061 ingress: top.ns.Contain(kube.SimpleIngress(cfg.name)) {
62 hosts:: [cfg.domain],
63 target_service:: top.service,
64 },
radexae2a7252023-08-13 11:45:59 +020065}