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