Lab16#4065
Open
1sarmatt wants to merge 25 commits intoinno-devops-labs:masterfrom
Open
Conversation
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)
- Install kube-prometheus-stack in monitoring namespace (all 6 pods running) - Add k8s/init-containers/init-demo.yaml (download + wait-for-service init containers) - Add templates/servicemonitor.yaml (bonus: scrape /metrics via ServiceMonitor CRD) - Add templates/service-headless.yaml port name for ServiceMonitor - Add serviceMonitor.enabled and initContainers.enabled to values.yaml - Add k8s/MONITORING.md with Grafana screenshots (gr1-gr4.png) - Add k8s/docs/gr1-gr4.png Grafana dashboard screenshots
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
k8s/MONITORING.mdcomplete