diff --git a/packages/apps/kubernetes/Chart.yaml b/packages/apps/kubernetes/Chart.yaml index 8cf61560..a832ade1 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.24.2 +version: 0.25.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/Makefile b/packages/apps/kubernetes/Makefile index 10898e65..190a5b0d 100644 --- a/packages/apps/kubernetes/Makefile +++ b/packages/apps/kubernetes/Makefile @@ -6,6 +6,7 @@ include ../../../scripts/package.mk generate: readme-generator -v values.yaml -s values.schema.json -r README.md + yq -o json -i '.properties.addons.properties.ingressNginx.properties.exposeMethod.enum = ["Proxied","LoadBalancer"]' values.schema.json yq -o json -i '.properties.controlPlane.properties.apiServer.properties.resourcesPreset.enum = ["none","nano","micro","small","medium","large","xlarge","2xlarge"]' values.schema.json yq -o json -i '.properties.controlPlane.properties.controllerManager.properties.resourcesPreset.enum = ["none","nano","micro","small","medium","large","xlarge","2xlarge"]' values.schema.json yq -o json -i '.properties.controlPlane.properties.scheduler.properties.resourcesPreset.enum = ["none","nano","micro","small","medium","large","xlarge","2xlarge"]' values.schema.json diff --git a/packages/apps/kubernetes/README.md b/packages/apps/kubernetes/README.md index 6700084f..4c08a455 100644 --- a/packages/apps/kubernetes/README.md +++ b/packages/apps/kubernetes/README.md @@ -90,22 +90,23 @@ See the reference for components utilized in this service: ### Cluster Addons -| Name | Description | Value | -| --------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------- | -| `addons.certManager.enabled` | Enable cert-manager, which automatically creates and manages SSL/TLS certificates. | `false` | -| `addons.certManager.valuesOverride` | Custom values to override | `{}` | -| `addons.cilium.valuesOverride` | Custom values to override | `{}` | -| `addons.gatewayAPI.enabled` | Enable the Gateway API | `false` | -| `addons.ingressNginx.enabled` | Enable the Ingress-NGINX controller (requires nodes labeled with the 'ingress-nginx' role). | `false` | -| `addons.ingressNginx.valuesOverride` | Custom values to override | `{}` | -| `addons.ingressNginx.hosts` | List of domain names that the parent cluster should route to this tenant cluster. | `[]` | -| `addons.gpuOperator.enabled` | Enable the GPU-operator | `false` | -| `addons.gpuOperator.valuesOverride` | Custom values to override | `{}` | -| `addons.fluxcd.enabled` | Enable FluxCD | `false` | -| `addons.fluxcd.valuesOverride` | Custom values to override | `{}` | -| `addons.monitoringAgents.enabled` | Enable monitoring agents (Fluent Bit and VMAgents) to send logs and metrics. If tenant monitoring is enabled, data is sent to tenant storage; otherwise, it goes to root storage. | `false` | -| `addons.monitoringAgents.valuesOverride` | Custom values to override | `{}` | -| `addons.verticalPodAutoscaler.valuesOverride` | Custom values to override | `{}` | +| Name | Description | Value | +| --------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------- | +| `addons.certManager.enabled` | Enable cert-manager, which automatically creates and manages SSL/TLS certificates. | `false` | +| `addons.certManager.valuesOverride` | Custom values to override | `{}` | +| `addons.cilium.valuesOverride` | Custom values to override | `{}` | +| `addons.gatewayAPI.enabled` | Enable the Gateway API | `false` | +| `addons.ingressNginx.enabled` | Enable the Ingress-NGINX controller (requires nodes labeled with the 'ingress-nginx' role). | `false` | +| `addons.ingressNginx.valuesOverride` | Custom values to override | `{}` | +| `addons.ingressNginx.exposeMethod` | Method to expose the Ingress-NGINX controller. (allowed values: Proxied, LoadBalancer) | `Proxied` | +| `addons.ingressNginx.hosts` | List of domain names that the parent cluster should route to this tenant cluster. Taken into account only when `exposeMethod` is set to `Proxied`. | `[]` | +| `addons.gpuOperator.enabled` | Enable the GPU-operator | `false` | +| `addons.gpuOperator.valuesOverride` | Custom values to override | `{}` | +| `addons.fluxcd.enabled` | Enable FluxCD | `false` | +| `addons.fluxcd.valuesOverride` | Custom values to override | `{}` | +| `addons.monitoringAgents.enabled` | Enable monitoring agents (Fluent Bit and VMAgents) to send logs and metrics. If tenant monitoring is enabled, data is sent to tenant storage; otherwise, it goes to root storage. | `false` | +| `addons.monitoringAgents.valuesOverride` | Custom values to override | `{}` | +| `addons.verticalPodAutoscaler.valuesOverride` | Custom values to override | `{}` | ### Kubernetes Control Plane Configuration diff --git a/packages/apps/kubernetes/templates/helmreleases/ingress-nginx.yaml b/packages/apps/kubernetes/templates/helmreleases/ingress-nginx.yaml index 68ad8e63..5d4a586d 100644 --- a/packages/apps/kubernetes/templates/helmreleases/ingress-nginx.yaml +++ b/packages/apps/kubernetes/templates/helmreleases/ingress-nginx.yaml @@ -3,9 +3,11 @@ ingress-nginx: fullnameOverride: ingress-nginx controller: kind: DaemonSet + {{- if eq .Values.addons.ingressNginx.exposeMethod "Proxied" }} hostNetwork: true service: enabled: false + {{- end }} {{- if not .Values.addons.certManager.enabled }} admissionWebhooks: certManager: diff --git a/packages/apps/kubernetes/templates/ingress.yaml b/packages/apps/kubernetes/templates/ingress.yaml index 2981c54c..fb19a63b 100644 --- a/packages/apps/kubernetes/templates/ingress.yaml +++ b/packages/apps/kubernetes/templates/ingress.yaml @@ -1,6 +1,6 @@ {{- $myNS := lookup "v1" "Namespace" "" .Release.Namespace }} {{- $ingress := index $myNS.metadata.annotations "namespace.cozystack.io/ingress" }} -{{- if .Values.addons.ingressNginx.hosts }} +{{- if (eq .Values.addons.ingressNginx.exposeMethod "Proxied") and .Values.addons.ingressNginx.hosts }} --- apiVersion: networking.k8s.io/v1 kind: Ingress diff --git a/packages/apps/kubernetes/values.schema.json b/packages/apps/kubernetes/values.schema.json index 73b1c7be..0561f6cd 100644 --- a/packages/apps/kubernetes/values.schema.json +++ b/packages/apps/kubernetes/values.schema.json @@ -178,9 +178,18 @@ "description": "Custom values to override", "default": {} }, + "exposeMethod": { + "type": "string", + "description": "Method to expose the Ingress-NGINX controller. (allowed values: Proxied, LoadBalancer)", + "default": "Proxied", + "enum": [ + "Proxied", + "LoadBalancer" + ] + }, "hosts": { "type": "array", - "description": "List of domain names that the parent cluster should route to this tenant cluster.", + "description": "List of domain names that the parent cluster should route to this tenant cluster. Taken into account only when `exposeMethod` is set to `Proxied`.", "default": [], "items": {} } diff --git a/packages/apps/kubernetes/values.yaml b/packages/apps/kubernetes/values.yaml index d9de92c9..6b629be4 100644 --- a/packages/apps/kubernetes/values.yaml +++ b/packages/apps/kubernetes/values.yaml @@ -61,12 +61,14 @@ addons: ## @param addons.ingressNginx.valuesOverride Custom values to override ## enabled: false - ## @param addons.ingressNginx.hosts List of domain names that the parent cluster should route to this tenant cluster. + ## @param addons.ingressNginx.exposeMethod Method to expose the Ingress-NGINX controller. (allowed values: Proxied, LoadBalancer) + ## @param addons.ingressNginx.hosts List of domain names that the parent cluster should route to this tenant cluster. Taken into account only when `exposeMethod` is set to `Proxied`. ## e.g: ## hosts: ## - example.org ## - foo.example.net ## + exposeMethod: Proxied hosts: [] valuesOverride: {} diff --git a/packages/apps/versions_map b/packages/apps/versions_map index 895a350a..cd801ee3 100644 --- a/packages/apps/versions_map +++ b/packages/apps/versions_map @@ -50,7 +50,8 @@ kafka 0.6.1 632224a3 kafka 0.7.0 6358fd7a kafka 0.7.1 HEAD kubernetes 0.24.0 62cb694d -kubernetes 0.24.2 HEAD +kubernetes 0.24.2 4369b031 +kubernetes 0.25.0 HEAD mysql 0.1.0 263e47be mysql 0.2.0 c24a103f mysql 0.3.0 53f2365e