coreos / coreos/ignition

Support Multi-Region Access Points for S3 sources

Open
#1,276 5 comments 6 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Go
Stars
974
Forks
296
Avg merge
6d 14h
Merged PRs (30d)
9

Description

Feature Request

Environment

What hardware/cloud provider/hypervisor is being used to run Ignition? AWS

Desired Feature

We can only provide one source for the config, which can lead to single points of failure especially when relying on S3 buckets tied to one region. Luckily, AWS already implements S3 bucket region fallback with Multi-Region Access Points. Ignition should support multi-region access points as an S3 source.

Multi-region access points use the form arn:aws:s3::<account-id>:accesspoint/<alias>.mrap according to https://docs.aws.amazon.com/AmazonS3/latest/userguide/MultiRegionAccessPointRequests.html

The current S3 source would need to be modified to allow for S3 access point URLs in ARN format (opaque URLs starting with s3:arn), and https://github.com/coreos/ignition/pull/1264 would accomplish this.

Next, AWS sdk support for multi-region access points is only in aws-sdk-go-v2, so aws-sdk-go (v1) would have to be converted to aws-sdk-go-v2.

Lastly, modifying the code to support downloading sources from multi-region access points.

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 with the current S3 source implementation and review PR #1264 for support for opaque S3 access point ARNs. Then examine the aws-sdk-go v1 usage and the aws-sdk-go-v2 migration needed for Multi-Region Access Points. Done means an S3 source can download configuration through an ARN such as arn:aws:s3:::accesspoint/.mrap.

Written by the indexing model from the issue text.

Assessment

Tech stack
aws, go
Domain
cloud, infrastructure
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.