cloud init script should have better preference for IP addresses for agent binaries
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Canonical Juju |
Expired
|
Medium
|
Unassigned | ||
2.1 |
Fix Released
|
High
|
Andrew Wilkins |
Bug Description
Currently if the Controller has many IP addresses, we configure the cloud init script to download the agent binaries from the controller via all known addresses. This "works" but it can take a long time for 'curl' to timeout trying to download the tools from addresses that it doesn't have a route to.
However, Juju should be able to infer if there is a server IP address that is more likely to work for this instance than all the other addresses. (If the machine/container is in a space, try to use the Controller address in that space, else fall back to one that is known-to-
Eventually we need the routing information to give the best results, but if we just start with "in same space" we're likely to get some quick wins.
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 |
Changed in juju: | |
importance: | High → Medium |
milestone: | 2.2-rc1 → none |
One 'quick fix' is to pass '--connect-timeout X' to specify a number of seconds that curl should wait to connect to download agent binaries. Certainly if we are connecting to the controller in the same network, we would expect it to be quite fast. We may not want to set it for the initial tool download from streams. canonical. com but we should be able to set something much lower than the default (which I think is ~2minutes) for connecting to the controller machine.