Skip to content

Commit 4e49369

Browse files
committed
update kep.yaml and add metrics to PRR
Signed-off-by: Anish Ramasekar <[email protected]>
1 parent 8dcee74 commit 4e49369

File tree

2 files changed

+29
-61
lines changed

2 files changed

+29
-61
lines changed

keps/sig-auth/2907-secrets-store-csi-driver/README.md

Lines changed: 22 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -9,9 +9,7 @@
99
- [Non-Goals](#non-goals)
1010
- [Proposal](#proposal)
1111
- [User Stories (Optional)](#user-stories-optional)
12-
- [Application reads secret from disk on startup](#application-reads-secret-from-disk-on-startup)
13-
- [Application watches secret for rotation](#application-watches-secret-for-rotation)
14-
- [Application Pod YAML remains unchanged and works across secret providers](#application-pod-yaml-remains-unchanged-and-works-across-secret-providers)
12+
- [Story 1](#story-1)
1513
- [Notes/Constraints/Caveats (Optional)](#notesconstraintscaveats-optional)
1614
- [Risks and Mitigations](#risks-and-mitigations)
1715
- [Directory traversal vulnerabilities](#directory-traversal-vulnerabilities)
@@ -58,7 +56,7 @@ Items marked with (R) are required *prior to targeting to a milestone / release*
5856
- [ ] (R) Ensure GA e2e tests for meet requirements for [Conformance Tests](https://github.com/kubernetes/community/blob/master/contributors/devel/sig-architecture/conformance-tests.md)
5957
- [ ] (R) Minimum Two Week Window for GA e2e tests to prove flake free
6058
- [ ] (R) Graduation criteria is in place
61-
- [ ] (R) [all GA Endpoints](https://github.com/kubernetes/community/pull/1806) must be hit by [Conformance Tests](https://github.com/kubernetes/community/blob/master/contributors/devel/sig-architecture/conformance-tests.md)
59+
- [ ] (R) [all GA Endpoints](https://github.com/kubernetes/community/pull/1806) must be hit by [Conformance Tests](https://github.com/kubernetes/community/blob/master/contributors/devel/sig-architecture/conformance-tests.md)
6260
- [ ] (R) Production readiness review completed
6361
- [ ] (R) Production readiness review approved
6462
- [ ] "Implementation History" section is up-to-date for milestone
@@ -91,7 +89,7 @@ demonstrate the interest in a KEP within the wider Kubernetes community.
9189

9290
### Goals
9391

94-
- Signal the stability of the driver interface and implementation for the core task of making secrets available to pod filesystems.
92+
- Signal the stability of the driver interface and implementation for the core task of making secrets available to pod filesystem.
9593

9694
### Non-Goals
9795

@@ -100,25 +98,25 @@ demonstrate the interest in a KEP within the wider Kubernetes community.
10098

10199
## Proposal
102100

103-
This project introduces a new Container Storage Interface (CSI) driver for fetching secrets and writing to a `tmpfs` mount in the Pod filesystem. The driver is deployed as a `DaemonSet`. A new Custom Resource Definition (CRD) called a `SecretProviderClass` is introduced with informs the driver of which external secret storage API to contact and how to map the secrets from those APIs to file paths. The driver communicates with the extneral secret provider processes through a gRPC interface over a Unix Domain Socket.
101+
This project introduces a new Container Storage Interface (CSI) driver for fetching secrets and writing to a `tmpfs` mount in the Pod filesystem. The driver is deployed as a `DaemonSet`. A new Custom Resource Definition (CRD) called a `SecretProviderClass` is introduced that informs the driver of which external secret storage API to contact and how to map the secrets from those APIs to file paths. The driver communicates with the external secret provider processes through a gRPC interface over a Unix Domain Socket.
104102

105103
### User Stories (Optional)
106104

107-
#### Application reads secret from disk on startup
105+
#### Story 1
108106

109-
#### Application watches secret for rotation
110-
111-
#### Application Pod YAML remains unchanged and works across secret providers
107+
1. Application reads secret from filesystem on startup
108+
2. Application watches secret for rotation
109+
3. Application Pod YAML remains unchanged and works across secret providers
112110

113111
### Notes/Constraints/Caveats (Optional)
114112

115-
Since the proposal is a storage driver, native support for presenting secrets to a process through environment variables is not possible.
113+
Since the proposal is a storage driver, native support for presenting secrets to a process through environment variables is not possible.
116114

117115
### Risks and Mitigations
118116

119117
#### Directory traversal vulnerabilities
120118

121-
The driver<->provider interface has been expanded to allow the driver to be the only process that actually writes files to the pod filesystem. The only hostpath provider's need are now the one for creating the unix socket with the driver process.
119+
The driver<->provider interface has been expanded to allow the driver to be the only process that actually writes files to the pod filesystem. The only hostpath provider's need are now the one for creating the unix socket used for communication with the driver process.
122120

123121
The driver protects against directory traversal vulnerabilities by re-using the `atomic_writer` used by Kubernetes Secrets and ConfigMaps which includes protections against writing to unintended paths.
124122

@@ -193,6 +191,10 @@ logs or events for this purpose.
193191

194192
###### How can someone using this feature know that it is working for their instance?
195193

194+
- non-zero `total_node_publish` metrics indicate the CSI driver is used by the workloads.
195+
- `total_sync_k8s_secret` metrics indicate the optional Sync as Kubernetes secret feature is used by the workloads.
196+
- `total_rotation_reconcile` metrics indicate the optional rotation reconciliation feature is used by the workloads.
197+
196198
<!--
197199
For instance, if this is a pod-related feature, it should be possible to determine if the feature is functioning properly
198200
for each individual pod.
@@ -202,16 +204,13 @@ and operation of this feature.
202204
Recall that end users cannot usually observe component logs or access metrics.
203205
-->
204206

205-
- [ ] Events
206-
- Event Reason:
207-
- [ ] API .status
208-
- Condition name:
209-
- Other field:
210-
- [ ] Other (treat as last resort)
211-
- Details:
212-
213207
###### What are the reasonable SLOs (Service Level Objectives) for the enhancement?
214208

209+
- `total_node_publish_error`
210+
- any rising count of this metric indicates a problem with mounting the volume for pod.
211+
- `total_node_publish_error`
212+
- any rising count of this metric indicates a problem with unmounting the volume for pod.
213+
215214
<!--
216215
This is your opportunity to define what "normal" quality of service looks like
217216
for a feature.
@@ -233,12 +232,9 @@ question.
233232
Pick one more of these and delete the rest.
234233
-->
235234

236-
- [ ] Metrics
237-
- Metric name:
238-
- [Optional] Aggregation method:
239-
- Components exposing the metric:
240-
- [ ] Other (treat as last resort)
241-
- Details:
235+
- [x] Metrics
236+
- Metric name: `total_node_publish`
237+
- Components exposing the metric: `secrets-store-csi-driver`
242238

243239
###### Are there any missing metrics that would be useful to have to improve observability of this feature?
244240

keps/sig-auth/2907-secrets-store-csi-driver/kep.yaml

Lines changed: 7 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -4,41 +4,13 @@ authors:
44
- "@tam7t"
55
- "@aramase"
66
owning-sig: sig-auth
7-
8-
status: implemented
7+
participating-sigs:
8+
- sig-auth
99
creation-date: 2021-09-02
1010
reviewers:
11-
- TBD
12-
- "@alice.doe"
11+
- "@ritazh"
12+
- "@mikedanese"
1313
approvers:
14-
- TBD
15-
- "@oscar.doe"
16-
17-
##### WARNING !!! ######
18-
# prr-approvers has been moved to its own location
19-
# You should create your own in keps/prod-readiness
20-
# Please make a copy of keps/prod-readiness/template/nnnn.yaml
21-
# to keps/prod-readiness/sig-xxxxx/00000.yaml (replace with kep number)
22-
#prr-approvers:
23-
24-
see-also:
25-
- "/keps/sig-aaa/1234-we-heard-you-like-keps"
26-
- "/keps/sig-bbb/2345-everyone-gets-a-kep"
27-
replaces:
28-
- "/keps/sig-ccc/3456-replaced-kep"
29-
30-
# The target maturity stage in the current dev cycle for this KEP.
31-
stage: stable
32-
33-
# The most recent milestone for which work toward delivery of this KEP has been
34-
# done. This can be the current (upcoming) milestone, if it is being actively
35-
# worked on.
36-
latest-milestone: "v1.19"
37-
38-
# The milestone at which this feature was, or is targeted to be, at each stage.
39-
milestone:
40-
stable: "v1.22"
41-
42-
# The following PRR answers are required at beta release
43-
metrics:
44-
- my_feature_metric
14+
- "@ritazh"
15+
- "@mikedanese"
16+
status: implemented

0 commit comments

Comments
 (0)