@@ -5,21 +5,90 @@ Kubernetes are observable, scalable and supportable, can be safely operated in
5
5
production environments, and can be disabled or rolled back in the event they
6
6
cause increased failures in production.
7
7
8
- More details may be found in the [ PRR KEP] .
8
+ Production readiness reviews are done by a separate team, apart from the SIG
9
+ leads (although SIG lead approval is needed as well, of course). It is useful to
10
+ have the viewpoint of a team that is not as familiar with the intimate details
11
+ of the SIG, but * is* familiar with Kubernetes and with operating Kubernetes in
12
+ production. Experience through our dry runs in 1.19 and 1.20 have shown that
13
+ this slightly "outsider" view helps identify otherwise missed items.
9
14
10
- ## Status
15
+ More background may be found in the [ PRR KEP ] .
11
16
12
- As of 1.19, production readiness reviews are required, and are part of the KEP
13
- process. The PRR questionnaire previously found here has been incorporated into
14
- the [ KEP template] . The template details the specific questions that must be
15
- answered, depending on the stage of the feature.
17
+ ## Status
16
18
17
19
As of 1.21, PRRs are now blocking. PRR _ approval_ is required for the enhancement
18
- to be part of the release.
20
+ to be part of the release. This means that any KEPs targeting the release for any
21
+ stage, and in - or moving to - ` implementable ` state, will require production
22
+ readiness approval by the * Enhancements Freeze Date* .
23
+
24
+ Note that some of the questions in the [ KEP template] should be answered in both
25
+ the KEP's README.md and the ` kep.yaml ` , in order to support automated checks on
26
+ the PRR. The template points out these as needed.
27
+
28
+ ## Submitting a KEP for production readiness approval
29
+
30
+ The KEP template production readiness questionnaire should be filled out by the
31
+ KEP authors, and reviewed by the SIG leads. Once the leads are satisfied with
32
+ both the overall KEP (i.e., it is ready to move to ` implementable ` state) and
33
+ the PRR answers, the authors may request PRR approval:
34
+
35
+ * Assign a PRR approver from the ` prod-readiness-approvers ` list in the
36
+ [ OWNERS_ALIASES] file. This may be done earlier as well, to get early feedback
37
+ or just to let the approver know. Reach out on the ` #prod-readiness ` Slack
38
+ channel or just pick someone from the list.
39
+ * Update the ` kep.yaml ` , setting the ` stage ` , ` latest-milestone ` , and the
40
+ ` milestone ` struct (which captures per-stage release versions).
41
+ * Create a ` prod-readiness/<sig>/<KEP number>.yaml ` file, with the PRR
42
+ approver's GitHub handle for the specific stage
43
+ * See this [ example PRR approval request PR] .
44
+
45
+ The PRR approvers use the ` kepctl ` tool to identify
46
+ all outstanding requests for PRR approval, and are responsible for providing
47
+ timely feedback so that KEPs are not delayed. If your need is urgent it doesn't
48
+ hurt to ping the person on Slack, as well, but it is not necessary.
49
+
50
+ ## Common feedback from reviewers
51
+
52
+ Some common issues we see:
53
+ * Missing metrics. Often metrics are overlooked, or sometimes they are defined
54
+ but not wired up (implemented). Please see this [ example metrics PR] to better
55
+ understand how to add a metric.
56
+ * Be sure to differentiate between when to use a * metric* vs an * event* . Metrics
57
+ are for the cluster operators and should be primarily about system status and issues,
58
+ whereas events can be used to surface user errors. That is, in general the audience
59
+ for metrics is cluster operator whereas the audience for events is the user (creator
60
+ of that resource). Users won't usually see metrics, and cluster operators
61
+ don't generally need to know about user mistakes.
62
+
63
+ ## Becoming a prod readiness reviewer or approver
64
+
65
+ The prod readiness team is open and eager to add new members. The ideal
66
+ production readiness approver is someone with deep knowledge of Kubernetes overall
67
+ and the ability to think from the point of view of a cluster operator. An
68
+ excellent background would, for example, be someone that is an SRE for a fleet
69
+ of Kubernetes clusters.
70
+
71
+ To become a reviewer:
72
+ * Inform the PRR team on Slack (` #prod-readiness ` ) or by attending the
73
+ bi-weekly meeting.
74
+ * Read/study previous PRR comments and production readiness responses in existing KEPs.
75
+ * Choose some KEPs requiring PRR and perform a review. Put "shadow prod readiness review"
76
+ in your review comments so that the assigned PRR approver knows your intent.
77
+ * After two release cycles, if you have shown good judgement and quality reviews,
78
+ you can propose yourself as approver by submitting a PRR to add your GitHub
79
+ handle to the ` prod-readiness-approvers ` alias in [ OWNERS_ALIASES] .
80
+
81
+ ## Finding KEPs needing prod readiness review
82
+
83
+ The prod readiness team uses the [ kepctl query] command line tool to identify KEP PRs
84
+ that need review. For example:
19
85
20
- Note that some of the questions should be answered in both the KEP's README.md
21
- and the ` kep.yaml ` , in order to support automated checks on the PRR. The
22
- template points out these as needed.
86
+ `./cmd/kepctl/kepctl query --sig '.* ' --prr '@johnbelamaric ' --include-prs
87
+ --gh-token-path ~ /gh-token --status implementable,provisional`
23
88
24
89
[ PRR KEP ] : https://git.k8s.io/enhancements/keps/sig-architecture/1194-prod-readiness
25
90
[ KEP template ] : https://git.k8s.io/enhancements/keps/NNNN-kep-template
91
+ [ OWNERS_ALIASES ] : https://git.k8s.io/enhancements/OWNERS_ALIASES
92
+ [ example PRR approval request PR ] : https://github.com/kubernetes/enhancements/pull/2274/files
93
+ [ example metrics PR ] : https://github.com/kubernetes/kubernetes/pull/97814
94
+ [ kepctl query ] : https://git.k8s.io/enhancements/cmd/kepctl
0 commit comments