diff --git a/README.md b/README.md index 495a953..70bb7fc 100644 --- a/README.md +++ b/README.md @@ -417,13 +417,13 @@ stern statefulset/graylog-datanode -n graylog-helm-dev-1 --- # Graylog Helm Chart Values Reference -| Key Path | Description | Default | -|--------------------|------------------------------------------------------------------| --------- | -| `size` | Preset cluster size (optional). | `""` | -| `provider` | Kubernetes provider (optional). | `""` | -| `version` | Override Graylog and Graylog Data Node version (optional). | `""` | -| `nameOverride` | Override the `app.kubernetes.io/name` label value (optional). | `""` | -| `fullnameOverride` | Override the fully qualified name of the application (optional). | `""` | +| Key Path | Description | Default | +|--------------------|--------------------------------------------------------------------------------------------------| --------- | +| `provider` | Kubernetes provider (optional). | `""` | +| `version` | Override Graylog and Graylog Data Node version (optional). | `""` | +| `sizeOverride` | Override Graylog and Graylog Data Node replicas and resource requests using a preset (optional). | `""` | +| `nameOverride` | Override the `app.kubernetes.io/name` label value (optional). | `""` | +| `fullnameOverride` | Override the fully qualified name of the application (optional). | `""` | ## Global These values affect Graylog, DataNode, and MongoDB diff --git a/graylog/templates/_helpers.tpl b/graylog/templates/_helpers.tpl index 1dcf89c..4cb42c0 100644 --- a/graylog/templates/_helpers.tpl +++ b/graylog/templates/_helpers.tpl @@ -76,7 +76,10 @@ usage: (list . | list "graylog" | includ {{- $dictName := index . 0 }} {{- $args := index . 1 | initial }} {{- $ctx := index . 1 | last }} -{{- $sizeKey := index $args 0 | default "default" }} +{{- $sizeKey := index $args 0 }} +{{- if empty $sizeKey }} +{{- int 0 }} +{{- else }} {{- $fieldToIndex := index $args 1 | required "please request a valid size field: replicas, cpu, memory" }} {{- if hasKey $defaults $dictName | not }} {{- fail "presets are only available for 'graylog' and 'datanode'" }} @@ -86,6 +89,7 @@ usage: (list . | list "graylog" | includ {{- $values := dig "size" $sizeKey $dictName $default $presets }} {{- index $indices $fieldToIndex | index $values }} {{- end }} +{{- end }} {{/* Graylog size presets @@ -111,14 +115,14 @@ usage: (list $key . | include "datanode.presets.size") Graylog replicas */}} {{- define "graylog.replicas" }} -{{- .Values.graylog.replicas | default (list .Values.size "replicas" . | include "graylog.presets.size") | default 2 }} +{{- coalesce (list .Values.sizeOverride "replicas" . | include "graylog.presets.size" | int) .Values.graylog.replicas | default 2 | int }} {{- end }} {{/* Datanode replicas */}} {{- define "graylog.datanode.replicas" }} -{{- .Values.datanode.replicas | default (list .Values.size "replicas" . | include "graylog.datanode.presets.size") | default 3 }} +{{- coalesce (list .Values.sizeOverride "replicas" . | include "graylog.datanode.presets.size" | int) .Values.datanode.replicas | default 3 | int }} {{- end }} {{/* diff --git a/graylog/values.schema.json b/graylog/values.schema.json index 95fd6aa..7304d59 100644 --- a/graylog/values.schema.json +++ b/graylog/values.schema.json @@ -4,32 +4,32 @@ "type": "object", "required": [], "properties": { - "size": { + "provider": { "type": "string", - "description": "Preset cluster size (optional)", + "description": "Kubernetes provider (optional)", "oneOf": [ { "type": "string", - "enum": [ "xs", "small", "medium", "large", "xl", "xxl", "default", "poc", "" ] + "enum": [ "aws", "aws-managed-sc", "azure", "gcp", "microk8s", "" ] }, { "type": "null" } ] }, - "provider": { + "version": { "type": "string", - "description": "Kubernetes provider (optional)", + "description": "Override Graylog and Graylog Data Node version (optional)" + }, + "sizeOverride": { + "type": "string", + "description": "Override the preset cluster size (optional)", "oneOf": [ { "type": "string", - "enum": [ "aws", "aws-managed-sc", "azure", "gcp", "microk8s", "" ] + "enum": [ "xs", "small", "medium", "large", "xl", "xxl", "default", "poc", "" ] }, { "type": "null" } ] }, - "version": { - "type": "string", - "description": "Override Graylog and Graylog Data Node version (optional)" - }, "nameOverride": { "type": "string", "description": "Override the name of the chart. Affects app.kubernetes.io/name annotation" diff --git a/graylog/values.yaml b/graylog/values.yaml index 28a29c5..7ec6443 100644 --- a/graylog/values.yaml +++ b/graylog/values.yaml @@ -1,14 +1,14 @@ # Default values for Graylog. -# Preset cluster size (optional) -size: "" - # Kubernetes provider (optional) provider: "" # Override Graylog and Graylog Data Node version (optional) version: "" +# Override the preset cluster size (optional) +sizeOverride: "" + # Override the chart name (optional) nameOverride: ""