You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
@@ -58,7 +56,7 @@ Items marked with (R) are required *prior to targeting to a milestone / release*
58
56
-[ ] (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)
59
57
-[ ] (R) Minimum Two Week Window for GA e2e tests to prove flake free
60
58
-[ ] (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)
62
60
-[ ] (R) Production readiness review completed
63
61
-[ ] (R) Production readiness review approved
64
62
-[ ] "Implementation History" section is up-to-date for milestone
@@ -91,7 +89,7 @@ demonstrate the interest in a KEP within the wider Kubernetes community.
91
89
92
90
### Goals
93
91
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.
95
93
96
94
### Non-Goals
97
95
@@ -100,25 +98,25 @@ demonstrate the interest in a KEP within the wider Kubernetes community.
100
98
101
99
## Proposal
102
100
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.
104
102
105
103
### User Stories (Optional)
106
104
107
-
#### Application reads secret from disk on startup
105
+
#### Story 1
108
106
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
112
110
113
111
### Notes/Constraints/Caveats (Optional)
114
112
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.
116
114
117
115
### Risks and Mitigations
118
116
119
117
#### Directory traversal vulnerabilities
120
118
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.
122
120
123
121
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.
124
122
@@ -193,6 +191,10 @@ logs or events for this purpose.
193
191
194
192
###### How can someone using this feature know that it is working for their instance?
195
193
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
+
196
198
<!--
197
199
For instance, if this is a pod-related feature, it should be possible to determine if the feature is functioning properly
198
200
for each individual pod.
@@ -202,16 +204,13 @@ and operation of this feature.
202
204
Recall that end users cannot usually observe component logs or access metrics.
203
205
-->
204
206
205
-
-[ ] Events
206
-
- Event Reason:
207
-
-[ ] API .status
208
-
- Condition name:
209
-
- Other field:
210
-
-[ ] Other (treat as last resort)
211
-
- Details:
212
-
213
207
###### What are the reasonable SLOs (Service Level Objectives) for the enhancement?
214
208
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
+
215
214
<!--
216
215
This is your opportunity to define what "normal" quality of service looks like
217
216
for a feature.
@@ -233,12 +232,9 @@ question.
233
232
Pick one more of these and delete the rest.
234
233
-->
235
234
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`
242
238
243
239
###### Are there any missing metrics that would be useful to have to improve observability of this feature?
0 commit comments