-
Notifications
You must be signed in to change notification settings - Fork 68
Allow users to remove a cluster from an existing multicluster ingress #58
Comments
Possible solutions: Add a
|
This issue is particularly thorny. The CUJ is poor with either approach. Can you think of a way to leave breadcrumbs somewhere as part of the creation of the ingresses so that we can detect changes to the cluster list without requiring explicit user input? For example, can we somehow fit cluster info in the description field of a label on the global forwarding rule? |
Yes we do that for cluster names already. We store cluster names on the description field of forwarding rule (we use them for But we do not (and do not want to) store credentials for those clusters anywhere. Unless we store credentials, we will need user input. |
There are challenges in storing cluster info and using it later, esp. in kubemci's current form. Currently the tool uses local kubecontext to derive cluster information. These contexts are local to the machine where the create command is run. A different user might have different context and cluster names. There is no easy way to uniquely identify a cluster from the client side across machines. And this problem is not unique to multi-user scenarios. Even a single user can have different context/cluster names on different machines or they can rename context/cluster names on the same machine. We either want something akin to cluster identity or a centralized store such as cluster registry where clusters can be uniquely identified if we want to associate LB resources with cluster info. |
Forgive the newbie question- What happens today if you do "kubemci create --force" with a pruned cluster list? Why does that cause downtime? |
It does not cause downtime. But the ingress will not be deleted from the cluster which got pruned. kubemci will just ignore that cluster. So if ingress was there before, it will still remain there. All GCP resources will be updated though to not send traffic to that pruned cluster. |
cc @mdelio Can you chime in on what you think we should do to provide a good user experience. |
I like the remove-clusters approach; it's most intuitive. A few thoughts from offline conversation with @nikhiljindal:
|
#146 is adding the remove-clusters command |
Automatic merge from submit-queue (batch tested with PRs 62049, 62085). If you want to cherry-pick this change to another branch, please follow the instructions <a href="https://github.com/kubernetes/community/blob/master/contributors/devel/cherry-picks.md">here</a>. Adding a test for kubemci remove-clusters Ref GoogleCloudPlatform/k8s-multicluster-ingress#58 Adding an e2e test for `kubemci remove-clusters` command. The test creates an ingress and then removes it from all clusters. cc @G-Harmon ```release-note NONE ```
This is now fixed |
Scenario:
User creates a multicluster ingress in clusters A, B and C. Now user wants to remove cluster C so that the multicluster ingress should be restricted to clusters A and B only.
If user runs
kubemci create
command again with clusters.yaml containing clusters A and B only, then GCLB will be updated correctly to send traffic only to clusters A and B, but the ingress resource will still exist in cluster C.Current solution:
Delete the multicluster ingress all together (from all clusters) and recreate it in clusters A and B.
This is bad since this leads to downtime. Service will be unavailable while the multicluster ingress is being deleted and recreated.
We need a better solution.
cc @csbell @G-Harmon @madhusudancs @mdelio
The text was updated successfully, but these errors were encountered: