Merge ~dojordan/cloud-init:azuretimeouts into cloud-init:master
Status: | Merged |
---|---|
Approved by: | Chad Smith |
Approved revision: | dd1023fcc4f2930896deec003939f81f3127ee58 |
Merge reported by: | Chad Smith |
Merged at revision: | 2d618e27687470a8a3649f44598819bdee8cdb03 |
Proposed branch: | ~dojordan/cloud-init:azuretimeouts |
Merge into: | cloud-init:master |
Diff against target: |
172 lines (+24/-42) 3 files modified
cloudinit/sources/DataSourceAzure.py (+9/-22) cloudinit/url_helper.py (+8/-5) tests/unittests/test_datasource/test_azure.py (+7/-15) |
Related bugs: |
Reviewer | Review Type | Date Requested | Status |
---|---|---|---|
Chad Smith | Approve | ||
Server Team CI bot | continuous-integration | Approve | |
Review via email: mp+340546@code.launchpad.net |
Commit message
Reduce AzurePreprovisi
Reducing timeout to 1 second as IMDS responds within a handful
of milliseconds. Also get rid of max_retries to prevent exiting
out of polling loop early due to IMDS outage / upgrade.
Reduce Azure PreProvisioning HTTP timeouts during polling to
avoid waiting an extra minute.
LP: #1752977
Description of the change
During Azure preprovisioning, the platform owned VM gets into a polling loop while we are waiting for the reprovsioning data file (the customer's ovf_env.xml). If the VM moves from one vnet to another, we will get a timeout exception on the request to IMDS and thus need to re-dhcp to get the new IP and network configuration. Currently, that timeout is 60seconds, and upon further testing IMDS responds within 5-20 milliseconds so we propose moving the timeout to 1 second in order to speed up the total deployment time for the customer.
In addition, due to IMDS server updates there is a chance it will be unreachable. If it is, then we could be re-dhcping multiple times, and it is possible to hit the current limit (5) especially with a max retry of 5. That would put the VM in an effectively useless state where it would not be possible to recover. We propose removing the max dhcp retry count for preprovisioning.
PASSED: Continuous integration, rev:04aa0f71749 07789163dea204c d8053f72bc1b1e /jenkins. ubuntu. com/server/ job/cloud- init-ci/ 810/
https:/
Executed test runs:
SUCCESS: Checkout
SUCCESS: Unit & Style Tests
SUCCESS: Ubuntu LTS: Build
SUCCESS: Ubuntu LTS: Integration
SUCCESS: MAAS Compatability Testing
IN_PROGRESS: Declarative: Post Actions
Click here to trigger a rebuild: /jenkins. ubuntu. com/server/ job/cloud- init-ci/ 810/rebuild
https:/