new file: infrastructure/cert-manager/external-secret.yaml

new file:   infrastructure/external-secrets-app.yaml
	new file:   infrastructure/external-secrets-config-app.yaml
	new file:   infrastructure/external-secrets/cluster-secret-store.yaml
This commit is contained in:
Ubuntu
2026-01-11 23:48:46 +00:00
parent 4ba88d15f2
commit c2cee629b8
4 changed files with 78 additions and 0 deletions

View File

@@ -0,0 +1,18 @@
apiVersion: external-secrets.io/v1beta1
kind: ExternalSecret
metadata:
name: cloudflare-api-token-secret
namespace: cert-manager # Hier braucht es Cert-Manager
spec:
refreshInterval: "1h"
secretStoreRef:
name: vault-backend
kind: ClusterSecretStore
target:
name: cloudflare-api-token-secret # Name des K8s Secrets
creationPolicy: Owner
data:
- secretKey: api-token # Key im K8s Secret
remoteRef:
key: secret/infrastructure/opnsense # Pfad im Vault
property: dns_api_token # Key im Vault

View File

@@ -0,0 +1,25 @@
apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
name: external-secrets
namespace: argocd
annotations:
argocd.argoproj.io/sync-wave: "-2" # Muss VOR Cert-Manager und Apps da sein
spec:
project: default
source:
repoURL: https://charts.external-secrets.io
chart: external-secrets
targetRevision: 0.9.11
helm:
values: |
installCRDs: true
destination:
server: https://kubernetes.default.svc
namespace: external-secrets
syncPolicy:
automated:
prune: true
selfHeal: true
syncOptions:
- CreateNamespace=true

View File

@@ -0,0 +1,18 @@
apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
name: external-secrets-config
namespace: argocd
spec:
project: default
source:
repoURL: https://git.cloud-infra.prod.openmailserver.de/stabify/gitops.git
targetRevision: HEAD
path: infrastructure/external-secrets
destination:
server: https://kubernetes.default.svc
namespace: external-secrets
syncPolicy:
automated:
prune: true
selfHeal: true

View File

@@ -0,0 +1,17 @@
apiVersion: external-secrets.io/v1beta1
kind: ClusterSecretStore
metadata:
name: vault-backend
spec:
provider:
vault:
server: "http://10.100.30.11:8200" # Interne IP vom Docker Host
path: "secret"
version: "v2"
auth:
kubernetes:
mountPath: "kubernetes"
role: "external-secrets-role"
serviceAccountRef:
name: external-secrets
namespace: external-secrets