From 3cd9cfbd47d797852db2b6d3c50441a861a7011d Mon Sep 17 00:00:00 2001 From: David Usken Date: Fri, 25 Sep 2026 12:46:35 +0200 Subject: [PATCH 1/2] chore(kellnr): add docs bucket configuration to values.yaml and bump chart version to 6.2.0 --- charts/kellnr/Chart.yaml | 2 +- charts/kellnr/templates/_helpers.tpl | 3 +++ charts/kellnr/values.yaml | 1 + 3 files changed, 5 insertions(+), 1 deletion(-) diff --git a/charts/kellnr/Chart.yaml b/charts/kellnr/Chart.yaml index 4fc387c..e931efa 100644 --- a/charts/kellnr/Chart.yaml +++ b/charts/kellnr/Chart.yaml @@ -13,7 +13,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: 6.1.8 +version: 6.2.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 # follow Semantic Versioning. They should reflect the version the application is using. diff --git a/charts/kellnr/templates/_helpers.tpl b/charts/kellnr/templates/_helpers.tpl index 054b0f2..6ef45cf 100644 --- a/charts/kellnr/templates/_helpers.tpl +++ b/charts/kellnr/templates/_helpers.tpl @@ -227,6 +227,9 @@ KELLNR_S3__CRATES_BUCKET: {{ .Values.kellnr.s3.crates_bucket | quote }} {{ if not (eq .Values.kellnr.s3.cratesio_bucket nil) }} KELLNR_S3__CRATESIO_BUCKET: {{ .Values.kellnr.s3.cratesio_bucket | quote }} {{ end }} +{{ if not (eq .Values.kellnr.s3.docs_bucket nil) }} +KELLNR_S3__DOCS_BUCKET: {{ .Values.kellnr.s3.docs_bucket | quote }} +{{ end }} {{ if not (eq .Values.kellnr.oauth2.enabled nil) }} KELLNR_OAUTH2__ENABLED: {{ .Values.kellnr.oauth2.enabled | quote }} {{ end }} diff --git a/charts/kellnr/values.yaml b/charts/kellnr/values.yaml index 1790a53..1d22a79 100644 --- a/charts/kellnr/values.yaml +++ b/charts/kellnr/values.yaml @@ -205,6 +205,7 @@ kellnr: crates_bucket: null # "kellnr-crates" cratesio_bucket: null # "kellnr-cratesio" toolchain_bucket: null # "kellnr-toolchain" + docs_bucket: null # "kellnr-docs" connectTimeoutSeconds: null # 5 requestTimeoutSeconds: null # 30 From d358a9f79a8c8ef6f4c812b6c38320d7c3e28091 Mon Sep 17 00:00:00 2001 From: David Usken Date: Mon, 28 Sep 2026 09:31:26 +0200 Subject: [PATCH 2/2] feat(kellnr): enhance proxy and GCS configuration options in values.yaml; fix HPA and PDB template references --- charts/kellnr/templates/_helpers.tpl | 51 ++++++++++++++++++++++++++++ charts/kellnr/templates/hpa.yaml | 4 +-- charts/kellnr/templates/pdb.yaml | 2 +- charts/kellnr/values.yaml | 31 +++++++++++++++-- 4 files changed, 83 insertions(+), 5 deletions(-) diff --git a/charts/kellnr/templates/_helpers.tpl b/charts/kellnr/templates/_helpers.tpl index 6ef45cf..fc44a2f 100644 --- a/charts/kellnr/templates/_helpers.tpl +++ b/charts/kellnr/templates/_helpers.tpl @@ -164,6 +164,21 @@ KELLNR_PROXY__NUM_THREADS: {{ .Values.kellnr.proxy.numThreads | quote }} {{ if not (eq .Values.kellnr.proxy.downloadOnUpdate nil) }} KELLNR_PROXY__DOWNLOAD_ON_UPDATE: {{ .Values.kellnr.proxy.downloadOnUpdate | quote }} {{ end }} +{{ if .Values.kellnr.proxy.url }} +KELLNR_PROXY__URL: {{ .Values.kellnr.proxy.url | quote }} +{{ end }} +{{ if .Values.kellnr.proxy.index }} +KELLNR_PROXY__INDEX: {{ .Values.kellnr.proxy.index | quote }} +{{ end }} +{{ if .Values.kellnr.proxy.api }} +KELLNR_PROXY__API: {{ .Values.kellnr.proxy.api | quote }} +{{ end }} +{{ if not (eq .Values.kellnr.proxy.connectTimeoutSeconds nil) }} +KELLNR_PROXY__CONNECT_TIMEOUT_SECONDS: {{ .Values.kellnr.proxy.connectTimeoutSeconds | quote }} +{{ end }} +{{ if not (eq .Values.kellnr.proxy.requestTimeoutSeconds nil) }} +KELLNR_PROXY__REQUEST_TIMEOUT_SECONDS: {{ .Values.kellnr.proxy.requestTimeoutSeconds | quote }} +{{ end }} {{ if not (eq .Values.kellnr.proxy.userAgent nil) }} KELLNR_PROXY__USER_AGENT: {{ .Values.kellnr.proxy.userAgent | quote }} {{ end }} @@ -230,6 +245,36 @@ KELLNR_S3__CRATESIO_BUCKET: {{ .Values.kellnr.s3.cratesio_bucket | quote }} {{ if not (eq .Values.kellnr.s3.docs_bucket nil) }} KELLNR_S3__DOCS_BUCKET: {{ .Values.kellnr.s3.docs_bucket | quote }} {{ end }} +{{ if not (eq .Values.kellnr.gcs.enabled nil) }} +KELLNR_GCS__ENABLED: {{ .Values.kellnr.gcs.enabled | quote }} +{{ end }} +{{ if .Values.kellnr.gcs.endpoint }} +KELLNR_GCS__ENDPOINT: {{ .Values.kellnr.gcs.endpoint | quote }} +{{ end }} +{{ if not (eq .Values.kellnr.gcs.allowHttp nil) }} +KELLNR_GCS__ALLOW_HTTP: {{ .Values.kellnr.gcs.allowHttp | quote }} +{{ end }} +{{ if not (eq .Values.kellnr.gcs.skipSignature nil) }} +KELLNR_GCS__SKIP_SIGNATURE: {{ .Values.kellnr.gcs.skipSignature | quote }} +{{ end }} +{{ if not (eq .Values.kellnr.gcs.crates_bucket nil) }} +KELLNR_GCS__CRATES_BUCKET: {{ .Values.kellnr.gcs.crates_bucket | quote }} +{{ end }} +{{ if not (eq .Values.kellnr.gcs.cratesio_bucket nil) }} +KELLNR_GCS__CRATESIO_BUCKET: {{ .Values.kellnr.gcs.cratesio_bucket | quote }} +{{ end }} +{{ if not (eq .Values.kellnr.gcs.toolchain_bucket nil) }} +KELLNR_GCS__TOOLCHAIN_BUCKET: {{ .Values.kellnr.gcs.toolchain_bucket | quote }} +{{ end }} +{{ if not (eq .Values.kellnr.gcs.docs_bucket nil) }} +KELLNR_GCS__DOCS_BUCKET: {{ .Values.kellnr.gcs.docs_bucket | quote }} +{{ end }} +{{ if not (eq .Values.kellnr.gcs.connectTimeoutSeconds nil) }} +KELLNR_GCS__CONNECT_TIMEOUT_SECONDS: {{ .Values.kellnr.gcs.connectTimeoutSeconds | quote }} +{{ end }} +{{ if not (eq .Values.kellnr.gcs.requestTimeoutSeconds nil) }} +KELLNR_GCS__REQUEST_TIMEOUT_SECONDS: {{ .Values.kellnr.gcs.requestTimeoutSeconds | quote }} +{{ end }} {{ if not (eq .Values.kellnr.oauth2.enabled nil) }} KELLNR_OAUTH2__ENABLED: {{ .Values.kellnr.oauth2.enabled | quote }} {{ end }} @@ -263,6 +308,12 @@ KELLNR_OAUTH2__READ_ONLY_GROUP_VALUE: {{ .Values.kellnr.oauth2.readOnlyGroupValu {{ if not (eq .Values.kellnr.oauth2.buttonText nil) }} KELLNR_OAUTH2__BUTTON_TEXT: {{ .Values.kellnr.oauth2.buttonText | quote }} {{ end }} +{{ if not (eq .Values.kellnr.oauth2.enforced nil) }} +KELLNR_OAUTH2__ENFORCED: {{ .Values.kellnr.oauth2.enforced | quote }} +{{ end }} +{{ if not (eq .Values.kellnr.oauth2.autoRedirect nil) }} +KELLNR_OAUTH2__AUTO_REDIRECT: {{ .Values.kellnr.oauth2.autoRedirect | quote }} +{{ end }} {{ if not (eq .Values.kellnr.toolchain.enabled nil) }} KELLNR_TOOLCHAIN__ENABLED: {{ .Values.kellnr.toolchain.enabled | quote }} {{ end }} diff --git a/charts/kellnr/templates/hpa.yaml b/charts/kellnr/templates/hpa.yaml index 9380992..ab3b8b4 100644 --- a/charts/kellnr/templates/hpa.yaml +++ b/charts/kellnr/templates/hpa.yaml @@ -13,7 +13,7 @@ spec: minReplicas: {{ .Values.autoscaling.minReplicas }} maxReplicas: {{ .Values.autoscaling.maxReplicas }} metrics: - {{- if .Values.autoscaling.targetCPUUtilizationPercentage }} + {{- if .Values.autoscaling.target.CPUUtilizationPercentage }} - type: Resource resource: name: cpu @@ -21,7 +21,7 @@ spec: type: Utilization averageUtilization: {{ .Values.autoscaling.target.CPUUtilizationPercentage }} {{- end }} - {{- if .Values.autoscaling.targetMemoryUtilizationPercentage }} + {{- if .Values.autoscaling.target.memoryUtilizationPercentage }} - type: Resource resource: name: memory diff --git a/charts/kellnr/templates/pdb.yaml b/charts/kellnr/templates/pdb.yaml index ed62fa8..7ae15b7 100644 --- a/charts/kellnr/templates/pdb.yaml +++ b/charts/kellnr/templates/pdb.yaml @@ -8,6 +8,6 @@ metadata: spec: selector: matchLabels: - {{- include "kellnr.labels" . | nindent 6 }} + {{- include "kellnr.selectorLabels" . | nindent 6 }} minAvailable: {{ .Values.pdb.minAvailable }} {{- end }} \ No newline at end of file diff --git a/charts/kellnr/values.yaml b/charts/kellnr/values.yaml index 1d22a79..44a4b4a 100644 --- a/charts/kellnr/values.yaml +++ b/charts/kellnr/values.yaml @@ -163,8 +163,14 @@ kellnr: maxSize: null # 100 proxy: enabled: null # false - numThreads: null # 20 + numThreads: null # 10 downloadOnUpdate: null # false + # Override to use a crates.io mirror instead of the public crates.io. + url: null # "https://static.crates.io/crates/" + index: null # "https://index.crates.io/" + api: null # "https://crates.io/api/v1/crates/" + connectTimeoutSeconds: null # 5 + requestTimeoutSeconds: null # 30 userAgent: null # "kellnr.io/kellnr" log: level: null # "info" @@ -204,7 +210,20 @@ kellnr: allowHttp: null # true crates_bucket: null # "kellnr-crates" cratesio_bucket: null # "kellnr-cratesio" - toolchain_bucket: null # "kellnr-toolchain" + toolchain_bucket: null # "kellnr-toolchains" + docs_bucket: null # "kellnr-docs" + connectTimeoutSeconds: null # 5 + requestTimeoutSeconds: null # 30 + gcs: + enabled: null # false + # Custom base URL for a self-hosted or emulator endpoint. + endpoint: "" + allowHttp: null # true + # Skip credential lookup and request signing. Only for unauthenticated endpoints such as emulators. + skipSignature: null # false + crates_bucket: null # "kellnr-crates" + cratesio_bucket: null # "kellnr-cratesio" + toolchain_bucket: null # "kellnr-toolchains" docs_bucket: null # "kellnr-docs" connectTimeoutSeconds: null # 5 requestTimeoutSeconds: null # 30 @@ -241,6 +260,11 @@ kellnr: readOnlyGroupValue: "" # Text displayed on the OAuth2 login button buttonText: null # "Login with SSO" + # Make SSO the only way to log in: disables local username/password login, + # password resets/changes and local user creation. Requires `enabled`. + enforced: null # false + # Skip the login page and redirect straight to the identity provider. Requires `enforced`. + autoRedirect: null # false toolchain: enabled: false @@ -268,6 +292,9 @@ ingress: enabled: true className: "" annotations: {} + # Path for the Ingress rule and KELLNR_ORIGIN__PATH (sub-path deployments, e.g. "/kellnr"). + # Defaults to "/" for the Ingress rule when left empty; KELLNR_ORIGIN__PATH is only set when non-empty. + path: "" pathType: Prefix tls: secretName: "kellnr-cert-secret"