Skip to content
This repository has been archived by the owner on Jan 3, 2023. It is now read-only.

Store LoadBalancerStatus on a resource other than forwarding rule #145

Closed
nikhiljindal opened this issue Mar 9, 2018 · 4 comments
Closed
Milestone

Comments

@nikhiljindal
Copy link
Contributor

Problem: We cant support kubemci remove-clusters without downtime.
This is because we need to update LoadBalancerStatus which is stored as description on ForwardingRule. But Forwarding rule does not have an update API. We need to delete and recreate it resulting in user visible downtime.
Solution: Store LoadBalancerStatus on some other resource that supports update API :)

Longer version:
Today we store LoadBalancerStatus on forwarding rule. We store this status to be able to surface useful information when users run kubemci list and kubemci get-status.
While implementing kubemci remove-clusters, I realized that there is no UpdateForwardingRule API. We need to delete and recreate it to be able to update the description field (link to code)
This results in downtime for the user. The whole point of adding a remove-clusters command was to let users remove an existing MCI from some clusters without resulting in user facing downtime.

cc @csbell @G-Harmon @mdelio

@nikhiljindal
Copy link
Contributor Author

cc @bowei & @nicksardo

@nikhiljindal
Copy link
Contributor Author

I like URLMap to store the status. We have a single URLMap per ingress.

This is unlike other resources which can be multiple - multiple BackendServices for multiple services in ingress and http and https forwarding rules and target proxies).

It also has an update API :)

@nikhiljindal
Copy link
Contributor Author

Turns our ListUrlMaps is missing from LoadBalancers interface.
We need it for kubemci list to list all existing MCIs.

Filed kubernetes/ingress-gce#162 for the request.
Will need to add it to the interface and then revendor the updated interface.

@nikhiljindal
Copy link
Contributor Author

This is now fixed.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant