Module 6: Configuration & Secrets
🏗️ 1. The Manual Task: Hardcoded Configuration
In a non-orchestrated environment, configuring applications for different environments (Dev, Staging, Prod) is difficult.
The Manual Steps:
- Manage Env Vars: Manually SSH into servers to export environment variables.
- Store Passwords: Leave database passwords in plaintext configuration files on the server.
- Hardcode Settings: Bake configuration files directly into the Docker image.
🔑 2. The Kubernetes Abstraction: ConfigMaps & Secrets
Kubernetes separates configuration from application images for better portability.
- ConfigMaps: Store non-confidential data (e.g.,
DB_HOST: "prod-db.internal"). - Secrets: Store confidential data (e.g.,
DB_PASSWORD: "secret-pass"). - Secure Injection: Kubernetes injects them as environment variables or RAM-backed files (
tmpfs) at runtime.