Refactor AWS Init function logic for waiting for networking
Nobody has claimed this yet.
- Dominant language
- Go
- Stars
- 974
- Forks
- 296
- Avg merge
- 6d 14h
- Merged PRs (30d)
- 9
Description
Feature Request
In #1155 we settled on a temporary solution of using a FetchToBuffer call inside of the platform Init function for AWS to handle waiting for networking to come up before attempting to fetch the region hint from the metadata service. See this comment for more information about why the decision was chosen.
Some alternative potential solutions:
- Adding a
Retryerto theaws.Configso the AWS API handles retrying (by default it seems that there would only ever be a single retry) - Fetching the region hint from an HTTP URL instead of the AWS API
- Putting the API call inside a retry loop (we need to test out the different failure states to make sure that we're only retrying in the case of network/platform errors)
We also need to note the fact that if we do indeed move away from using a FetchToBuffer call we'll need to handle checking the Offline state inside of the Init function.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by reading the AWS platform Init function and the temporary FetchToBuffer approach described in pull request #1155. Compare the proposed aws.Config retryer, metadata HTTP request, and retry-loop options, including how Init should handle Offline. Done means selecting and implementing a tested approach that retries only appropriate networking or platform failures.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- aws, go
- Domain
- cloud, networking
- Issue type
- Refactor
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 25/100