Skip to content

Commit 3b891e4

Browse files
committed
feat: reuse settings and secrets with a template injection
1 parent 9dfedca commit 3b891e4

16 files changed

+214
-148
lines changed

.gitignore

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,3 +16,6 @@ example.com\+5.pem
1616
example.com\+6-key.pem
1717

1818
example.com\+6.pem
19+
20+
# Chart dependencies
21+
**/charts/*.tgz

Chart.lock

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,9 @@
11
dependencies:
2+
- name: rabbitmq
3+
repository: https://charts.bitnami.com/bitnami
4+
version: 9.1.4
25
- name: cert-manager
3-
repository: https://charts.jetstack.io/
6+
repository: https://charts.jetstack.io
47
version: v1.1.0
5-
digest: sha256:50d9686126f61b7d7b8a50112464b41ac426a483ae053b4820c9e5f953cf7b76
6-
generated: "2021-01-29T14:30:59.744116786-06:00"
8+
digest: sha256:16a0d329ffcd4f4ec533d51af30ac1c014066795596729f5572bf93a379a5416
9+
generated: "2022-05-23T09:23:56.111110299-06:00"

Chart.yaml

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,10 +15,16 @@ type: application
1515
# This is the chart version. This version number should be incremented each time you make changes
1616
# to the chart and its templates, including the app version.
1717
# Versions are expected to follow Semantic Versioning (https://semver.org/)
18-
version: 0.1.0
18+
version: 0.2.0
1919

2020
# This is the version number of the application being deployed. This version number should be
2121
# incremented each time you make changes to the application. Versions are not expected to
2222
# follow Semantic Versioning. They should reflect the version the application is using.
2323
# It is recommended to use it with quotes.
24-
appVersion: "0.0.1"
24+
appVersion: "0.0.1"
25+
26+
dependencies:
27+
- name: rabbitmq
28+
version: 9.1.4
29+
repository: https://charts.bitnami.com/bitnami
30+
condition: useRabbitMq

templates/default/configmap.yaml

Lines changed: 1 addition & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -3,29 +3,4 @@ kind: ConfigMap
33
metadata:
44
name: diffgram-default-configmap
55
data:
6-
USERDOMAIN: {{ .Values.diffgramSettings.USERDOMAIN }}
7-
DIFFGRAM_SYSTEM_MODE: {{ .Values.diffgramSettings.DIFFGRAM_SYSTEM_MODE }}
8-
DIFFGRAM_STATIC_STORAGE_PROVIDER: {{ .Values.diffgramSettings.DIFFGRAM_STATIC_STORAGE_PROVIDER }}
9-
DIFFGRAM_S3_BUCKET_NAME: {{ .Values.diffgramSettings.DIFFGRAM_S3_BUCKET_NAME }}
10-
ML__DIFFGRAM_S3_BUCKET_NAME: {{ .Values.diffgramSettings.ML__DIFFGRAM_S3_BUCKET_NAME }}
11-
GOOGLE_APPLICATION_CREDENTIALS: /etc/gcp/sa_credentials.json # Check the volume in deployment.yaml and service_account_secret.yaml
12-
CLOUD_STORAGE_BUCKET: {{ .Values.diffgramSettings.CLOUD_STORAGE_BUCKET }}
13-
ML__CLOUD_STORAGE_BUCKET: {{ .Values.diffgramSettings.ML__CLOUD_STORAGE_BUCKET }}
14-
URL_BASE: {{ .Values.diffgramDomain }}
15-
WALRUS_SERVICE_URL_BASE: {{ .Values.diffgramSettings.WALRUS_SERVICE_URL_BASE }}
16-
SERVICE_ACCOUNT_FULL_PATH: {{ .Values.diffgramSettings.SERVICE_ACCOUNT_FULL_PATH }}
17-
DIFFGRAM_AZURE_CONTAINER_NAME: {{ .Values.diffgramSettings.DIFFGRAM_AZURE_CONTAINER_NAME }}
18-
ML__DIFFGRAM_AZURE_CONTAINER_NAME: {{ .Values.diffgramSettings.ML__DIFFGRAM_AZURE_CONTAINER_NAME }}
19-
DIFFGRAM_INSTALL_FINGERPRINT: {{ .Values.diffgramSettings.DIFFGRAM_INSTALL_FINGERPRINT }}
20-
DIFFGRAM_VERSION_TAG: {{ .Values.diffgramVersion }}
21-
DIFFGRAM_HOST_OS: {{ .Values.diffgramSettings.DIFFGRAM_HOST_OS }}
22-
DATABASE_CONNECTION_POOL_SIZE: {{ .Values.diffgramSettings.DATABASE_CONNECTION_POOL_SIZE }}
23-
PYTHONPATH: "/app:/app/shared:/"
24-
PROCESS_MEDIA_NUM_VIDEO_THREADS: {{ .Values.diffgramSettings.PROCESS_MEDIA_NUM_VIDEO_THREADS }}
25-
PROCESS_MEDIA_NUM_FRAME_THREADS: {{ .Values.diffgramSettings.PROCESS_MEDIA_NUM_FRAME_THREADS }}
26-
NEW_RELIC_LICENSE_KEY: {{ .Values.diffgramSettings.NEW_RELIC_LICENSE_KEY }}
27-
EMAIL_DOMAIN_NAME: {{ .Values.diffgramSettings.EMAIL_DOMAIN_NAME }}
28-
ALLOW_EVENTHUB: {{ .Values.diffgramSettings.ALLOW_EVENTHUB }}
29-
EMAIL_VALIDATION: {{ .Values.diffgramSettings.EMAIL_VALIDATION }}
30-
ALLOW_STRIPE_BILLING: {{ .Values.diffgramSettings.ALLOW_STRIPE_BILLING }}
31-
IS_OPEN_SOURCE: {{ .Values.diffgramSettings.IS_OPEN_SOURCE }}
6+
{{- template "diffgram.settings" . }}

templates/default/secrets.yaml

Lines changed: 1 addition & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -4,23 +4,4 @@ metadata:
44
name: diffgram-default-secrets
55
type: Opaque
66
stringData:
7-
STRIPE_API_KEY: {{ .Values.diffgramSecrets.STRIPE_API_KEY }}
8-
DIFFGRAM_AWS_ACCESS_KEY_SECRET: {{ .Values.diffgramSecrets.DIFFGRAM_AWS_ACCESS_KEY_SECRET }}
9-
DIFFGRAM_AWS_ACCESS_KEY_ID: {{ .Values.diffgramSecrets.DIFFGRAM_AWS_ACCESS_KEY_ID }}
10-
_ANALYTICS_WRITE_KEY: {{ .Values.diffgramSecrets._ANALYTICS_WRITE_KEY }}
11-
MAILGUN_KEY: {{ .Values.diffgramSecrets.MAILGUN_KEY }}
12-
HUB_SPOT_KEY: {{ .Values.diffgramSecrets.HUB_SPOT_KEY }}
13-
SECRET_KEY: {{ .Values.diffgramSecrets.SECRET_KEY }}
14-
INTER_SERVICE_SECRET: {{ .Values.diffgramSecrets.INTER_SERVICE_SECRET }}
15-
FERNET_KEY: {{ .Values.diffgramSecrets.FERNET_KEY }}
16-
{{ if eq .Values.dbSettings.dbProvider "local"}}
17-
DATABASE_URL: "postgresql+psycopg2://{{ .Values.dbSettings.dbUser }}:{{ .Values.dbSettings.dbPassword }}@diffgram-postgres/{{ .Values.dbSettings.dbName }}"
18-
{{ end }}
19-
{{ if eq .Values.dbSettings.dbProvider "rds"}}
20-
DATABASE_URL: "postgresql+psycopg2://{{ .Values.dbSettings.dbUser }}:{{ .Values.dbSettings.dbPassword }}@postgres-rds-service/{{ .Values.dbSettings.dbName }}"
21-
{{ end }}
22-
{{ if eq .Values.dbSettings.dbProvider "azure"}}
23-
DATABASE_URL: "postgresql+psycopg2://{{ .Values.dbSettings.dbUser }}:{{ .Values.dbSettings.dbPassword }}@postgres-azure-service/{{ .Values.dbSettings.dbName }}"
24-
{{ end }}
25-
USER_PASSWORDS_SECRET: {{ .Values.diffgramSecrets.USER_PASSWORDS_SECRET }}
26-
DIFFGRAM_AZURE_CONNECTION_STRING: {{ .Values.diffgramSecrets.DIFFGRAM_AZURE_CONNECTION_STRING }}
7+
{{- template "diffgram.secrets" . }}

templates/diffgram_settings.tpl

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
{{- define "diffgram.settings" }}
2+
USERDOMAIN: {{ .Values.diffgramSettings.USERDOMAIN }}
3+
DIFFGRAM_SYSTEM_MODE: {{ .Values.diffgramSettings.DIFFGRAM_SYSTEM_MODE }}
4+
DIFFGRAM_STATIC_STORAGE_PROVIDER: {{ .Values.diffgramSettings.DIFFGRAM_STATIC_STORAGE_PROVIDER }}
5+
DIFFGRAM_S3_BUCKET_NAME: {{ .Values.diffgramSettings.DIFFGRAM_S3_BUCKET_NAME }}
6+
ML__DIFFGRAM_S3_BUCKET_NAME: {{ .Values.diffgramSettings.ML__DIFFGRAM_S3_BUCKET_NAME }}
7+
GOOGLE_APPLICATION_CREDENTIALS: /etc/gcp/sa_credentials.json # Check the volume in deployment.yaml and service_account_secret.yaml
8+
CLOUD_STORAGE_BUCKET: {{ .Values.diffgramSettings.CLOUD_STORAGE_BUCKET }}
9+
ML__CLOUD_STORAGE_BUCKET: {{ .Values.diffgramSettings.ML__CLOUD_STORAGE_BUCKET }}
10+
URL_BASE: {{ .Values.diffgramDomain }}
11+
WALRUS_SERVICE_URL_BASE: {{ .Values.diffgramSettings.WALRUS_SERVICE_URL_BASE }}
12+
SERVICE_ACCOUNT_FULL_PATH: {{ .Values.diffgramSettings.SERVICE_ACCOUNT_FULL_PATH }}
13+
DIFFGRAM_AZURE_CONTAINER_NAME: {{ .Values.diffgramSettings.DIFFGRAM_AZURE_CONTAINER_NAME }}
14+
ML__DIFFGRAM_AZURE_CONTAINER_NAME: {{ .Values.diffgramSettings.ML__DIFFGRAM_AZURE_CONTAINER_NAME }}
15+
DIFFGRAM_INSTALL_FINGERPRINT: {{ .Values.diffgramSettings.DIFFGRAM_INSTALL_FINGERPRINT }}
16+
DIFFGRAM_VERSION_TAG: {{ .Values.diffgramVersion }}
17+
DIFFGRAM_HOST_OS: {{ .Values.diffgramSettings.DIFFGRAM_HOST_OS }}
18+
DATABASE_CONNECTION_POOL_SIZE: {{ .Values.diffgramSettings.DATABASE_CONNECTION_POOL_SIZE }}
19+
PYTHONPATH: "/app:/app/shared:/"
20+
PROCESS_MEDIA_NUM_VIDEO_THREADS: {{ .Values.diffgramSettings.PROCESS_MEDIA_NUM_VIDEO_THREADS }}
21+
PROCESS_MEDIA_NUM_FRAME_THREADS: {{ .Values.diffgramSettings.PROCESS_MEDIA_NUM_FRAME_THREADS }}
22+
NEW_RELIC_LICENSE_KEY: {{ .Values.diffgramSettings.NEW_RELIC_LICENSE_KEY }}
23+
EMAIL_DOMAIN_NAME: {{ .Values.diffgramSettings.EMAIL_DOMAIN_NAME }}
24+
ALLOW_EVENTHUB: {{ .Values.diffgramSettings.ALLOW_EVENTHUB }}
25+
EMAIL_VALIDATION: {{ .Values.diffgramSettings.EMAIL_VALIDATION }}
26+
ALLOW_STRIPE_BILLING: {{ .Values.diffgramSettings.ALLOW_STRIPE_BILLING }}
27+
IS_OPEN_SOURCE: {{ .Values.diffgramSettings.IS_OPEN_SOURCE }}
28+
DIFFGRAM_MINIO_ENDPOINT_URL: {{.Values.diffgramSettings.DIFFGRAM_MINIO_ENDPOINT_URL}}
29+
DIFFGRAM_MINIO_ACCESS_KEY_ID: {{.Values.diffgramSettings.DIFFGRAM_MINIO_ACCESS_KEY_ID}}
30+
DIFFGRAM_MINIO_ACCESS_KEY_SECRET: {{.Values.diffgramSettings.DIFFGRAM_MINIO_ACCESS_KEY_SECRET}}
31+
DIFFGRAM_MINIO_DISABLED_SSL_VERIFY: {{.Values.diffgramSettings.DIFFGRAM_MINIO_DISABLED_SSL_VERIFY}}
32+
RABBITMQ_HOST: {{.Values.diffgramSettings.RABBITMQ_HOST}}
33+
RABBITMQ_PORT: {{.Values.diffgramSettings.RABBITMQ_PORT}}
34+
RABBITMQ_DEFAULT_USER: {{.Values.rabbitmq.auth.rabbitmq}}
35+
{{- end }}

templates/diffgrams_secrets.tpl

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
{{- define "diffgram.secrets" }}
2+
STRIPE_API_KEY: {{ .Values.diffgramSecrets.STRIPE_API_KEY }}
3+
DIFFGRAM_AWS_ACCESS_KEY_SECRET: {{ .Values.diffgramSecrets.DIFFGRAM_AWS_ACCESS_KEY_SECRET }}
4+
DIFFGRAM_AWS_ACCESS_KEY_ID: {{ .Values.diffgramSecrets.DIFFGRAM_AWS_ACCESS_KEY_ID }}
5+
_ANALYTICS_WRITE_KEY: {{ .Values.diffgramSecrets._ANALYTICS_WRITE_KEY }}
6+
MAILGUN_KEY: {{ .Values.diffgramSecrets.MAILGUN_KEY }}
7+
HUB_SPOT_KEY: {{ .Values.diffgramSecrets.HUB_SPOT_KEY }}
8+
SECRET_KEY: {{ .Values.diffgramSecrets.SECRET_KEY }}
9+
INTER_SERVICE_SECRET: {{ .Values.diffgramSecrets.INTER_SERVICE_SECRET }}
10+
FERNET_KEY: {{ .Values.diffgramSecrets.FERNET_KEY }}
11+
{{ if eq .Values.dbSettings.dbProvider "local"}}
12+
DATABASE_URL: "postgresql+psycopg2://{{ .Values.dbSettings.dbUser }}:{{ .Values.dbSettings.dbPassword }}@diffgram-postgres/{{ .Values.dbSettings.dbName }}"
13+
{{ end }}
14+
{{ if eq .Values.dbSettings.dbProvider "rds"}}
15+
DATABASE_URL: "postgresql+psycopg2://{{ .Values.dbSettings.dbUser }}:{{ .Values.dbSettings.dbPassword }}@postgres-rds-service/{{ .Values.dbSettings.dbName }}"
16+
{{ end }}
17+
{{ if eq .Values.dbSettings.dbProvider "azure"}}
18+
DATABASE_URL: "postgresql+psycopg2://{{ .Values.dbSettings.dbUser }}:{{ .Values.dbSettings.dbPassword }}@postgres-azure-service/{{ .Values.dbSettings.dbName }}"
19+
{{ end }}
20+
USER_PASSWORDS_SECRET: {{ .Values.diffgramSecrets.USER_PASSWORDS_SECRET }}
21+
DIFFGRAM_AZURE_CONNECTION_STRING: {{ .Values.diffgramSecrets.DIFFGRAM_AZURE_CONNECTION_STRING }}
22+
RABBITMQ_DEFAULT_PASS: {{ .Values.rabbitmq.auth.password }}
23+
{{- end }}
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
apiVersion: v1
2+
kind: ConfigMap
3+
metadata:
4+
name: diffgram-eventhandlers-configmap
5+
data:
6+
{{- template "diffgram.settings" . }}
Lines changed: 77 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,77 @@
1+
apiVersion: apps/v1
2+
kind: Deployment
3+
metadata:
4+
labels:
5+
app: diffgram-eventhandlers
6+
name: diffgram-eventhandlers
7+
namespace: {{ .Release.Namespace }}
8+
spec:
9+
replicas: {{ .Values.defaultService.numReplicas }}
10+
selector:
11+
matchLabels:
12+
app: diffgram-eventhandlers
13+
template:
14+
metadata:
15+
labels:
16+
app: diffgram-eventhandlers
17+
spec:
18+
{{ if .Values.nodeGroupLabel }}
19+
nodeSelector:
20+
poolName: {{ .Values.nodeGroupLabel }}
21+
{{ end }}
22+
{{ if eq .Values.diffgramEdition "enterprise"}}
23+
imagePullSecrets:
24+
- name: diffgramsecret
25+
{{ end }}
26+
volumes:
27+
{{ if eq .Values.diffgramSettings.DIFFGRAM_STATIC_STORAGE_PROVIDER "gcp"}}
28+
- name: service-account-credentials-volume
29+
secret:
30+
secretName: gcp-service-account-credentials
31+
items:
32+
- key: sa_json
33+
path: sa_credentials.json
34+
{{ end }}
35+
initContainers:
36+
- name: check-db-ready
37+
image: postgres:11
38+
{{ if eq .Values.dbSettings.dbProvider "local"}}
39+
command: ['sh', '-c',
40+
'until pg_isready -h diffgram-postgres -p 5432;
41+
do echo waiting for database; sleep 2; done;']
42+
{{ end }}
43+
{{ if eq .Values.dbSettings.dbProvider "rds"}}
44+
command: ['sh', '-c', 'until pg_isready -h postgres-rds-service -p 5432; do echo waiting for database; sleep 2; done;']
45+
{{ end }}
46+
{{ if eq .Values.dbSettings.dbProvider "azure"}}
47+
command: ['sh', '-c', 'until pg_isready -h postgres-azure-service -p 5432; do echo waiting for database; sleep 2; done;']
48+
{{ end }}
49+
containers:
50+
{{ if eq .Values.diffgramEdition "enterprise"}}
51+
- image: gcr.io/diffgram-enterprise/eventhandlers:{{ .Values.diffgramVersion }}
52+
{{ end }}
53+
{{ if eq .Values.diffgramEdition "opencore"}}
54+
- image: gcr.io/diffgram-open-core/eventhandlers:{{ .Values.diffgramVersion }}
55+
{{ end }}
56+
imagePullPolicy: Always
57+
name: diffgram-default
58+
ports:
59+
- containerPort: 8080
60+
{{ if eq .Values.diffgramSettings.DIFFGRAM_STATIC_STORAGE_PROVIDER "gcp"}}
61+
volumeMounts:
62+
- name: service-account-credentials-volume
63+
mountPath: /etc/gcp
64+
readOnly: true
65+
{{ end }}
66+
envFrom:
67+
- configMapRef:
68+
name: diffgram-eventhandlers-configmap
69+
- secretRef:
70+
name: diffgram-eventhandlers-secrets
71+
resources:
72+
requests:
73+
cpu: {{ .Values.eventHandlersService.requests.cpu }}
74+
memory: {{ .Values.eventHandlersService.requests.memory }}
75+
limits:
76+
cpu: {{ .Values.eventHandlersService.limits.cpu }}
77+
memory: {{ .Values.eventHandlersService.limits.memory }}
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
apiVersion: v1
2+
kind: Secret
3+
metadata:
4+
name: diffgram-eventhandlers-secrets
5+
type: Opaque
6+
stringData:
7+
{{- template "diffgram.secrets" . }}

0 commit comments

Comments
 (0)