nginx-gateway-fabric
nginx-gateway-fabric copied to clipboard
Preserve external controller state during reconciliation
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