Skip to content

Commit 3043f55

Browse files
Updated the code to all values
1 parent dd5942d commit 3043f55

File tree

3 files changed

+85
-67
lines changed

3 files changed

+85
-67
lines changed

charts/fleet-secret/README.MD

Lines changed: 80 additions & 63 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,11 @@
11
# Fleet Secret Helm Chart
22

33
## Overview
4+
45
A Helm chart for managing Kubernetes secrets in a GitOps environment, specifically designed for cluster registration and secret management. This chart handles multiple secret types including cluster credentials, repository access, and ECR authentication, with support for both direct secret creation and external secrets management through External Secrets Operator.
56

67
## Prerequisites
8+
79
- Kubernetes 1.16+
810
- Helm 3.x
911
- External Secrets Operator installed in the cluster (required for external secrets functionality)
@@ -13,24 +15,27 @@ A Helm chart for managing Kubernetes secrets in a GitOps environment, specifical
1315
## Secret Types Supported
1416

1517
### Cluster Secrets
18+
1619
- Manages ArgoCD cluster secrets for registration
17-
- Supports both direct and external secrets management
18-
- Configurable through `externalSecret` or `secret` values
20+
- Manages gitExternalSecrets for conecting spoke clusters to relevant repos
1921
- Automatically adds required ArgoCD secret labels
2022

2123
### Repository Secrets
24+
2225
- Handles Git repository authentication
2326
- Supports GitHub App authentication
2427
- Configurable through `gitExternalSecrets` values
2528
- Supports multiple repository configurations
2629

2730
### ECR Authentication
31+
2832
- Manages ECR authentication token rotation
2933
- Creates tokens for container registry access
3034
- Configurable through `ecrAuthenticationToken` values
3135
- Supports automatic token refresh
3236

3337
### AWS Secret Store
38+
3439
- Sets up SecretStore/ClusterSecretStore for AWS Secrets Manager
3540
- Configurable through `secretStore` values
3641
- Supports IAM role configuration for cross account
@@ -41,89 +46,89 @@ A Helm chart for managing Kubernetes secrets in a GitOps environment, specifical
4146

4247
```yaml
4348
secretStore:
44-
enabled: true # Enable/disable SecretStore creation
45-
kind: "SecretStore" # Type of store - SecretStore or ClusterSecretStore
46-
name: "aws-secrets-manager" # Name of the SecretStore resource
47-
region: "" # AWS region where Secrets Manager is located
48-
role: "" # Optional IAM role ARN for accessing Secrets Manager
49+
enabled: true # Enable/disable SecretStore creation
50+
kind: 'SecretStore' # Type of store - SecretStore or ClusterSecretStore
51+
name: 'aws-secrets-manager' # Name of the SecretStore resource
52+
region: '' # AWS region where Secrets Manager is located
53+
role: '' # Optional IAM role ARN for accessing Secrets Manager
4954
```
5055
5156
### External Secret Configuration
5257
5358
```yaml
5459
# Configuration for cluster registration secret via External Secrets
5560
externalSecret:
56-
enabled: true # Enable/disable cluster registration secret
57-
secretStoreRefName: "fleet-eks-secret-store" # Reference to SecretStore
58-
secretStoreRefKind: "SecretStore" # Type of secret store to reference
59-
server: "self" # Cluster API server - 'self' for local, 'remote' for external
60-
secretManagerSecretName: "" # AWS Secrets Manager secret name containing cluster credentials
61-
clusterName: "" # Name for the registered cluster
61+
enabled: true # Enable/disable cluster registration secret
62+
secretStoreRefName: 'fleet-eks-secret-store' # Reference to SecretStore
63+
secretStoreRefKind: 'SecretStore' # Type of secret store to reference
64+
server: 'self' # Cluster API server - 'self' for local, 'remote' for external
65+
secretManagerSecretName: '' # AWS Secrets Manager secret name containing cluster credentials
66+
clusterName: '' # Name for the registered cluster
6267
```
6368
6469
### Git External Secrets Configuration
6570
6671
```yaml
6772
gitExternalSecrets:
68-
enabled: true # Enable/disable git repository external secrets
69-
secretStoreRefName: "fleet-eks-secret-store" # Reference to SecretStore
70-
secretStoreRefKind: "SecretStore" # Type of secret store to reference
73+
enabled: true # Enable/disable git repository external secrets
74+
secretStoreRefName: 'fleet-eks-secret-store' # Reference to SecretStore
75+
secretStoreRefKind: 'SecretStore' # Type of secret store to reference
7176
externalSecrets:
72-
addons: # Configuration for addons repository and external secret name
73-
gitUrl: "" # Git repository URL
74-
secretName: "git-addons" # K8s secret name to create
75-
secretManagerSecretName: "" # AWS Secrets Manager secret name containing git credentials
77+
addons: # Configuration for addons repository and external secret name
78+
gitUrl: '' # Git repository URL
79+
secretName: 'git-addons' # K8s secret name to create
80+
secretManagerSecretName: '' # AWS Secrets Manager secret name containing git credentials
7681
```
7782
7883
### ECR Authentication Configuration
7984
8085
```yaml
8186
ecrAuthenticationToken:
82-
enabled: true # Enable/disable ECR token generation
83-
region: eu-west-2 # AWS region where ECR is located
84-
name: "ecr-token" # Name of the token generator
85-
namespace: "argocd" # Namespace where to create the secret
86-
secretName: "argocd-ecr-credentials" # Name of the K8s secret for ECR credentials
87+
enabled: true # Enable/disable ECR token generation
88+
region: eu-west-2 # AWS region where ECR is located
89+
name: 'ecr-token' # Name of the token generator
90+
namespace: 'argocd' # Namespace where to create the secret
91+
secretName: 'argocd-ecr-credentials' # Name of the K8s secret for ECR credentials
8792
```
8893
8994
## Parameters
9095
9196
### Global Parameters
9297
93-
| Parameter | Description | Default |
94-
|-----------|-------------|---------|
95-
| `secretStore.enabled` | Enable AWS Secrets Manager store | `false` |
96-
| `secretStore.kind` | Type of secret store | `"SecretStore"` |
97-
| `secretStore.name` | Name of the secret store | `"aws-secrets-manager"` |
98-
| `secretStore.region` | AWS region for Secrets Manager | `""` |
99-
| `secretStore.role` | IAM role ARN for AWS access | `""` |
98+
| Parameter | Description | Default |
99+
| --------------------- | -------------------------------- | ----------------------- |
100+
| `secretStore.enabled` | Enable AWS Secrets Manager store | `false` |
101+
| `secretStore.kind` | Type of secret store | `"SecretStore"` |
102+
| `secretStore.name` | Name of the secret store | `"aws-secrets-manager"` |
103+
| `secretStore.region` | AWS region for Secrets Manager | `""` |
104+
| `secretStore.role` | IAM role ARN for AWS access | `""` |
100105

101106
### External Secret Parameters
102107

103-
| Parameter | Description | Default |
104-
|-----------|-------------|---------|
105-
| `externalSecret.enabled` | Enable external secret creation | `false` |
106-
| `externalSecret.secretStoreRefName` | Reference to secret store | `"fleet-eks-secret-store"` |
107-
| `externalSecret.server` | Server type (self/remote) | `"self"` |
108-
| `externalSecret.clusterName` | Name of the cluster | `""` |
109-
| `externalSecret.secretManagerSecretName` | Name of secret in AWS Secrets Manager | `""` |
108+
| Parameter | Description | Default |
109+
| ---------------------------------------- | ------------------------------------- | -------------------------- |
110+
| `externalSecret.enabled` | Enable external secret creation | `false` |
111+
| `externalSecret.secretStoreRefName` | Reference to secret store | `"fleet-eks-secret-store"` |
112+
| `externalSecret.server` | Server type (self/remote) | `"self"` |
113+
| `externalSecret.clusterName` | Name of the cluster | `""` |
114+
| `externalSecret.secretManagerSecretName` | Name of secret in AWS Secrets Manager | `""` |
110115

111116
### ECR Authentication Parameters
112117

113-
| Parameter | Description | Default |
114-
|-----------|-------------|---------|
115-
| `ecrAuthenticationToken.enabled` | Enable ECR authentication | `false` |
116-
| `ecrAuthenticationToken.region` | AWS region for ECR | `"eu-west-2"` |
117-
| `ecrAuthenticationToken.namespace` | Namespace for ECR secret | `"argocd"` |
118-
| `ecrAuthenticationToken.name` | Name of ECR token generator | `"ecr-token"` |
119-
| `ecrAuthenticationToken.secretName` | Name of ECR secret | `"argocd-ecr-credentials"` |
118+
| Parameter | Description | Default |
119+
| ----------------------------------- | --------------------------- | -------------------------- |
120+
| `ecrAuthenticationToken.enabled` | Enable ECR authentication | `false` |
121+
| `ecrAuthenticationToken.region` | AWS region for ECR | `"eu-west-2"` |
122+
| `ecrAuthenticationToken.namespace` | Namespace for ECR secret | `"argocd"` |
123+
| `ecrAuthenticationToken.name` | Name of ECR token generator | `"ecr-token"` |
124+
| `ecrAuthenticationToken.secretName` | Name of ECR secret | `"argocd-ecr-credentials"` |
120125

121126
### Git Secrets Parameters
122127

123-
| Parameter | Description | Default |
124-
|-----------|-------------|---------|
125-
| `gitExternalSecrets.enabled` | Enable external Git secrets | `false` |
126-
| `gitExternalSecrets.secretStoreRefName` | Reference to secret store | `"fleet-eks-secret-store"` |
128+
| Parameter | Description | Default |
129+
| --------------------------------------- | --------------------------- | -------------------------- |
130+
| `gitExternalSecrets.enabled` | Enable external Git secrets | `false` |
131+
| `gitExternalSecrets.secretStoreRefName` | Reference to secret store | `"fleet-eks-secret-store"` |
127132

128133
## Usage Examples
129134

@@ -132,10 +137,10 @@ ecrAuthenticationToken:
132137
```yaml
133138
externalSecret:
134139
enabled: true
135-
secretStoreRefName: "fleet-eks-secret-store"
136-
server: "remote"
137-
clusterName: "prod-cluster-01"
138-
secretManagerSecretName: "cluster-prod-01"
140+
secretStoreRefName: 'fleet-eks-secret-store'
141+
server: 'remote'
142+
clusterName: 'prod-cluster-01'
143+
secretManagerSecretName: 'cluster-prod-01'
139144
```
140145

141146
### ECR Authentication Setup
@@ -144,26 +149,35 @@ externalSecret:
144149
ecrAuthenticationToken:
145150
enabled: true
146151
region: eu-west-2
147-
namespace: "argocd"
148-
secretName: "ecr-creds"
152+
namespace: 'argocd'
153+
secretName: 'ecr-creds'
149154
```
150155

151156
### Git Repository Authentication
152157

153158
```yaml
154159
gitExternalSecrets:
155160
enabled: true
156-
secretStoreRefName: "fleet-eks-secret-store"
161+
secretStoreRefName: 'fleet-eks-secret-store'
162+
secretStoreRefKind: 'SecretStore'
163+
useGitHubApp: true
157164
externalSecrets:
158165
addons:
159-
secretName: "git-addons"
160-
secretManagerSecretName: "git-addons-creds"
166+
secretName: 'git-addons'
167+
secretManagerSecretName: 'git-addons-creds'
168+
resources:
169+
secretName: 'git-resources'
170+
secretManagerSecretName: 'git-resources-creds'
171+
secretStoreRefName: 'cluster-git-eks-secret-store'
172+
secretStoreRefKind: 'ClusterSecretStore'
173+
usePrivateKey: true
161174
```
162175

163-
Values defined under `global.gitExternalSecrets.externalSecrets` act as shared defaults and
164-
are deep-merged with the chart-level `gitExternalSecrets.externalSecrets`. Define the common
165-
portions (for example `secretName`, `secretType`, or annotations) globally and only override
166-
the differing keys per cluster or environment.
176+
- `secretStoreRefName`, `secretStoreRefKind`, and authentication flags (`useGitHubApp`, `useHttp`,
177+
`usePrivateKey`) can be supplied globally under `gitExternalSecrets` and overridden per secret
178+
by setting the same keys inside each `externalSecrets` entry.
179+
- Per-secret overrides merge shallowly: specify only the fields you need to change for that
180+
repository while inheriting the rest from the top-level configuration.
167181

168182
## Notes
169183

@@ -183,4 +197,7 @@ the differing keys per cluster or environment.
183197
## License
184198

185199
This chart is licensed under the Apache License 2.0.
200+
201+
```
202+
186203
```

charts/fleet-secret/templates/gitExternalSecret.yaml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
{{- if .Values.gitExternalSecrets.enabled }}
22
{{- $secretStoreRefName := .Values.gitExternalSecrets.secretStoreRefName | default "" -}}
3-
{{- $secretStoreRefKind := .Values.global.gitExternalSecrets.secretStoreRefKind | default "" -}}
4-
{{- $useHttp := .Values.global.gitExternalSecrets.useHttp | default false -}}
5-
{{- $useGitHubApp := .Values.global.gitExternalSecrets.useGitHubApp | default false -}}
6-
{{- $usePrivateKey := .Values.global.gitExternalSecrets.usePrivateKey | default false -}}
3+
{{- $secretStoreRefKind := .Values.gitExternalSecrets.secretStoreRefKind | default "" -}}
4+
{{- $useHttp := .Values.gitExternalSecrets.useHttp | default false -}}
5+
{{- $useGitHubApp := .Values.gitExternalSecrets.useGitHubApp | default false -}}
6+
{{- $usePrivateKey := .Values.gitExternalSecrets.usePrivateKey | default false -}}
77
{{- $clusterGitSecrets := .Values.gitExternalSecrets.externalSecrets | default dict }}
88

99
{{- range $externalSecretName, $externalSecret := $clusterGitSecrets }}

charts/fleet-secret/values.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ gitExternalSecrets:
2525
# secretManagerSecretName: shared/addons
2626
# secretType: repository
2727
# resources:
28+
# useHttp: true
2829
# secretName: git-resources
2930
# secretStoreRefName: cluster-git-eks-secret-store
3031
# secretStoreRefKind: ClusterSecretStore

0 commit comments

Comments
 (0)