Skip to content

Commit 4110380

Browse files
Shubham9t9Shubham9t9ashoknayak777
authored
doc: HashiCorp external secret operator (#3608)
* doc for hashicorp eso * edited summary.md * Proofread aws-eso.md * Proofread hashicorp-eso.md --------- Co-authored-by: Shubham9t9 <[email protected]> Co-authored-by: ashokdevtron <[email protected]>
1 parent 91efceb commit 4110380

File tree

3 files changed

+77
-17
lines changed

3 files changed

+77
-17
lines changed

docs/SUMMARY.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,7 @@
6565
* [External Secret Operator (ESO)](user-guide/creating-application/eso/README.md)
6666
* [AWS Secrets Manager](user-guide/creating-application/eso/aws-eso.md)
6767
* [Google Secrets Manager](user-guide/creating-application/eso/gcp-eso.md)
68+
* [HashiCorp Vault](user-guide/creating-application/eso/hashicorp-eso.md)
6869

6970
* [Environment Overrides](user-guide/creating-application/environment-overrides.md)
7071
* [Deleting Application](user-guide/deleting-application.md)

docs/user-guide/creating-application/eso/aws-eso.md

Lines changed: 17 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -2,41 +2,41 @@
22

33
To add secrets from **AWS Secrets Manager**, we need to create a generic Kubernetes secret for AWS authentication.
44

5-
Create a Kubernetes secret in the namespace in which the application is to be deployed using base64 encoded AWS access-key and secret-access-key. You can use devtron generic chart for this.
5+
Create a Kubernetes secret in the namespace in which the application is to be deployed using base64 encoded AWS access-key and secret-access-key. You can use a Devtron generic chart for it.
66

7-
**Note:** You don't have to create the Kubernetes secret everytime you create External Secret for the respective namespace.
7+
**Note**: You don't have to create the Kubernetes secret every time you create external secret for the respective namespace.
88

99
![](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/creating-application/secrets/aws-secret-generic-chart.jpg)
1010

1111
After creating the generic secret, navigate to `Secrets` section of the application and follow the steps mentioned below :
1212

13-
**1. Click `Add Secret` to add a new secret.**
13+
**1. Click `Add Secret` to add a new secret**
1414

1515
![](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/creating-application/secrets/add-secrets.jpg)
1616

17-
**2. Select `AWS Secret Manager` under `External Secret Operator` (ESO) from the dropdown of `Data type`.**
17+
**2. Select `AWS Secret Manager` under `External Secret Operator` (ESO) from the dropdown of `Data type`**
1818

1919
![](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/creating-application/secrets/aws-secret-manager-dropdown.jpg)
2020

21-
**3. Configure secret:**
21+
**3. Configure the secret**
2222

2323
| Key | Description |
2424
| :--- | :--- |
25-
| `region` | AWS region in which secret is created. |
26-
| `accessKeyIDSecretRef.name` | Name of secret created that would be used for authentication.|
27-
| `accessKeyIDSecretRef.key` | In generic secret created for AWS authentication, variable name in which base64 encoded AWS access-key is stored. |
28-
| `secretAccessKeySecretRef.name` | Name of secret created that would be used for authentication.|
29-
| `secretAccessKeySecretRef.key` | In generic secret created for AWS authentication, variable name in which base64 encoded secret-access-key is stored.|
30-
| `secretKey` | Key name to store secret. |
31-
| `key` | AWS Secrets Manager secret name. |
32-
| `property` | AWS Secrets Manager secret key. |
25+
| `region` | AWS region in which secret is created |
26+
| `accessKeyIDSecretRef.name` | Name of secret created that would be used for authentication|
27+
| `accessKeyIDSecretRef.key` | In generic secret created for AWS authentication, variable name in which base64 encoded AWS access-key is stored |
28+
| `secretAccessKeySecretRef.name` | Name of secret created that would be used for authentication|
29+
| `secretAccessKeySecretRef.key` | In generic secret created for AWS authentication, variable name in which base64 encoded secret-access-key is stored|
30+
| `secretKey` | Key name to store secret |
31+
| `key` | AWS Secrets Manager secret name |
32+
| `property` | AWS Secrets Manager secret key |
3333

3434
![](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/creating-application/secrets/aws-eso.jpg)
3535

3636
![](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/creating-application/secrets/aws-external-secret.jpg)
3737

3838

39-
**4. Save secret.**
39+
**4. Save the secret**
4040

4141

4242
## ESO AWS secrets Manager Setup with Devtron using ClusterSecretsStore
@@ -47,19 +47,19 @@ ClusterSecretStore provides a secure and centralized storage solution for managi
4747

4848
To setup ESO AWS secrets manager with Devtron using ClusterSecretsStore, follow the mentined steps:
4949

50-
**1. Create a secret for AWS authentication:**
50+
**1. Create a secret for AWS authentication**
5151

5252
Create a Kubernetes secret in any namespace using base64 encoded AWS access-key and secret-access-key. You can use the devtron generic chart for this.
5353

5454
![](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/creating-application/secrets/aws-secret-generic-chart.jpg)
5555

56-
**2. create a `ClusterSecretStore`**
56+
**2. Create a `ClusterSecretStore`**
5757

5858
Create a `ClusterSecretStore` using the secret created for AWS authentication in step 1.
5959

6060
![](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/creating-application/secrets/clustersecretstore-yaml.jpg)
6161

62-
**3. Create a secret in the application using ESO AWS Secrets Manager:**
62+
**3. Create a secret in the application using ESO AWS Secrets Manager**
6363

6464
Go to the application where you want to create an external secret. Navigate to secrets section under application configuration and create a secret using ESO AWS Secrets Manager.
6565

Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,59 @@
1+
# HashiCorp Vault
2+
3+
To incorporate secrets from **HashiCorp Vault**, you need to create a generic Kubernetes secret that will be used for vault authentication. This involves creating a Kubernetes secret in the specific namespace where your application will be deployed.
4+
The secret should store the base64-encoded password or token obtained from vault. To simplify the process, you can utilize the Devtron generic chart. An example yaml is given below:
5+
6+
```yaml
7+
apiVersion: v1
8+
kind: Secret
9+
type: Opaque
10+
data:
11+
token: <vault-password>
12+
metadata:
13+
name: vault-token
14+
namespace: <namespace>
15+
```
16+
17+
**Note**: Please note that you don't need to create the Kubernetes secret every time you create an External Secret for the corresponding namespace.
18+
19+
Once you have created the generic secret, follow these steps in the application's Secrets section:
20+
21+
**1. Create a new secret**
22+
23+
To add a new secret to the application, go to the `App Configuration` section of the application. Then, navigate to the left pane and select the `Secrets` option and click the **Add Secret** button.
24+
25+
![](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/creating-application/secrets/hc-add-secret.jpg)
26+
27+
**2. Select `HashiCorp Vault` as the External Secret Operator**
28+
29+
After clicking the **Add Secret** button, select `HashiCorp Vault` from the dropdown menu for the `Data type` option. Provide a name for the secret you are creating, and then proceed to configure the external secret as described in the next step.
30+
31+
![](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/creating-application/secrets/hc-secret-type.jpg)
32+
33+
**3. Configure the secret**
34+
35+
To configure the external secret that will be fetched from HashiCorp Vault for your application, you will need to provide specific details using the following key-value pairs:
36+
37+
![](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/creating-application/secrets/hc-secret-configure.jpg)
38+
39+
40+
| Key | Description |
41+
| :--- | :--- |
42+
| `vault.server` | Server is the connection address for the Vaultserver, e.g: "https://vault.example.com:8200" |
43+
| `vault.path` | Specify the path where the secret is stored in Vault |
44+
| `tokenSecretRef.name` | Enter the name of the secret that will be used for authentication |
45+
| `tokenSecretRef.key` | Specify the key name within the secret that contains the token |
46+
| `secretKey` | Provide a name for the secret in Kubernetes |
47+
| `key` | Enter the name of the secret in Vault |
48+
| `property` | Specify the key within the Vault secret |
49+
50+
![](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/creating-application/secrets/tokenSecretRef.jpg)
51+
52+
![](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/creating-application/secrets/hc-eso.jpg)
53+
54+
**4. Save the secret**
55+
56+
After configuring the external secret from HashiCorp Vault, proceed to save the secret by clicking the **Save** button.
57+
58+
By following the steps mentioned above and configuring these values correctly, you can seamlessly fetch and utilize external secrets from HashiCorp Vault within your application environment by deploying the application.
59+

0 commit comments

Comments
 (0)