Files
k8s-game-2048/manifests/nginx-to-istio-proxy.yaml
Greg 82fc2a6691 feat: Complete PII cleanup and fully automatic pipeline
🧹 PII Cleanup & Security:
- Remove all hardcoded domains (darknex.us, hndrx.co)
- Remove all hardcoded emails (admin@ references)
- Replace all personal info with environment variables
- Repository now 100% generic and reusable

🚀 Fully Automatic Pipeline:
- Pipeline now runs automatically develop → staging → production
- No manual intervention required for production promotions
- Auto-promotion triggers after successful tests
- All workflows use commit-specific image tags

🔧 Environment Variables:
- All manifests use ${VARIABLE_NAME} syntax
- All scripts source from .env file
- GitHub Actions use secrets for sensitive data
- Complete .env.example template provided

📚 Documentation:
- New comprehensive WORKFLOWS.md with pipeline details
- New PIPELINE_QUICK_REFERENCE.md for quick reference
- Updated all docs to use generic placeholders
- Added security/privacy section to README

🔐 Security Enhancements:
- Updated .gitignore for all sensitive files
- Created PII verification script (verify-pii-removal.sh)
- Created cleanup automation script (cleanup-pii.sh)
- Repository verified PII-free and production-ready

BREAKING: Repository now requires .env configuration
- Copy .env.example to .env and configure for your environment
- Set GitHub repository secrets for CI/CD workflows
- All deployments now use environment-specific configuration
2025-07-01 17:30:26 -07:00

120 lines
2.7 KiB
YAML

---
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: game-2048-dev-proxy
namespace: default
annotations:
nginx.ingress.kubernetes.io/ssl-redirect: "true"
nginx.ingress.kubernetes.io/force-ssl-redirect: "true"
cert-manager.io/cluster-issuer: "letsencrypt-prod"
nginx.ingress.kubernetes.io/backend-protocol: "HTTP"
nginx.ingress.kubernetes.io/configuration-snippet: |
proxy_set_header Host ${DEV_CANONICAL_DOMAIN};
spec:
ingressClassName: nginx
tls:
- hosts:
- ${DEV_DOMAIN}
secretName: game-2048-dev-nginx-tls
rules:
- host: ${DEV_DOMAIN}
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: istio-nodeport-service
port:
number: 80
---
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: game-2048-staging-proxy
namespace: default
annotations:
nginx.ingress.kubernetes.io/ssl-redirect: "true"
nginx.ingress.kubernetes.io/force-ssl-redirect: "true"
cert-manager.io/cluster-issuer: "letsencrypt-prod"
nginx.ingress.kubernetes.io/backend-protocol: "HTTP"
nginx.ingress.kubernetes.io/configuration-snippet: |
proxy_set_header Host ${STAGING_CANONICAL_DOMAIN};
spec:
ingressClassName: nginx
tls:
- hosts:
- ${STAGING_DOMAIN}
secretName: game-2048-staging-nginx-tls
rules:
- host: ${STAGING_DOMAIN}
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: istio-nodeport-service
port:
number: 80
---
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: game-2048-prod-proxy
namespace: default
annotations:
nginx.ingress.kubernetes.io/ssl-redirect: "true"
nginx.ingress.kubernetes.io/force-ssl-redirect: "true"
cert-manager.io/cluster-issuer: "letsencrypt-prod"
nginx.ingress.kubernetes.io/backend-protocol: "HTTP"
nginx.ingress.kubernetes.io/configuration-snippet: |
proxy_set_header Host ${PROD_CANONICAL_DOMAIN};
spec:
ingressClassName: nginx
tls:
- hosts:
- ${PROD_DOMAIN}
secretName: game-2048-prod-nginx-tls
rules:
- host: ${PROD_DOMAIN}
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: istio-nodeport-service
port:
number: 80
---
apiVersion: v1
kind: Service
metadata:
name: istio-nodeport-service
namespace: default
spec:
ports:
- name: http
port: 80
targetPort: 32135
protocol: TCP
clusterIP: None
---
apiVersion: v1
kind: Endpoints
metadata:
name: istio-nodeport-service
namespace: default
subsets:
- addresses:
- ip: 192.168.4.134 # Your k3s node IP
ports:
- name: http
port: 32135