wip: Use cert-manager for cnpg's auth

This commit is contained in:
2025-07-16 09:22:15 +02:00
parent 2387f2dab7
commit 4f19e13f3e
6 changed files with 78 additions and 40 deletions
+7
View File
@@ -41,3 +41,10 @@ spec:
- http01: - http01:
ingress: ingress:
ingressClassName: cilium ingressClassName: cilium
---
apiVersion: cert-manager.io/v1
kind: ClusterIssuer
metadata:
name: selfsigned
spec:
selfSigned: {}
+24
View File
@@ -0,0 +1,24 @@
apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
name: cnpg
namespace: argocd
spec:
project: default
destination:
server: https://kubernetes.default.svc
namespace: cnpg
syncPolicy:
automated:
prune: true
selfHeal: true
syncOptions:
- CreateNamespace=true
# needed because the CRDs are too long for kubectl apply
- ServerSideApply=true
source:
repoURL: https://cloudnative-pg.github.io/charts
chart: cloudnative-pg
targetRevision: v0.24.0
helm:
valuesObject: {}
+8 -40
View File
@@ -1,52 +1,20 @@
kind: Namespace
apiVersion: v1
metadata:
name: cnpg
---
apiVersion: argoproj.io/v1alpha1 apiVersion: argoproj.io/v1alpha1
kind: Application kind: Application
metadata: metadata:
name: cnpg name: postgres
namespace: argocd namespace: argocd
spec: spec:
project: default project: default
destination: destination:
server: https://kubernetes.default.svc server: https://kubernetes.default.svc
namespace: cnpg namespace: postgres
syncPolicy: syncPolicy:
automated: automated:
prune: true prune: true
selfHeal: true selfHeal: false
# needed because the CRDs are too long for kubectl apply syncOption:
syncOptions: - CreateNamespace=true
- ServerSideApply=true
source: source:
repoURL: https://cloudnative-pg.github.io/charts repoURL: https://github.com/zoriya/snow
chart: cloudnative-pg targetRevision: HEAD
targetRevision: v0.24.0 path: apps/postgres
helm:
valuesObject: {}
---
kind: Namespace
apiVersion: v1
metadata:
name: postgres
---
apiVersion: postgresql.cnpg.io/v1
kind: Cluster
metadata:
name: postgres-cluster
namespace: postgres
spec:
instances: 3
storage:
size: 10Gi
# this is here because no `Role` crd exsists yet.
# see https://github.com/cloudnative-pg/cloudnative-pg/issues/5341
managed:
roles:
- name: authentik
login: true
disablePassword: true
+16
View File
@@ -0,0 +1,16 @@
apiVersion: cert-manager.io/v1
kind: Certificate
metadata:
name: postgres-cluster-ca
spec:
secretName: postgres-cluster-ca
secretTemplate:
labels:
cnpg.io/reload: ""
usages:
- client auth
commonName: streaming_replica
issuerRef:
name: selfsigned
kind: ClusterIssuer
group: cert-manager.io
+22
View File
@@ -0,0 +1,22 @@
apiVersion: postgresql.cnpg.io/v1
kind: Cluster
metadata:
name: postgres-cluster
namespace: postgres
spec:
instances: 3
storage:
size: 10Gi
certificates:
clientCASecret: postgres-cert-ca
replicationTLSSecret: postgres-cert-ca
# this is here because no `Role` crd exsists yet.
# see https://github.com/cloudnative-pg/cloudnative-pg/issues/5341
managed:
roles:
- name: authentik
login: true
disablePassword: true
+1
View File
@@ -9,6 +9,7 @@ pkgs.mkShell {
cmctl cmctl
kubectx kubectx
kubernetes-helm kubernetes-helm
kubectl-cnpg
]; ];
TALOSCONFIG = "./clusterconfig/talosconfig"; TALOSCONFIG = "./clusterconfig/talosconfig";