Should the SnippetsFilter status contain the controller name? #2538
Closed
kate-osborn
started this conversation in
General
Replies: 2 comments
-
I can definitely see this happening in clusters with more than one instance of NGF. Should be less of a problem once we support multiple gateways, as I do believe that will be simply the best way to set up those multi-tenanted clusters. We should make an issue for this, and depending on the effort involved, prioritize the change. |
Beta Was this translation helpful? Give feedback.
0 replies
-
Converted to issue |
Beta Was this translation helpful? Give feedback.
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
Many NGF controllers may share a SnippetsFilter resource.
For example, say you are upgrading NGF to a new version and running both simultaneously. The controllers will have different controller names, say:
gateway.nginx.org/nginx-gateway-controller-1.3
gateway.nginx.org/nginx-gateway-controller-1.4
Now, let's say you have the following Route:
which references the following SnippetsFilter:
The Route has the following status:
and the SnippetsFilter:
Now, you want to attach this Route to the Gateway that is owned by the new version of NGF, so you update the Route and add the new Gateway:
the SnippetsFilter doesn't change.
Now, the status of the Route is updated and shows the status for both controllers:
so you can tell the Route was processed by the
gateway.nginx.org/nginx-gateway-controller-1.4
controller and is accepted.However, the SnippetsFilter is just a list of conditions with no controller name. This list acts as a map, where the key is the condition type. Therefore, only one condition for the
Accepted
condition type can exist. So even though both NGF controllers will update the SnippetsFilter status, only one of their conditions will "win":We don't know which controller wrote this status, and it's possible that the
gateway.nginx.org/nginx-gateway-controller-1.4
controller did not accept the SnippetsFilter and its status update was overwritten by thegateway.nginx.org/nginx-gateway-controller-1.3
controller.Proposed Solution
Add controller name to the status:
this would change the status of the SnippetsFilter in the above example to:
Beta Was this translation helpful? Give feedback.
All reactions