40 lines
1.0 KiB
YAML
40 lines
1.0 KiB
YAML
# services/monitoring/grafana-smtp-sync-script.yaml
|
|
apiVersion: v1
|
|
kind: ConfigMap
|
|
metadata:
|
|
name: grafana-smtp-sync-script
|
|
namespace: monitoring
|
|
data:
|
|
sync.sh: |
|
|
#!/bin/sh
|
|
set -euo pipefail
|
|
|
|
SOURCE_NS=${SOURCE_NS:-mailu-mailserver}
|
|
SOURCE_SECRET=${SOURCE_SECRET:-mailu-postmark-relay}
|
|
TARGET_NS=${TARGET_NS:-monitoring}
|
|
TARGET_SECRET=${TARGET_SECRET:-grafana-smtp}
|
|
|
|
tmp=$(mktemp)
|
|
cleanup() { rm -f "$tmp"; }
|
|
trap cleanup EXIT
|
|
|
|
kubectl -n "$SOURCE_NS" get secret "$SOURCE_SECRET" -o json > "$tmp"
|
|
|
|
pass=$(jq -r '.data["relay-password"]' "$tmp")
|
|
user=$pass
|
|
|
|
if [ -z "$user" ] || [ -z "$pass" ] || [ "$user" = "null" ] || [ "$pass" = "null" ]; then
|
|
echo "missing credentials from $SOURCE_NS/$SOURCE_SECRET" >&2
|
|
exit 1
|
|
fi
|
|
|
|
cat <<SECRET | kubectl -n "$TARGET_NS" apply -f -
|
|
apiVersion: v1
|
|
kind: Secret
|
|
metadata:
|
|
name: $TARGET_SECRET
|
|
stringData:
|
|
username: $(echo "$user" | base64 -d)
|
|
password: $(echo "$pass" | base64 -d)
|
|
SECRET
|