Skip to content

[Multi_K8s-Plugin] Baseline Rollout#6606

Merged
Warashi merged 7 commits intopipe-cd:masterfrom
mohammedfirdouss:feat/k8s-multi-baseline-rollout
Mar 28, 2026
Merged

[Multi_K8s-Plugin] Baseline Rollout#6606
Warashi merged 7 commits intopipe-cd:masterfrom
mohammedfirdouss:feat/k8s-multi-baseline-rollout

Conversation

@mohammedfirdouss
Copy link
Copy Markdown
Contributor

@mohammedfirdouss mohammedfirdouss commented Mar 21, 2026

What this PR does:
Implements the K8S_BASELINE_ROLLOUT stage for the kubernetes_multicluster plugin. This stage deploys the currently running version of an application at a reduced replica count alongside a canary — enabling direct side-by-side comparison of the current version (baseline) vs the
new version (canary) under identical conditions.

Why we need it: In a canary analysis workflow, comparing canary metrics against the full primary deployment is noisy, they run at different scales under different load. A baseline gives a proper control group: the same version as primary, at the same scale as canary. This makes regressions in the canary unambiguous.

Which issue(s) this PR fixes: Fixes #6446

Does this PR introduce a user-facing change?:

  • How are users affected by this change: Users can now add a K8S_BASELINE_ROLLOUT stage to their pipeline configuration. It accepts replicas (absolute or percentage), suffix (default: "baseline"), and createService options — same shape as K8S_CANARY_ROLLOUT minus patches.

  • Is this breaking change: No

  • How to migrate (if breaking change): N/A

Baseline test

Screenshot Capture - 2026-03-22 - 08-16-30 Screenshot Capture - 2026-03-22 - 08-29-40 Screenshot Capture - 2026-03-22 - 08-30-40 Screenshot Capture - 2026-03-22 - 08-32-27 Screenshot Capture - 2026-03-22 - 08-32-46 Screenshot Capture - 2026-03-22 - 08-32-58 Screenshot Capture - 2026-03-22 - 08-33-03 Screenshot Capture - 2026-03-22 - 08-33-44

Signed-off-by: Mohammed Firdous <124298708+mohammedfirdouss@users.noreply.github.com>
…ration

Signed-off-by: Mohammed Firdous <124298708+mohammedfirdouss@users.noreply.github.com>
…nding tests

Signed-off-by: Mohammed Firdous <124298708+mohammedfirdouss@users.noreply.github.com>
…ation

Signed-off-by: Mohammed Firdous <124298708+mohammedfirdouss@users.noreply.github.com>
@mohammedfirdouss
Copy link
Copy Markdown
Contributor Author

Hi @Warashi. This is ready as well :)

@Warashi
Copy link
Copy Markdown
Member

Warashi commented Mar 28, 2026

@mohammedfirdouss
Thank you for pinging me. This PR has merge conflicts, so please resolve them?

@mohammedfirdouss
Copy link
Copy Markdown
Contributor Author

@mohammedfirdouss

Thank you for pinging me. This PR has merge conflicts, so please resolve them?

Oh alright, let me do that shortly @Warashi

Signed-off-by: Mohammed Firdous <124298708+mohammedfirdouss@users.noreply.github.com>
@mohammedfirdouss
Copy link
Copy Markdown
Contributor Author

@Warashi it has been resolved.

Copy link
Copy Markdown
Member

@Warashi Warashi left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM, thank you!

@Warashi Warashi enabled auto-merge (squash) March 28, 2026 02:40
@Warashi Warashi merged commit ca43c2f into pipe-cd:master Mar 28, 2026
45 checks passed
mohammedfirdouss added a commit to mohammedfirdouss/pipecd that referenced this pull request Mar 28, 2026
Merge upstream/master (baseline rollout PR pipe-cd#6606) into feat/k8s-multi-baseline-clean.
Combined baseline rollout and baseline clean functions in baseline.go and baseline_test.go.
Both stages (K8S_BASELINE_ROLLOUT and K8S_BASELINE_CLEAN) are now present in pipeline.go,
plugin.go, and config/application.go.

Signed-off-by: Mohammed Firdous <mohammedfirdouss@gmail.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
mohammedfirdouss added a commit to mohammedfirdouss/pipecd that referenced this pull request Mar 28, 2026
Merge upstream/master (baseline rollout PR pipe-cd#6606) into feat/k8s-multi-baseline-clean.
Combined baseline rollout and baseline clean functions in baseline.go and baseline_test.go.
Both stages (K8S_BASELINE_ROLLOUT and K8S_BASELINE_CLEAN) are now present in pipeline.go,
plugin.go, and config/application.go.

Signed-off-by: Mohammed Firdous <mohammedfirdouss@gmail.com>
mohammedfirdouss added a commit to mohammedfirdouss/pipecd that referenced this pull request Mar 28, 2026
Merge upstream/master (baseline rollout PR pipe-cd#6606) into feat/k8s-multi-baseline-clean.
Combined baseline rollout and baseline clean functions in baseline.go and baseline_test.go.
Both stages (K8S_BASELINE_ROLLOUT and K8S_BASELINE_CLEAN) are now present in pipeline.go,
plugin.go, and config/application.go.

Signed-off-by: Mohammed Firdous <124298708+mohammedfirdouss@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[LFX Mentorship T-1 2026] Kubernetes Multi-Cluster Plugin Enhancement #6446

2 participants