envoyproxy / gateway

Manages Envoy Proxy as a Standalone or Kubernetes-based Application Gateway
https://gateway.envoyproxy.io
Apache License 2.0
1.59k stars 348 forks source link

Reconcile immutable fields for `Service` objects created #1844

Open wondersd opened 1 year ago

wondersd commented 1 year ago

Description:

When changes are made to fields such as loadBalancerClass, they can only be realized by deleting and recreating the Service object.

Other operators that handle these kinds of things do so with force flag so that the user knowingly opts in to this destructive behavior.

apiVersion: config.gateway.envoyproxy.io/v1alpha1
kind: EnvoyProxy
metadata:
  ...
spec:
  provider:
    type: Kubernetes
    kubernetes:
      ...
      envoyService:
        force: true # force reconciliation by delete/create

Related Issues:

https://github.com/envoyproxy/gateway/pull/1840 https://github.com/envoyproxy/gateway/issues/1818

arkodg commented 1 year ago

I like this opt in force field, thoughts @envoyproxy/gateway-maintainers ?

arkodg commented 1 year ago

@AliceProxy and I discussed this in the community meeting today, and we are a +1 on this approach, would like to brainstorm some more on naming of the field

Alice-Lilith commented 1 year ago

One suggestion about a different name for this field that could help to improve clarity about what is being configured: recreateOnImmutableEdits. Open to any other suggestions that improve clarity without being overly obtuse.