Skip to content

Commit 5163558

Browse files
authored
Merge pull request #62385 from bergerhoffer/OSDOCS-5806-secret-store
OSDOCS 5806: Adding docs for using the secrets store CSI driver
2 parents 46bc53f + 7077340 commit 5163558

16 files changed

+959
-24
lines changed

_attributes/common-attributes.adoc

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -194,3 +194,5 @@ endif::[]
194194
// Web terminal
195195
:web-terminal-op: Web Terminal Operator
196196
:devworkspace-op: DevWorkspace Operator
197+
:secrets-store-driver: Secrets Store CSI driver
198+
:secrets-store-operator: Secrets Store CSI Driver Operator

_topic_maps/_topic_map.yml

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2239,8 +2239,10 @@ Topics:
22392239
File: nodes-pods-autoscaling
22402240
- Name: Automatically adjust pod resource levels with the vertical pod autoscaler
22412241
File: nodes-pods-vertical-autoscaler
2242-
- Name: Providing sensitive data to pods
2242+
- Name: Providing sensitive data to pods by using secrets
22432243
File: nodes-pods-secrets
2244+
- Name: Providing sensitive data to pods by using an external secrets store
2245+
File: nodes-pods-secrets-store
22442246
- Name: Creating and using config maps
22452247
File: nodes-pods-configmaps
22462248
- Name: Using Device Manager to make devices available to nodes

modules/gathering-data-specific-features.adoc

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -74,6 +74,10 @@ endif::openshift-dedicated[]
7474

7575
|`registry.redhat.io/openshift-gitops-1/must-gather-rhel8:v<installed_version_GitOps>`
7676
|Data collection for {gitops-title}.
77+
78+
|`registry.redhat.io/openshift4/ose-csi-driver-shared-resource-mustgather-rhel8:v<installed_version_secret_store>`
79+
|Data collection for the {secrets-store-operator}.
80+
7781
|===
7882

7983
[NOTE]
@@ -113,6 +117,9 @@ ifndef::openshift-dedicated[]
113117
|Data collection for Local Storage Operator.
114118
endif::openshift-dedicated[]
115119

120+
|`quay.io/openshift/origin-secrets-store-csi-mustgather`
121+
|Data collection for the {secrets-store-operator}.
122+
116123
|===
117124

118125
endif::openshift-origin[]

modules/persistent-storage-csi-secrets-store-driver-install.adoc

Lines changed: 5 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55

66
:_content-type: PROCEDURE
77
[id="persistent-storage-csi-secrets-store-driver-install_{context}"]
8-
= Installing the Secrets Store CSI Driver
8+
= Installing the {secrets-store-driver}
99

1010
.Prerequisites
1111
* Access to the {product-title} web console.
@@ -14,12 +14,12 @@
1414
1515
.Procedure
1616

17-
To install the Secrets Store CSI Driver:
17+
To install the {secrets-store-driver}:
1818

19-
. Install the Secrets Store Container Storage Interface (CSI) driver operator:
19+
. Install the {secrets-store-operator}:
2020
.. Log in to the web console.
2121
.. Click *Operators**OperatorHub*.
22-
.. Locate the Secrets Store CSI Operator by typing "Secrets Store CSI" in the filter box.
22+
.. Locate the {secrets-store-operator} by typing "Secrets Store CSI" in the filter box.
2323
.. Click the *Secrets Store CSI Driver Operator* button.
2424
.. On the *Secrets Store CSI Driver Operator* page, click *Install*.
2525
.. On the *Install Operator* page, ensure that:
@@ -29,7 +29,7 @@ To install the Secrets Store CSI Driver:
2929
* *Installed Namespace* is set to *openshift-cluster-csi-drivers*.
3030
.. Click *Install*.
3131
+
32-
After the installation finishes, the Secrets Store CSI Operator is listed in the *Installed Operators* section of the web console.
32+
After the installation finishes, the {secrets-store-operator} is listed in the *Installed Operators* section of the web console.
3333
3434
. Create the `ClusterCSIDriver` instance for the driver (`secrets-store.csi.k8s.io`):
3535
.. Click *Administration* -> *CustomResourceDefinitions* -> *ClusterCSIDriver*.
@@ -47,6 +47,3 @@ spec:
4747
managementState: Managed
4848
----
4949
.. Click *Create*.
50-
51-
. Install a third-party provider plugin for your chosen secret store.
52-
// TODO: Add link authentication content//
Lines changed: 23 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,33 @@
11
// Module included in the following assemblies:
22
//
33
// * storage/container_storage_interface/persistent-storage-csi-secrets-store.adoc
4-
//
4+
// * nodes/pods/nodes-pods-secrets-store.adoc
5+
6+
ifeval::["{context}" == "persistent-storage-csi-secrets-store"]
7+
:storage:
8+
endif::[]
9+
ifeval::["{context}" == "nodes-pods-secrets-store"]
10+
:nodes:
11+
endif::[]
512

613
:_content-type: CONCEPT
714
[id="persistent-storage-csi-secrets-store-driver-overview_{context}"]
15+
ifdef::storage[]
816
= Overview
17+
endif::storage[]
18+
ifdef::nodes[]
19+
= About the {secrets-store-operator}
20+
endif::nodes[]
21+
22+
Kubernetes secrets are stored with Base64 encoding. etcd provides encryption at rest for these secrets, but when secrets are retrieved, they are decrypted and presented to the user. If role-based access control is not configured properly on your cluster, anyone with API or etcd access can retrieve or modify a secret. Additionally, anyone who is authorized to create a pod in a namespace can use that access to read any secret in that namespace.
923

10-
Kubernetes secrets are stored with Base64 encoding. etcd provides encryption at rest for these secrets, but when secrets are retrieved, they are decrypted and presented to the user. If role-based access control is not configured properly on your cluster, anyone with API or etcd access can retrieve or modify a secret. Additionally, anyone who is authorized to create a pod in a namespace can use that access to read any secret in that namespace.
24+
To store and manage your secrets securely, you can configure the {product-title} Secrets Store Container Storage Interface (CSI) Driver Operator to mount secrets from an external secret management system, such as Azure Key Vault, by using a provider plugin. Applications can then use the secret, but the secret does not persist on the system after the application pod is destroyed.
1125

12-
For secure storage and management of your secrets, the {product-title} Secrets Store Container Storage Interface (CSI) Driver Operator allows you to mount secrets from an external secret management system, such as Azure Key Vault using a provider plugin. Applications can use the secret, but the secret does not persist on the system after the application pod is destroyed.
26+
The {secrets-store-operator}, `secrets-store.csi.k8s.io`, enables {product-title} to mount multiple secrets, keys, and certificates stored in enterprise-grade external secrets stores into pods as a volume. The {secrets-store-operator} communicates with the provider using gRPC to fetch the mount contents from the specified external secrets store. After the volume is attached, the data in it is mounted into the container's file system. Secrets store volumes are mounted in-line.
1327

14-
The Secrets Store CSI Driver Operator, `secrets-store.csi.k8s.io`, allows {product-title} to mount multiple secrets, keys, and certificates stored in enterprise-grade external secrets stores into pods as a volume. The Secrets Store CSI Driver Operator communicates with the provider using gRPC to fetch the mount contents from the specified external secrets store. After the volume is attached, the data in it is mounted into the container's file system. Secrets store volumes are mounted in-line.
28+
ifeval::["{context}" == "persistent-storage-csi-secrets-store"]
29+
:!storage:
30+
endif::[]
31+
ifeval::["{context}" == "nodes-pods-secrets-store"]
32+
:!nodes:
33+
endif::[]

modules/persistent-storage-csi-secrets-store-driver-uninstall.adoc

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55

66
:_content-type: PROCEDURE
77
[id="persistent-storage-csi-secrets-store-driver-uninstall_{context}"]
8-
= Uninstalling the Secrets Store CSI Driver Operator
8+
= Uninstalling the {secrets-store-operator}
99

1010
.Prerequisites
1111
* Access to the {product-title} web console.
@@ -14,7 +14,7 @@
1414
1515
.Procedure
1616

17-
To uninstall the Secrets Store CSI Driver Operator:
17+
To uninstall the {secrets-store-operator}:
1818

1919
. Stop all application pods that use the `secrets-store.csi.k8s.io` provider.
2020
. Remove any third-party provider plug-in for your chosen secret store.
@@ -23,16 +23,16 @@ To uninstall the Secrets Store CSI Driver Operator:
2323
.. On the *Instances* tab, for *secrets-store.csi.k8s.io*, on the far left side, click the drop-down menu, and then click *Delete ClusterCSIDriver*.
2424
.. When prompted, click *Delete*.
2525
. Verify that the CSI driver pods are no longer running.
26-
. Uninstall the Secrets Store CSI Driver Operator:
26+
. Uninstall the {secrets-store-operator}:
2727
+
2828
[NOTE]
2929
====
3030
Before you can uninstall the Operator, you must remove the CSI driver first.
3131
====
3232
+
3333
.. Click *Operators* → *Installed Operators*.
34-
.. On the *Installed Operators* page, scroll or type Secrets Store CSI into the *Search by name* box to find the Operator, and then click it.
34+
.. On the *Installed Operators* page, scroll or type "Secrets Store CSI" into the *Search by name* box to find the Operator, and then click it.
3535
.. On the upper, right of the *Installed Operators* > *Operator details* page, click *Actions* → *Uninstall Operator*.
3636
.. When prompted on the *Uninstall Operator* window, click the *Uninstall* button to remove the Operator from the namespace. Any applications deployed by the Operator on the cluster need to be cleaned up manually.
3737
+
38-
After uninstalling, the Secrets Store CSI Driver Operator is no longer listed in the *Installed Operators* section of the web console.
38+
After uninstalling, the {secrets-store-operator} is no longer listed in the *Installed Operators* section of the web console.
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
// Module included in the following assemblies:
2+
//
3+
// * nodes/pods/nodes-pods-secrets-store.adoc
4+
5+
:_content-type: CONCEPT
6+
[id="secrets-store-auto-rotation_{context}"]
7+
= Automatic rotation
8+
9+
The {secrets-store-driver} periodically rotates the content in the mounted volume with the content from the external secrets store. If a secret is updated in the external secrets store, the secret will be updated in the mounted volume. The {secrets-store-operator} polls for updates every 2 minutes.
10+
11+
If you enabled synchronization of mounted content as Kubernetes secrets, the Kubernetes secrets are also rotated.
12+
13+
Applications consuming the secret data must watch for updates to the secrets.

0 commit comments

Comments
 (0)