fix: override KC_HOSTNAME to clear Bitnami default #178

Merged
claude merged 1 commits from fix/keycloak-override-hostname into main 2026-02-19 17:18:50 +01:00
Owner

Bitnami chart sets KC_HOSTNAME from ingress.hostname. Override with empty string + KC_HOSTNAME_STRICT=false so Keycloak uses request Host header for NodePort access.

Bitnami chart sets KC_HOSTNAME from ingress.hostname. Override with empty string + KC_HOSTNAME_STRICT=false so Keycloak uses request Host header for NodePort access.
claude added 1 commit 2026-02-19 17:17:14 +01:00
fix: override KC_HOSTNAME="" to clear Bitnami chart default
All checks were successful
AI Review / AI Code Review (pull_request) Successful in 1s
PR Checks / Validate & Security Scan (pull_request) Successful in 8s
8230257299
Bitnami Keycloak chart auto-sets KC_HOSTNAME from ingress.hostname.
Override with empty string via extraEnvVars so Keycloak derives URLs
from request headers (X-Forwarded-* via ingress, Host via NodePort).

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Author
Owner

AI Code Review

Проверил PR. Вот мои замечания:

Безопасность:

  • ⚠️ KC_HOSTNAME_STRICT=false — отключает валидацию Host header. Это расширяет поверхность атаки (host-header injection). Используйте вместо этого KC_HOSTNAME=keycloak.georgepet.duckdns.org с явным значением, или добавьте KC_ALLOWED_HOSTS для NodePort IP.
  • ✓ Остальные настройки безопасности в порядке (PSS restricted, NetworkPolicy действуют).

Надёжность:

  • ⚠️ replicaCount: 1 — нет HA. Если pod перезагружается, Keycloak недоступен. Рассмотрите минимум 2 реплики с podAntiAffinity или хотя бы PDB.

Практика:

  • ⚠️ Пустая строка в KC_HOSTNAME: "" неявная. Лучше документируйте в комментарии, почему отключена валидация (для NodePort доступа).
  • ✓ Переменные окружения — правильный способ переопределить Bitnami defaults.

Рекомендация:
Вместо KC_HOSTNAME_STRICT=false явно установите оба адреса доступа:

extraEnvVars:
  - name: KC_HOSTNAME
    value: "keycloak.georgepet.duckdns.org"
  - name: KC_HOSTNAME_PORT
    value: "443"
  - name: KC_HOSTNAME_STRICT
    value: "false"  # только если действительно нужна гибкость
  - name: KC_ALLOWED_HOSTS
    value: "keycloak.georgepet.duckdns.org,185.47.204.231:32432"

Мерж можно сделать, но добавьте в follow-up issue: HA реплики + явное указание KC_ALLOWED_HOSTS вместо отключения strict mode.


Automated review by Claude Haiku | advisory, does not block merge

## AI Code Review Проверил PR. Вот мои замечания: **Безопасность:** - ⚠️ `KC_HOSTNAME_STRICT=false` — отключает валидацию Host header. Это расширяет поверхность атаки (host-header injection). Используйте вместо этого `KC_HOSTNAME=keycloak.georgepet.duckdns.org` с явным значением, или добавьте `KC_ALLOWED_HOSTS` для NodePort IP. - ✓ Остальные настройки безопасности в порядке (PSS restricted, NetworkPolicy действуют). **Надёжность:** - ⚠️ `replicaCount: 1` — нет HA. Если pod перезагружается, Keycloak недоступен. Рассмотрите минимум 2 реплики с `podAntiAffinity` или хотя бы PDB. **Практика:** - ⚠️ Пустая строка в `KC_HOSTNAME: ""` неявная. Лучше документируйте в комментарии, почему отключена валидация (для NodePort доступа). - ✓ Переменные окружения — правильный способ переопределить Bitnami defaults. **Рекомендация:** Вместо `KC_HOSTNAME_STRICT=false` явно установите оба адреса доступа: ```yaml extraEnvVars: - name: KC_HOSTNAME value: "keycloak.georgepet.duckdns.org" - name: KC_HOSTNAME_PORT value: "443" - name: KC_HOSTNAME_STRICT value: "false" # только если действительно нужна гибкость - name: KC_ALLOWED_HOSTS value: "keycloak.georgepet.duckdns.org,185.47.204.231:32432" ``` Мерж можно сделать, но добавьте в follow-up issue: HA реплики + явное указание `KC_ALLOWED_HOSTS` вместо отключения strict mode. --- _Automated review by Claude Haiku | advisory, does not block merge_
claude merged commit 57e7d5227f into main 2026-02-19 17:18:50 +01:00
Sign in to join this conversation.
No Reviewers
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: claude/k8s-apps#178
No description provided.