mirror of
https://github.com/optim-enterprises-bv/homelab.git
synced 2025-11-01 02:18:01 +00:00
feat(authelia): use a cnpg managed db
use a database for presistent storage of users and sessions
This commit is contained in:
39
k8s/infra/auth/authelia/cnpg-db.yaml
Normal file
39
k8s/infra/auth/authelia/cnpg-db.yaml
Normal file
@@ -0,0 +1,39 @@
|
|||||||
|
apiVersion: postgresql.cnpg.io/v1
|
||||||
|
kind: Cluster
|
||||||
|
metadata:
|
||||||
|
name: authelia-postgres
|
||||||
|
namespace: authelia
|
||||||
|
spec:
|
||||||
|
instances: 1
|
||||||
|
affinity:
|
||||||
|
nodeSelector:
|
||||||
|
topology.kubernetes.io/zone: euclid
|
||||||
|
monitoring:
|
||||||
|
enablePodMonitor: true
|
||||||
|
postgresql:
|
||||||
|
parameters:
|
||||||
|
timezone: Europe/Oslo
|
||||||
|
bootstrap:
|
||||||
|
initdb:
|
||||||
|
database: authelia
|
||||||
|
owner: authelia
|
||||||
|
managed:
|
||||||
|
services:
|
||||||
|
disabledDefaultServices: [ "ro", "r" ]
|
||||||
|
# additional:
|
||||||
|
# - selectorType: rw
|
||||||
|
# updateStrategy: patch
|
||||||
|
# serviceTemplate:
|
||||||
|
# metadata:
|
||||||
|
# name: authelia-postgres-db
|
||||||
|
# annotations:
|
||||||
|
# io.cilium/lb-ipam-ips: 192.168.1.240
|
||||||
|
# spec:
|
||||||
|
# type: LoadBalancer
|
||||||
|
storage:
|
||||||
|
size: 512M
|
||||||
|
pvcTemplate:
|
||||||
|
storageClassName: proxmox-csi
|
||||||
|
volumeName: pv-authelia-postgres
|
||||||
|
accessModes:
|
||||||
|
- ReadWriteOnce
|
||||||
@@ -10,6 +10,7 @@ resources:
|
|||||||
- cert-ecdsa-jwk.yaml
|
- cert-ecdsa-jwk.yaml
|
||||||
- oidc-argocd.yaml
|
- oidc-argocd.yaml
|
||||||
- http-route.yaml
|
- http-route.yaml
|
||||||
|
- cnpg-db.yaml
|
||||||
|
|
||||||
helmCharts:
|
helmCharts:
|
||||||
- name: authelia
|
- name: authelia
|
||||||
|
|||||||
@@ -31,11 +31,12 @@ configMap:
|
|||||||
storage:
|
storage:
|
||||||
encryption_key: { secret_name: crypto }
|
encryption_key: { secret_name: crypto }
|
||||||
postgres:
|
postgres:
|
||||||
enabled: false
|
|
||||||
address: 'tcp://postgres.databases.svc.cluster.local:5432'
|
|
||||||
# Switch to Postgres later
|
|
||||||
local:
|
|
||||||
enabled: true
|
enabled: true
|
||||||
|
deploy: false
|
||||||
|
address: tcp://authelia-postgres-rw:5432
|
||||||
|
database: authelia
|
||||||
|
username: authelia
|
||||||
|
password: { secret_name: authelia-postgres-app }
|
||||||
|
|
||||||
notifier:
|
notifier:
|
||||||
filesystem:
|
filesystem:
|
||||||
@@ -52,7 +53,7 @@ configMap:
|
|||||||
groups_filter: '(member={dn})'
|
groups_filter: '(member={dn})'
|
||||||
additional_groups_dn: 'ou=groups'
|
additional_groups_dn: 'ou=groups'
|
||||||
user: 'UID=authelia,OU=people,DC=stonegarden,DC=dev'
|
user: 'UID=authelia,OU=people,DC=stonegarden,DC=dev'
|
||||||
password: { secret_name: 'lldap-auth' }
|
password: { secret_name: lldap-auth }
|
||||||
|
|
||||||
identity_providers:
|
identity_providers:
|
||||||
oidc:
|
oidc:
|
||||||
@@ -102,6 +103,10 @@ configMap:
|
|||||||
|
|
||||||
secret:
|
secret:
|
||||||
additionalSecrets:
|
additionalSecrets:
|
||||||
|
authelia-postgres-app:
|
||||||
|
items:
|
||||||
|
- key: password
|
||||||
|
path: storage.postgres.password.txt
|
||||||
lldap-auth:
|
lldap-auth:
|
||||||
items:
|
items:
|
||||||
- key: password
|
- key: password
|
||||||
|
|||||||
@@ -1,10 +0,0 @@
|
|||||||
apiVersion: postgresql.cnpg.io/v1
|
|
||||||
kind: Cluster
|
|
||||||
metadata:
|
|
||||||
name: cluster-example
|
|
||||||
namespace: cnpg-database
|
|
||||||
spec:
|
|
||||||
instances: 3
|
|
||||||
storage:
|
|
||||||
storageClass: proxmox-csi
|
|
||||||
size: 4G
|
|
||||||
@@ -1,6 +0,0 @@
|
|||||||
apiVersion: kustomize.config.k8s.io/v1beta1
|
|
||||||
kind: Kustomization
|
|
||||||
namespace: cnpg-database
|
|
||||||
|
|
||||||
resources:
|
|
||||||
- cnpg-cluster.yaml
|
|
||||||
@@ -1,30 +0,0 @@
|
|||||||
apiVersion: postgresql.cnpg.io/v1
|
|
||||||
kind: Cluster
|
|
||||||
metadata:
|
|
||||||
name: single-example
|
|
||||||
namespace: cnpg-database
|
|
||||||
spec:
|
|
||||||
instances: 1
|
|
||||||
affinity:
|
|
||||||
nodeSelector:
|
|
||||||
topology.kubernetes.io/zone: euclid
|
|
||||||
managed:
|
|
||||||
services:
|
|
||||||
disabledDefaultServices: [ "ro", "r" ]
|
|
||||||
additional:
|
|
||||||
- selectorType: rw
|
|
||||||
updateStrategy: patch
|
|
||||||
serviceTemplate:
|
|
||||||
metadata:
|
|
||||||
name: single-example-ext
|
|
||||||
annotations:
|
|
||||||
io.cilium/lb-ipam-ips: 192.168.1.230
|
|
||||||
spec:
|
|
||||||
type: LoadBalancer
|
|
||||||
storage:
|
|
||||||
size: 4G
|
|
||||||
pvcTemplate:
|
|
||||||
storageClassName: proxmox-csi
|
|
||||||
volumeName: pv-single-database
|
|
||||||
accessModes:
|
|
||||||
- ReadWriteOnce
|
|
||||||
@@ -1,6 +0,0 @@
|
|||||||
apiVersion: kustomize.config.k8s.io/v1beta1
|
|
||||||
kind: Kustomization
|
|
||||||
namespace: cnpg-database
|
|
||||||
|
|
||||||
resources:
|
|
||||||
- cnpg-single.yaml
|
|
||||||
@@ -8,9 +8,9 @@ spec:
|
|||||||
displayName: Netbird Backend
|
displayName: Netbird Backend
|
||||||
description: Netbird Backend Client
|
description: Netbird Backend Client
|
||||||
clientSecretSecretRef:
|
clientSecretSecretRef:
|
||||||
name: netbird-backend-oidc-credentials
|
name: management-oidc-credentials
|
||||||
namespace: netbird
|
namespace: netbird
|
||||||
key: clientSecret
|
key: NETBIRD_IDP_CLIENT_SECRET
|
||||||
type: CONFIDENTIAL
|
type: CONFIDENTIAL
|
||||||
grantTypes:
|
grantTypes:
|
||||||
- client_credentials
|
- client_credentials
|
||||||
|
|||||||
@@ -128,6 +128,10 @@ module "volumes" {
|
|||||||
node = "euclid"
|
node = "euclid"
|
||||||
size = "1G"
|
size = "1G"
|
||||||
}
|
}
|
||||||
|
pv-authelia-postgres = {
|
||||||
|
node = "euclid"
|
||||||
|
size = "512M"
|
||||||
|
}
|
||||||
pv-keycloak-postgres = {
|
pv-keycloak-postgres = {
|
||||||
node = "euclid"
|
node = "euclid"
|
||||||
size = "2G"
|
size = "2G"
|
||||||
@@ -152,9 +156,5 @@ module "volumes" {
|
|||||||
node = "abel"
|
node = "abel"
|
||||||
size = "10G"
|
size = "10G"
|
||||||
}
|
}
|
||||||
pv-single-database = {
|
|
||||||
node = "euclid"
|
|
||||||
size = "4G"
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user