Skip to content

[feat i2g] Add IngressPlanAnnotation feature gate for dry-run plan#4734

Merged
k8s-ci-robot merged 1 commit into
kubernetes-sigs:mainfrom
shuqz:ingress-plan-annotation
May 13, 2026
Merged

[feat i2g] Add IngressPlanAnnotation feature gate for dry-run plan#4734
k8s-ci-robot merged 1 commit into
kubernetes-sigs:mainfrom
shuqz:ingress-plan-annotation

Conversation

@shuqz
Copy link
Copy Markdown
Collaborator

@shuqz shuqz commented May 12, 2026

Issue

Prerequisite for the in-cluster migration console (#4728).

Description

Adds an IngressPlanAnnotation feature gate (default: disabled). When enabled, the ingress controller writes the serialized model stack JSON to alb.ingress.kubernetes.io/dry-run-plan on the primary ingress after each reconcile.

For grouped ingresses, the annotation is written to the first member (lowest group order) and cleared from non-primary members to maintain a single-holder invariant. This allows the migration console to locate and compare ingress vs gateway models without ambiguity.

Checklist

  • Added tests that cover your change (if possible)
  • Added/modified documentation as required (such as the README.md, or the docs directory)
  • Manually tested
  • Made sure the title of the PR is a good description that can go into the release notes

BONUS POINTS checklist: complete for good vibes and maybe prizes?! 🤯

  • Backfilled missing tests for code in same general area 🎉
  • Refactored something and made the world a better place 🌟

When enabled, the ingress controller writes the serialized model stack
JSON to alb.ingress.kubernetes.io/dry-run-plan on the primary ingress
after each reconcile. For grouped ingresses, the annotation is written
to the first member (lowest group order) and cleared from non-primary
members to maintain a single-holder invariant.

This supports the migration console's ability to compare ingress and
gateway models side by side without calling AWS.
@k8s-ci-robot k8s-ci-robot added cncf-cla: yes Indicates the PR's author has signed the CNCF CLA. size/L Denotes a PR that changes 100-499 lines, ignoring generated files. labels May 12, 2026
@k8s-ci-robot k8s-ci-robot added the approved Indicates a PR has been approved by an approver from all required OWNERS files. label May 12, 2026
@shuqz shuqz changed the title Add IngressPlanAnnotation feature gate for dry-run plan [feat i2g] Add IngressPlanAnnotation feature gate for dry-run plan May 12, 2026
shuqz added a commit to shuqz/shuqz-aws-load-balancer-controller that referenced this pull request May 12, 2026
…igs#4734)

The IngressPlanAnnotation feature gate, dryrun.go controller logic,
and related helm/docs changes are now in a separate PR. This branch
retains only the IngressSuffixDryRunPlan constant which the console
reads from existing ingress annotations.
@codecov-commenter
Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 30.76923% with 18 lines in your changes missing coverage. Please review.
✅ Project coverage is 56.15%. Comparing base (22cdb42) to head (db95332).
⚠️ Report is 13 commits behind head on main.

Files with missing lines Patch % Lines
controllers/ingress/dryrun.go 44.44% 9 Missing and 1 partial ⚠️
controllers/ingress/group_controller.go 0.00% 7 Missing ⚠️
pkg/config/feature_gates.go 0.00% 1 Missing ⚠️
Additional details and impacted files
@@            Coverage Diff             @@
##             main    #4734      +/-   ##
==========================================
+ Coverage   56.09%   56.15%   +0.05%     
==========================================
  Files         388      389       +1     
  Lines       30932    31010      +78     
==========================================
+ Hits        17352    17413      +61     
- Misses      12566    12582      +16     
- Partials     1014     1015       +1     

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@k8s-ci-robot
Copy link
Copy Markdown
Contributor

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: shraddhabang, shuqz

The full list of commands accepted by this bot can be found here.

The pull request process is described here

Details Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@wweiwei-li
Copy link
Copy Markdown
Collaborator

/approved
/lgtm

@k8s-ci-robot k8s-ci-robot added the lgtm "Looks good to me", indicates that a PR is ready to be merged. label May 13, 2026
@k8s-ci-robot k8s-ci-robot merged commit d693fc9 into kubernetes-sigs:main May 13, 2026
9 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

approved Indicates a PR has been approved by an approver from all required OWNERS files. cncf-cla: yes Indicates the PR's author has signed the CNCF CLA. lgtm "Looks good to me", indicates that a PR is ready to be merged. size/L Denotes a PR that changes 100-499 lines, ignoring generated files.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants