Add dev/stg/prod environments with per-env values, configmaps and secrets
- Move env-specific config into environments/<env>/{values,configmap,secret}.yaml
for both nginx-chart and mysql-chart (dev, stg, prod)
- Make templates env-agnostic: resource names come from values
(configMap.name, secret.name)
- nginx deployment mounts env ConfigMap and loads env Secret via envFrom
- mysql statefulset reads DB config from ConfigMap, passwords from Secret
- Remove mysql-chart/templates/secret.yaml (secrets are now per-env manifests)
- Add README with layout and deploy commands
This commit is contained in:
@@ -0,0 +1,11 @@
|
||||
apiVersion: v1
|
||||
kind: ConfigMap
|
||||
metadata:
|
||||
name: mysql-config-dev
|
||||
namespace: dev
|
||||
labels:
|
||||
app: mysql
|
||||
env: dev
|
||||
data:
|
||||
MYSQL_DATABASE: demo_dev
|
||||
MYSQL_USER: demo
|
||||
@@ -0,0 +1,12 @@
|
||||
# MySQL credentials for the DEV environment (referenced by the StatefulSet).
|
||||
# Replace with real values; for production use a sealed/encrypted secret instead
|
||||
# of committing plaintext.
|
||||
apiVersion: v1
|
||||
kind: Secret
|
||||
metadata:
|
||||
name: mysql-secret-dev
|
||||
namespace: dev
|
||||
type: Opaque
|
||||
stringData:
|
||||
MYSQL_PASSWORD: demo123
|
||||
MYSQL_ROOT_PASSWORD: root123
|
||||
@@ -0,0 +1,14 @@
|
||||
# DEV environment overrides for mysql-chart
|
||||
namespace: dev
|
||||
|
||||
image:
|
||||
tag: "8.4"
|
||||
|
||||
storage:
|
||||
size: 1Gi
|
||||
|
||||
configMap:
|
||||
name: mysql-config-dev
|
||||
|
||||
secret:
|
||||
name: mysql-secret-dev
|
||||
@@ -0,0 +1,11 @@
|
||||
apiVersion: v1
|
||||
kind: ConfigMap
|
||||
metadata:
|
||||
name: mysql-config-prod
|
||||
namespace: prod
|
||||
labels:
|
||||
app: mysql
|
||||
env: prod
|
||||
data:
|
||||
MYSQL_DATABASE: demo_prod
|
||||
MYSQL_USER: demo
|
||||
@@ -0,0 +1,12 @@
|
||||
# MySQL credentials for the PROD environment (referenced by the StatefulSet).
|
||||
# Replace with real values; for production use a sealed/encrypted secret instead
|
||||
# of committing plaintext.
|
||||
apiVersion: v1
|
||||
kind: Secret
|
||||
metadata:
|
||||
name: mysql-secret-prod
|
||||
namespace: prod
|
||||
type: Opaque
|
||||
stringData:
|
||||
MYSQL_PASSWORD: prod123
|
||||
MYSQL_ROOT_PASSWORD: prodroot123
|
||||
@@ -0,0 +1,14 @@
|
||||
# PROD environment overrides for mysql-chart
|
||||
namespace: prod
|
||||
|
||||
image:
|
||||
tag: "8.4"
|
||||
|
||||
storage:
|
||||
size: 5Gi
|
||||
|
||||
configMap:
|
||||
name: mysql-config-prod
|
||||
|
||||
secret:
|
||||
name: mysql-secret-prod
|
||||
@@ -0,0 +1,11 @@
|
||||
apiVersion: v1
|
||||
kind: ConfigMap
|
||||
metadata:
|
||||
name: mysql-config-stg
|
||||
namespace: stg
|
||||
labels:
|
||||
app: mysql
|
||||
env: stg
|
||||
data:
|
||||
MYSQL_DATABASE: demo_stg
|
||||
MYSQL_USER: demo
|
||||
@@ -0,0 +1,12 @@
|
||||
# MySQL credentials for the STG (staging) environment (referenced by the StatefulSet).
|
||||
# Replace with real values; for production use a sealed/encrypted secret instead
|
||||
# of committing plaintext.
|
||||
apiVersion: v1
|
||||
kind: Secret
|
||||
metadata:
|
||||
name: mysql-secret-stg
|
||||
namespace: stg
|
||||
type: Opaque
|
||||
stringData:
|
||||
MYSQL_PASSWORD: stg123
|
||||
MYSQL_ROOT_PASSWORD: stgroot123
|
||||
@@ -0,0 +1,14 @@
|
||||
# STG (staging) environment overrides for mysql-chart
|
||||
namespace: stg
|
||||
|
||||
image:
|
||||
tag: "8.4"
|
||||
|
||||
storage:
|
||||
size: 2Gi
|
||||
|
||||
configMap:
|
||||
name: mysql-config-stg
|
||||
|
||||
secret:
|
||||
name: mysql-secret-stg
|
||||
Reference in New Issue
Block a user