♻️(helm) refactor clusterSecretStore and ExternalSecret deployments

Refactored ClusterSecretStore and ExternalSecret deployment to support
VaultWarden custom fields beyond login/password, including multi-line
values via file input. Also made the secret template name configurable
for added flexibility.

ClusterSecretStore are supposed to be cluster-wide objects, it's useless
to precise any namespace.
This commit is contained in:
lebaudantoine
2025-01-13 12:20:35 +01:00
committed by aleb_the_flash
parent 6d08e318a7
commit 9972692dac
4 changed files with 31 additions and 11 deletions

View File

@@ -3,7 +3,7 @@ set -o errexit
CURRENT_DIR=$(pwd) CURRENT_DIR=$(pwd)
NAMESPACE=${1:-meet} NAMESPACE=${1:-meet}
SECRET_NAME=${2:-bitwarden-cli-visio} SECRET_NAME=${2:-bitwarden-cli-meet}
TEMP_SECRET_FILE=$(mktemp) TEMP_SECRET_FILE=$(mktemp)

View File

@@ -3,12 +3,12 @@ secrets:
itemId: a25effec-eaea-4ce1-9ed8-3a3cc1c734db itemId: a25effec-eaea-4ce1-9ed8-3a3cc1c734db
field: username field: username
podVariable: OIDC_RP_CLIENT_ID podVariable: OIDC_RP_CLIENT_ID
clusterSecretStore: bitwarden-login-visio clusterSecretStore: bitwarden-login-meet
- name: oidcPass - name: oidcPass
itemId: a25effec-eaea-4ce1-9ed8-3a3cc1c734db itemId: a25effec-eaea-4ce1-9ed8-3a3cc1c734db
field: password field: password
podVariable: OIDC_RP_CLIENT_SECRET podVariable: OIDC_RP_CLIENT_SECRET
clusterSecretStore: bitwarden-login-visio clusterSecretStore: bitwarden-login-meet
image: image:
repository: localhost:5001/meet-backend repository: localhost:5001/meet-backend
pullPolicy: Always pullPolicy: Always

View File

@@ -1,13 +1,33 @@
apiVersion: external-secrets.io/v1beta1 apiVersion: external-secrets.io/v1beta1
kind: ClusterSecretStore kind: ClusterSecretStore
metadata: metadata:
name: bitwarden-login-visio name: bitwarden-login-{{ $.Release.Namespace }}
namespace: {{ $.Release.Namespace | quote }}
spec: spec:
provider: provider:
webhook: webhook:
url: "http://bitwarden-cli-visio.meet.svc.cluster.local:8087/object/item/{{`{{ .remoteRef.key }}`}}" url: "http://bitwarden-cli-{{ $.Release.Namespace }}.{{ $.Release.Namespace }}.svc.cluster.local:8087/object/item/{{`{{ .remoteRef.key }}`}}"
headers: headers:
Content-Type: application/json Content-Type: application/json
result: result:
jsonPath: "$.data.login.{{`{{ .remoteRef.property }}`}}" jsonPath: "$.data.login.{{`{{ .remoteRef.property }}`}}"
---
apiVersion: external-secrets.io/v1beta1
kind: ClusterSecretStore
metadata:
name: bitwarden-fields-{{ $.Release.Namespace }}
spec:
provider:
webhook:
url: "http://bitwarden-cli-{{ $.Release.Namespace }}.{{ $.Release.Namespace }}.svc.cluster.local:8087/object/item/{{`{{ .remoteRef.key }}`}}"
result:
jsonPath: "$.data.fields[?@.name==\"{{`{{ .remoteRef.property }}`}}\"].value"
---
apiVersion: external-secrets.io/v1beta1
kind: ClusterSecretStore
metadata:
name: bitwarden-attachments-{{ $.Release.Namespace }}
spec:
provider:
webhook:
url: "http://bitwarden-cli-{{ $.Release.Namespace }}.{{ $.Release.Namespace }}.svc.cluster.local:8087/object/attachment/{{`{{ .remoteRef.property }}`}}?itemid={{`{{ .remoteRef.key }}`}}"
result: {}

View File

@@ -2,7 +2,7 @@
apiVersion: apps/v1 apiVersion: apps/v1
kind: Deployment kind: Deployment
metadata: metadata:
name: bitwarden-cli-visio name: bitwarden-cli-{{ $.Release.Namespace }}
namespace: {{ $.Release.Namespace | quote }} namespace: {{ $.Release.Namespace | quote }}
labels: labels:
app.kubernetes.io/instance: bitwarden-cli app.kubernetes.io/instance: bitwarden-cli
@@ -29,17 +29,17 @@ spec:
- name: BW_HOST - name: BW_HOST
valueFrom: valueFrom:
secretKeyRef: secretKeyRef:
name: bitwarden-cli-visio name: bitwarden-cli-{{ $.Release.Namespace }}
key: BW_HOST key: BW_HOST
- name: BW_USER - name: BW_USER
valueFrom: valueFrom:
secretKeyRef: secretKeyRef:
name: bitwarden-cli-visio name: bitwarden-cli-{{ $.Release.Namespace }}
key: BW_USERNAME key: BW_USERNAME
- name: BW_PASSWORD - name: BW_PASSWORD
valueFrom: valueFrom:
secretKeyRef: secretKeyRef:
name: bitwarden-cli-visio name: bitwarden-cli-{{ $.Release.Namespace }}
key: BW_PASSWORD key: BW_PASSWORD
ports: ports:
- name: http - name: http
@@ -74,7 +74,7 @@ spec:
apiVersion: v1 apiVersion: v1
kind: Service kind: Service
metadata: metadata:
name: bitwarden-cli-visio name: bitwarden-cli-{{ $.Release.Namespace }}
namespace: {{ $.Release.Namespace | quote }} namespace: {{ $.Release.Namespace | quote }}
labels: labels:
app.kubernetes.io/instance: bitwarden-cli app.kubernetes.io/instance: bitwarden-cli