From 65154a224051f67d3595ce205cb004144264cf16 Mon Sep 17 00:00:00 2001 From: Jan Schnurpfeil Date: Tue, 6 Jan 2026 09:41:37 +0100 Subject: [PATCH 1/9] feat: upgrade stackit provider --- module4/tf/.terraform.lock.hcl | 34 +++++++++++++++++----------------- module4/tf/main.tf | 2 +- module4/tf/postgres.tf | 2 +- module6/tf/.terraform.lock.hcl | 34 +++++++++++++++++----------------- module6/tf/main.tf | 2 +- module6/tf/postgres.tf | 2 +- module6/tf/ske.tf | 4 ++-- 7 files changed, 40 insertions(+), 40 deletions(-) diff --git a/module4/tf/.terraform.lock.hcl b/module4/tf/.terraform.lock.hcl index a5e6920..4d36529 100644 --- a/module4/tf/.terraform.lock.hcl +++ b/module4/tf/.terraform.lock.hcl @@ -2,24 +2,24 @@ # Manual edits may be lost in future updates. provider "registry.terraform.io/stackitcloud/stackit" { - version = "0.50.0" - constraints = "0.50.0" + version = "0.76.0" + constraints = "0.76.0" hashes = [ - "h1:uU8/DLvW8tEty0PI2sUMem43IDNSrncHuLaXaEYdGFk=", + "h1:p7/5SsEjwvGhQUFfS1zvefqxiOztixYzcc/Ch9TQ4Dg=", "zh:0dde99e7b343fa01f8eefc378171fb8621bedb20f59157d6cc8e3d46c738105f", - "zh:219d678bc471b3f5030724dcdde6be3f3fa63e911b7c7a0f446b0a0b4e5f48e7", - "zh:4cd09155a09e320b0b68db4ba2971564f3d147c19ad991d6b7e731e26034d91c", - "zh:507c1e24432f0d455ac8b628c37ee20db62e89a6e85508568c2820ba52404786", - "zh:5aa10bfc4baad277a2bc746c83fca19911bb95a5e8821dd46f333bc621cbb453", - "zh:67b55ad1135ca12997b0928cb67973b11ea196299e0cf66e3e0145faec762644", - "zh:6d1d108edcd6794a8839d849e6ea48699875e22afeea7edd38bee3dd56dea7e8", - "zh:7473c28b3781c0d00294d985bd067e753a419ca8e379f91a8f6f2ce4663566ee", - "zh:8d234b24734f950f986322a5f084ca23bfd9b3d9fb7742b54404171cfcabc99e", - "zh:af0804ea918648600cc6300dffce8a7b9115d30dc88db10f962b8e596d1465e1", - "zh:b557940dc6387dc4cce8b100981ccaadac6bc4e6b50c566baf148d67939f8f2e", - "zh:d477f77ce6f807d60069c1efcfa20607088ae7ab91d22805331a7634d84c2d1c", - "zh:d95086e2338ceed511e798a2acc6d5cefdfff1a14f7b47b2d29b4ebc36b77a3a", - "zh:ea0d8d5c9cf7d5871a54dd4786c378dfd9d10416f3c4d0ea4776465e8c562e10", - "zh:f96af7b89dc99745f6a22c0ca2aedb18e10273251b8cbac9e2b1011c68c3c3f9", + "zh:19329e79735c80f028527dc10cb1e2ed4e41d3d401f053013b5b88fe95c9ca15", + "zh:1c2ca9686e5dc7a8896d50d3c17c6fdd3690a7f2a78120318f9dd7ae8650ad32", + "zh:36f7ba648784e1910e6cbff0070fa7ea5db5327d3f27b6a33664bfa5530319de", + "zh:634cba2439b3bed154db38db4c88b767361dd6052c263e86db9b99b5419d4176", + "zh:639cc643d24054cdeba68430e11a27d75c2d250066206c11364c875e176aa057", + "zh:69b6a554a13d355c9e470d82c234ca8519d36eaf4f4dab848ce92b5dede5764d", + "zh:6ca4c435e9bd9619bc9c6514f64a0d80cc016e960a566dbbc697deab643a52b5", + "zh:755add9446f8523e7429b9ffa8c68115f5d883abb2fe858b03c761bdeb0c6a96", + "zh:9303619c5eb9a94dca56b8ff4b4e9cc34b701f4eb5fe3d2b10784e3cd474564b", + "zh:99baa35d28c30d0e62727c8567903b929070bd4dacb94b4f5c2abc14143bbf23", + "zh:a58b6a5081db418be32a86b68f53dfe3ab9300313eb3790dd4c06a6e8430f005", + "zh:a9fd9c7b59c048a9bd239c167dc8069a722d9900498e63d4b6042d5276697cf2", + "zh:e51d544e9f0dd533fca9d5072897df0e569cf3859a2ccf78b31fe955279f1b9a", + "zh:f5cc53057cef61c381c77f557fd256539180fcd7b02bd8148e2cd95f0b091278", ] } diff --git a/module4/tf/main.tf b/module4/tf/main.tf index 5071f9f..4e7e791 100644 --- a/module4/tf/main.tf +++ b/module4/tf/main.tf @@ -2,7 +2,7 @@ terraform { required_providers { stackit = { source = "stackitcloud/stackit" - version = "0.50.0" + version = "0.76.0" } } backend "s3" { diff --git a/module4/tf/postgres.tf b/module4/tf/postgres.tf index 4d00402..eba1672 100644 --- a/module4/tf/postgres.tf +++ b/module4/tf/postgres.tf @@ -2,7 +2,7 @@ resource "stackit_postgresflex_instance" "scrumlr" { project_id = var.project_id name = "scrumlr" acl = stackit_ske_cluster.scrumlr.egress_address_ranges - backup_schedule = "00 00 * * *" + backup_schedule = "0 0 * * *" flavor = { cpu = 2 ram = 4 diff --git a/module6/tf/.terraform.lock.hcl b/module6/tf/.terraform.lock.hcl index a5e6920..4d36529 100644 --- a/module6/tf/.terraform.lock.hcl +++ b/module6/tf/.terraform.lock.hcl @@ -2,24 +2,24 @@ # Manual edits may be lost in future updates. provider "registry.terraform.io/stackitcloud/stackit" { - version = "0.50.0" - constraints = "0.50.0" + version = "0.76.0" + constraints = "0.76.0" hashes = [ - "h1:uU8/DLvW8tEty0PI2sUMem43IDNSrncHuLaXaEYdGFk=", + "h1:p7/5SsEjwvGhQUFfS1zvefqxiOztixYzcc/Ch9TQ4Dg=", "zh:0dde99e7b343fa01f8eefc378171fb8621bedb20f59157d6cc8e3d46c738105f", - "zh:219d678bc471b3f5030724dcdde6be3f3fa63e911b7c7a0f446b0a0b4e5f48e7", - "zh:4cd09155a09e320b0b68db4ba2971564f3d147c19ad991d6b7e731e26034d91c", - "zh:507c1e24432f0d455ac8b628c37ee20db62e89a6e85508568c2820ba52404786", - "zh:5aa10bfc4baad277a2bc746c83fca19911bb95a5e8821dd46f333bc621cbb453", - "zh:67b55ad1135ca12997b0928cb67973b11ea196299e0cf66e3e0145faec762644", - "zh:6d1d108edcd6794a8839d849e6ea48699875e22afeea7edd38bee3dd56dea7e8", - "zh:7473c28b3781c0d00294d985bd067e753a419ca8e379f91a8f6f2ce4663566ee", - "zh:8d234b24734f950f986322a5f084ca23bfd9b3d9fb7742b54404171cfcabc99e", - "zh:af0804ea918648600cc6300dffce8a7b9115d30dc88db10f962b8e596d1465e1", - "zh:b557940dc6387dc4cce8b100981ccaadac6bc4e6b50c566baf148d67939f8f2e", - "zh:d477f77ce6f807d60069c1efcfa20607088ae7ab91d22805331a7634d84c2d1c", - "zh:d95086e2338ceed511e798a2acc6d5cefdfff1a14f7b47b2d29b4ebc36b77a3a", - "zh:ea0d8d5c9cf7d5871a54dd4786c378dfd9d10416f3c4d0ea4776465e8c562e10", - "zh:f96af7b89dc99745f6a22c0ca2aedb18e10273251b8cbac9e2b1011c68c3c3f9", + "zh:19329e79735c80f028527dc10cb1e2ed4e41d3d401f053013b5b88fe95c9ca15", + "zh:1c2ca9686e5dc7a8896d50d3c17c6fdd3690a7f2a78120318f9dd7ae8650ad32", + "zh:36f7ba648784e1910e6cbff0070fa7ea5db5327d3f27b6a33664bfa5530319de", + "zh:634cba2439b3bed154db38db4c88b767361dd6052c263e86db9b99b5419d4176", + "zh:639cc643d24054cdeba68430e11a27d75c2d250066206c11364c875e176aa057", + "zh:69b6a554a13d355c9e470d82c234ca8519d36eaf4f4dab848ce92b5dede5764d", + "zh:6ca4c435e9bd9619bc9c6514f64a0d80cc016e960a566dbbc697deab643a52b5", + "zh:755add9446f8523e7429b9ffa8c68115f5d883abb2fe858b03c761bdeb0c6a96", + "zh:9303619c5eb9a94dca56b8ff4b4e9cc34b701f4eb5fe3d2b10784e3cd474564b", + "zh:99baa35d28c30d0e62727c8567903b929070bd4dacb94b4f5c2abc14143bbf23", + "zh:a58b6a5081db418be32a86b68f53dfe3ab9300313eb3790dd4c06a6e8430f005", + "zh:a9fd9c7b59c048a9bd239c167dc8069a722d9900498e63d4b6042d5276697cf2", + "zh:e51d544e9f0dd533fca9d5072897df0e569cf3859a2ccf78b31fe955279f1b9a", + "zh:f5cc53057cef61c381c77f557fd256539180fcd7b02bd8148e2cd95f0b091278", ] } diff --git a/module6/tf/main.tf b/module6/tf/main.tf index 5071f9f..4e7e791 100644 --- a/module6/tf/main.tf +++ b/module6/tf/main.tf @@ -2,7 +2,7 @@ terraform { required_providers { stackit = { source = "stackitcloud/stackit" - version = "0.50.0" + version = "0.76.0" } } backend "s3" { diff --git a/module6/tf/postgres.tf b/module6/tf/postgres.tf index 4d00402..eba1672 100644 --- a/module6/tf/postgres.tf +++ b/module6/tf/postgres.tf @@ -2,7 +2,7 @@ resource "stackit_postgresflex_instance" "scrumlr" { project_id = var.project_id name = "scrumlr" acl = stackit_ske_cluster.scrumlr.egress_address_ranges - backup_schedule = "00 00 * * *" + backup_schedule = "0 0 * * *" flavor = { cpu = 2 ram = 4 diff --git a/module6/tf/ske.tf b/module6/tf/ske.tf index d2838da..e681d05 100644 --- a/module6/tf/ske.tf +++ b/module6/tf/ske.tf @@ -24,8 +24,8 @@ resource "stackit_ske_cluster" "scrumlr" { enabled = true zones = [stackit_dns_zone.scrumlr.dns_name] } - argus = { - argus_instance_id = stackit_observability_instance.scrumlr.instance_id + observability = { + instance_id = stackit_observability_instance.scrumlr.instance_id enabled = true } } -- 2.45.4 From 6bbe89328433a3ee820c76d217907e5e4a2cbf94 Mon Sep 17 00:00:00 2001 From: Jan Schnurpfeil Date: Tue, 6 Jan 2026 09:44:22 +0100 Subject: [PATCH 2/9] feat: update scrumlr images --- .../kustomize/scrumlr/backend/deployment-scrumlr-backend.yaml | 2 +- .../kustomize/scrumlr/frontend/deployment-scrumlr-frontend.yaml | 2 +- .../kustomize/scrumlr/backend/deployment-scrumlr-backend.yaml | 2 +- .../kustomize/scrumlr/frontend/deployment-scrumlr-frontend.yaml | 2 +- .../kustomize/scrumlr/backend/deployment-scrumlr-backend.yaml | 2 +- .../kustomize/scrumlr/frontend/deployment-scrumlr-frontend.yaml | 2 +- 6 files changed, 6 insertions(+), 6 deletions(-) diff --git a/module3/k8s/kustomize/scrumlr/backend/deployment-scrumlr-backend.yaml b/module3/k8s/kustomize/scrumlr/backend/deployment-scrumlr-backend.yaml index 763ea31..3247169 100644 --- a/module3/k8s/kustomize/scrumlr/backend/deployment-scrumlr-backend.yaml +++ b/module3/k8s/kustomize/scrumlr/backend/deployment-scrumlr-backend.yaml @@ -22,7 +22,7 @@ spec: spec: containers: - name: backend - image: ghcr.io/inovex/scrumlr.io/scrumlr-server:3.10.3 + image: ghcr.io/inovex/scrumlr.io/scrumlr-server:4.4.0 args: - "/app/main" - "-disable-check-origin" diff --git a/module3/k8s/kustomize/scrumlr/frontend/deployment-scrumlr-frontend.yaml b/module3/k8s/kustomize/scrumlr/frontend/deployment-scrumlr-frontend.yaml index d6ac47e..7c0c140 100644 --- a/module3/k8s/kustomize/scrumlr/frontend/deployment-scrumlr-frontend.yaml +++ b/module3/k8s/kustomize/scrumlr/frontend/deployment-scrumlr-frontend.yaml @@ -22,7 +22,7 @@ spec: spec: containers: - name: frontend - image: ghcr.io/inovex/scrumlr.io/scrumlr-frontend:3.10.3 + image: ghcr.io/inovex/scrumlr.io/scrumlr-frontend:4.4.0 resources: requests: cpu: "25m" diff --git a/module5/k8s/kustomize/scrumlr/backend/deployment-scrumlr-backend.yaml b/module5/k8s/kustomize/scrumlr/backend/deployment-scrumlr-backend.yaml index f832dcf..71343ce 100644 --- a/module5/k8s/kustomize/scrumlr/backend/deployment-scrumlr-backend.yaml +++ b/module5/k8s/kustomize/scrumlr/backend/deployment-scrumlr-backend.yaml @@ -31,7 +31,7 @@ spec: app.kubernetes.io/part-of: "scrumlr" containers: - name: backend - image: ghcr.io/inovex/scrumlr.io/scrumlr-server:3.10.3 + image: ghcr.io/inovex/scrumlr.io/scrumlr-server:4.4.0 args: - "/app/main" - "-disable-check-origin" diff --git a/module5/k8s/kustomize/scrumlr/frontend/deployment-scrumlr-frontend.yaml b/module5/k8s/kustomize/scrumlr/frontend/deployment-scrumlr-frontend.yaml index a60c28d..6aa4d75 100644 --- a/module5/k8s/kustomize/scrumlr/frontend/deployment-scrumlr-frontend.yaml +++ b/module5/k8s/kustomize/scrumlr/frontend/deployment-scrumlr-frontend.yaml @@ -31,7 +31,7 @@ spec: app.kubernetes.io/part-of: "scrumlr" containers: - name: frontend - image: ghcr.io/inovex/scrumlr.io/scrumlr-frontend:3.10.3 + image: ghcr.io/inovex/scrumlr.io/scrumlr-frontend:4.4.0 resources: requests: cpu: "25m" diff --git a/module6/k8s/kustomize/scrumlr/backend/deployment-scrumlr-backend.yaml b/module6/k8s/kustomize/scrumlr/backend/deployment-scrumlr-backend.yaml index f832dcf..71343ce 100644 --- a/module6/k8s/kustomize/scrumlr/backend/deployment-scrumlr-backend.yaml +++ b/module6/k8s/kustomize/scrumlr/backend/deployment-scrumlr-backend.yaml @@ -31,7 +31,7 @@ spec: app.kubernetes.io/part-of: "scrumlr" containers: - name: backend - image: ghcr.io/inovex/scrumlr.io/scrumlr-server:3.10.3 + image: ghcr.io/inovex/scrumlr.io/scrumlr-server:4.4.0 args: - "/app/main" - "-disable-check-origin" diff --git a/module6/k8s/kustomize/scrumlr/frontend/deployment-scrumlr-frontend.yaml b/module6/k8s/kustomize/scrumlr/frontend/deployment-scrumlr-frontend.yaml index a60c28d..6aa4d75 100644 --- a/module6/k8s/kustomize/scrumlr/frontend/deployment-scrumlr-frontend.yaml +++ b/module6/k8s/kustomize/scrumlr/frontend/deployment-scrumlr-frontend.yaml @@ -31,7 +31,7 @@ spec: app.kubernetes.io/part-of: "scrumlr" containers: - name: frontend - image: ghcr.io/inovex/scrumlr.io/scrumlr-frontend:3.10.3 + image: ghcr.io/inovex/scrumlr.io/scrumlr-frontend:4.4.0 resources: requests: cpu: "25m" -- 2.45.4 From 0437026a623b1379ab0d09ba5ae2571a93f6c81e Mon Sep 17 00:00:00 2001 From: Jan Schnurpfeil Date: Tue, 6 Jan 2026 09:46:13 +0100 Subject: [PATCH 3/9] feat: upgrade k8s 1.31 -> 1.34 --- module4/tf/ske.tf | 2 +- module6/tf/ske.tf | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/module4/tf/ske.tf b/module4/tf/ske.tf index 84f5b75..61eddfb 100644 --- a/module4/tf/ske.tf +++ b/module4/tf/ske.tf @@ -1,7 +1,7 @@ resource "stackit_ske_cluster" "scrumlr" { project_id = var.project_id name = "scrumlr" - kubernetes_version_min = "1.31.7" + kubernetes_version_min = "1.34.2" node_pools = [ { name = "scrumlrpool" diff --git a/module6/tf/ske.tf b/module6/tf/ske.tf index e681d05..7269120 100644 --- a/module6/tf/ske.tf +++ b/module6/tf/ske.tf @@ -1,7 +1,7 @@ resource "stackit_ske_cluster" "scrumlr" { project_id = var.project_id name = "scrumlr" - kubernetes_version_min = "1.31.7" + kubernetes_version_min = "1.34.2" node_pools = [ { name = "scrumlrpool" -- 2.45.4 From 0d0a0a0a0106a529ad533e109eb52132b6e177f4 Mon Sep 17 00:00:00 2001 From: Jan Schnurpfeil Date: Thu, 15 Jan 2026 16:16:11 +0100 Subject: [PATCH 4/9] feat: update nats 1.3.3 -> 2.12.3 --- module3/README.md | 2 +- module3/k8s/helm/nats/README.md | 2 +- module5/k8s/helm/nats/README.md | 2 +- module6/k8s/helm/nats/README.md | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/module3/README.md b/module3/README.md index c8bca57..77bddfe 100644 --- a/module3/README.md +++ b/module3/README.md @@ -42,7 +42,7 @@ helm upgrade \ nats nats/nats \ --namespace nats \ --create-namespace \ - --version 1.3.3 \ + --version 2.12.3 \ --values helm/nats/values.yaml diff --git a/module3/k8s/helm/nats/README.md b/module3/k8s/helm/nats/README.md index 29987e4..73d3856 100644 --- a/module3/k8s/helm/nats/README.md +++ b/module3/k8s/helm/nats/README.md @@ -10,6 +10,6 @@ helm upgrade \ nats nats/nats \ --namespace nats \ --create-namespace \ - --version 1.3.3 \ + --version 2.12.3 \ --values values.yaml ``` diff --git a/module5/k8s/helm/nats/README.md b/module5/k8s/helm/nats/README.md index 29987e4..73d3856 100644 --- a/module5/k8s/helm/nats/README.md +++ b/module5/k8s/helm/nats/README.md @@ -10,6 +10,6 @@ helm upgrade \ nats nats/nats \ --namespace nats \ --create-namespace \ - --version 1.3.3 \ + --version 2.12.3 \ --values values.yaml ``` diff --git a/module6/k8s/helm/nats/README.md b/module6/k8s/helm/nats/README.md index 29987e4..73d3856 100644 --- a/module6/k8s/helm/nats/README.md +++ b/module6/k8s/helm/nats/README.md @@ -10,6 +10,6 @@ helm upgrade \ nats nats/nats \ --namespace nats \ --create-namespace \ - --version 1.3.3 \ + --version 2.12.3 \ --values values.yaml ``` -- 2.45.4 From c77c4d37d7074f44aa86e53896c1ca780918eaed Mon Sep 17 00:00:00 2001 From: Jan Schnurpfeil Date: Thu, 15 Jan 2026 17:31:41 +0100 Subject: [PATCH 5/9] feat: update prometheus-operator-crds 19.1.0-> 26.0.0 --- module6/k8s/helm/prometheus-operator-crds/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/module6/k8s/helm/prometheus-operator-crds/README.md b/module6/k8s/helm/prometheus-operator-crds/README.md index 929e727..63852e4 100644 --- a/module6/k8s/helm/prometheus-operator-crds/README.md +++ b/module6/k8s/helm/prometheus-operator-crds/README.md @@ -10,6 +10,6 @@ helm upgrade \ prometheus-operator-crds prometheus-community/prometheus-operator-crds \ --namespace o11y \ --create-namespace \ - --version 19.1.0 \ + --version 26.0.0 \ --values values.yaml ``` -- 2.45.4 From 5b097d36a908e416be150eaebb2c4eec17cacfcf Mon Sep 17 00:00:00 2001 From: Jan Schnurpfeil Date: Thu, 15 Jan 2026 17:32:27 +0100 Subject: [PATCH 6/9] feat: update alloy 1.0.2-> 1.5.2 --- module6/k8s/helm/alloy/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/module6/k8s/helm/alloy/README.md b/module6/k8s/helm/alloy/README.md index 38fadb0..ffea6ca 100644 --- a/module6/k8s/helm/alloy/README.md +++ b/module6/k8s/helm/alloy/README.md @@ -11,6 +11,6 @@ helm upgrade \ alloy grafana/alloy \ --namespace o11y \ --create-namespace \ - --version 1.0.2 \ + --version 1.5.2 \ --values values.yaml ``` -- 2.45.4 From 328c0a5a293b528100cfed7c2c0eed44cf640895 Mon Sep 17 00:00:00 2001 From: Jan Schnurpfeil Date: Thu, 15 Jan 2026 17:33:12 +0100 Subject: [PATCH 7/9] feat: update cert-manager 1.17.2 -> 1.19.2 --- module5/k8s/helm/cert-manager/README.md | 2 +- module6/k8s/helm/cert-manager/README.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/module5/k8s/helm/cert-manager/README.md b/module5/k8s/helm/cert-manager/README.md index 35c985d..cef26e1 100644 --- a/module5/k8s/helm/cert-manager/README.md +++ b/module5/k8s/helm/cert-manager/README.md @@ -10,7 +10,7 @@ helm upgrade \ cert-manager jetstack/cert-manager \ --namespace cert-manager \ --create-namespace \ - --version v1.17.2 \ + --version v1.19.2 \ --values values.yaml ``` diff --git a/module6/k8s/helm/cert-manager/README.md b/module6/k8s/helm/cert-manager/README.md index 35c985d..cef26e1 100644 --- a/module6/k8s/helm/cert-manager/README.md +++ b/module6/k8s/helm/cert-manager/README.md @@ -10,7 +10,7 @@ helm upgrade \ cert-manager jetstack/cert-manager \ --namespace cert-manager \ --create-namespace \ - --version v1.17.2 \ + --version v1.19.2 \ --values values.yaml ``` -- 2.45.4 From cc0566af219824d8e380246aba81687b9f4edae7 Mon Sep 17 00:00:00 2001 From: Jan Schnurpfeil Date: Thu, 15 Jan 2026 20:10:45 +0100 Subject: [PATCH 8/9] feat: replace ingress-nginx with traefik --- module3/README.md | 16 ++++++------ module3/k8s/helm/ingress-nginx/README.md | 15 ----------- module3/k8s/helm/ingress-nginx/values.yaml | 1 - module3/k8s/helm/traefik/README.md | 15 +++++++++++ module3/k8s/helm/traefik/values.yaml | 8 ++++++ .../kustomize/scrumlr/ingress-scrumlr.yaml | 7 +----- .../clusterissuer-letsencrypt-production.yaml | 2 +- module5/k8s/helm/ingress-nginx/README.md | 15 ----------- module5/k8s/helm/ingress-nginx/values.yaml | 1 - module5/k8s/helm/traefik/README.md | 15 +++++++++++ module5/k8s/helm/traefik/values.yaml | 17 +++++++++++++ .../scrumlr/ingress-scrumlr.yaml.example | 6 +---- .../clusterissuer-letsencrypt-production.yaml | 2 +- module6/k8s/helm/ingress-nginx/README.md | 15 ----------- module6/k8s/helm/ingress-nginx/values.yaml | 5 ---- module6/k8s/helm/traefik/README.md | 15 +++++++++++ module6/k8s/helm/traefik/values.yaml | 25 +++++++++++++++++++ .../scrumlr/ingress-scrumlr.yaml.example | 6 +---- 18 files changed, 108 insertions(+), 78 deletions(-) delete mode 100644 module3/k8s/helm/ingress-nginx/README.md delete mode 100644 module3/k8s/helm/ingress-nginx/values.yaml create mode 100644 module3/k8s/helm/traefik/README.md create mode 100644 module3/k8s/helm/traefik/values.yaml delete mode 100644 module5/k8s/helm/ingress-nginx/README.md delete mode 100644 module5/k8s/helm/ingress-nginx/values.yaml create mode 100644 module5/k8s/helm/traefik/README.md create mode 100644 module5/k8s/helm/traefik/values.yaml delete mode 100644 module6/k8s/helm/ingress-nginx/README.md delete mode 100644 module6/k8s/helm/ingress-nginx/values.yaml create mode 100644 module6/k8s/helm/traefik/README.md create mode 100644 module6/k8s/helm/traefik/values.yaml diff --git a/module3/README.md b/module3/README.md index 77bddfe..84685d8 100644 --- a/module3/README.md +++ b/module3/README.md @@ -25,18 +25,18 @@ cd $(git rev-parse --show-toplevel)/module3/k8s/ minikube start minikube tunnel -# Install ingress-nginx and nats with helm +# Install traefik and nats with helm -helm repo add ingress-nginx https://kubernetes.github.io/ingress-nginx -helm repo add nats https://nats-io.github.io/k8s/helm/charts/ +helm repo add nats https://nats-io.github.io/k8s/helm/charts/ +helm repo add traefik https://traefik.github.io/charts helm repo update helm upgrade \ - ingress-nginx ingress-nginx/ingress-nginx \ + traefik traefik/traefik \ --install \ - --namespace ingress-nginx \ + --namespace traefik \ --create-namespace \ - --version 4.12.1 \ - --values helm/ingress-nginx/values.yaml + --version 38.0.2 \ + --values helm/traefik/values.yaml helm upgrade \ --install \ nats nats/nats \ @@ -52,7 +52,7 @@ kubectl apply -k kustomize/postgres kubectl apply -k kustomize/scrumlr # Use external IP of your Ingress Controller in your Browser to open Scrumlr -kubectl get services --namespace ingress-nginx ingress-nginx-controller --output jsonpath='{.status.loadBalancer.ingress[0].ip}' +kubectl get services --namespace traefik traefik --output jsonpath='{.status.loadBalancer.ingress[0].ip}' # Destroy Cluster minikube stop diff --git a/module3/k8s/helm/ingress-nginx/README.md b/module3/k8s/helm/ingress-nginx/README.md deleted file mode 100644 index dd8e313..0000000 --- a/module3/k8s/helm/ingress-nginx/README.md +++ /dev/null @@ -1,15 +0,0 @@ -# ingress-nginx - -Docs: https://kubernetes.github.io/ingress-nginx/ -Github Repo: https://github.com/kubernetes/ingress-nginx - -```sh -helm repo add ingress-nginx https://kubernetes.github.io/ingress-nginx --force-update -helm upgrade \ - ingress-nginx ingress-nginx/ingress-nginx \ - --install \ - --namespace ingress-nginx \ - --create-namespace \ - --version 4.12.1 \ - --values values.yaml -``` diff --git a/module3/k8s/helm/ingress-nginx/values.yaml b/module3/k8s/helm/ingress-nginx/values.yaml deleted file mode 100644 index 6874239..0000000 --- a/module3/k8s/helm/ingress-nginx/values.yaml +++ /dev/null @@ -1 +0,0 @@ -# Note: This file is intentionally empty and is more of a placeholder to ensure consistency. diff --git a/module3/k8s/helm/traefik/README.md b/module3/k8s/helm/traefik/README.md new file mode 100644 index 0000000..d62fbdd --- /dev/null +++ b/module3/k8s/helm/traefik/README.md @@ -0,0 +1,15 @@ +# traefik + +Docs: https://doc.traefik.io/traefik/setup/kubernetes/ +Github Repo: https://github.com/traefik/traefik/ + +```sh +helm repo add traefik https://traefik.github.io/charts/ --force-update +helm upgrade \ + traefik traefik/traefik \ + --install \ + --namespace traefik \ + --create-namespace \ + --version 38.0.2 \ + --values values.yaml +``` diff --git a/module3/k8s/helm/traefik/values.yaml b/module3/k8s/helm/traefik/values.yaml new file mode 100644 index 0000000..34a0c1a --- /dev/null +++ b/module3/k8s/helm/traefik/values.yaml @@ -0,0 +1,8 @@ +# HA deployment +deployment: + replicas: 3 + +# Enable logs for better debugging +logs: + access: + enabled: true diff --git a/module3/k8s/kustomize/scrumlr/ingress-scrumlr.yaml b/module3/k8s/kustomize/scrumlr/ingress-scrumlr.yaml index 06c4342..f231f62 100644 --- a/module3/k8s/kustomize/scrumlr/ingress-scrumlr.yaml +++ b/module3/k8s/kustomize/scrumlr/ingress-scrumlr.yaml @@ -5,13 +5,8 @@ metadata: labels: app.kubernetes.io/name: "scrumlr" app.kubernetes.io/part-of: "scrumlr" - annotations: - nginx.ingress.kubernetes.io/limit-connections: "100" - # Websocket optimization https://kubernetes.github.io/ingress-nginx/user-guide/miscellaneous/#websockets - nginx.ingress.kubernetes.io/proxy-send-timeout: "7200" - nginx.ingress.kubernetes.io/proxy-read-timeout: "7200" spec: - ingressClassName: nginx + ingressClassName: traefik rules: - http: paths: diff --git a/module5/k8s/helm/cert-manager/clusterissuer-letsencrypt-production.yaml b/module5/k8s/helm/cert-manager/clusterissuer-letsencrypt-production.yaml index 51a6d6b..9336b53 100644 --- a/module5/k8s/helm/cert-manager/clusterissuer-letsencrypt-production.yaml +++ b/module5/k8s/helm/cert-manager/clusterissuer-letsencrypt-production.yaml @@ -10,4 +10,4 @@ spec: solvers: - http01: ingress: - ingressClassName: nginx + ingressClassName: traefik diff --git a/module5/k8s/helm/ingress-nginx/README.md b/module5/k8s/helm/ingress-nginx/README.md deleted file mode 100644 index dd8e313..0000000 --- a/module5/k8s/helm/ingress-nginx/README.md +++ /dev/null @@ -1,15 +0,0 @@ -# ingress-nginx - -Docs: https://kubernetes.github.io/ingress-nginx/ -Github Repo: https://github.com/kubernetes/ingress-nginx - -```sh -helm repo add ingress-nginx https://kubernetes.github.io/ingress-nginx --force-update -helm upgrade \ - ingress-nginx ingress-nginx/ingress-nginx \ - --install \ - --namespace ingress-nginx \ - --create-namespace \ - --version 4.12.1 \ - --values values.yaml -``` diff --git a/module5/k8s/helm/ingress-nginx/values.yaml b/module5/k8s/helm/ingress-nginx/values.yaml deleted file mode 100644 index 6874239..0000000 --- a/module5/k8s/helm/ingress-nginx/values.yaml +++ /dev/null @@ -1 +0,0 @@ -# Note: This file is intentionally empty and is more of a placeholder to ensure consistency. diff --git a/module5/k8s/helm/traefik/README.md b/module5/k8s/helm/traefik/README.md new file mode 100644 index 0000000..d62fbdd --- /dev/null +++ b/module5/k8s/helm/traefik/README.md @@ -0,0 +1,15 @@ +# traefik + +Docs: https://doc.traefik.io/traefik/setup/kubernetes/ +Github Repo: https://github.com/traefik/traefik/ + +```sh +helm repo add traefik https://traefik.github.io/charts/ --force-update +helm upgrade \ + traefik traefik/traefik \ + --install \ + --namespace traefik \ + --create-namespace \ + --version 38.0.2 \ + --values values.yaml +``` diff --git a/module5/k8s/helm/traefik/values.yaml b/module5/k8s/helm/traefik/values.yaml new file mode 100644 index 0000000..2e6b6f5 --- /dev/null +++ b/module5/k8s/helm/traefik/values.yaml @@ -0,0 +1,17 @@ +# HA deployment +deployment: + replicas: 3 + +# Enable logs for better debugging +logs: + access: + enabled: true + +# Spread pods better between nodes +topologySpreadConstraints: + - maxSkew: 1 + topologyKey: kubernetes.io/hostname + whenUnsatisfiable: ScheduleAnyway + labelSelector: + matchLabels: + app.kubernetes.io/name: '{{ template "traefik.name" . }}' diff --git a/module5/k8s/kustomize/scrumlr/ingress-scrumlr.yaml.example b/module5/k8s/kustomize/scrumlr/ingress-scrumlr.yaml.example index 7a832d7..f6168af 100644 --- a/module5/k8s/kustomize/scrumlr/ingress-scrumlr.yaml.example +++ b/module5/k8s/kustomize/scrumlr/ingress-scrumlr.yaml.example @@ -6,13 +6,9 @@ metadata: app.kubernetes.io/name: "scrumlr" app.kubernetes.io/part-of: "scrumlr" annotations: - nginx.ingress.kubernetes.io/limit-connections: "100" - # Websocket optimization https://kubernetes.github.io/ingress-nginx/user-guide/miscellaneous/#websockets - nginx.ingress.kubernetes.io/proxy-send-timeout: "7200" - nginx.ingress.kubernetes.io/proxy-read-timeout: "7200" cert-manager.io/cluster-issuer: "letsencrypt-production" spec: - ingressClassName: nginx + ingressClassName: traefik tls: - hosts: - CHANGE-ME.domain.tld diff --git a/module6/k8s/helm/cert-manager/clusterissuer-letsencrypt-production.yaml b/module6/k8s/helm/cert-manager/clusterissuer-letsencrypt-production.yaml index 51a6d6b..9336b53 100644 --- a/module6/k8s/helm/cert-manager/clusterissuer-letsencrypt-production.yaml +++ b/module6/k8s/helm/cert-manager/clusterissuer-letsencrypt-production.yaml @@ -10,4 +10,4 @@ spec: solvers: - http01: ingress: - ingressClassName: nginx + ingressClassName: traefik diff --git a/module6/k8s/helm/ingress-nginx/README.md b/module6/k8s/helm/ingress-nginx/README.md deleted file mode 100644 index dd8e313..0000000 --- a/module6/k8s/helm/ingress-nginx/README.md +++ /dev/null @@ -1,15 +0,0 @@ -# ingress-nginx - -Docs: https://kubernetes.github.io/ingress-nginx/ -Github Repo: https://github.com/kubernetes/ingress-nginx - -```sh -helm repo add ingress-nginx https://kubernetes.github.io/ingress-nginx --force-update -helm upgrade \ - ingress-nginx ingress-nginx/ingress-nginx \ - --install \ - --namespace ingress-nginx \ - --create-namespace \ - --version 4.12.1 \ - --values values.yaml -``` diff --git a/module6/k8s/helm/ingress-nginx/values.yaml b/module6/k8s/helm/ingress-nginx/values.yaml deleted file mode 100644 index ecca08c..0000000 --- a/module6/k8s/helm/ingress-nginx/values.yaml +++ /dev/null @@ -1,5 +0,0 @@ -controller: - metrics: - enabled: true - serviceMonitor: - enabled: true diff --git a/module6/k8s/helm/traefik/README.md b/module6/k8s/helm/traefik/README.md new file mode 100644 index 0000000..d62fbdd --- /dev/null +++ b/module6/k8s/helm/traefik/README.md @@ -0,0 +1,15 @@ +# traefik + +Docs: https://doc.traefik.io/traefik/setup/kubernetes/ +Github Repo: https://github.com/traefik/traefik/ + +```sh +helm repo add traefik https://traefik.github.io/charts/ --force-update +helm upgrade \ + traefik traefik/traefik \ + --install \ + --namespace traefik \ + --create-namespace \ + --version 38.0.2 \ + --values values.yaml +``` diff --git a/module6/k8s/helm/traefik/values.yaml b/module6/k8s/helm/traefik/values.yaml new file mode 100644 index 0000000..bc1b334 --- /dev/null +++ b/module6/k8s/helm/traefik/values.yaml @@ -0,0 +1,25 @@ +# HA deployment +deployment: + replicas: 3 + +# Enable logs for better debugging +logs: + access: + enabled: true + +# Spread pods better between nodes +topologySpreadConstraints: + - maxSkew: 1 + topologyKey: kubernetes.io/hostname + whenUnsatisfiable: ScheduleAnyway + labelSelector: + matchLabels: + app.kubernetes.io/name: '{{ template "traefik.name" . }}' + +# Enable metrics export and collection (serviceMonitor requires prometheus-operator-crds and alloy) +metrics: + prometheus: + service: + enabled: true + serviceMonitor: + enabled: true diff --git a/module6/k8s/kustomize/scrumlr/ingress-scrumlr.yaml.example b/module6/k8s/kustomize/scrumlr/ingress-scrumlr.yaml.example index 7a832d7..f6168af 100644 --- a/module6/k8s/kustomize/scrumlr/ingress-scrumlr.yaml.example +++ b/module6/k8s/kustomize/scrumlr/ingress-scrumlr.yaml.example @@ -6,13 +6,9 @@ metadata: app.kubernetes.io/name: "scrumlr" app.kubernetes.io/part-of: "scrumlr" annotations: - nginx.ingress.kubernetes.io/limit-connections: "100" - # Websocket optimization https://kubernetes.github.io/ingress-nginx/user-guide/miscellaneous/#websockets - nginx.ingress.kubernetes.io/proxy-send-timeout: "7200" - nginx.ingress.kubernetes.io/proxy-read-timeout: "7200" cert-manager.io/cluster-issuer: "letsencrypt-production" spec: - ingressClassName: nginx + ingressClassName: traefik tls: - hosts: - CHANGE-ME.domain.tld -- 2.45.4 From 61716471875984eaec96e03b8ee3f72227964559 Mon Sep 17 00:00:00 2001 From: Jan Schnurpfeil Date: Thu, 15 Jan 2026 20:47:53 +0100 Subject: [PATCH 9/9] feat: update postgres 17.4 -> 18.1 --- .../k8s/kustomize/postgres/statefulset-postgres-scrumlr.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/module3/k8s/kustomize/postgres/statefulset-postgres-scrumlr.yaml b/module3/k8s/kustomize/postgres/statefulset-postgres-scrumlr.yaml index c33deca..160f11d 100644 --- a/module3/k8s/kustomize/postgres/statefulset-postgres-scrumlr.yaml +++ b/module3/k8s/kustomize/postgres/statefulset-postgres-scrumlr.yaml @@ -24,7 +24,7 @@ spec: spec: containers: - name: postgres - image: postgres:17.4 + image: postgres:18.1 resources: requests: memory: "256Mi" @@ -46,7 +46,7 @@ spec: - containerPort: 5432 volumeMounts: - name: postgres - mountPath: /var/lib/postgresql/data + mountPath: /var/lib/postgresql subPath: postgres volumes: - name: postgres -- 2.45.4