ignis: add basic auth via envoy SecurityPolicy

Ignis has no built-in auth; required now that ignis.fireflylab.cc
is a public hostname. Plain k8s Secret (no Vault yet) holding an
htpasswd hash, enforced at gateway via SecurityPolicy.
This commit is contained in:
2026-08-04 00:14:33 +07:00
parent 3d829d0ded
commit a06159c8e8
3 changed files with 31 additions and 2 deletions
@@ -0,0 +1,22 @@
{{- if .Values.auth.enabled }}
apiVersion: v1
kind: Secret
metadata:
name: {{ .Release.Name }}-basic-auth
type: Opaque
stringData:
.htpasswd: {{ .Values.auth.htpasswd | quote }}
---
apiVersion: gateway.envoyproxy.io/v1alpha1
kind: SecurityPolicy
metadata:
name: {{ .Release.Name }}-basic-auth
spec:
targetRefs:
- group: gateway.networking.k8s.io
kind: HTTPRoute
name: {{ .Release.Name }}
basicAuth:
users:
name: {{ .Release.Name }}-basic-auth
{{- end }}
+3 -2
View File
@@ -3,8 +3,9 @@ apiVersion: gateway.networking.k8s.io/v1
kind: HTTPRoute kind: HTTPRoute
metadata: metadata:
name: {{ .Release.Name }} name: {{ .Release.Name }}
# No built-in auth in Ignis itself — LAN-only exposure, same tradeoff # Ignis has no built-in auth — basic-auth enforced at the gateway via
# already accepted for Vault in cluster-platform. # SecurityPolicy (see basic-auth.yaml), required since one hostname is
# public-facing (ignis.fireflylab.cc).
spec: spec:
parentRefs: parentRefs:
- name: envoy-gateway - name: envoy-gateway
+6
View File
@@ -40,3 +40,9 @@ httpRoute:
hostnames: hostnames:
- ignis.fireflylab.local - ignis.fireflylab.local
- ignis.fireflylab.cc - ignis.fireflylab.cc
auth:
enabled: true
# bcrypt htpasswd line, e.g. output of: htpasswd -nB <user>
# Generate this yourself — do not put the plaintext password here.
htpasswd: "duynguyen:$2y$05$0hgFpQXdm1arjoEG5Gqs5.Q0Bl8YGOgXVLzBXdQjCnBTRgR1sYb9O"