coreos / coreos/ignition

Refactor AWS Init function logic for waiting for networking

Open
#1,158 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

jira kind/enhancement platform/aws
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:

  1. Adding a Retryer to the aws.Config so the AWS API handles retrying (by default it seems that there would only ever be a single retry)
  2. Fetching the region hint from an HTTP URL instead of the AWS API
  3. 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

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.