diff --git a/kubernetes/README.md b/kubernetes/README.md
index 1f2de6f..2aa861e 100644
--- a/kubernetes/README.md
+++ b/kubernetes/README.md
@@ -19,9 +19,11 @@ This Readme will guide you through all setup steps for the infrastructure.
-
### Change Kubernetes Context
+
```bash
kubectl config get-contexts
kubectl config use-context docker-desktop
+kubectl config set-context --current --namespace=default
```
## Install Helm
@@ -82,3 +84,15 @@ helm upgrade --install helm-charts/spring-boot-app --set name=
```
+
+## Check Kubernetes Resources
+
+```bash
+kubectl get all -o wide
+```
+
+## Pull Traefik Image
+
+```bash
+docker pull traefik:3
+```
diff --git a/kubernetes/apps/health-simulator/pom.xml b/kubernetes/apps/health-simulator/pom.xml
index 81a0174..9cb11d7 100644
--- a/kubernetes/apps/health-simulator/pom.xml
+++ b/kubernetes/apps/health-simulator/pom.xml
@@ -7,7 +7,7 @@
org.springframework.boot
spring-boot-starter-parent
- 3.5.6
+ 4.0.0
de.codecentric
diff --git a/kubernetes/apps/health-simulator/src/main/java/de/codecentric/healthsimulator/health/HealthController.java b/kubernetes/apps/health-simulator/src/main/java/de/codecentric/healthsimulator/health/HealthController.java
index 1ee9f7e..717beb1 100644
--- a/kubernetes/apps/health-simulator/src/main/java/de/codecentric/healthsimulator/health/HealthController.java
+++ b/kubernetes/apps/health-simulator/src/main/java/de/codecentric/healthsimulator/health/HealthController.java
@@ -1,7 +1,7 @@
package de.codecentric.healthsimulator.health;
import lombok.RequiredArgsConstructor;
-import org.springframework.boot.actuate.health.Status;
+import org.springframework.boot.health.contributor.Status;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
diff --git a/kubernetes/apps/health-simulator/src/main/java/de/codecentric/healthsimulator/health/HealthIndicatorSimulation.java b/kubernetes/apps/health-simulator/src/main/java/de/codecentric/healthsimulator/health/HealthIndicatorSimulation.java
index 297e466..d3f9a77 100644
--- a/kubernetes/apps/health-simulator/src/main/java/de/codecentric/healthsimulator/health/HealthIndicatorSimulation.java
+++ b/kubernetes/apps/health-simulator/src/main/java/de/codecentric/healthsimulator/health/HealthIndicatorSimulation.java
@@ -2,9 +2,9 @@
import lombok.Getter;
import lombok.Setter;
-import org.springframework.boot.actuate.health.Health;
-import org.springframework.boot.actuate.health.HealthIndicator;
-import org.springframework.boot.actuate.health.Status;
+import org.springframework.boot.health.contributor.Health;
+import org.springframework.boot.health.contributor.HealthIndicator;
+import org.springframework.boot.health.contributor.Status;
import org.springframework.stereotype.Component;
@Component
diff --git a/kubernetes/apps/hello-world/pom.xml b/kubernetes/apps/hello-world/pom.xml
index a97d6a0..443ecf7 100644
--- a/kubernetes/apps/hello-world/pom.xml
+++ b/kubernetes/apps/hello-world/pom.xml
@@ -7,7 +7,7 @@
org.springframework.boot
spring-boot-starter-parent
- 3.5.6
+ 4.0.0
de.codecentric
diff --git a/kubernetes/apps/spring-boot-admin-discoveryclient/deployment/values.yml b/kubernetes/apps/spring-boot-admin-discoveryclient/deployment/values.yml
index 1d6ba91..000a3e5 100644
--- a/kubernetes/apps/spring-boot-admin-discoveryclient/deployment/values.yml
+++ b/kubernetes/apps/spring-boot-admin-discoveryclient/deployment/values.yml
@@ -1,5 +1,4 @@
name: spring-boot-admin-discoveryclient
-namespace: default
deployment:
env:
diff --git a/kubernetes/apps/spring-boot-admin-discoveryclient/pom.xml b/kubernetes/apps/spring-boot-admin-discoveryclient/pom.xml
index 2089a54..0b783ca 100644
--- a/kubernetes/apps/spring-boot-admin-discoveryclient/pom.xml
+++ b/kubernetes/apps/spring-boot-admin-discoveryclient/pom.xml
@@ -7,7 +7,7 @@
org.springframework.boot
spring-boot-starter-parent
- 3.5.6
+ 4.0.0
de.codecentric
@@ -20,8 +20,8 @@
17
UTF-8
- 3.5.5
- 2025.0.0
+ 4.0.0-M1
+ 2025.1.0
diff --git a/kubernetes/apps/spring-boot-admin-fabric8/deployment/values.yml b/kubernetes/apps/spring-boot-admin-fabric8/deployment/values.yml
index 87e88ff..9a6aa55 100644
--- a/kubernetes/apps/spring-boot-admin-fabric8/deployment/values.yml
+++ b/kubernetes/apps/spring-boot-admin-fabric8/deployment/values.yml
@@ -1,5 +1,4 @@
name: spring-boot-admin-fabric8
-namespace: default
deployment:
env:
diff --git a/kubernetes/apps/spring-boot-admin-fabric8/pom.xml b/kubernetes/apps/spring-boot-admin-fabric8/pom.xml
index a78a764..bf4cb76 100644
--- a/kubernetes/apps/spring-boot-admin-fabric8/pom.xml
+++ b/kubernetes/apps/spring-boot-admin-fabric8/pom.xml
@@ -7,7 +7,7 @@
org.springframework.boot
spring-boot-starter-parent
- 3.5.6
+ 4.0.0
de.codecentric
@@ -20,8 +20,8 @@
17
UTF-8
- 3.5.5
- 2025.0.0
+ 4.0.0-M1
+ 2025.1.0
diff --git a/kubernetes/apps/spring-boot-admin-kubernetes/deployment/values.yml b/kubernetes/apps/spring-boot-admin-kubernetes/deployment/values.yml
index 4679cd0..ba4a27b 100644
--- a/kubernetes/apps/spring-boot-admin-kubernetes/deployment/values.yml
+++ b/kubernetes/apps/spring-boot-admin-kubernetes/deployment/values.yml
@@ -1,5 +1,4 @@
name: spring-boot-admin-kubernetes
-namespace: default
deployment:
env:
diff --git a/kubernetes/apps/spring-boot-admin-kubernetes/pom.xml b/kubernetes/apps/spring-boot-admin-kubernetes/pom.xml
index 2d2efb0..066a927 100644
--- a/kubernetes/apps/spring-boot-admin-kubernetes/pom.xml
+++ b/kubernetes/apps/spring-boot-admin-kubernetes/pom.xml
@@ -7,7 +7,7 @@
org.springframework.boot
spring-boot-starter-parent
- 3.5.6
+ 4.0.0
de.codecentric
@@ -20,8 +20,8 @@
17
UTF-8
- 3.5.5
- 2025.0.0
+ 4.0.0-M1
+ 2025.1.0
diff --git a/kubernetes/apps/spring-boot-admin-kubernetes/src/main/resources/application.yml b/kubernetes/apps/spring-boot-admin-kubernetes/src/main/resources/application.yml
index 1488e34..847ba04 100644
--- a/kubernetes/apps/spring-boot-admin-kubernetes/src/main/resources/application.yml
+++ b/kubernetes/apps/spring-boot-admin-kubernetes/src/main/resources/application.yml
@@ -7,7 +7,7 @@ spring:
boot:
admin:
ui:
- # public-url: ${SPRING_BOOT_ADMIN_UI_PUBLIC_URL:http://localhost:8080}
+ # public-url: ${SPRING_BOOT_ADMIN_UI_PUBLIC_URL:http://localhost:9090}
title: ${SPRING_BOOT_ADMIN_UI_TITLE:Spring Boot Admin}
brand:
${SPRING_BOOT_ADMIN_UI_TITLE:Spring Boot Admin}
cloud:
diff --git a/kubernetes/helm-charts/spring-boot-admin/values.yaml b/kubernetes/helm-charts/spring-boot-admin/values.yaml
index 81b6447..5df10c8 100644
--- a/kubernetes/helm-charts/spring-boot-admin/values.yaml
+++ b/kubernetes/helm-charts/spring-boot-admin/values.yaml
@@ -5,8 +5,7 @@ deployment:
env:
SPRING_BOOT_ADMIN_UI_TITLE: Spring Boot Admin - Kubernetes
image: spring-boot-admin
- # do not pull image but use locally built image, not recommended for production
- pullPolicy: Never
+ pullPolicy: Always
updateStrategy: RollingUpdate
maxSurge: 100%
maxUnavailable: 0%
diff --git a/kubernetes/helm-charts/spring-boot-app/values.yaml b/kubernetes/helm-charts/spring-boot-app/values.yaml
index 5d5cb61..a572fc1 100644
--- a/kubernetes/helm-charts/spring-boot-app/values.yaml
+++ b/kubernetes/helm-charts/spring-boot-app/values.yaml
@@ -3,8 +3,7 @@ namespace: default
deployment:
image: spring-boot-app-default
- # do not pull image but use locally built image, not recommended for production
- pullPolicy: Never
+ pullPolicy: Always
updateStrategy: RollingUpdate
maxSurge: 100%
maxUnavailable: 0%
@@ -20,4 +19,4 @@ deployment:
port: 8080
management:
port: 8081
- group: default
\ No newline at end of file
+ group: default
diff --git a/kubernetes/helm-charts/spring-cloud-kubernetes-discoveryserver/README.md b/kubernetes/helm-charts/spring-cloud-kubernetes-discoveryserver/README.md
index 71bc6c4..51a99a1 100644
--- a/kubernetes/helm-charts/spring-cloud-kubernetes-discoveryserver/README.md
+++ b/kubernetes/helm-charts/spring-cloud-kubernetes-discoveryserver/README.md
@@ -6,7 +6,7 @@ https://docs.spring.io/spring-cloud-kubernetes/reference/spring-cloud-kubernetes
## Install Spring Cloud Kubernetes Discovery Server
```bash
-helm upgrade --install spring-cloud-kubernetes-discoveryserver .
+helm upgrade --install spring-cloud-kubernetes-discoveryserver . -f values.yaml
```
### Check deployment
diff --git a/kubernetes/helm-charts/spring-cloud-kubernetes-discoveryserver/templates/role-binding.yaml b/kubernetes/helm-charts/spring-cloud-kubernetes-discoveryserver/templates/role-binding.yaml
index 3ae9b68..c98f2bb 100644
--- a/kubernetes/helm-charts/spring-cloud-kubernetes-discoveryserver/templates/role-binding.yaml
+++ b/kubernetes/helm-charts/spring-cloud-kubernetes-discoveryserver/templates/role-binding.yaml
@@ -10,4 +10,5 @@ roleRef:
name: namespace-reader
subjects:
- kind: ServiceAccount
- name: spring-cloud-kubernetes-discoveryserver
\ No newline at end of file
+ name: spring-cloud-kubernetes-discoveryserver
+ namespace: {{ .Values.namespace }}
diff --git a/kubernetes/helm-charts/spring-cloud-kubernetes-discoveryserver/templates/role.yaml b/kubernetes/helm-charts/spring-cloud-kubernetes-discoveryserver/templates/role.yaml
index 9169a16..fa3ed89 100644
--- a/kubernetes/helm-charts/spring-cloud-kubernetes-discoveryserver/templates/role.yaml
+++ b/kubernetes/helm-charts/spring-cloud-kubernetes-discoveryserver/templates/role.yaml
@@ -1,7 +1,6 @@
kind: Role
apiVersion: rbac.authorization.k8s.io/v1
metadata:
- namespace: default
name: namespace-reader
rules:
- apiGroups:
diff --git a/kubernetes/helm-charts/spring-cloud-kubernetes-discoveryserver/values.yaml b/kubernetes/helm-charts/spring-cloud-kubernetes-discoveryserver/values.yaml
index d80453e..e1e6d6e 100644
--- a/kubernetes/helm-charts/spring-cloud-kubernetes-discoveryserver/values.yaml
+++ b/kubernetes/helm-charts/spring-cloud-kubernetes-discoveryserver/values.yaml
@@ -3,8 +3,8 @@ namespace: default
deployment:
# https://hub.docker.com/r/springcloud/spring-cloud-kubernetes-discoveryserver/tags
- image: springcloud/spring-cloud-kubernetes-discoveryserver:3.3.0
- pullPolicy: IfNotPresent
+ image: springcloud/spring-cloud-kubernetes-discoveryserver:5.0.0-M4
+ pullPolicy: Always
updateStrategy: RollingUpdate
maxSurge: 100%
maxUnavailable: 0%
diff --git a/kubernetes/helm-charts/traefik/README.md b/kubernetes/helm-charts/traefik/README.md
index 48548f0..83a0efa 100644
--- a/kubernetes/helm-charts/traefik/README.md
+++ b/kubernetes/helm-charts/traefik/README.md
@@ -6,7 +6,7 @@ https://doc.traefik.io/traefik/getting-started/quick-start-with-kubernetes/
## Install Traefik
```bash
-helm upgrade --install traefik .
+helm upgrade --install traefik . -f values.yaml
```
### Check deployment
diff --git a/kubernetes/helm-charts/traefik/templates/deployment.yaml b/kubernetes/helm-charts/traefik/templates/deployment.yaml
index c728cb2..018827c 100644
--- a/kubernetes/helm-charts/traefik/templates/deployment.yaml
+++ b/kubernetes/helm-charts/traefik/templates/deployment.yaml
@@ -2,6 +2,7 @@ kind: Deployment
apiVersion: apps/v1
metadata:
name: traefik-deployment
+ namespace: {{ .Values.namespace }}
labels:
app: traefik
@@ -18,7 +19,7 @@ spec:
serviceAccountName: traefik-account
containers:
- name: traefik
- image: traefik:v2.9
+ image: {{ .Values.deployment.image }}
args:
- --api.insecure
- --providers.kubernetesingress
diff --git a/kubernetes/helm-charts/traefik/templates/role-binding.yaml b/kubernetes/helm-charts/traefik/templates/role-binding.yaml
index eba0438..b8e2192 100644
--- a/kubernetes/helm-charts/traefik/templates/role-binding.yaml
+++ b/kubernetes/helm-charts/traefik/templates/role-binding.yaml
@@ -10,4 +10,4 @@ roleRef:
subjects:
- kind: ServiceAccount
name: traefik-account
- namespace: default # Using "default" because we did not specify a namespace when creating the ClusterAccount.
+ namespace: {{ .Values.namespace }}
diff --git a/kubernetes/helm-charts/traefik/templates/role.yaml b/kubernetes/helm-charts/traefik/templates/role.yaml
index 7e07e3f..e23bf64 100644
--- a/kubernetes/helm-charts/traefik/templates/role.yaml
+++ b/kubernetes/helm-charts/traefik/templates/role.yaml
@@ -4,18 +4,29 @@ metadata:
name: traefik-role
rules:
+ # Core Kubernetes Ressourcen
- apiGroups:
- ""
resources:
- services
- endpoints
- secrets
+ - nodes
verbs:
- get
- list
- watch
+ # EndpointSlices
+ - apiGroups:
+ - discovery.k8s.io
+ resources:
+ - endpointslices
+ verbs:
+ - list
+ - watch
+ - get
+ # Standard Kubernetes Ingress API
- apiGroups:
- - extensions
- networking.k8s.io
resources:
- ingresses
@@ -25,7 +36,6 @@ rules:
- list
- watch
- apiGroups:
- - extensions
- networking.k8s.io
resources:
- ingresses/status
diff --git a/kubernetes/helm-charts/traefik/templates/service.yaml b/kubernetes/helm-charts/traefik/templates/service.yaml
index 1860f5b..c1564f6 100644
--- a/kubernetes/helm-charts/traefik/templates/service.yaml
+++ b/kubernetes/helm-charts/traefik/templates/service.yaml
@@ -2,6 +2,7 @@ apiVersion: v1
kind: Service
metadata:
name: traefik-dashboard-service
+ namespace: {{ .Values.namespace }}
spec:
type: LoadBalancer
@@ -15,6 +16,7 @@ apiVersion: v1
kind: Service
metadata:
name: traefik-web-service
+ namespace: {{ .Values.namespace }}
spec:
type: LoadBalancer
diff --git a/kubernetes/helm-charts/traefik/values.yaml b/kubernetes/helm-charts/traefik/values.yaml
new file mode 100644
index 0000000..3b97bca
--- /dev/null
+++ b/kubernetes/helm-charts/traefik/values.yaml
@@ -0,0 +1,4 @@
+namespace: default
+
+deployment:
+ image: traefik:3