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,19 @@
|
||||
apiVersion: v1
|
||||
kind: ConfigMap
|
||||
metadata:
|
||||
name: nginx-config-dev
|
||||
namespace: dev
|
||||
labels:
|
||||
app: nginx
|
||||
env: dev
|
||||
data:
|
||||
default.conf: |
|
||||
server {
|
||||
listen 80;
|
||||
server_name nginx.dev.local;
|
||||
|
||||
location / {
|
||||
return 200 "nginx DEV environment\n";
|
||||
add_header Content-Type text/plain;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,31 @@
|
||||
# ---------------------------------------------------------------------------
|
||||
# Registry pull secret used by the nginx Deployment (imagePullSecrets).
|
||||
# Replace the credentials with the real registry values, or regenerate with:
|
||||
# kubectl create secret docker-registry harbor-secret \
|
||||
# --docker-server=imageregistry.gen-itech.com \
|
||||
# --docker-username=demo --docker-password=demo123 \
|
||||
# -n dev --dry-run=client -o yaml
|
||||
# ---------------------------------------------------------------------------
|
||||
apiVersion: v1
|
||||
kind: Secret
|
||||
metadata:
|
||||
name: harbor-secret
|
||||
namespace: dev
|
||||
type: kubernetes.io/dockerconfigjson
|
||||
stringData:
|
||||
.dockerconfigjson: |
|
||||
{"auths":{"imageregistry.gen-itech.com":{"username":"demo","password":"demo123","auth":"ZGVtbzpkZW1vMTIz"}}}
|
||||
|
||||
---
|
||||
# ---------------------------------------------------------------------------
|
||||
# Application secret for the nginx container (loaded via envFrom).
|
||||
# ---------------------------------------------------------------------------
|
||||
apiVersion: v1
|
||||
kind: Secret
|
||||
metadata:
|
||||
name: nginx-secret-dev
|
||||
namespace: dev
|
||||
type: Opaque
|
||||
stringData:
|
||||
APP_ENV: dev
|
||||
APP_SECRET: change-me-dev
|
||||
@@ -0,0 +1,16 @@
|
||||
# DEV environment overrides for nginx-chart
|
||||
namespace: dev
|
||||
|
||||
replicaCount: 1
|
||||
|
||||
image:
|
||||
tag: "39"
|
||||
|
||||
ingress:
|
||||
host: nginx.dev.local
|
||||
|
||||
configMap:
|
||||
name: nginx-config-dev
|
||||
|
||||
secret:
|
||||
name: nginx-secret-dev
|
||||
@@ -0,0 +1,19 @@
|
||||
apiVersion: v1
|
||||
kind: ConfigMap
|
||||
metadata:
|
||||
name: nginx-config-prod
|
||||
namespace: prod
|
||||
labels:
|
||||
app: nginx
|
||||
env: prod
|
||||
data:
|
||||
default.conf: |
|
||||
server {
|
||||
listen 80;
|
||||
server_name nginx.prod.local;
|
||||
|
||||
location / {
|
||||
return 200 "nginx PROD environment\n";
|
||||
add_header Content-Type text/plain;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,31 @@
|
||||
# ---------------------------------------------------------------------------
|
||||
# Registry pull secret used by the nginx Deployment (imagePullSecrets).
|
||||
# Replace the credentials with the real registry values, or regenerate with:
|
||||
# kubectl create secret docker-registry harbor-secret \
|
||||
# --docker-server=imageregistry.gen-itech.com \
|
||||
# --docker-username=demo --docker-password=demo123 \
|
||||
# -n prod --dry-run=client -o yaml
|
||||
# ---------------------------------------------------------------------------
|
||||
apiVersion: v1
|
||||
kind: Secret
|
||||
metadata:
|
||||
name: harbor-secret
|
||||
namespace: prod
|
||||
type: kubernetes.io/dockerconfigjson
|
||||
stringData:
|
||||
.dockerconfigjson: |
|
||||
{"auths":{"imageregistry.gen-itech.com":{"username":"demo","password":"demo123","auth":"ZGVtbzpkZW1vMTIz"}}}
|
||||
|
||||
---
|
||||
# ---------------------------------------------------------------------------
|
||||
# Application secret for the nginx container (loaded via envFrom).
|
||||
# ---------------------------------------------------------------------------
|
||||
apiVersion: v1
|
||||
kind: Secret
|
||||
metadata:
|
||||
name: nginx-secret-prod
|
||||
namespace: prod
|
||||
type: Opaque
|
||||
stringData:
|
||||
APP_ENV: prod
|
||||
APP_SECRET: change-me-prod
|
||||
@@ -0,0 +1,16 @@
|
||||
# PROD environment overrides for nginx-chart
|
||||
namespace: prod
|
||||
|
||||
replicaCount: 3
|
||||
|
||||
image:
|
||||
tag: "39"
|
||||
|
||||
ingress:
|
||||
host: nginx.prod.local
|
||||
|
||||
configMap:
|
||||
name: nginx-config-prod
|
||||
|
||||
secret:
|
||||
name: nginx-secret-prod
|
||||
@@ -0,0 +1,19 @@
|
||||
apiVersion: v1
|
||||
kind: ConfigMap
|
||||
metadata:
|
||||
name: nginx-config-stg
|
||||
namespace: stg
|
||||
labels:
|
||||
app: nginx
|
||||
env: stg
|
||||
data:
|
||||
default.conf: |
|
||||
server {
|
||||
listen 80;
|
||||
server_name nginx.stg.local;
|
||||
|
||||
location / {
|
||||
return 200 "nginx STG environment\n";
|
||||
add_header Content-Type text/plain;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,31 @@
|
||||
# ---------------------------------------------------------------------------
|
||||
# Registry pull secret used by the nginx Deployment (imagePullSecrets).
|
||||
# Replace the credentials with the real registry values, or regenerate with:
|
||||
# kubectl create secret docker-registry harbor-secret \
|
||||
# --docker-server=imageregistry.gen-itech.com \
|
||||
# --docker-username=demo --docker-password=demo123 \
|
||||
# -n stg --dry-run=client -o yaml
|
||||
# ---------------------------------------------------------------------------
|
||||
apiVersion: v1
|
||||
kind: Secret
|
||||
metadata:
|
||||
name: harbor-secret
|
||||
namespace: stg
|
||||
type: kubernetes.io/dockerconfigjson
|
||||
stringData:
|
||||
.dockerconfigjson: |
|
||||
{"auths":{"imageregistry.gen-itech.com":{"username":"demo","password":"demo123","auth":"ZGVtbzpkZW1vMTIz"}}}
|
||||
|
||||
---
|
||||
# ---------------------------------------------------------------------------
|
||||
# Application secret for the nginx container (loaded via envFrom).
|
||||
# ---------------------------------------------------------------------------
|
||||
apiVersion: v1
|
||||
kind: Secret
|
||||
metadata:
|
||||
name: nginx-secret-stg
|
||||
namespace: stg
|
||||
type: Opaque
|
||||
stringData:
|
||||
APP_ENV: stg
|
||||
APP_SECRET: change-me-stg
|
||||
@@ -0,0 +1,16 @@
|
||||
# STG (staging) environment overrides for nginx-chart
|
||||
namespace: stg
|
||||
|
||||
replicaCount: 2
|
||||
|
||||
image:
|
||||
tag: "39"
|
||||
|
||||
ingress:
|
||||
host: nginx.stg.local
|
||||
|
||||
configMap:
|
||||
name: nginx-config-stg
|
||||
|
||||
secret:
|
||||
name: nginx-secret-stg
|
||||
Reference in New Issue
Block a user