Skip to content

Commit 1919dc5

Browse files
hhjustaugustus
authored andcommitted
KEP 3000: Artifact Distribution Policy
Co-authored-by: Stephen Augustus <[email protected]>
1 parent d2ac6fe commit 1919dc5

File tree

2 files changed

+151
-0
lines changed

2 files changed

+151
-0
lines changed
Lines changed: 132 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,132 @@
1+
# KEP/MST-3000: Artifact Promotion and Distribution Policy
2+
3+
<!-- toc -->
4+
- [Summary](#summary)
5+
- [Motivation](#motivation)
6+
- [Goals](#goals)
7+
- [Non-Goals](#non-goals)
8+
- [Proposal](#proposal)
9+
- [User Stories](#user-stories)
10+
- [SIG Release - Image Promotion](#sig-release---image-promotion)
11+
- [Cloud Customer - Installing K8s via kubeadm](#cloud-customer---installing-k8s-via-kubeadm)
12+
- [Notes/Constraints/Caveats](#notesconstraintscaveats)
13+
- [Risks and Mitigations](#risks-and-mitigations)
14+
- [Design Details](#design-details)
15+
- [Release Promotion](#release-promotion)
16+
- [Policy](#policy)
17+
- [Process](#process)
18+
- [Artifact Distribution](#artifact-distribution)
19+
- [Policy](#policy-1)
20+
- [Process](#process-1)
21+
- [Alternatives / Background](#alternatives--background)
22+
- [How much is this going to save us?](#how-much-is-this-going-to-save-us)
23+
- [Infrastructure Needed](#infrastructure-needed)
24+
<!-- /toc -->
25+
26+
## Summary
27+
28+
The container images and release binaries produced by our community need a clear path to be hosted by multiple service/cloud providers.
29+
30+
The global community should be routed to the appropriate mirror for their country or cloud provider to ensure cost effective worldwide access.
31+
32+
This KEP should cover the policy and distribution mechanisms we will put in place to allow creating a globally distributed, multi-cloud and country solution.
33+
34+
## Motivation
35+
36+
Currently we push to a single provider, and distributing to the rest of community comes at great cost nearing $150k/month (mostly egress) in donations.
37+
38+
Additonally 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.
39+
40+
Ideally we can dramatically reduce cost and allow everyone in the world to download the artifacts released by our community.
41+
42+
### Goals
43+
44+
A policy and procedure for use by SIG Release to promote container images and release binaries to multiple registries and mirrors.
45+
46+
A solution to allow redirection to appropriate mirrors to lower cost and allow access from any cloud or country globally.
47+
48+
### Non-Goals
49+
50+
Anything related to creation of artifacts, bom, digital signatures.
51+
52+
## Proposal
53+
54+
There are two intertwined concepts that are part of this proposal.
55+
56+
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 syncronize artifacts from our existing production buckets to similar contructs at other providers.
57+
58+
Additionally we require a registry and artifact url-redirection solution to the local cloud provider or country.
59+
60+
### User Stories
61+
62+
#### SIG Release - Image Promotion
63+
64+
```feature
65+
As a SIG Release volunteer
66+
I want to promote our binaries/images to multiple clouds
67+
68+
Given a promotion / mainifest
69+
When my PR is merged
70+
Then the promotion process occurs
71+
```
72+
73+
#### Cloud Customer - Installing K8s via kubeadm
74+
75+
```feature
76+
As a CLOUD end-user
77+
I want to install kubernetes
78+
79+
Given some compute resources at CLOUD
80+
When I use kubeadm to deploy Kubernetes
81+
Then I will be redirected to a local CLOUD registry
82+
```
83+
84+
### Notes/Constraints/Caveats
85+
86+
The primary purpose of the KEP is getting consensus on the agreed policy and procedure to unblock our community and move forward together.
87+
88+
There has been a lot of activity around the technology and tooling for both goals, but we need shared agreement on policy and procedure first.
89+
90+
### Risks and Mitigations
91+
92+
This is the primary pipeline for delivering Kubernetes worldwide. Ensuring the appropriate SLAs and support as well as artifact integrite are crucial.
93+
94+
## Design Details
95+
96+
### Release Promotion
97+
98+
#### Policy
99+
100+
(more details needed, #sig-release-eng?)
101+
102+
#### Process
103+
104+
Currently the promotion process is primarily driven by the CIP/[promo-tool#kpromo](https://github.com/kubernetes-sigs/promo-tools#kpromo)?
105+
106+
### Artifact Distribution
107+
108+
#### Policy
109+
110+
#### Process
111+
112+
## Alternatives / Background
113+
- Apache has a widespread mirror network
114+
- @dims has experince here
115+
- http://ws.apache.org/mirrors.cgi
116+
- https://infra.apache.org/mirrors.html
117+
- [Umbrella issue: k8s.gcr.io => registry.k8s.io solution k/k8s.io#1834
118+
](https://github.com/kubernetes/k8s.io/issues/1834)
119+
- [ii/registry.k8s.io Implementation proposals](https://github.com/ii/registry.k8s.io#registryk8sio)
120+
- [ii.nz/blog :: Building a data pipline for displaying Kubernetes public artifact traffic
121+
](https://ii.nz/post/building-a-data-pipline-for-displaying-kubernetes-public-artifact-traffic/)
122+
### How much is this going to save us?
123+
Cost of K8s Artifact hosting - Data Studio Graphs
124+
125+
![](https://i.imgur.com/LAn4UIE.png)
126+
127+
128+
## Infrastructure Needed
129+
130+
It would be good to request some donations for some larger providers, including one in China, via cncf.io/credits
131+
132+
[![hackmd-github-sync-badge](https://hackmd.io/KjHufZssQR654ShkZFUzyA/badge)](https://hackmd.io/KjHufZssQR654ShkZFUzyA)
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
title: Artifact Promotion and Distribution Policy and Procedure
2+
kep-number: NNNN
3+
authors:
4+
- "@hh"
5+
owning-sig: sig-architecture
6+
participating-sigs:
7+
- sig-release
8+
status: provisional
9+
creation-date: 2021-11-26
10+
reviewers:
11+
- TBD
12+
approvers:
13+
- TBD
14+
stage: alpha
15+
latest-milestone: "v1.24"
16+
milestone:
17+
alpha: "NA"
18+
beta: "NA"
19+
stable: "v1.24"

0 commit comments

Comments
 (0)