feat(roswell): postgres a ClusterIP y secretos Infisical preparados (alta manual pendiente en /roswell)
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,54 @@
|
||||
# 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 }}'
|
||||
@@ -1,8 +1,9 @@
|
||||
# Postgres 16 + pgvector para el corpus (namespace roswell).
|
||||
# El Secret roswell-pg-secret se crea imperativamente (PLAN Fase 6):
|
||||
# kubectl create secret generic roswell-pg-secret -n roswell \
|
||||
# --from-literal=password=<pass>
|
||||
# NodePort 30432 para acceso desde la LAN/nodos durante el desarrollo local.
|
||||
# El Secret roswell-pg-secret se crea imperativamente (PLAN Fase 6);
|
||||
# migración a Infisical preparada en infisical-roswell-secrets.yaml.
|
||||
# ClusterIP (cierre Fase 6): con el bot ya en el clúster el NodePort 30432
|
||||
# sobraba. Acceso local puntual: desde un nodo del clúster la ClusterIP
|
||||
# responde directa; desde fuera, kubectl port-forward -n roswell svc/postgres 15432:5432.
|
||||
apiVersion: v1
|
||||
kind: Namespace
|
||||
metadata:
|
||||
@@ -81,10 +82,9 @@ metadata:
|
||||
name: postgres
|
||||
namespace: roswell
|
||||
spec:
|
||||
type: NodePort
|
||||
type: ClusterIP
|
||||
selector:
|
||||
app: roswell-postgres
|
||||
ports:
|
||||
- port: 5432
|
||||
targetPort: 5432
|
||||
nodePort: 30432
|
||||
|
||||
Reference in New Issue
Block a user