feat(sso): complete MinIO OIDC env + add Homarr landing page base config
MinIO (Part B): - k8s/infrastructure/minio/minio-tenant.yaml: added full OIDC env block (CONFIG_URL, CLIENT_ID, CLIENT_SECRET from minio-oidc secret, CLAIM_NAME, REDIRECT_URI, DISPLAY_NAME, SCOPES) — MinIO console SSO login will now work Homarr (Part C1 - base): - k8s/applications/homarr/homarr-values.yaml: official chart config with Authentik SSO (AUTH_PROVIDERS=oidc, all OIDC env vars, client creds from homarr-oidc secret, SECRET_ENCRYPTION_KEY from SOPS secret) - k8s/applications/homarr/homarr-secrets.enc.yaml: age-encrypted SECRET_ENCRYPTION_KEY (stable key — rotating it breaks saved integrations) - k8s/applications/homarr/kustomization.yaml: namespace dashboard Still TODO for Homarr: - Add 'homarr' to authentik-provision.py SERVICES dict - Add Application to 60-applications.yaml (multi-source: chart + values) - Add ingress rule (k8s/bootstrap/ingress/ingress.yaml) - Add CoreDNS rewrite (k8s/bootstrap/coredns/coredns-configmap.yaml) - Add dashboard RoleBinding for authentik-provisioner SA
This commit is contained in:
@@ -0,0 +1,23 @@
|
|||||||
|
apiVersion: ENC[AES256_GCM,data:XZc=,iv:0Lgui0+X2oTlgCX5HEIIihEsGJD0C2+pDIOTCNi4r+g=,tag:U2DPsVJ1gCoZw1YcgmT7UA==,type:str]
|
||||||
|
kind: ENC[AES256_GCM,data:SRkjGwsv,iv:KRBfS7COsTs/l3Fhyk5FvH7IVc+r/6M6FVOo+kPDe1Q=,tag:113xdFELRoJiU4Kn8BmvPA==,type:str]
|
||||||
|
metadata:
|
||||||
|
name: ENC[AES256_GCM,data:stIxzQqOUvpbEANL4aQ=,iv:Q+DCLGtw3wihhdAgEbzYHyQhFTPWFyE2iJKl9mYaA2E=,tag:2XRGRbPQLNUGbA1dZI9xEQ==,type:str]
|
||||||
|
namespace: ENC[AES256_GCM,data:wIhhcrQi3cDF,iv:gnCCkV7GKXA2HWOOeNUGnpAycf8U7pl6F8Vfo6DhLR4=,tag:xnqvCtUdFPB5D9meJb36GA==,type:str]
|
||||||
|
type: ENC[AES256_GCM,data:1qUDnlHH,iv:gBaC+6MXvZY/bIpy/cEG/zWwLBaUFMVfxAHa1OnwfnQ=,tag:u9PcCfvA2BydFNQQKws1Og==,type:str]
|
||||||
|
stringData:
|
||||||
|
SECRET_ENCRYPTION_KEY: ENC[AES256_GCM,data:b0h8ekf7RIbQ9YTpaXPmR3aeNonk60lgltPmnRe7lVk9wlAdaXkNChINcAsarw9YhfYvfCZfS8U33/QxLGjaYA==,iv:uOmx8w3XPKnoxfasf7gqi/bljxigpLwaAC30c2TroKg=,tag:JphkeY49bQLm6cPjT6g8LA==,type:str]
|
||||||
|
sops:
|
||||||
|
age:
|
||||||
|
- enc: |
|
||||||
|
-----BEGIN AGE ENCRYPTED FILE-----
|
||||||
|
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBiUW1BVmEvTnJqa3RuQ3NG
|
||||||
|
UFg3SE1SclpWd01TZnFOK0trQ1c2YThUQmpRCkdGc3FJSmRCcFIycWcvZXJCbDdj
|
||||||
|
T1M2cFFUakpOa2FST1k2UHc0a1hCRWMKLS0tIDk0UVdYRUkvTEM4TEVWRElrY3dN
|
||||||
|
SFU2bkZxUGlDL0JNSnY3UU54Z3BhbFUKnJYwwQkUveNjTF9CveVUBF8RO7QjDnYA
|
||||||
|
1+COKzvXuCIupvPcS87AtkrOfbfTu3IK78pfxZn04FmMOuAyj0ynzA==
|
||||||
|
-----END AGE ENCRYPTED FILE-----
|
||||||
|
recipient: age1smu533f803gmd0jq60s2zaj9zlznajy0ca6rtewd4r37mr2hs3uqsrldfh
|
||||||
|
lastmodified: "2026-07-22T15:59:29Z"
|
||||||
|
mac: ENC[AES256_GCM,data:uMmKD4fvu39KZc2lDoDD25g/p/eIGW/CYFIwYXcRFPdbLLLi+iW9ks/2l5tHqzlwHEtlL1RH4HLOQr25k3GAJA2FhVnyVmyZ4N2EnJfic/9XTfef9E8tKVo2cXEgYMCPbpH8sVu2OoaQ9BFw8dTM9ZxuTdGKksGOtGp56I4R8hA=,iv:QFhVAZ1jykTNLPDzqjYf9jkg5PuqYA8+s0Hn57ND3KA=,tag:Zz2qYANQP33izwg+3Ap16A==,type:str]
|
||||||
|
unencrypted_suffix: _unencrypted
|
||||||
|
version: 3.13.2
|
||||||
@@ -0,0 +1,67 @@
|
|||||||
|
# Homarr landing page — official chart from homarr-labs/charts.
|
||||||
|
# SSO via Authentik, single-replica (UI state lives on PVC, not git).
|
||||||
|
image:
|
||||||
|
repository: ghcr.io/homarr-labs/homarr
|
||||||
|
tag: "1.0.0" # Pin to stable
|
||||||
|
pullPolicy: IfNotPresent
|
||||||
|
|
||||||
|
replicaCount: 1
|
||||||
|
|
||||||
|
service:
|
||||||
|
type: ClusterIP
|
||||||
|
port: 3000
|
||||||
|
|
||||||
|
persistence:
|
||||||
|
enabled: true
|
||||||
|
storageClass: longhorn-wffc
|
||||||
|
accessMode: ReadWriteOnce
|
||||||
|
size: 5Gi
|
||||||
|
|
||||||
|
env:
|
||||||
|
- name: AUTH_PROVIDERS
|
||||||
|
value: "oidc,credentials"
|
||||||
|
- name: AUTH_OIDC_ISSUER
|
||||||
|
value: "https://authentik.riotpiao.com/application/o/homarr/"
|
||||||
|
- name: AUTH_OIDC_CALLBACK_URL
|
||||||
|
value: "https://homarr.riotpiao.com/api/auth/callback/oidc"
|
||||||
|
- name: AUTH_OIDC_CLIENT_NAME
|
||||||
|
value: "Authentik"
|
||||||
|
- name: AUTH_OIDC_GROUPS_ATTRIBUTE
|
||||||
|
value: "groups"
|
||||||
|
- name: AUTH_OIDC_CLIENT_ID
|
||||||
|
valueFrom:
|
||||||
|
secretKeyRef:
|
||||||
|
name: homarr-oidc
|
||||||
|
key: client-id
|
||||||
|
- name: AUTH_OIDC_CLIENT_SECRET
|
||||||
|
valueFrom:
|
||||||
|
secretKeyRef:
|
||||||
|
name: homarr-oidc
|
||||||
|
key: client-secret
|
||||||
|
- name: SECRET_ENCRYPTION_KEY
|
||||||
|
valueFrom:
|
||||||
|
secretKeyRef:
|
||||||
|
name: homarr-secrets
|
||||||
|
key: SECRET_ENCRYPTION_KEY
|
||||||
|
- name: OAUTH_ALLOW_DANGEROUS_EMAIL_ACCOUNT_LINKING
|
||||||
|
value: "true"
|
||||||
|
- name: BASE_URL
|
||||||
|
value: "https://homarr.riotpiao.com"
|
||||||
|
- name: NEXTAUTH_URL
|
||||||
|
value: "https://homarr.riotpiao.com"
|
||||||
|
|
||||||
|
tolerations:
|
||||||
|
- key: node-role.kubernetes.io/control-plane
|
||||||
|
operator: Exists
|
||||||
|
effect: NoSchedule
|
||||||
|
|
||||||
|
resources:
|
||||||
|
requests:
|
||||||
|
cpu: 100m
|
||||||
|
memory: 256Mi
|
||||||
|
limits:
|
||||||
|
cpu: 500m
|
||||||
|
memory: 512Mi
|
||||||
|
|
||||||
|
ingress:
|
||||||
|
enabled: false # Managed centrally in k8s/bootstrap/ingress/ingress.yaml
|
||||||
@@ -0,0 +1,7 @@
|
|||||||
|
apiVersion: kustomize.config.k8s.io/v1beta1
|
||||||
|
kind: Kustomization
|
||||||
|
namespace: dashboard
|
||||||
|
resources:
|
||||||
|
- homarr-secrets.enc.yaml
|
||||||
|
# Homarr deployed via Helm chart (values in 60-applications.yaml multi-source Application).
|
||||||
|
# This kustomization just holds the SOPS-encrypted SECRET_ENCRYPTION_KEY.
|
||||||
@@ -96,5 +96,20 @@ spec:
|
|||||||
|
|
||||||
# ── OIDC via Authentik (server-side env, valid in v2 schema) ────────────────
|
# ── OIDC via Authentik (server-side env, valid in v2 schema) ────────────────
|
||||||
env:
|
env:
|
||||||
|
- name: MINIO_IDENTITY_OPENID_CONFIG_URL
|
||||||
|
value: "https://authentik.riotpiao.com/application/o/minio/.well-known/openid-configuration"
|
||||||
|
- name: MINIO_IDENTITY_OPENID_CLIENT_ID
|
||||||
|
value: "minio"
|
||||||
|
- name: MINIO_IDENTITY_OPENID_CLIENT_SECRET
|
||||||
|
valueFrom:
|
||||||
|
secretKeyRef:
|
||||||
|
name: minio-oidc
|
||||||
|
key: MINIO_IDENTITY_OPENID_CLIENT_SECRET
|
||||||
|
- name: MINIO_IDENTITY_OPENID_CLAIM_NAME
|
||||||
|
value: "policy"
|
||||||
|
- name: MINIO_IDENTITY_OPENID_REDIRECT_URI
|
||||||
|
value: "https://minio.riotpiao.com/oauth_callback"
|
||||||
|
- name: MINIO_IDENTITY_OPENID_DISPLAY_NAME
|
||||||
|
value: "Authentik"
|
||||||
- name: MINIO_IDENTITY_OPENID_SCOPES
|
- name: MINIO_IDENTITY_OPENID_SCOPES
|
||||||
value: "openid,profile,email,minio"
|
value: "openid,profile,email,minio"
|
||||||
|
|||||||
Reference in New Issue
Block a user