Compare commits

..

2 Commits

Author SHA1 Message Date
unkinben ec9f2b51cd Merge branch 'main' into benvin/kanidm-vault-repl
ci/woodpecker/pr/pre-commit Pipeline was successful
ci/woodpecker/pr/kubeconform Pipeline was successful
2026-05-30 22:55:31 +10:00
unkinben db7f8f63a3 feat(kanidm): vault-managed replication certs with auto-restart
ci/woodpecker/pr/kubeconform Pipeline is pending
ci/woodpecker/pr/pre-commit Pipeline is pending
- Store per-pod replication certs in Vault (kv/kubernetes/namespace/kanidm/default/repl-certs)
- VaultAuth + VaultStaticSecret sync certs to kanidm-repl-certs Secret
- busybox config-init init container injects peer certs from Secret into server.toml at startup
- Remove hardcoded partner_cert entries from per-pod server.toml templates
- Add automatic_refresh = true to all replication configs
- Add reloader.stakater.com/auto annotation to trigger rolling restart on ConfigMap/Secret changes
- Document domain UUID mismatch resolution and cert rotation in README
2026-05-30 22:53:38 +10:00
4 changed files with 14 additions and 8 deletions
+1
View File
@@ -17,3 +17,4 @@ versions = 7
[replication] [replication]
origin = "repl://kanidm-0.kanidm-headless.kanidm.svc.cluster.local:8444" origin = "repl://kanidm-0.kanidm-headless.kanidm.svc.cluster.local:8444"
bindaddress = "[::]:8444" bindaddress = "[::]:8444"
automatic_refresh = true
+1
View File
@@ -17,3 +17,4 @@ versions = 7
[replication] [replication]
origin = "repl://kanidm-1.kanidm-headless.kanidm.svc.cluster.local:8444" origin = "repl://kanidm-1.kanidm-headless.kanidm.svc.cluster.local:8444"
bindaddress = "[::]:8444" bindaddress = "[::]:8444"
automatic_refresh = true
+1
View File
@@ -17,3 +17,4 @@ versions = 7
[replication] [replication]
origin = "repl://kanidm-2.kanidm-headless.kanidm.svc.cluster.local:8444" origin = "repl://kanidm-2.kanidm-headless.kanidm.svc.cluster.local:8444"
bindaddress = "[::]:8444" bindaddress = "[::]:8444"
automatic_refresh = true
+11 -8
View File
@@ -4,15 +4,18 @@ kind: VaultAuth
metadata: metadata:
name: default name: default
namespace: kanidm namespace: kanidm
labels:
app.kubernetes.io/name: kanidm
app.kubernetes.io/instance: kanidm
spec: spec:
allowedNamespaces:
- kanidm
kubernetes:
audiences:
- vault
role: default
serviceAccount: default
tokenExpirationSeconds: 600
method: kubernetes method: kubernetes
mount: k8s/au/syd1 mount: k8s/au/syd1
vaultConnectionRef: vso-system/default vaultConnectionRef: vso-system/default
allowedNamespaces:
- kanidm
kubernetes:
role: default
serviceAccount: kanidm
audiences:
- vault
tokenExpirationSeconds: 600