Skip to content

Commit 2b81e60

Browse files
site secrets helm chart
1 parent 81f269f commit 2b81e60

File tree

8 files changed

+146
-59
lines changed

8 files changed

+146
-59
lines changed

apps/global/site-secrets.yaml

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,5 +3,10 @@ component: site-secrets
33
sources:
44
- ref: understack
55
path: 'components/site-secrets'
6-
# - ref: deploy
7-
# path: '{{.name}}/manifests/site-secrets'
6+
helm:
7+
releaseName: site-secrets
8+
valueFiles:
9+
- $deploy/{{.name}}/helm-configs/secrets-sync-clusters.yaml
10+
ignoreMissingValueFiles: true
11+
- ref: deploy
12+
path: '{{.name}}/manifests/site-secrets'
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
# Patterns to ignore when building packages.
2+
# This supports shell glob matching, relative path matching, and
3+
# negation (prefixed with !). Only one pattern per line.
4+
.DS_Store
5+
# Common VCS dirs
6+
.git/
7+
.gitignore
8+
.bzr/
9+
.bzrignore
10+
.hg/
11+
.hgignore
12+
.svn/
13+
# Common backup files
14+
*.swp
15+
*.bak
16+
*.tmp
17+
*.orig
18+
*~
19+
# Various IDEs
20+
.project
21+
.idea/
22+
*.tmproj
23+
.vscode/

components/site-secrets/Chart.yaml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
apiVersion: v2
2+
name: site-secrets
3+
description: Orchestrating secrets across kubernetes clusters (global-site) using External SecretStore
4+
type: application
5+
version: 0.1.0
6+
appVersion: "1.0"

components/site-secrets/clusterrole-sa.yaml

Lines changed: 0 additions & 57 deletions
This file was deleted.
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
{{- range .Values.clusters }}
2+
---
3+
apiVersion: v1
4+
kind: Namespace
5+
metadata:
6+
name: {{ .name }}-secrets
7+
{{- end }}
Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
{{- range .Values.clusters }}
2+
{{- $cluster := .name }}
3+
{{- $secretStore := .secretStore }}
4+
{{- range .secrets }}
5+
---
6+
apiVersion: external-secrets.io/v1
7+
kind: ExternalSecret
8+
metadata:
9+
name: {{ .name }}
10+
namespace: {{ $cluster }}-secrets
11+
annotations:
12+
link.argocd.argoproj.io/external-link: {{ tpl .externalLinkAnnotationTemplate . }}
13+
spec:
14+
refreshInterval: {{ .refreshInterval | default "1h" }}
15+
secretStoreRef:
16+
kind: {{ $secretStore.kind }}
17+
name: {{ $secretStore.name }}
18+
target:
19+
name: {{ .name }}
20+
creationPolicy: Owner
21+
template:
22+
engineVersion: v2
23+
type: {{ .templateType | default "Opaque" }}
24+
{{- if .templateData }}
25+
data:
26+
{{- range $k, $v := .templateData }}
27+
{{ $k }}: {{ $v | quote }}
28+
{{- end }}
29+
{{- end }}
30+
{{- if .data }}
31+
data:
32+
{{- range .data }}
33+
- secretKey: {{ .secretKey }}
34+
remoteRef:
35+
key: {{ .remoteRef.key }}
36+
property: {{ .remoteRef.property }}
37+
conversionStrategy: {{ .remoteRef.conversionStrategy | default "Default" }}
38+
decodingStrategy: {{ .remoteRef.decodingStrategy | default "None" }}
39+
metadataPolicy: {{ .remoteRef.metadataPolicy | default "None" }}
40+
{{- end }}
41+
{{- end }}
42+
{{- if .dataFrom }}
43+
dataFrom:
44+
{{- toYaml .dataFrom | nindent 4 }}
45+
{{- end }}
46+
{{- end }}
47+
{{- end }}
Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
{{- range .Values.clusters }}
2+
{{- if eq .role "site" }}
3+
---
4+
apiVersion: v1
5+
kind: ServiceAccount
6+
metadata:
7+
name: {{ .name }}-sa
8+
namespace: {{ .name }}-secrets
9+
10+
---
11+
apiVersion: rbac.authorization.k8s.io/v1
12+
kind: Role
13+
metadata:
14+
name: {{ .name }}-sa-role
15+
namespace: {{ .name }}-secrets
16+
rules:
17+
- apiGroups: [""]
18+
resources:
19+
- secrets
20+
verbs:
21+
- get
22+
- list
23+
- watch
24+
- apiGroups:
25+
- authorization.k8s.io
26+
resources:
27+
- selfsubjectrulesreviews
28+
verbs:
29+
- create
30+
31+
---
32+
apiVersion: rbac.authorization.k8s.io/v1
33+
kind: RoleBinding
34+
metadata:
35+
name: {{ .name }}-sa-rolebinding
36+
namespace: {{ .name }}-secrets
37+
roleRef:
38+
apiGroup: rbac.authorization.k8s.io
39+
kind: Role
40+
name: {{ .name }}-sa-role
41+
subjects:
42+
- kind: ServiceAccount
43+
name: {{ .name }}-sa
44+
namespace: {{ .name }}-secrets
45+
46+
---
47+
apiVersion: v1
48+
kind: Secret
49+
metadata:
50+
annotations:
51+
kubernetes.io/service-account.name: {{ .name }}-sa
52+
name: {{ .name }}-sa-token
53+
namespace: {{ .name }}-secrets
54+
type: kubernetes.io/service-account-token
55+
{{- end }}
56+
{{- end }}

components/site-secrets/values.yaml

Whitespace-only changes.

0 commit comments

Comments
 (0)