feat(argocd): SOPS CMP plugin decryption for Stage 0 secrets (simplify to directory source)
This commit is contained in:
@@ -0,0 +1,25 @@
|
||||
apiVersion: argoproj.io/v1alpha1
|
||||
kind: Application
|
||||
metadata:
|
||||
name: sops-secrets
|
||||
namespace: argocd
|
||||
finalizers:
|
||||
- resources-finalizer.argocd.argoproj.io
|
||||
annotations:
|
||||
argocd.argoproj.io/sync-wave: "0"
|
||||
spec:
|
||||
project: homelab
|
||||
revisionHistoryLimit: 3
|
||||
syncPolicy:
|
||||
automated:
|
||||
prune: true
|
||||
selfHeal: true
|
||||
syncOptions:
|
||||
- CreateNamespace=true
|
||||
source:
|
||||
repoURL: http://forgejo.riotpiao.com:3000/riotpiao.com/homelab.git
|
||||
targetRevision: main
|
||||
path: k8s/security/sops-secrets
|
||||
directory: {}
|
||||
destination:
|
||||
server: https://kubernetes.default.svc
|
||||
Executable
+32
@@ -0,0 +1,32 @@
|
||||
#!/bin/bash
|
||||
set -e
|
||||
|
||||
export SOPS_AGE_KEY_FILE=/sops-age/keys.txt
|
||||
|
||||
# Decrypt grafana secrets once
|
||||
GRAFANA_SECRETS=$(sops -d k8s/platform/logging/grafana-secrets.enc.yaml)
|
||||
|
||||
# Stage 0: grafana
|
||||
OIDC_SECRET=$(echo "$GRAFANA_SECRETS" | yq -r '.env.GF_AUTH_GENERIC_OAUTH_CLIENT_SECRET')
|
||||
ADMIN_PASSWORD=$(echo "$GRAFANA_SECRETS" | yq -r '.adminPassword')
|
||||
|
||||
cat <<EOF
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: Secret
|
||||
metadata:
|
||||
name: grafana-oidc
|
||||
namespace: logging
|
||||
type: Opaque
|
||||
data:
|
||||
GF_AUTH_GENERIC_OAUTH_CLIENT_SECRET: $(echo -n "$OIDC_SECRET" | base64 -w0)
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: Secret
|
||||
metadata:
|
||||
name: grafana-admin
|
||||
namespace: logging
|
||||
type: Opaque
|
||||
data:
|
||||
admin-password: $(echo -n "$ADMIN_PASSWORD" | base64 -w0)
|
||||
EOF
|
||||
Reference in New Issue
Block a user