Skip to content

Commit e23a5cf

Browse files
committed
bump 0.1.5
1. add deployment update strategy 2. update deployment when config changed 3. add missing env ( image / connection ) 4. add readinessProb
1 parent 35ea8d7 commit e23a5cf

5 files changed

Lines changed: 137 additions & 9 deletions

File tree

charts/codimd/Chart.yaml

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,10 +7,8 @@ keywords:
77
- markdown
88
- collaboration
99
maintainers:
10-
- name: HackMD Inc.
10+
- name: HackMD Inc. Dev Team
1111
email: support@hackmd.io
12-
- name: Raccoon Li
13-
email: raccoon@hackmd.io
1412

1513
sources:
1614
- https://github.com/hackmdio/codimd
@@ -20,7 +18,7 @@ kubeVersion: ">=1.14.0-0"
2018

2119
# This is the chart version. This version number should be incremented each time you make changes
2220
# to the chart and its templates, including the app version.
23-
version: 0.1.4
21+
version: 0.1.5
2422

2523
# This is the version number of the application being deployed. This version number should be
2624
# incremented each time you make changes to the application.

charts/codimd/templates/NOTES.txt

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,10 +5,14 @@ Your release is named {{ .Release.Name }}.
55
Browse https://hackmd.io/c/codimd-documentation to get more information about CodiMD.
66

77
{{ if contains "changeit" .Values.codimd.security.sessionSecret }}
8+
===============================================================================================
9+
10+
Important:
11+
812
For the security reason, please consider change codimd.security.sessionSecret to random secret.
9-
{{ end }}
10-
===========================
1113

14+
===============================================================================================
15+
{{ end }}
1216
{{ if contains "LoadBalancer" .Values.service.type }}
1317
NOTE: It may take a few minutes for the LoadBalancer IP to be available.
1418
Watch the status with: 'kubectl get svc --namespace {{ .Release.Namespace }} -w {{ template "codimd.fullname" . }} '

charts/codimd/templates/_helpers.tpl

Lines changed: 33 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -109,7 +109,7 @@ Return the appropriate apiVersion for deployment.
109109
{{- end -}}
110110

111111
{{/*
112-
Return the proper Storage Class for the master
112+
Return the proper Storage Class
113113
*/}}
114114
{{- define "codimd.storageClass" -}}
115115
{{/*
@@ -137,4 +137,36 @@ but Helm 2.9 and 2.10 does not support it, so we need to implement this if-else
137137
{{- printf "storageClassName: %s" .Values.codimd.imageStorePersistentVolume.storageClass -}}
138138
{{- end -}}
139139
{{- end -}}
140+
{{- end -}}
141+
142+
{{/*
143+
Return need create image secret
144+
*/}}
145+
{{- define "codimd.needImageSecret" -}}
146+
{{- $imgur := false -}}
147+
{{- $s3 := false -}}
148+
{{- $minio := false -}}
149+
{{- $azure := false -}}
150+
{{- if .Values.codimd.imageUpload.imgur -}}
151+
{{- if .Values.codimd.imageUpload.imgur.clientId -}}
152+
{{- $imgur = true -}}
153+
{{- end -}}
154+
{{- end -}}
155+
{{- if .Values.codimd.imageUpload.s3 -}}
156+
{{- if .Values.codimd.imageUpload.s3.accessKeyId -}}
157+
{{- $s3 = true -}}
158+
{{- end -}}
159+
{{- end -}}
160+
{{- if .Values.codimd.imageUpload.minio -}}
161+
{{- if .Values.codimd.imageUpload.minio.accessKey -}}
162+
{{- $minio = true -}}
163+
{{- end -}}
164+
{{- end -}}
165+
{{- if .Values.codimd.imageUpload.azure -}}
166+
{{- if .Values.codimd.imageUpload.azure.connectionString -}}
167+
{{- $azure = true -}}
168+
{{- end -}}
169+
{{- end -}}
170+
{{- $needImage := (or $imgur (or $s3 (or $minio $azure))) -}}
171+
{{- print $needImage -}}
140172
{{- end -}}

charts/codimd/templates/deployment.yaml

Lines changed: 46 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,18 +7,39 @@ metadata:
77
{{- include "codimd.labels" . | nindent 4 }}
88
spec:
99
replicas: 1
10+
strategy:
11+
{{ if .Values.codimd.imageStorePersistentVolume.enabled }}
12+
type: Recreate
13+
{{ else }}
14+
{{/* Because of CodiMD using socket.io as realtime server, if their has many instances may breaking note contents */}}
15+
type: RollingUpdate
16+
rollingUpdate:
17+
maxSurge: 1
18+
maxUnavailable: 1
19+
{{ end }}
1020
selector:
1121
matchLabels:
1222
app.kubernetes.io/component: server
13-
{{- include "codimd.labels" . | nindent 6 }}
23+
app.kubernetes.io/name: {{ include "codimd.name" . }}
24+
app.kubernetes.io/instance: {{ .Release.Name }}
1425
template:
1526
metadata:
1627
name: {{ template "codimd.fullname" . }}
1728
labels:
1829
app.kubernetes.io/component: server
1930
{{- include "codimd.labels" . | nindent 8 }}
2031
annotations:
32+
checksum/db-secret: {{ include (print $.Template.BasePath "/db-secret.yaml") . | sha256sum | quote }}
33+
checksum/auth-secret: {{ include (print $.Template.BasePath "/auth-secret.yaml") . | sha256sum | quote }}
34+
{{ if .Values.codimd.security.sessionSecret }}
35+
checksum/session-secret: {{ include (print $.Template.BasePath "/session-secret.yaml") . | sha256sum | quote }}
36+
{{ end }}
37+
{{ if contains "true" (include "codimd.needImageSecret" .) }}
38+
checksum/session-secret: {{ include (print $.Template.BasePath "/image-upload-secret.yaml") . | sha256sum | quote }}
39+
{{ end }}
40+
{{ if .Values.codimd.podAnnotations }}
2141
{{ toYaml .Values.codimd.podAnnotations | nindent 8 }}
42+
{{ end }}
2243
spec:
2344
{{ if .Values.codimd.securityContext }}
2445
securityContext:
@@ -45,7 +66,15 @@ spec:
4566
image: {{ template "codimd.image" . }}
4667
imagePullPolicy: {{ .Values.image.pullPolicy | quote }}
4768
env:
48-
- name: CMD_USE_CDN
69+
{{ if .Values.codimd.connection.domain }}
70+
- name: CMD_DOMAIN
71+
value: {{ .Values.codimd.connection.domain | quote }}
72+
{{ end }}
73+
- name: CMD_URL_ADDPORT
74+
value: {{ .Values.codimd.connection.urlAddPort | quote }}
75+
- name: CMD_PROTOCOL_USESSL
76+
value: {{ .Values.codimd.connection.protocolUseSSL | quote }}
77+
- name: CMD_USECDN
4978
value: {{ .Values.codimd.security.useCDN | quote }}
5079
- name: CMD_DB_URL
5180
valueFrom:
@@ -76,6 +105,8 @@ spec:
76105
value: {{ .Values.codimd.security.allowGravatar | quote }}
77106
- name: CMD_RESPONSE_MAX_LAG
78107
value: {{ .Values.codimd.responseMaxLag | quote }}
108+
- name: CMD_IMAGE_UPLOAD_TYPE
109+
value: {{ .Values.codimd.imageUpload.storeType | quote }}
79110
- name: CMD_ALLOW_FREEURL
80111
value: {{ .Values.codimd.noteCreation.freeUrlEnabled | quote }}
81112
- name: CMD_FORBIDDEN_NOTE_IDS
@@ -111,6 +142,10 @@ spec:
111142
- secretRef:
112143
name: {{ template "codimd.shortName" . }}-session
113144
{{ end }}
145+
{{ if contains "true" (include "codimd.needImageSecret" .) }}
146+
- secretRef:
147+
name: {{ template "codimd.shortName" . }}-image-upload
148+
{{ end }}
114149
ports:
115150
- name: http
116151
containerPort: 3000
@@ -119,6 +154,15 @@ spec:
119154
- mountPath: /home/hackmd/app/public/uploads
120155
name: image-store
121156
{{ end }}
157+
readinessProbe:
158+
httpGet:
159+
port: 3000
160+
path: /status
161+
initialDelaySeconds: 3
162+
failureThreshold: 2
163+
successThreshold: 3
164+
timeoutSeconds: 2
165+
periodSeconds: 5
122166
restartPolicy: Always
123167
{{ if .Values.codimd.imageStorePersistentVolume.enabled }}
124168
volumes:
Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
{{ if contains "true" (include "codimd.needImageSecret" .) }}
2+
apiVersion: v1
3+
kind: Secret
4+
metadata:
5+
name: {{ template "codimd.shortName" . }}-image-upload
6+
labels:
7+
app.kubernetes.io/component: image-upload-secret
8+
{{ include "codimd.labels" . | nindent 4 }}
9+
stringData:
10+
{{/* imgur */}}
11+
{{- if .Values.codimd.imageUpload.imgur -}}
12+
{{- if .Values.codimd.imageUpload.imgur.clientId -}}
13+
CMD_IMGUR_CLIENTID: {{ .Values.codimd.imageUpload.imgur.clientId | quote }}
14+
{{ end }}
15+
{{- end -}}
16+
17+
{{/* s3 */}}
18+
{{- if .Values.codimd.imageUpload.s3 -}}
19+
{{- if .Values.codimd.imageUpload.s3.accessKeyId -}}
20+
CMD_S3_ACCESS_KEY_ID: {{ default "" .Values.codimd.imageUpload.s3.accessKeyId | quote }}
21+
CMD_S3_SECRET_ACCESS_KEY: {{ default "" .Values.codimd.imageUpload.s3.secretKey | quote }}
22+
CMD_S3_BUCKET: {{ default "" .Values.codimd.imageUpload.s3.bucket | quote }}
23+
{{ if .Values.codimd.imageUpload.s3.region }}
24+
CMD_S3_REGION: {{ .Values.codimd.imageUpload.s3.region }}
25+
{{ end }}
26+
{{ if .Values.codimd.imageUpload.s3.endpoint }}
27+
CMD_S3_ENDPOINT: {{ .Values.codimd.imageUpload.s3.endpoint }}
28+
{{ end }}
29+
{{ end }}
30+
{{- end -}}
31+
32+
{{/* minio */}}
33+
{{- if .Values.codimd.imageUpload.minio -}}
34+
{{- if .Values.codimd.imageUpload.minio.accessKey -}}
35+
CMD_MINIO_ACCESS_KEY: {{ default "" .Values.codimd.imageUpload.minio.accessKey | quote }}
36+
CMD_MINIO_SECRET_KEY: {{ default "" .Values.codimd.imageUpload.minio.secretKey | quote }}
37+
CMD_MINIO_ENDPOINT: {{ default "" .Values.codimd.imageUpload.minio.endpoint | quote }}
38+
CMD_MINIO_SECURE: {{ default "true" .Values.codimd.imageUpload.minio.secure | quote }}
39+
CMD_MINIO_PORT: {{ default "" .Values.codimd.imageUpload.minio.port | quote }}
40+
{{ end }}
41+
{{ end }}
42+
43+
{{/* azure */}}
44+
{{- if .Values.codimd.imageUpload.azure -}}
45+
{{- if .Values.codimd.imageUpload.azure.connectionString -}}
46+
CMD_AZURE_CONNECTION_STRING: {{ default "" .Values.codimd.imageUpload.azure.connectionString | quote }}
47+
CMD_AZURE_CONTAINER: {{ default "" .Values.codimd.imageUpload.azure.container | quote }}
48+
{{ end }}
49+
{{ end }}
50+
{{ end }}

0 commit comments

Comments
 (0)