diff --git a/packages/apps/kubernetes/Chart.yaml b/packages/apps/kubernetes/Chart.yaml index 16617d5d..bde52de2 100644 --- a/packages/apps/kubernetes/Chart.yaml +++ b/packages/apps/kubernetes/Chart.yaml @@ -16,7 +16,7 @@ type: application # This is the chart version. This version number should be incremented each time you make changes # to the chart and its templates, including the app version. # Versions are expected to follow Semantic Versioning (https://semver.org/) -version: 0.16.0 +version: 0.17.0 # This is the version number of the application being deployed. This version number should be # incremented each time you make changes to the application. Versions are not expected to diff --git a/packages/apps/kubernetes/templates/_resources.tpl b/packages/apps/kubernetes/templates/_resources.tpl new file mode 100644 index 00000000..7ada56d4 --- /dev/null +++ b/packages/apps/kubernetes/templates/_resources.tpl @@ -0,0 +1,50 @@ +{{/* +Copyright Broadcom, Inc. All Rights Reserved. +SPDX-License-Identifier: APACHE-2.0 +*/}} + +{{/* vim: set filetype=mustache: */}} + +{{/* +Return a resource request/limit object based on a given preset. +These presets are for basic testing and not meant to be used in production +{{ include "resources.preset" (dict "type" "nano") -}} +*/}} +{{- define "resources.preset" -}} +{{/* The limits are the requests increased by 50% (except ephemeral-storage and xlarge/2xlarge sizes)*/}} +{{- $presets := dict + "nano" (dict + "requests" (dict "cpu" "100m" "memory" "128Mi" "ephemeral-storage" "50Mi") + "limits" (dict "cpu" "150m" "memory" "192Mi" "ephemeral-storage" "2Gi") + ) + "micro" (dict + "requests" (dict "cpu" "250m" "memory" "256Mi" "ephemeral-storage" "50Mi") + "limits" (dict "cpu" "375m" "memory" "384Mi" "ephemeral-storage" "2Gi") + ) + "small" (dict + "requests" (dict "cpu" "500m" "memory" "512Mi" "ephemeral-storage" "50Mi") + "limits" (dict "cpu" "750m" "memory" "768Mi" "ephemeral-storage" "2Gi") + ) + "medium" (dict + "requests" (dict "cpu" "500m" "memory" "1024Mi" "ephemeral-storage" "50Mi") + "limits" (dict "cpu" "750m" "memory" "1536Mi" "ephemeral-storage" "2Gi") + ) + "large" (dict + "requests" (dict "cpu" "1.0" "memory" "2048Mi" "ephemeral-storage" "50Mi") + "limits" (dict "cpu" "1.5" "memory" "3072Mi" "ephemeral-storage" "2Gi") + ) + "xlarge" (dict + "requests" (dict "cpu" "1.0" "memory" "3072Mi" "ephemeral-storage" "50Mi") + "limits" (dict "cpu" "3.0" "memory" "6144Mi" "ephemeral-storage" "2Gi") + ) + "2xlarge" (dict + "requests" (dict "cpu" "1.0" "memory" "3072Mi" "ephemeral-storage" "50Mi") + "limits" (dict "cpu" "6.0" "memory" "12288Mi" "ephemeral-storage" "2Gi") + ) + }} +{{- if hasKey $presets .type -}} +{{- index $presets .type | toYaml -}} +{{- else -}} +{{- printf "ERROR: Preset key '%s' invalid. Allowed values are %s" .type (join "," (keys $presets)) | fail -}} +{{- end -}} +{{- end -}} diff --git a/packages/apps/kubernetes/templates/cluster.yaml b/packages/apps/kubernetes/templates/cluster.yaml index 37cc560f..a208bc6e 100644 --- a/packages/apps/kubernetes/templates/cluster.yaml +++ b/packages/apps/kubernetes/templates/cluster.yaml @@ -102,12 +102,37 @@ metadata: annotations: kamaji.clastix.io/kubeconfig-secret-key: "super-admin.svc" spec: + apiServer: + {{- if .Values.kamajiControlPlane.apiServer.resources }} + resources: {{- toYaml .Values.kamajiControlPlane.apiServer.resources | nindent 6 }} + {{- else if ne .Values.kamajiControlPlane.apiServer.resourcesPreset "none" }} + resources: {{- include "resources.preset" (dict "type" .Values.kamajiControlPlane.apiServer.resourcesPreset "Release" .Release) | nindent 6 }} + {{- end }} + controllerManager: + {{- if .Values.kamajiControlPlane.controllerManager.resources }} + resources: {{- toYaml .Values.kamajiControlPlane.controllerManager.resources | nindent 6 }} + {{- else if ne .Values.kamajiControlPlane.controllerManager.resourcesPreset "none" }} + resources: {{- include "resources.preset" (dict "type" .Values.kamajiControlPlane.controllerManager.resourcesPreset "Release" .Release) | nindent 6 }} + {{- end }} + scheduler: + {{- if .Values.kamajiControlPlane.scheduler.resources }} + resources: {{- toYaml .Values.kamajiControlPlane.scheduler.resources | nindent 6 }} + {{- else if ne .Values.kamajiControlPlane.scheduler.resourcesPreset "none" }} + resources: {{- include "resources.preset" (dict "type" .Values.kamajiControlPlane.scheduler.resourcesPreset "Release" .Release) | nindent 6 }} + {{- end }} dataStoreName: "{{ $etcd }}" addons: coreDNS: dnsServiceIPs: - 10.95.0.10 - konnectivity: {} + konnectivity: + server: + port: 8132 + {{- if .Values.kamajiControlPlane.addons.konnectivity.server.resources }} + resources: {{- toYaml .Values.kamajiControlPlane.addons.konnectivity.server.resources | nindent 10 }} + {{- else if ne .Values.kamajiControlPlane.addons.konnectivity.server.resourcesPreset "none" }} + resources: {{- include "resources.preset" (dict "type" .Values.kamajiControlPlane.addons.konnectivity.server.resourcesPreset "Release" .Release) | nindent 10 }} + {{- end }} kubelet: cgroupfs: systemd preferredAddressTypes: diff --git a/packages/apps/kubernetes/templates/helmreleases/cert-manager-crds.yaml b/packages/apps/kubernetes/templates/helmreleases/cert-manager-crds.yaml index 2b07948f..8ee5dc82 100644 --- a/packages/apps/kubernetes/templates/helmreleases/cert-manager-crds.yaml +++ b/packages/apps/kubernetes/templates/helmreleases/cert-manager-crds.yaml @@ -18,7 +18,8 @@ spec: namespace: cozy-system kubeConfig: secretRef: - name: {{ .Release.Name }}-kubeconfig + name: {{ .Release.Name }}-admin-kubeconfig + key: super-admin.svc targetNamespace: cozy-cert-manager-crds storageNamespace: cozy-cert-manager-crds install: diff --git a/packages/apps/kubernetes/templates/helmreleases/cert-manager.yaml b/packages/apps/kubernetes/templates/helmreleases/cert-manager.yaml index de9d76f9..8a7213a9 100644 --- a/packages/apps/kubernetes/templates/helmreleases/cert-manager.yaml +++ b/packages/apps/kubernetes/templates/helmreleases/cert-manager.yaml @@ -19,7 +19,8 @@ spec: namespace: cozy-system kubeConfig: secretRef: - name: {{ .Release.Name }}-kubeconfig + name: {{ .Release.Name }}-admin-kubeconfig + key: super-admin.svc targetNamespace: cozy-cert-manager storageNamespace: cozy-cert-manager install: diff --git a/packages/apps/kubernetes/templates/helmreleases/cilium.yaml b/packages/apps/kubernetes/templates/helmreleases/cilium.yaml index 50546df3..cf6bbe12 100644 --- a/packages/apps/kubernetes/templates/helmreleases/cilium.yaml +++ b/packages/apps/kubernetes/templates/helmreleases/cilium.yaml @@ -18,7 +18,8 @@ spec: namespace: cozy-system kubeConfig: secretRef: - name: {{ .Release.Name }}-kubeconfig + name: {{ .Release.Name }}-admin-kubeconfig + key: super-admin.svc targetNamespace: cozy-cilium storageNamespace: cozy-cilium install: diff --git a/packages/apps/kubernetes/templates/helmreleases/csi.yaml b/packages/apps/kubernetes/templates/helmreleases/csi.yaml index 4f0bf29a..2fe33509 100644 --- a/packages/apps/kubernetes/templates/helmreleases/csi.yaml +++ b/packages/apps/kubernetes/templates/helmreleases/csi.yaml @@ -18,7 +18,8 @@ spec: namespace: cozy-system kubeConfig: secretRef: - name: {{ .Release.Name }}-kubeconfig + name: {{ .Release.Name }}-admin-kubeconfig + key: super-admin.svc targetNamespace: cozy-csi storageNamespace: cozy-csi install: diff --git a/packages/apps/kubernetes/templates/helmreleases/fluxcd.yaml b/packages/apps/kubernetes/templates/helmreleases/fluxcd.yaml index fde18212..c11629b9 100644 --- a/packages/apps/kubernetes/templates/helmreleases/fluxcd.yaml +++ b/packages/apps/kubernetes/templates/helmreleases/fluxcd.yaml @@ -19,7 +19,8 @@ spec: namespace: cozy-system kubeConfig: secretRef: - name: {{ .Release.Name }}-kubeconfig + name: {{ .Release.Name }}-admin-kubeconfig + key: super-admin.svc targetNamespace: cozy-fluxcd storageNamespace: cozy-fluxcd install: diff --git a/packages/apps/kubernetes/templates/helmreleases/ingress-nginx.yaml b/packages/apps/kubernetes/templates/helmreleases/ingress-nginx.yaml index 0bb7f022..8daaf01f 100644 --- a/packages/apps/kubernetes/templates/helmreleases/ingress-nginx.yaml +++ b/packages/apps/kubernetes/templates/helmreleases/ingress-nginx.yaml @@ -19,7 +19,8 @@ spec: namespace: cozy-system kubeConfig: secretRef: - name: {{ .Release.Name }}-kubeconfig + name: {{ .Release.Name }}-admin-kubeconfig + key: super-admin.svc targetNamespace: cozy-ingress-nginx storageNamespace: cozy-ingress-nginx install: diff --git a/packages/apps/kubernetes/templates/helmreleases/monitoring-agents.yaml b/packages/apps/kubernetes/templates/helmreleases/monitoring-agents.yaml index dc8792d7..ab129e64 100644 --- a/packages/apps/kubernetes/templates/helmreleases/monitoring-agents.yaml +++ b/packages/apps/kubernetes/templates/helmreleases/monitoring-agents.yaml @@ -21,7 +21,8 @@ spec: namespace: cozy-system kubeConfig: secretRef: - name: {{ .Release.Name }}-kubeconfig + name: {{ .Release.Name }}-admin-kubeconfig + key: super-admin.svc targetNamespace: cozy-monitoring-agents storageNamespace: cozy-monitoring-agents install: diff --git a/packages/apps/kubernetes/templates/helmreleases/victoria-metrics-operator.yaml b/packages/apps/kubernetes/templates/helmreleases/victoria-metrics-operator.yaml index 1079654a..de19c968 100644 --- a/packages/apps/kubernetes/templates/helmreleases/victoria-metrics-operator.yaml +++ b/packages/apps/kubernetes/templates/helmreleases/victoria-metrics-operator.yaml @@ -19,7 +19,8 @@ spec: namespace: cozy-system kubeConfig: secretRef: - name: {{ .Release.Name }}-kubeconfig + name: {{ .Release.Name }}-admin-kubeconfig + key: super-admin.svc targetNamespace: cozy-victoria-metrics-operator storageNamespace: cozy-victoria-metrics-operator install: diff --git a/packages/apps/kubernetes/values.yaml b/packages/apps/kubernetes/values.yaml index cf66210a..e195b9b9 100644 --- a/packages/apps/kubernetes/values.yaml +++ b/packages/apps/kubernetes/values.yaml @@ -69,3 +69,63 @@ addons: ## enabled: false valuesOverride: {} + +## @section Kamaji control plane +## +kamajiControlPlane: + apiServer: + ## @param kamajiControlPlane.apiServer.resources Resources + resources: {} + # resources: + # limits: + # cpu: 4000m + # memory: 4Gi + # requests: + # cpu: 100m + # memory: 512Mi + + ## @param kamajiControlPlane.apiServer.resourcesPreset Set container resources according to one common preset (allowed values: none, nano, micro, small, medium, large, xlarge, 2xlarge). This is ignored if resources is set (resources is recommended for production). + resourcesPreset: "micro" + + controllerManager: + ## @param kamajiControlPlane.controllerManager.resources Resources + resources: {} + # resources: + # limits: + # cpu: 4000m + # memory: 4Gi + # requests: + # cpu: 100m + # memory: 512Mi + + ## @param kamajiControlPlane.controllerManager.resourcesPreset Set container resources according to one common preset (allowed values: none, nano, micro, small, medium, large, xlarge, 2xlarge). This is ignored if resources is set (resources is recommended for production). + resourcesPreset: "micro" + scheduler: + ## @param kamajiControlPlane.scheduler.resources Resources + resources: {} + # resources: + # limits: + # cpu: 4000m + # memory: 4Gi + # requests: + # cpu: 100m + # memory: 512Mi + + ## @param kamajiControlPlane.scheduler.resourcesPreset Set container resources according to one common preset (allowed values: none, nano, micro, small, medium, large, xlarge, 2xlarge). This is ignored if resources is set (resources is recommended for production). + resourcesPreset: "micro" + addons: + konnectivity: + server: + ## @param kamajiControlPlane.addons.konnectivity.server.resources Resources + resources: {} + # resources: + # limits: + # cpu: 4000m + # memory: 4Gi + # requests: + # cpu: 100m + # memory: 512Mi + + ## @param kamajiControlPlane.addons.konnectivity.server.resourcesPreset Set container resources according to one common preset (allowed values: none, nano, micro, small, medium, large, xlarge, 2xlarge). This is ignored if resources is set (resources is recommended for production). + resourcesPreset: "micro" + \ No newline at end of file diff --git a/packages/apps/tcp-balancer/values.schema.json b/packages/apps/tcp-balancer/values.schema.json index e69de29b..73a0b045 100644 --- a/packages/apps/tcp-balancer/values.schema.json +++ b/packages/apps/tcp-balancer/values.schema.json @@ -0,0 +1,72 @@ +{ + "title": "Chart Values", + "type": "object", + "properties": { + "external": { + "type": "boolean", + "description": "Enable external access from outside the cluster", + "default": false + }, + "replicas": { + "type": "number", + "description": "Number of HAProxy replicas", + "default": 2 + }, + "httpAndHttps": { + "type": "object", + "properties": { + "mode": { + "type": "string", + "description": "Mode for balancer. Allowed values: `tcp` and `tcp-with-proxy`", + "default": "tcp", + "enum": [ + "tcp", + "tcp-with-proxy" + ] + }, + "targetPorts": { + "type": "object", + "properties": { + "http": { + "type": "number", + "description": "HTTP port number.", + "default": 80 + }, + "https": { + "type": "number", + "description": "HTTPS port number.", + "default": 443 + } + } + }, + "endpoints": { + "type": "array", + "description": "Endpoint addresses list", + "default": [], + "items": {} + } + } + }, + "whitelistHTTP": { + "type": "boolean", + "description": "Secure HTTP by enabling client networks whitelisting", + "default": false + }, + "whitelist": { + "type": "array", + "description": "List of client networks", + "default": [], + "items": {} + }, + "resources": { + "type": "object", + "description": "Resources", + "default": {} + }, + "resourcesPreset": { + "type": "string", + "description": "Set container resources according to one common preset (allowed values: none, nano, micro, small, medium, large, xlarge, 2xlarge). This is ignored if resources is set (resources is recommended for production).", + "default": "nano" + } + } +} diff --git a/packages/apps/tenant/Chart.yaml b/packages/apps/tenant/Chart.yaml index 7e1a5573..bba14724 100644 --- a/packages/apps/tenant/Chart.yaml +++ b/packages/apps/tenant/Chart.yaml @@ -4,4 +4,4 @@ description: Separated tenant namespace icon: /logos/tenant.svg type: application -version: 1.9.0 +version: 1.9.1 diff --git a/packages/apps/tenant/templates/namespace.yaml b/packages/apps/tenant/templates/namespace.yaml index 3d2ec3b1..d97ebf42 100644 --- a/packages/apps/tenant/templates/namespace.yaml +++ b/packages/apps/tenant/templates/namespace.yaml @@ -41,6 +41,7 @@ metadata: {{- end }} {{- end }} {{- include "cozystack.namespace-anotations" (list $ $existingNS) | nindent 4 }} + alpha.kubevirt.io/auto-memory-limits-ratio: "1.0" ownerReferences: - apiVersion: v1 blockOwnerDeletion: true diff --git a/packages/apps/versions_map b/packages/apps/versions_map index 5f0d7e0e..f96e27b3 100644 --- a/packages/apps/versions_map +++ b/packages/apps/versions_map @@ -55,7 +55,8 @@ kubernetes 0.14.1 fde4bcfa kubernetes 0.15.0 cb7b8158 kubernetes 0.15.1 43e593c7 kubernetes 0.15.2 43e593c7 -kubernetes 0.16.0 HEAD +kubernetes 0.16.0 3d03b227 +kubernetes 0.17.0 HEAD mysql 0.1.0 f642698 mysql 0.2.0 8b975ff0 mysql 0.3.0 5ca8823 @@ -126,7 +127,8 @@ tenant 1.6.7 06afcf27 tenant 1.6.8 4cc48e6f tenant 1.7.0 6c73e3f3 tenant 1.8.0 e2369ba -tenant 1.9.0 HEAD +tenant 1.9.0 43e593c7 +tenant 1.9.1 HEAD virtual-machine 0.1.4 f2015d6 virtual-machine 0.1.5 7cd7de7 virtual-machine 0.2.0 5ca8823 diff --git a/packages/core/installer/values.yaml b/packages/core/installer/values.yaml index f058ed3f..10d61a69 100644 --- a/packages/core/installer/values.yaml +++ b/packages/core/installer/values.yaml @@ -1,2 +1,2 @@ cozystack: - image: kklinch0/installer:0.27.49@sha256:baf71ad11ade3ef10b9c77325a6385438054541f44248332afa3f95f8f66f7e5 + image: kklinch0/installer:0.27.58@sha256:51aaa5504b4e3507f93ea798ed4f75a1bdebec067f54ffd2b9c544732380708e diff --git a/packages/system/kubevirt/templates/kubevirt-cr.yaml b/packages/system/kubevirt/templates/kubevirt-cr.yaml index 5b0b3a0b..a292c15a 100644 --- a/packages/system/kubevirt/templates/kubevirt-cr.yaml +++ b/packages/system/kubevirt/templates/kubevirt-cr.yaml @@ -14,6 +14,7 @@ spec: - HotplugVolumes - ExpandDisks - LiveMigration + - AutoResourceLimitsGate evictionStrategy: LiveMigrate customizeComponents: {} imagePullPolicy: IfNotPresent