Files
k8s-manifests/roswell/infisical-roswell-secrets.yaml
T

55 lines
2.2 KiB
YAML

# Secretos de la app respaldados por Infisical (patrón researchowl).
#
# ALTA PENDIENTE (manual, una vez): la identidad de máquina compartida es de
# solo lectura, así que hay que crear en https://infisical.chemavx.xyz
# (proyecto "homelab", entorno prod) la carpeta /roswell con estas claves:
# TELEGRAM_BOT_TOKEN, TELEGRAM_ALLOWED_USERS, ANTHROPIC_API_KEY,
# PODCASTINDEX_KEY, PODCASTINDEX_SECRET, POSTGRES_PASSWORD
# (los valores están en el .env local y en los Secrets planos actuales).
#
# CORTE: cuando /roswell exista y los Secrets *-infisical aparezcan Synced,
# cambiar las referencias de deployment.yaml, postgres.yaml y
# backup-cronjob.yaml a los nombres *-infisical y borrar los planos:
# kubectl delete secret roswell-secrets roswell-pg-secret -n roswell
apiVersion: secrets.infisical.com/v1beta1
kind: InfisicalStaticSecret
metadata:
name: roswell-secrets
namespace: roswell
spec:
# Identidad compartida de solo lectura (sin write, sin PushSecret).
infisicalAuthRef:
name: infisical-auth
namespace: infisical-operator
sources:
- projectId: 17e98e9d-70f5-43d1-8382-7da818dfcdd0 # project "homelab"
environmentSlug: prod
secretPath: /roswell
syncOptions:
refreshInterval: 60s
targets:
# Nombres *-infisical en paralelo a los Secrets planos hasta el corte,
# como se hizo en researchowl.
- kind: Secret
name: roswell-secrets-infisical
namespace: roswell
creationPolicy: Owner
template:
engineVersion: v1
data:
telegram-bot-token: '{{ .TELEGRAM_BOT_TOKEN.Value }}'
telegram-allowed-users: '{{ .TELEGRAM_ALLOWED_USERS.Value }}'
anthropic-api-key: '{{ .ANTHROPIC_API_KEY.Value }}'
podcastindex-key: '{{ .PODCASTINDEX_KEY.Value }}'
podcastindex-secret: '{{ .PODCASTINDEX_SECRET.Value }}'
# La URL completa se reconstruye: un solo sitio para la password.
database-url: 'postgresql://roswell:{{ .POSTGRES_PASSWORD.Value }}@postgres.roswell.svc.cluster.local:5432/roswell'
- kind: Secret
name: roswell-pg-secret-infisical
namespace: roswell
creationPolicy: Owner
template:
engineVersion: v1
data:
password: '{{ .POSTGRES_PASSWORD.Value }}'