Skip to content

Commit 048af49

Browse files
authored
Add cht-user-managment-worker and redis to cht-user-management helm charts (#26)
* helm chart updated to deploy with redis and new vars. Worker added but still requires update to single base app to make ports and probes optional. * Added options around ports, services and probes in case app doesnt require them. Step needed for cht-user-management-worker to be able to use single-base-app without live deployment resource modifications * Working checkpoint! with semVer fixes in dependencies
1 parent aebb579 commit 048af49

File tree

8 files changed

+106
-17
lines changed

8 files changed

+106
-17
lines changed

charts/base-single-app/Chart.yaml

+2-2
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,8 @@ description: Single app helm chart to simplify configuration
44
home: https://github.com/medic/helm-charts/tree/gh-pages
55
icon: https://avatars.githubusercontent.com/u/474424?s=200&v=4
66

7-
type: library
7+
type: application
88

9-
version: 0.2.1
9+
version: 0.2.2
1010

1111
appVersion: ""

charts/base-single-app/templates/deployment.yaml

+4
Original file line numberDiff line numberDiff line change
@@ -36,8 +36,10 @@ spec:
3636
image: "{{ .Values.image.repository }}:{{ .Values.image.tag | default .Chart.AppVersion }}"
3737
imagePullPolicy: {{ .Values.image.pullPolicy }}
3838
env:
39+
{{- if .Values.service.enabled }}
3940
- name: PORT
4041
value: "{{ .Values.service.port }}"
42+
{{- end }}
4143
{{- range $key, $value := .Values.env }}
4244
- name: "{{ $key }}"
4345
value: "{{ $value }}"
@@ -49,6 +51,7 @@ spec:
4951
name: "{{ tpl (.secretName | toString) $ }}"
5052
key: "{{ .secretKey | default .env }}"
5153
{{- end }}
54+
{{- if .Values.service.enabled }}
5255
ports:
5356
- name: http
5457
containerPort: {{ .Values.service.port }}
@@ -61,6 +64,7 @@ spec:
6164
httpGet:
6265
path: /_healthz
6366
port: http
67+
{{- end }}
6468
resources:
6569
{{- toYaml .Values.resources | nindent 12 }}
6670
{{- with .Values.volumeMounts }}

charts/base-single-app/templates/service.yaml

+2
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
{{- if .Values.service.enabled }}
12
apiVersion: v1
23
kind: Service
34
metadata:
@@ -13,3 +14,4 @@ spec:
1314
name: http
1415
selector:
1516
{{- include "base-single-app.selectorLabels" . | nindent 4 }}
17+
{{- end }}

charts/cht-user-management/Chart.lock

+10-4
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,12 @@
11
dependencies:
22
- name: base-single-app
3-
repository: https://docs.communityhealthtoolkit.org/helm-charts
4-
version: 0.2.0
5-
digest: sha256:284a3dc5e9eb4c400a3abff6f49faa047ad11d2dbbc873e8adf8829cde321aae
6-
generated: "2024-04-10T11:32:50.118338+02:00"
3+
repository: file://../base-single-app
4+
version: 0.2.2
5+
- name: base-single-app
6+
repository: file://../base-single-app
7+
version: 0.2.2
8+
- name: redis
9+
repository: https://charts.bitnami.com/bitnami
10+
version: 16.13.2
11+
digest: sha256:cd591bdfad18b05b5cc473ffd5796b630ac8e10248ae6e7ca4f0b716e78369a2
12+
generated: "2024-10-29T16:04:11.007238-06:00"

charts/cht-user-management/Chart.yaml

+14-3
Original file line numberDiff line numberDiff line change
@@ -6,13 +6,24 @@ icon: https://avatars.githubusercontent.com/u/474424?s=200&v=4
66

77
type: application
88

9-
version: 0.2.1
9+
version: 0.2.2
1010

1111
dependencies:
1212
- alias: cht-user-management
1313
name: base-single-app
14-
version: "0.2.0"
14+
version: "0.2.2"
15+
#repository: file://../base-single-app
1516
repository: https://docs.communityhealthtoolkit.org/helm-charts
16-
# repository: file://../base-single-app
17+
18+
- alias: cht-user-management-worker
19+
name: base-single-app
20+
version: "0.2.2"
21+
repository: https://docs.communityhealthtoolkit.org/helm-charts
22+
#repository: file://../base-single-app
23+
24+
- alias: redis
25+
name: redis
26+
version: "16.13.2"
27+
repository: https://charts.bitnami.com/bitnami
1728

1829
appVersion: ""

charts/cht-user-management/templates/_secret.tpl

+10-1
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ If release name contains chart name it will be used as a full name.
1717
{{- end }}
1818

1919
{{/*
20-
Looks if there is an existing secret and reuse its key. If not generate a new key and use it.
20+
Looks if there is existing secrets and reuse their keys. If not generate new keys and use them.
2121
*/}}
2222
{{- define "chtUserManagement.COOKIE_PRIVATE_KEY" -}}
2323
{{- $secret := (lookup "v1" "Secret" (.Release.Namespace) (include "chtUserManagement.fullname" .) ) }}
@@ -27,3 +27,12 @@ Looks if there is an existing secret and reuse its key. If not generate a new ke
2727
{{- (randAlphaNum 45) | b64enc | quote }}
2828
{{- end }}
2929
{{- end }}
30+
31+
{{- define "chtUserManagement.WORKER_PRIVATE_KEY" -}}
32+
{{- $secret := (lookup "v1" "Secret" (.Release.Namespace) (include "chtUserManagement.fullname" .) ) }}
33+
{{- if $secret }}
34+
{{- index $secret "data" "WORKER_PRIVATE_KEY" }}
35+
{{- else }}
36+
{{- (randAlphaNum 45) | b64enc | quote }}
37+
{{- end }}
38+
{{- end }}

charts/cht-user-management/templates/secret.yaml

+1
Original file line numberDiff line numberDiff line change
@@ -7,3 +7,4 @@ metadata:
77
type: Opaque
88
data:
99
COOKIE_PRIVATE_KEY: {{ include "chtUserManagement.COOKIE_PRIVATE_KEY" . }}
10+
WORKER_PRIVATE_KEY: {{ include "chtUserManagement.WORKER_PRIVATE_KEY" . }}
+63-7
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,75 @@
11
cht-user-management:
22
replicaCount: 1
3-
43
service:
54
port: 3000
6-
5+
enabled: true
76
image:
87
repository: public.ecr.aws/medic/cht-user-management
9-
tag: "" # Set this to the version of the docker image
8+
tag: "1.4.1" # Set this to the version of the docker image
109

1110
# Environment variablues to set in the pod, for example:
1211
# env:
1312
# CONFIG_NAME: changeme
14-
env: {}
15-
13+
# REDIS_HOST: {{ Release.Name }}-redis-master.{{ .Release.Namespace }}.svc.cluster.local
14+
env:
15+
NODE_ENV: dev
16+
CHT_DEV_HTTP: false
17+
CHT_DEV_URL_PORT: hareet-test.dev.medicmobile.org
18+
CONFIG_NAME: chis-tg
19+
REDIS_HOST: test-user-management-redis-master.hareet-test.svc.cluster.local
20+
REDIS_PORT: 6379
1621
envSecrets:
17-
# COOKIE_PRIVATE_KEY will be automatically generated if it doesn't exist
22+
# COOKIE/WORKER_PRIVATE_KEY will be automatically generated if it doesn't exist
1823
- env: COOKIE_PRIVATE_KEY
19-
secretName: '{{ include "chtUserManagement.fullname" . }}'
24+
secretName: "{{ .Release.Name }}-cht-user-management"
25+
- env: WORKER_PRIVATE_KEY
26+
secretName: "{{ .Release.Name }}-cht-user-management"
27+
28+
ingress:
29+
annotations:
30+
alb.ingress.kubernetes.io/certificate-arn: arn:aws:iam::720541322708:server-certificate/2024-wildcard-dev-medicmobile-org-chain
31+
alb.ingress.kubernetes.io/group.name: dev-cht-alb
32+
alb.ingress.kubernetes.io/healthcheck-port: traffic-port
33+
alb.ingress.kubernetes.io/listen-ports: '[{"HTTP": 80}, {"HTTPS": 443}]'
34+
alb.ingress.kubernetes.io/scheme: internet-facing
35+
alb.ingress.kubernetes.io/ssl-redirect: "443"
36+
alb.ingress.kubernetes.io/tags: Environment=dev,Team=QA
37+
alb.ingress.kubernetes.io/target-type: ip
38+
className: alb
39+
enabled: true
40+
hosts:
41+
- host: hareet-test-users.dev.medicmobile.org
42+
paths:
43+
- path: /
44+
pathType: Prefix
45+
46+
47+
cht-user-management-worker:
48+
# Our worker does not need any ports exposed, services, healtchecks, so we toggle this to false
49+
# to prevent single-base-app from templating and creating those resources
50+
service:
51+
enabled: false
52+
replicaCount: 1
53+
image:
54+
repository: public.ecr.aws/medic/cht-user-management-worker
55+
tag: "1.4.1"
56+
env:
57+
NODE_ENV: dev
58+
REDIS_HOST: test-user-management-redis-master.hareet-test.svc.cluster.local
59+
REDIS_PORT: 6379
60+
envSecrets:
61+
- env: WORKER_PRIVATE_KEY
62+
secretName: "{{ .Release.Name }}-cht-user-management"
63+
64+
65+
redis:
66+
architecture: standalone
67+
replica:
68+
replicaCount: 1
69+
persistence:
70+
enabled: true
71+
storageClass: ebs-gp2
72+
size: 8Gi
73+
auth:
74+
enabled: false
75+

0 commit comments

Comments
 (0)