-
Notifications
You must be signed in to change notification settings - Fork 142
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[RS-2260] Add GatewayAPI field to configure CRD management #3769
[RS-2260] Add GatewayAPI field to configure CRD management #3769
Conversation
The default behaviour - which is used when the new field is not set, or is set to "Reconcile" - is to keep the cluster's Gateway API CRDs aligned with those that the Tigera operator would install on a cluster that does not yet have any version of those CRDs. Alternatively, if this field is set to "PreferExisting", the Tigera operator will create the Gateway API CRDs if they do not already exist, but will not overwrite any existing Gateway API CRDs. This setting may be preferable if the customer is using other implementations of the Gateway API concurrently with the Gateway API support in Calico Enterprise. It is then the customer's responsibility to ensure that CRDs are installed that meet the needs of all the Gateway API implementations in their cluster.
a26970b
to
135e1be
Compare
On reflection, it has to be this way, because for a customer with existing CRDs who upgrades, they will have no opportunity to change the new field to PreferExisting, before it is too late.
api/v1/gatewayapi_types.go
Outdated
type GatewayCRDManagement string | ||
|
||
const ( | ||
GatewayCRDManagementReconcile GatewayCRDManagement = "Reconcile" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We could probably use this terminology / setting for any third part crd management, i.e. take away the Gateway
prefix and put this in a common folder.
In order to do this we also need a "create only" component handler to indicate whether or not any of the requested objects already existed.
/merge-when-ready squash-commits delete-branch |
OK, I will merge the pull request when it's ready, squash the commits when I merge it, and delete the branch after I've merged it. |
Removing "merge-when-ready" label due to new commits |
I'm sorry but I failed delete the branch after merging the pull request. |
The default behaviour - which is used when the new field is not set, or is set to "PreferExisting" - is that the Tigera operator will create the Gateway API CRDs if they do not already exist, but will not overwrite any existing Gateway API CRDs. This setting may be preferable if the customer is using other implementations of the Gateway API concurrently with the Gateway API support in Calico Enterprise. It is then the customer's responsibility to ensure that CRDs are installed that meet the needs of all the Gateway API implementations in their cluster.
Alternatively, if this field is set to "Reconcile", the Tigera operator will keep the cluster's Gateway API CRDs aligned with those that it would install on a cluster that does not yet have any version of those CRDs.