nginx-gateway-fabric icon indicating copy to clipboard operation
nginx-gateway-fabric copied to clipboard

Preserve external controller state during reconciliation

Open ciarams87 opened this issue 3 weeks ago • 3 comments
trafficstars

Proposed changes

Problem: NGINX Gateway Fabric's provisioner removes all annotations during service reconciliation that aren't explicitly managed by NGF. This causes conflicts with external controllers that need to add operational annotations.

Solution: Implemented a preservation pattern for both service annotations by merging Service annotations instead of overwriting

Testing: Unit testing, manual testing in progress

Please focus on (optional): If you any specific areas where you would like reviewers to focus their attention or provide specific feedback, add them here.

Closes #4012 Closes #4175

Checklist

Before creating a PR, run through this checklist and mark each as complete.

  • [ ] I have read the CONTRIBUTING doc
  • [ ] I have added tests that prove my fix is effective or that my feature works
  • [ ] I have checked that all unit tests pass after adding my changes
  • [ ] I have updated necessary documentation
  • [ ] I have rebased my branch onto main
  • [ ] I will ensure my PR is targeting the main branch and pulling from my branch from my own fork

Release notes

If this PR introduces a change that affects users and needs to be mentioned in the release notes, please add a brief note that summarizes the change.

Preserve external controller annotations 

ciarams87 avatar Oct 28 '25 13:10 ciarams87