-
Notifications
You must be signed in to change notification settings - Fork 1.1k
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
Handle private gateways more reliably #1474
Conversation
ab38e4b
to
f4f9b3a
Compare
I will add this to my CI queue. Do we want to maintain commit history for the two commits in this case? Also, I am looking for code reviews on this one. Thanks... |
@swill I don't think many people read spurious comments on the github PRs. only fanatics do :p |
@@ -274,3 +277,46 @@ def __moveFile(self, origPath, path): | |||
os.makedirs(path) | |||
timestamp = str(int(round(time.time()))) | |||
os.rename(origPath, path + "/" + self.fileName + "." + timestamp) | |||
|
|||
|
|||
class PrivateGatewayHack: |
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.
maybe not the greatest class name ever
LGTM in spite of comments. |
We're pulling this in for testing. |
cool thanks. :) |
CI RESULTS
Associated Uploads
Uploads will be available until Comment created by |
I need one more code review and this one should be ready to merge. @kiwiflyer did you have a chance to review this one? |
LGTM. Tested in a hardware lab. tag:mergeready |
Thank you sir. I will get this merged... |
Handle private gateways more reliablyWhen initialising a VPC router we need to know which IP/device corresponds to a private gateway. This is to solve a problem when stop/starting a VPC router (which gets the private gateway config as a guest network and as a result breaks the functionality). You read it right, the private gateway is sent as type=guest after reboot and type=public initially. Before this change, you could add a private gw to a running router but you couldn't restart it (it would mix up the tiers). Now the private gateway is detected properly and it works just fine. Booting without private gateway: ``` root@r-167-VM:~# cat /etc/cloudstack/cmdline.json { "config": { "baremetalnotificationapikey": "V2l1u3wKJVan01h8kq63-5Y5Ia3VLEW1v_Z6i-31QIRJXlt5vkqaqf6DVcdK0jP3u79SW6X9pqJSLSwQP2c2Rw", "baremetalnotificationsecuritykey": "OXI16srCrxFBi-xOtEwcYqwLlMfSFTlTg66YHtXBBqR7HNN1us3HP5zWOKxfVmz4a3C1kUNLPrUH13gNmZlu4w", "disable_rp_filter": "true", "dns1": "8.8.8.8", "domain": "cs2cloud", "eth0ip": "169.254.0.42", "eth0mask": "255.255.0.0", "host": "192.168.22.61", "name": "r-167-VM", "port": "8080", "privategateway": "None", "redundant_router": "false", "template": "domP", "type": "vpcrouter", "vpccidr": "10.0.0.0/24" }, "id": "cmdline" ``` Booting with private gateway: ``` root@r-167-VM:~# cat /etc/cloudstack/cmdline.json { "config": { "baremetalnotificationapikey": "V2l1u3wKJVan01h8kq63-5Y5Ia3VLEW1v_Z6i-31QIRJXlt5vkqaqf6DVcdK0jP3u79SW6X9pqJSLSwQP2c2Rw", "baremetalnotificationsecuritykey": "OXI16srCrxFBi-xOtEwcYqwLlMfSFTlTg66YHtXBBqR7HNN1us3HP5zWOKxfVmz4a3C1kUNLPrUH13gNmZlu4w", "disable_rp_filter": "true", "dns1": "8.8.8.8", "domain": "cs2cloud", "eth0ip": "169.254.2.227", "eth0mask": "255.255.0.0", "host": "192.168.22.61", "name": "r-167-VM", "port": "8080", "privategateway": "10.201.10.1", "redundant_router": "false", "template": "domP", "type": "vpcrouter", "vpccidr": "10.0.0.0/24" }, "id": "cmdline" ``` And: ``` cat cmdline vpccidr=10.0.0.0/24 domain=cs2cloud dns1=8.8.8.8 privategateway=10.201.10.1 template=domP name=r-167-VM eth0ip=169.254.2.227 eth0mask=255.255.0.0 type=vpcrouter disable_rp_filter=true baremetalnotificationsecuritykey=OXI16srCrxFBi-xOtEwcYqwLlMfSFTlTg66YHtXBBqR7HNN1us3HP5zWOKxfVmz4a3C1kUNLPrUH13gNmZlu4w baremetalnotificationapikey=V2l1u3wKJVan01h8kq63-5Y5Ia3VLEW1v_Z6i-31QIRJXlt5vkqaqf6DVcdK0jP3u79SW6X9pqJSLSwQP2c2Rw host=192.168.22.61 port=8080 ``` Logs: ``` 2016-02-24 20:08:45,723 DEBUG [c.c.n.r.VpcVirtualNetworkApplianceManagerImpl] (Work-Job-Executor-4:ctx-458d4c52 job-1402/job-1403 ctx-d5355fca) (logid:5772906c) Set privategateway field in cmd_line.json to 10.201.10.1 ``` * pr/1474: Handle private gateways more reliably Add private gateway IP to router initialization config Signed-off-by: Will Stevens <[email protected]>
When initialising a VPC router we need to know which IP/device corresponds to a private gateway. This is to solve a problem when stop/starting a VPC router (which gets the private gateway config as a guest network and as a result breaks the functionality). You read it right, the private gateway is sent as type=guest after reboot and type=public initially.
Before this change, you could add a private gw to a running router but you couldn't restart it (it would mix up the tiers). Now the private gateway is detected properly and it works just fine.
Booting without private gateway:
Booting with private gateway:
And:
Logs: