Fase 3.4
Dev vs Production

Dev Mode vs Production · Que Cambia

La configuracion de Vault para el lab (modo dev) es radicalmente distinta a la que se usaria en produccion. Esta pagina documenta exactamente que cambia en cada aspecto y muestra la configuracion HCL que reemplazaria al flag -dev.

01

Ocho Diferencias

Cada aspecto de Vault cambia entre el modo dev y la produccion. Ninguna de estas diferencias es cosmética — cada una tiene implicaciones de seguridad, disponibilidad y operabilidad.

Almacenamiento
Modo Dev
En memoria. Al reiniciar el pod de Vault, todos los secrets, politicas y configuraciones se pierden.
Produccion
Raft integrado (o Consul externo). Datos persistentes en PVC. Soporta snapshots y restore.
Unseal
Modo Dev
Automatico. Vault arranca desellado y listo para usar. Cero interaccion manual.
Produccion
Manual con Shamir Secret Sharing. 3 de 5 unseal keys necesarias. Se puede automatizar con Auto-Unseal via OCI KMS.
Root Token
Modo Dev
Fijado en una variable de entorno del Deployment. Cualquiera con acceso al YAML lo conoce.
Produccion
Generado una unica vez con vault operator init. Se almacena en un lugar seguro fuera del cluster. Nunca en un manifiesto.
TLS
Modo Dev
Deshabilitado. La API de Vault escucha en HTTP plano (puerto 8200).
Produccion
Obligatorio. Certificados TLS para la API, el cluster y el Vault Agent Injector. Sin TLS, Vault no arranca.
Audit Logging
Modo Dev
Deshabilitado. No hay registro de quien accedio a que secret ni cuando.
Produccion
Activado. Audit logs a file, socket o syslog. Cada acceso, creacion, modificacion y eliminacion de secrets queda registrado.
HA
Modo Dev
Una sola replica. Si el pod muere, Vault deja de funcionar hasta que Kubernetes lo reinicie.
Produccion
3 o 5 nodos con Raft consensus. Leader election automatica. El cluster sigue funcionando mientras la mayoria de nodos este viva.
Backup
Modo Dev
No existe. Los datos estan en memoria y se pierden al reiniciar.
Produccion
Snapshot via vault operator raft snapshot. Se puede automatizar con CronJob de Kubernetes. Backups a OCI Object Storage.
Storage Backend
Modo Dev
inmem. No requiere configuracion. Util para desarrollo y testing.
Produccion
Raft (recomendado) o Consul. Requiere PVC, configuracion de cluster y planificacion de capacidad.
02

Configuracion de Produccion

En modo dev, Vault arranca con vault server -dev y toda la configuracion es implicita. En produccion, se usa un archivo HCL que define storage, listeners, TLS y clustering. El ConfigMap en k3s/manifests/vault/configmap.yml contiene la referencia para esta transicion.

vault.hcl (produccion)
storage "raft" {
  path    = "/vault/data"
  node_id = "vault-1"

  retry_join {
    leader_api_addr = "https://vault-0.vault-internal:8200"
  }
}

listener "tcp" {
  address       = "0.0.0.0:8200"
  tls_cert_file = "/vault/tls/tls.crt"
  tls_key_file  = "/vault/tls/tls.key"
}

api_addr     = "https://vault.aiops.svc.cluster.local:8200"
cluster_addr = "https://vault.aiops.svc.cluster.local:8201"

ui           = true
disable_mlock = true

Este archivo se montaria como ConfigMap en el Deployment de Vault. El comando del contenedor cambiaria de vault server -dev a vault server -config=/vault/config/vault.hcl. El resto del Deployment —Service, ServiceAccount, readiness probe— permanece igual.

03

Camino de Migracion

Migrar de modo dev a produccion no es un toggle. Requiere planificacion, nuevos recursos de Kubernetes y un proceso de inicializacion manual. Estos son los pasos.

1
Agregar un PVC (PersistentVolumeClaim) para el storage Raft. En k3s, el local-path provisioner maneja esto automaticamente.
2
Montar el ConfigMap con vault.hcl en el Deployment. Reemplazar el flag -dev por -config=/vault/config/vault.hcl.
3
Generar certificados TLS para la API y el cluster. Se pueden crear con cert-manager o manualmente con openssl.
4
Ejecutar vault operator init. Guardar las 5 unseal keys y el root token en un lugar seguro fuera del cluster.
5
Unseal manual (o configurar Auto-Unseal via OCI KMS en Oracle Cloud).
6
Reconfigurar el Injector para usar TLS. Actualizar los webhooks y la configuracion de Kubernetes Auth.
En el lab esto no se aplica. La migracion a produccion de Vault se documenta como referencia. En Oracle Cloud (Fase 9), Vault self-hosted se reemplaza directamente por OCI Vault — el servicio gestionado. La decision de arquitectura es: lab local = Vault self-hosted (modo dev), Oracle Cloud = OCI Vault (gestionado). Dos modos de operacion, un solo proyecto.

Fase 3 Completada

Con Vault configurado y el flujo de inyeccion dominado, la Fase 4 introduce el observability stack: k3s, Prometheus, Loki, Grafana Alloy y dashboards de Grafana.

Fase 4 · k3s Setup