From 3f6b6798f4d5ef5791b816db342deb7400829adc Mon Sep 17 00:00:00 2001 From: Andrei Kvapil Date: Tue, 17 Jun 2025 01:30:33 +0200 Subject: [PATCH] [kubernetes] Fixes for resources and migration to v0.32.4 Signed-off-by: Andrei Kvapil --- packages/apps/kubernetes/README.md | 20 ++++++------- packages/apps/kubernetes/values.schema.json | 2 +- packages/apps/kubernetes/values.yaml | 2 +- packages/apps/versions_map | 31 --------------------- scripts/migrations/15 | 28 +++++++++++++++++++ 5 files changed, 40 insertions(+), 43 deletions(-) create mode 100644 scripts/migrations/15 diff --git a/packages/apps/kubernetes/README.md b/packages/apps/kubernetes/README.md index 9470ee38..063d1274 100644 --- a/packages/apps/kubernetes/README.md +++ b/packages/apps/kubernetes/README.md @@ -110,16 +110,16 @@ See the reference for components utilized in this service: ### Kubernetes Control Plane Configuration -| Name | Description | Value | -| -------------------------------------------------- | ---------------------------------------------------------------------------- | ------- | -| `controlPlane.apiServer.resources` | Explicit CPU/memory resource requests and limits for the API server. | `{}` | -| `controlPlane.apiServer.resourcesPreset` | Use a common resources preset when `resources` is not set explicitly. | `small` | -| `controlPlane.controllerManager.resources` | Explicit CPU/memory resource requests and limits for the controller manager. | `{}` | -| `controlPlane.controllerManager.resourcesPreset` | Use a common resources preset when `resources` is not set explicitly. | `micro` | -| `controlPlane.scheduler.resources` | Explicit CPU/memory resource requests and limits for the scheduler. | `{}` | -| `controlPlane.scheduler.resourcesPreset` | Use a common resources preset when `resources` is not set explicitly. | `micro` | -| `controlPlane.konnectivity.server.resources` | Explicit CPU/memory resource requests and limits for the Konnectivity. | `{}` | -| `controlPlane.konnectivity.server.resourcesPreset` | Use a common resources preset when `resources` is not set explicitly. | `micro` | +| Name | Description | Value | +| -------------------------------------------------- | ---------------------------------------------------------------------------- | -------- | +| `controlPlane.apiServer.resources` | Explicit CPU/memory resource requests and limits for the API server. | `{}` | +| `controlPlane.apiServer.resourcesPreset` | Use a common resources preset when `resources` is not set explicitly. | `medium` | +| `controlPlane.controllerManager.resources` | Explicit CPU/memory resource requests and limits for the controller manager. | `{}` | +| `controlPlane.controllerManager.resourcesPreset` | Use a common resources preset when `resources` is not set explicitly. | `micro` | +| `controlPlane.scheduler.resources` | Explicit CPU/memory resource requests and limits for the scheduler. | `{}` | +| `controlPlane.scheduler.resourcesPreset` | Use a common resources preset when `resources` is not set explicitly. | `micro` | +| `controlPlane.konnectivity.server.resources` | Explicit CPU/memory resource requests and limits for the Konnectivity. | `{}` | +| `controlPlane.konnectivity.server.resourcesPreset` | Use a common resources preset when `resources` is not set explicitly. | `micro` | In production environments, it's recommended to set `resources` explicitly. Example of `controlPlane.*.resources`: diff --git a/packages/apps/kubernetes/values.schema.json b/packages/apps/kubernetes/values.schema.json index 90e34e67..68946f76 100644 --- a/packages/apps/kubernetes/values.schema.json +++ b/packages/apps/kubernetes/values.schema.json @@ -26,7 +26,7 @@ "resourcesPreset": { "type": "string", "description": "Use a common resources preset when `resources` is not set explicitly.", - "default": "small", + "default": "medium", "enum": [ "none", "nano", diff --git a/packages/apps/kubernetes/values.yaml b/packages/apps/kubernetes/values.yaml index 6757f3c8..840e5725 100644 --- a/packages/apps/kubernetes/values.yaml +++ b/packages/apps/kubernetes/values.yaml @@ -123,7 +123,7 @@ controlPlane: ## cpu: 100m ## memory: 512Mi ## - resourcesPreset: "small" + resourcesPreset: "medium" resources: {} controllerManager: diff --git a/packages/apps/versions_map b/packages/apps/versions_map index 31f8be93..5d33e603 100644 --- a/packages/apps/versions_map +++ b/packages/apps/versions_map @@ -45,37 +45,6 @@ kafka 0.5.0 93bdf411 kafka 0.6.0 6130f43d kafka 0.6.1 632224a3 kafka 0.7.0 HEAD -kubernetes 0.1.0 263e47be -kubernetes 0.2.0 53f2365e -kubernetes 0.3.0 007d414f -kubernetes 0.4.0 d7cfa53c -kubernetes 0.5.0 dfbc210b -kubernetes 0.6.0 5bbc488e -kubernetes 0.7.0 e9716091 -kubernetes 0.8.0 ac11056e -kubernetes 0.8.1 366bcafc -kubernetes 0.8.2 f81be075 -kubernetes 0.9.0 6c5cf5bf -kubernetes 0.10.0 b8e33d19 -kubernetes 0.11.0 4b90bf5a -kubernetes 0.11.1 5fb9cfe3 -kubernetes 0.12.0 bb985806 -kubernetes 0.12.1 28fca4ef -kubernetes 0.13.0 1ec10165 -kubernetes 0.14.0 bfbde07c -kubernetes 0.14.1 898374b5 -kubernetes 0.15.0 4e68e65c -kubernetes 0.15.1 160e4e2a -kubernetes 0.15.2 8267072d -kubernetes 0.16.0 077045b0 -kubernetes 0.17.0 1fbbfcd0 -kubernetes 0.17.1 fd240701 -kubernetes 0.18.0 721c12a7 -kubernetes 0.19.0 93bdf411 -kubernetes 0.20.0 609e7ede -kubernetes 0.20.1 f9f8bb2f -kubernetes 0.21.0 6130f43d -kubernetes 0.23.1 632224a3 kubernetes 0.24.0 HEAD mysql 0.1.0 263e47be mysql 0.2.0 c24a103f diff --git a/scripts/migrations/15 b/scripts/migrations/15 new file mode 100644 index 00000000..e0d78cfb --- /dev/null +++ b/scripts/migrations/15 @@ -0,0 +1,28 @@ +#!/bin/sh +# Migration 15 --> 16 + +if kubectl get validatingwebhookconfigurations.admissionregistration.k8s.io kamaji-validating-webhook-configuration; then + kubectl delete validatingwebhookconfigurations.admissionregistration.k8s.io kamaji-validating-webhook-configuration +fi +kubectl get kamajicontrolplane -A -o custom-columns=NAMESPACE:.metadata.namespace,NAME:.metadata.name,VERSION:.spec.version,VERSION:.status.version --no-headers | + while read namespace name version status; do + if [ "$status" = "v1.32.4" ]; then + continue + fi + (set -x; kubectl patch kamajicontrolplane "$name" -n "$namespace" --type merge -p '{"spec":{"version":"1.32.4"}}') + (set -x; kubectl patch kamajicontrolplane "$name" -n "$namespace" --type merge -p '{"status":{"version":"v1.32.4"}}' --subresource status) + (set -x; kubectl patch tcp "$name" -n "$namespace" --type merge -p '{"spec":{"kubernetes":{"version":"1.32.4"}}}') + (set -x; kubectl patch tcp "$name" -n "$namespace" --type merge -p '{"status":{"kubernetesResources":{"version":{"version":"v1.32.4"}}}} ' --subresource status) + done + +# Upgrade kubernetes.apps to new chart version +kubectl get kuberneteses.apps.cozystack.io -A --no-headers --output=custom-columns='NAMESPACE:.metadata.namespace,NAME:.metadata.name' | while read NAMESPACE NAME; do + kubectl patch kuberneteses.apps.cozystack.io -n "$NAMESPACE" "$NAME" --type merge -p '{"appVersion":"0.24.0"}' +done + +if kubectl get helmrelease kamaji -n cozy-kamaji; then + cozypkg reconcile kamaji -n cozy-kamaji --force +fi + +# Write version to cozystack-version config +kubectl create configmap -n cozy-system cozystack-version --from-literal=version=16 --dry-run=client -o yaml | kubectl apply -f-