Google Compute Engine IP is ephemeral by default
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Canonical Juju |
Expired
|
Medium
|
Unassigned |
Bug Description
Using Juju 2.0-beta15-
I've come across a scenario where my juju commands hang and I have to --debug them. I then see juju attempting to "dial" the controller IP with no luck. I then check that the IPs align using the Google Cloud console and the local controllers.yaml file voila they don't match.
They don't match, because Google by default uses "ephemeral" IPs on their machines, which apparently gives them the privilege to change them without asking the developer.
I've already found a workaround. I manually go in and assign static ip to the machines (this currently the ONLY way to solve this problem). I'd add this to the docs until a better way comes through.
The better way is to use all that juju metadata you create on the machines to intelligently locate the controller via metadata tags.
Cheerio,
Andy
Changed in juju-core: | |
status: | New → Triaged |
importance: | Undecided → High |
milestone: | none → 2.1.0 |
affects: | juju-core → juju |
Changed in juju: | |
milestone: | 2.1.0 → none |
milestone: | none → 2.1.0 |
tags: | added: gce-provider |
Changed in juju: | |
milestone: | 2.1.0 → 2.2.0 |
Changed in juju: | |
assignee: | nobody → Andrew Wilkins (axwalk) |
status: | Triaged → In Progress |
Changed in juju: | |
status: | In Progress → Triaged |
assignee: | Andrew Wilkins (axwalk) → nobody |
Changed in juju: | |
milestone: | 2.2-beta1 → 2.2-beta2 |
Changed in juju: | |
milestone: | 2.2-beta2 → 2.2-beta3 |
Changed in juju: | |
milestone: | 2.2-beta3 → 2.2-beta4 |
Changed in juju: | |
milestone: | 2.2-beta4 → 2.2-rc1 |
Using tags doesn't help for an API client, as the client doesn't necessarily have the ability to query the GCE APIs.
For GCE, we should look at assigning static external IPs for controller machines. According to the pricing, static IPs are free as long as they're in use (presumably to stop hoarding). Since there's no extra cost, there should be no downside.
Another option would be to use Google Cloud DNS, adding a domain name that points to the controller machines. This could be added as an option, since there's a cost associated.