Skip to content
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

Deprecate GSLB CRD #1018

Closed
ytsarev opened this issue Nov 3, 2022 · 2 comments
Closed

Deprecate GSLB CRD #1018

ytsarev opened this issue Nov 3, 2022 · 2 comments
Labels
enhancement New feature or request

Comments

@ytsarev
Copy link
Member

ytsarev commented Nov 3, 2022

The proposal is to deprecate core GSLB CRD and rely purely on standard Ingress annotations.

Motivation:

  • Currently we already have Ingress -> Gslb creation logic here https://www.k8gb.io/docs/ingress_annotations.html
  • It already led to the issues around associated reconciliation, annotation propagation and keeping Ingress and Gslb in sync.
  • It is not clear what should be source of truth - Gslb or Ingress
  • Gslb is just embedding/wrapping Ingress type within itself so relying purely on Ingress+Annotations should not lead to dramatic changes within the k8gb controller logic
@ytsarev ytsarev added the enhancement New feature or request label Nov 3, 2022
@ytsarev
Copy link
Member Author

ytsarev commented Nov 3, 2022

After some discussions with the maintainers team:

  • We can actually keep Gslb CRD but make it read-only status exposing resource to keep contextual GSLB information that does not fit into the standard Ingress event stream
  • We need to come up with reliable migration plan to not to break stuff for existing k8gb users

kuritka added a commit that referenced this issue Nov 7, 2022
closes #932
related to #1018

 - Fixed implementation
In some cases, when the ingress was changed, reconciliation was triggered, which changed the annotations back to the values calculated with GSLB. I modified the merge function to filter which values should be synced and which should not. In fact, it is only `k8gb.io/strategy` and `k8gb.io/primary-geotag` that are changed on initialization.
 - utit tests update
 - terratest
terratests are focused on repeated patching of annotations in ingress and examining ingress when patching annotations in GSLB

Signed-off-by: kuritka <kuritka@gmail.com>
kuritka added a commit that referenced this issue Nov 7, 2022
closes #932
related to #1018

 - Fixed implementation
In some cases, when the ingress was changed, reconciliation was triggered, which changed the annotations back to the values calculated with GSLB. I modified the merge function to filter which values should be synced and which should not. In fact, it is only `k8gb.io/strategy` and `k8gb.io/primary-geotag` that are changed on initialization.
 - utit tests update
 - terratest
terratests are focused on repeated patching of annotations in ingress and examining ingress when patching annotations in GSLB

Signed-off-by: kuritka <kuritka@gmail.com>
kuritka added a commit that referenced this issue Nov 7, 2022
closes #932
related to #1018

 - Implementation: In some cases, when the ingress was changed, reconciliation was triggered, which changed the annotations back to the values calculated with GSLB. I modified the merge function to filter which values should be synced and which should not. In fact, it is only `k8gb.io/strategy` and `k8gb.io/primary-geotag` that are changed on initialization.
 - Utit tests update
 - Terratests are focused on repeated patching of annotations in ingress and examining ingress when patching annotations in GSLB

Signed-off-by: kuritka <kuritka@gmail.com>
@ytsarev
Copy link
Member Author

ytsarev commented Jul 20, 2024

We agreed to keep Gslb CRD and enable flexible referencing of various networking resources instead of full switch to Ingress.
First case of resource reference implemented in #1557

@ytsarev ytsarev closed this as completed Jul 20, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
Status: Done
Development

No branches or pull requests

1 participant