Skip to content

Commit f960d6f

Browse files
committed
Update readme
1 parent 6a1b9bf commit f960d6f

File tree

1 file changed

+16
-15
lines changed
  • keps/sig-release/3000-artifact-distribution

1 file changed

+16
-15
lines changed

keps/sig-release/3000-artifact-distribution/README.md

Lines changed: 16 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# KEP/MST-3000: Image Promotion and Distribution Policy
1+
# KEP 3000: Image Promotion and Distribution Policy
22

33
<!-- toc -->
44

@@ -47,17 +47,17 @@ For a few years now, we have been using k8s.gcr.io in all our repositories as de
4747

4848
The cost of distributing Kubernetes comes at great cost nearing $150kUSD/month (mostly egress) in donations.
4949

50-
Additionally some of our community members are unable to access the official release artifacts due to country level firewalls that do not them connect to Google services.
50+
Additionally some of our community members are unable to access the official release container images due to country level firewalls that do not them connect to Google services.
5151

52-
Ideally we can dramatically reduce cost and allow everyone in the world to download the artifacts released by our community.
52+
Ideally we can dramatically reduce cost and allow everyone in the world to download the container iamges released by our community.
5353

5454
We are now used to using the [image promoter process](https://github.com/kubernetes/enhancements/tree/master/keps/sig-release/1734-k8s-image-promoter) to promote images to the official kubernetes container registry using the infrastructure (GCR staging repos etc) provided by [sig-k8s-infra](https://github.com/kubernetes/k8s.io/tree/main/k8s.gcr.io)
5555

5656
## Why a new domain?
5757

5858
So far we (all kubernetes project) are using GCP as our default infrastructure provider for all things like GCS, GCR, GKE based prow clusters etc. Google has graciously sponsored a lot of our infrastructure costs as well. However for about a year or so we are finding that our costs are sky-rocketing because the community usage of this infrastructure has been from other cloud providers like AWS, Azure etc. So in conjunction with CNCF staff we are trying to put together a plan to host copies of images and binaries nearer to where they are used rather than incur cross-cloud costs.
5959

60-
One part of this plan is to setup a proxy OCI service, that can identify where the traffic is coming from and redirect to the nearest image layer/repository. This is why we are setting up a new service using what we call an [oci-proxy](https://github.com/kubernetes-sigs/oci-proxy) for everyone to use. This proxy will identify traffic coming from, for example, a certain AWS region, then will setup a HTTP redirect to a source in that AWS region. If we get traffic from GKE/GCP or we don't know where the traffic is coming from, it will still redirect to the current infrastructure (k8s.gcr.io).
60+
One part of this plan is to setup a redirecting web service, that can identify where the traffic is coming from and redirect to the nearest image layer/repository. This is why we are setting up a new service using what we call an [oci-proxy](https://github.com/kubernetes-sigs/oci-proxy) for everyone to use. This redirector will identify traffic coming from, for example, a certain AWS region, then will setup a HTTP redirect to a source in that AWS region. If we get traffic from GKE/GCP or we don't know where the traffic is coming from, it will still redirect to the current infrastructure (k8s.gcr.io).
6161

6262
## How can we help?
6363

@@ -71,7 +71,7 @@ A solution to allow redirection to appropriate mirrors to lower cost and allow a
7171

7272
### Non-Goals
7373

74-
Anything related to creation of artifacts, bom, digital signatures, staging buckets.
74+
Anything related to creation of artifacts, bom, staging buckets.
7575

7676
### What is not in scope
7777

@@ -87,14 +87,14 @@ Anything related to creation of artifacts, bom, digital signatures, staging buck
8787

8888
There are two intertwined concepts that are part of this proposal.
8989

90-
First, the policy and procedures to promote/upload our artifacts to multiple providers. Our existing processes upload only to GCS buckets. Ideally we extend the existing software/promotion process to push directly to multiple providers. Alternatively we use a second process to synchronize artifacts from our existing production buckets to similar constructs at other providers.
90+
First, the policy and procedures to promote/upload our container images to multiple providers. Our existing processes upload only to GCS buckets. Ideally we extend the existing software/promotion process to push directly to multiple providers. Alternatively we use a second process to synchronize container images from our existing production buckets to similar constructs at other providers.
9191

9292
Additionally we require a registry and artifact url-redirection solution to the local cloud provider or country.
9393

9494
## What exactly are you doing?
9595

9696
- We are setting up an AWS account with an IAM role and s3 buckets in AWS regions where we see a large percentage of source image pull traffic
97-
- We will iterate on a sandbox url (registry.sandbox.k8s.io) for our experiments and ONLY promote things to (registry.k8s.io) when we have complete confidence
97+
- We will iterate on a sandbox url (registry-sandbox.k8s.io) for our experiments and ONLY promote things to (registry.k8s.io) when we have complete confidence
9898
- both registry and registry-sandbox are serving traffic using oci-proxy on google cloud run
9999
- oci-proxy will be updated to identify incoming traffic from AWS regions based on IP ranges so we can route traffic to s3 buckets in that region. If a specific AWS region do not currently host s3 buckets, we will redirect to the nearest region which does have s3 buckets (tradeoff between storage and network costs)
100100
- We will bulk sync existing image layers to these s3 layers as a starting point (from GCS/GCR)
@@ -109,8 +109,9 @@ Additionally we require a registry and artifact url-redirection solution to the
109109
#### SIG Release - Image Promotion
110110

111111
```feature
112-
As a SIG Release volunteer
113-
I want to promote our binaries/images to multiple clouds
112+
Scenario: images are promoted
113+
As a SIG Release volunteer
114+
I want to promote our binaries/images to multiple clouds
114115
115116
Given a promotion / manifest
116117
When my PR is merged
@@ -120,12 +121,12 @@ Then the promotion process occurs
120121
#### Cloud Customer - pulling an official container image
121122

122123
```feature
123-
As a CLOUD end-user
124-
I want to install Kubernetes
124+
Scenario: use Kubernetes container images
125+
I want to be able to pull and use Kubernetes container images
125126
126-
Given some compute resources at CLOUD
127-
When I pull an official Kubernetes container image
128-
Then I am redirected to a cloud provider backed bucket (set) or CDN otherwise fall back to k8s.gcr.io
127+
Given some compute resources at cloud
128+
When I pull an official Kubernetes container image from registry.k8s.io
129+
Then I am redirected to a close-by cloud provider backed bucket (set) / CDN otherwise fall back to k8s.gcr.io
129130
```
130131

131132
### Notes/Constraints/Caveats
@@ -156,7 +157,7 @@ Currently the promotion process is primarily driven by the CIP/[promo-tool#kprom
156157

157158
#### Process
158159

159-
Artifacts will be written to S3 style storage or CDNs provided by cloud providers through a tool in the promo-tools suite.
160+
Container images will be written to S3 style storage or CDNs provided by cloud providers through a tool in the promo-tools suite.
160161

161162
## Alternatives / Background
162163

0 commit comments

Comments
 (0)