Skip to content

Ahmed Baha Eddine Alimi - B23-SD-01 [Lab14 + Bonus Task]#15

Merged
3llimi merged 1 commit intomasterfrom
lab14
Mar 22, 2026
Merged

Ahmed Baha Eddine Alimi - B23-SD-01 [Lab14 + Bonus Task]#15
3llimi merged 1 commit intomasterfrom
lab14

Conversation

@3llimi
Copy link
Copy Markdown
Owner

@3llimi 3llimi commented Mar 17, 2026

Lab 14 — Progressive Delivery with Argo Rollouts

What was done:

  • Installed and validated Argo Rollouts in dedicated namespace (argo-rollouts), including controller and required CRDs (rollouts.argoproj.io, analysisruns.argoproj.io, analysistemplates.argoproj.io)
  • Installed and verified Rollouts CLI plugin (kubectl-argo-rollouts / kubectl argo rollouts) and used it for rollout inspection, promotion, abort, and retry operations
  • Refactored Helm workload delivery from standard Deployment flow to Argo Rollout-based progressive delivery in k8s/devops-python:
    • added templates/rollout.yaml
    • added templates/service-preview.yaml for blue-green preview traffic
    • kept strategy selection declarative through Helm values
  • Implemented Canary strategy with weighted traffic progression and pause gates for controlled promotion
  • Implemented Blue-Green strategy with active/preview services and explicit promotion behavior controls (autoPromotionEnabled)
  • Verified rollout behavior end-to-end with runtime commands:
    • rollout status tree (kubectl-argo-rollouts get rollout ...)
    • step progression and pause states
    • manual promote and abort flows
  • Resolved real implementation issues encountered during lab execution:
    • fixed NodePort collision by switching lab usage to non-conflicting service setup
    • fixed invalid rendered manifest condition (env: null) by conditional Helm templating
    • fixed rollout pod startup blocker caused by ServiceAccount reference mismatch
    • handled server-side apply field-manager conflicts by cleanup/reinstall strategy before runtime validation
  • Documented strategy behavior, trade-offs, and operational command reference in k8s/ROLLOUTS.md

Bonus:

  • Implemented automated canary analysis with AnalysisTemplate in templates/analysis-template.yaml
  • Wired analysis into canary steps so rollout progression is gated by metric evaluation
  • Validated runtime AnalysisRun execution (not only manifest rendering):
    • triggered new rollout revision
    • AnalysisRun was created and executed
    • metric evaluation failed according to policy (failed (2) > failureLimit (1))
    • rollout was automatically aborted and marked Degraded
    • stable ReplicaSet remained healthy and continued serving traffic
  • Captured terminal/screenshot evidence for:
    • AnalysisTemplate existence
    • AnalysisRun creation and failed status
    • rollout degraded/aborted state with explicit rollback-protection behavior

Outcome:

  • Lab 14 requirements completed for both main implementation (canary + blue-green progressive delivery) and bonus runtime validation (analysis-driven automatic abort/rollback safety).

@3llimi 3llimi merged commit 5671b94 into master Mar 22, 2026
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.

1 participant