Skip to content

Lab15#4064

Open
1sarmatt wants to merge 24 commits intoinno-devops-labs:masterfrom
1sarmatt:lab15
Open

Lab15#4064
1sarmatt wants to merge 24 commits intoinno-devops-labs:masterfrom
1sarmatt:lab15

Conversation

@1sarmatt
Copy link
Copy Markdown

@1sarmatt 1sarmatt commented May 1, 2026

  • StatefulSet guarantees documented
  • statefulset.yaml created with volumeClaimTemplates
  • Headless service created
  • Per-pod PVCs verified
  • DNS resolution tested
  • Per-pod storage isolation proven
  • Persistence test passed
  • k8s/STATEFULSET.md complete

Cre-eD and others added 24 commits May 15, 2025 20:58
Signed-off-by: Dmitrii Creed <creeed22@gmail.com>
Signed-off-by: Dmitrii Creed <creeed22@gmail.com>
Signed-off-by: Dmitrii Creed <creeed22@gmail.com>
Signed-off-by: Dmitrii Creed <creeed22@gmail.com>
Signed-off-by: Dmitrii Creed <creeed22@gmail.com>
Signed-off-by: Dmitrii Creed <creeed22@gmail.com>
Signed-off-by: Dmitrii Creed <creeed22@gmail.com>
Signed-off-by: Dmitrii Creed <creeed22@gmail.com>
Signed-off-by: Dmitrii Creed <creeed22@gmail.com>
- Add prometheus-client to requirements.txt
- Instrument app.py with Counter, Histogram, Gauge metrics
- Add /metrics endpoint (Prometheus text format)
- Add Prometheus service to docker-compose.yml (port 9090, 15d retention)
- Create prometheus/prometheus.yml with scrape configs for app/loki/grafana
- Fix app-python healthcheck to use python urllib instead of wget
- Add LAB08.md documentation with PromQL examples and RED method dashboards
…lling updates

- Add k8s/deployment.yml: 3 replicas, resource limits, liveness/readiness probes, RollingUpdate strategy
- Add k8s/service.yml: NodePort service on port 30080
- Add k8s/README.md: architecture, evidence, operations, production considerations
- Demonstrated: scale to 5 replicas, rolling update, rollback
- Add k8s/devops-info-service/ Helm chart with templated deployment and service
- values.yaml with all configurable parameters
- values-dev.yaml (1 replica, relaxed resources) and values-prod.yaml (5 replicas)
- _helpers.tpl with fullname, labels, selectorLabels helpers
- Pre-install and post-install hooks with hook-delete-policy: hook-succeeded
- k8s/HELM.md documentation with installation evidence
…nd nginx-app

- Add k8s/common-lib/ library chart with shared name/labels helpers
- Update devops-info-service to use common-lib as dependency (v0.2.0)
- Add k8s/nginx-app/ second application chart using common-lib
- Both charts lint clean and deploy successfully
- Update HELM.md with bonus section
- Add templates/secrets.yaml to Helm chart (K8s Secret from values)
- Add templates/serviceaccount.yaml for Vault K8s auth
- Update deployment.yaml: envFrom secretRef + Vault agent annotations
- Add Vault agent template annotation (renders .env format to /vault/secrets/config)
- Add named template devops-info-service.envVars in _helpers.tpl (bonus)
- Add k8s/SECRETS.md documentation (no real secrets committed)
- Add visits counter to app.py with /visits endpoint (persists to /data/visits)
- Add docker-compose.yml app-data volume for local persistence
- Add k8s/devops-info-service/templates/configmap.yaml (file + env ConfigMaps)
- Add k8s/devops-info-service/templates/pvc.yaml (100Mi RWO)
- Update deployment.yaml: configmap volume mount, envFrom configMapRef, PVC mount
- Add checksum/config annotation for hot reload on helm upgrade
- Add k8s/CONFIGMAPS.md documentation
- Verified: visits persist across pod deletion (8 visits survived restart)
- Add k8s/argocd/application.yaml (default namespace, manual sync)
- Add k8s/argocd/application-dev.yaml (dev namespace, auto-sync + selfHeal)
- Add k8s/argocd/application-prod.yaml (prod namespace, manual sync)
- Add k8s/argocd/applicationset.yaml (bonus: List generator for dev+prod)
- Add templates/rollout.yaml (canary + blueGreen strategies, toggled by values)
- Add templates/service-preview.yaml (blue-green preview service)
- Add templates/analysis-template.yaml (bonus: web health check analysis)
- Update templates/deployment.yaml (disabled when rollout.enabled=true)
- Add values-canary.yaml and values-bluegreen.yaml
- Add rollout.enabled/strategy to values.yaml
- Add k8s/ROLLOUTS.md documentation
- Tested: canary 20%→pause→promote→abort→retry→full promote
- Tested: blue-green preview→promote (instant switch)
- Add templates/statefulset.yaml (volumeClaimTemplates, headless serviceName, partition update)
- Add templates/service-headless.yaml (clusterIP: None for DNS per pod)
- Add values-statefulset.yaml (3 replicas, 100Mi per pod)
- Update deployment.yaml (disabled when statefulset.enabled=true)
- Update pvc.yaml (disabled when statefulset.enabled=true)
- Add statefulset.enabled/partition to values.yaml
- Add k8s/STATEFULSET.md documentation
- Verified: 3 pods with ordered names (-0,-1,-2), 3 separate PVCs
- Verified: per-pod visit counts isolated (18, 21, 13)
- Verified: data survives pod deletion (18 visits preserved)
- Bonus: partitioned rolling update (partition=2)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants