Skip to content

Commit 80eb1ef

Browse files
authored
[pipelines-v2] Support configurable minio and existing db secret (#1119)
1 parent 5e93522 commit 80eb1ef

File tree

10 files changed

+118
-48
lines changed

10 files changed

+118
-48
lines changed

stable/pipelines-v2/Chart.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
apiVersion: v1
22
appVersion: ">=2.5.0"
3-
version: 0.12.0
3+
version: 0.12.1
44
name: pipelines-v2
55
description: Kubeflow pipelines framework for machine learning
66
home: https://www.kubeflow.org/

stable/pipelines-v2/templates/_helpers.tpl

Lines changed: 45 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,4 +19,48 @@ app: {{ include "pipelines.name" . }}
1919
chart: {{ include "pipelines.chart" . }}
2020
release: {{ .Release.Name }}
2121
heritage: {{ .Release.Service }}
22-
{{- end -}}
22+
{{- end -}}
23+
24+
{{/*
25+
Define mino storage secret name
26+
*/}}
27+
{{- define "pipelines.minioStorageSecretName" -}}
28+
{{- if .Values.storageMode.minio.existingSecretName -}}
29+
{{- .Values.storageMode.minio.existingSecretName -}}
30+
{{- else -}}
31+
{{- "mlpipeline-minio-artifact" -}}
32+
{{- end -}}
33+
{{- end -}}
34+
35+
36+
{{/*
37+
Define access key name for the minio secret
38+
*/}}
39+
{{- define "pipelines.minioAccessKeyName" -}}
40+
{{- if .Values.storageMode.minio.accessKeyName -}}
41+
{{- .Values.storageMode.minio.accessKeyName -}}
42+
{{- else -}}
43+
{{- "accesskey" -}}
44+
{{- end -}}
45+
{{- end -}}
46+
47+
{{/*
48+
Define secret key name for the minio secret
49+
*/}}
50+
{{- define "pipelines.minioSecretKeyName" -}}
51+
{{- if .Values.storageMode.minio.secretKeyName -}}
52+
{{- .Values.storageMode.minio.secretKeyName -}}
53+
{{- else -}}
54+
{{- "secretkey" -}}
55+
{{- end -}}
56+
{{- end -}}
57+
58+
59+
# define mysql secret name or use existing secret
60+
{{- define "pipelines.dbSecretName" -}}
61+
{{- if .Values.db.existingSecretName -}}
62+
{{- .Values.db.existingSecretName -}}
63+
{{- else -}}
64+
{{- "mysql-kf-secret" -}}
65+
{{- end -}}
66+
{{- end -}}

stable/pipelines-v2/templates/argo/workflow-controller-configmap.yaml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -21,11 +21,11 @@ data: # "config: |" key is optional in 2.7+!
2121
bucket: {{ .Values.storageMode.minio.defaultBucket }}
2222
insecure: true
2323
accessKeySecret:
24-
name: mlpipeline-minio-artifact
25-
key: accesskey
24+
name: {{ include "pipelines.minioStorageSecretName" . }}
25+
key: {{ include "pipelines.minioAccessKeyName" . }}
2626
secretKeySecret:
27-
name: mlpipeline-minio-artifact
28-
key: secretkey
27+
name: {{ include "pipelines.minioStorageSecretName" . }}
28+
key: {{ include "pipelines.minioSecretKeyName" . }}
2929
3030
{{- else if eq .Values.storageMode.kind "v3io" }}
3131
data:

stable/pipelines-v2/templates/metadata/grpc-deployment.yaml

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -16,17 +16,17 @@ spec:
1616
template:
1717
metadata:
1818
annotations:
19-
checksum/mysql-kf-secret: {{ (lookup "v1" "Secret" .Release.Namespace "mysql-kf-secret").data | default dict | toJson | sha256sum }}
19+
checksum/{{ include "pipelines.dbSecretName" . }}: {{ (lookup "v1" "Secret" .Release.Namespace (include "pipelines.dbSecretName" .)).data | default dict | toJson | sha256sum }}
2020
labels:
2121
component: metadata-grpc-server
2222
{{ include "pipelines.commonLabels" . | indent 8 }}
2323
spec:
2424
volumes:
2525
- name: mysql-cnf
2626
emptyDir: {}
27-
- name: mysql-kf-secret
27+
- name: {{ include "pipelines.dbSecretName" . }}
2828
secret:
29-
secretName: mysql-kf-secret
29+
secretName: {{ include "pipelines.dbSecretName" . }}
3030
initContainers:
3131
- name: init-mysql-cnf
3232
image: {{ .Values.images.busybox.repository }}:{{ .Values.images.busybox.tag }}
@@ -35,21 +35,21 @@ spec:
3535
- -c
3636
- |
3737
echo "[client]" > /config/mysql.cnf
38-
echo "user=$(cat /mysql-kf-secret/username)" >> /config/mysql.cnf
39-
echo "password=$(cat /mysql-kf-secret/password)" >> /config/mysql.cnf
38+
echo "user=$(cat /mysql-secret/username)" >> /config/mysql.cnf
39+
echo "password=$(cat /mysql-secret/password)" >> /config/mysql.cnf
4040
echo "host=mysql-kf" >> /config/mysql.cnf
4141
volumeMounts:
4242
- name: mysql-cnf
4343
mountPath: /config
44-
- name: mysql-kf-secret
45-
mountPath: /mysql-kf-secret
44+
- name: {{ include "pipelines.dbSecretName" . }}
45+
mountPath: /mysql-secret
4646
readOnly: true
4747
- name: metadata-init
4848
env:
4949
- name: DBCONFIG_USER
5050
valueFrom:
5151
secretKeyRef:
52-
name: mysql-kf-secret
52+
name: {{ include "pipelines.dbSecretName" . }}
5353
key: username
5454
- name: MYSQL_DATABASE
5555
valueFrom:
@@ -110,12 +110,12 @@ spec:
110110
- name: DBCONFIG_USER
111111
valueFrom:
112112
secretKeyRef:
113-
name: mysql-kf-secret
113+
name: {{ include "pipelines.dbSecretName" . }}
114114
key: username
115115
- name: DB_PASSWORD
116116
valueFrom:
117117
secretKeyRef:
118-
name: mysql-kf-secret
118+
name: {{ include "pipelines.dbSecretName" . }}
119119
key: password
120120

121121
command: [ "/bin/metadata_store_server" ]

stable/pipelines-v2/templates/ml-pipeline/apiserver/deployment.yaml

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ spec:
1919
{{ include "pipelines.commonLabels" . | indent 8 }}
2020
annotations:
2121
cluster-autoscaler.kubernetes.io/safe-to-evict: "true"
22-
checksum/mysql-kf-secret: {{ (lookup "v1" "Secret" .Release.Namespace "mysql-kf-secret").data | default dict | toJson | sha256sum }}
22+
checksum/{{ include "pipelines.dbSecretName" . }}: {{ (lookup "v1" "Secret" .Release.Namespace (include "pipelines.dbSecretName" .)).data | default dict | toJson | sha256sum }}
2323
spec:
2424
containers:
2525
- name: ml-pipeline-api-server
@@ -33,28 +33,28 @@ spec:
3333
fieldRef:
3434
fieldPath: metadata.namespace
3535
- name: OBJECTSTORECONFIG_SECURE
36-
value: "false"
36+
value: {{ .Values.storageMode.useTLS | default false | quote }}
3737

3838
# -------- DB config (shared for v3io / minio) --------
3939
- name: DBCONFIG_USER
4040
valueFrom:
4141
secretKeyRef:
42-
name: mysql-kf-secret
42+
name: {{ include "pipelines.dbSecretName" . }}
4343
key: username
4444
- name: DBCONFIG_PASSWORD
4545
valueFrom:
4646
secretKeyRef:
47-
name: mysql-kf-secret
47+
name: {{ include "pipelines.dbSecretName" . }}
4848
key: password
4949
- name: DBCONFIG_MYSQLCONFIG_USER
5050
valueFrom:
5151
secretKeyRef:
52-
name: mysql-kf-secret
52+
name: {{ include "pipelines.dbSecretName" . }}
5353
key: username
5454
- name: DBCONFIG_MYSQLCONFIG_PASSWORD
5555
valueFrom:
5656
secretKeyRef:
57-
name: mysql-kf-secret
57+
name: {{ include "pipelines.dbSecretName" . }}
5858
key: password
5959
- name: DBCONFIG_MYSQLCONFIG_HOST
6060
value: mysql-kf
@@ -65,13 +65,13 @@ spec:
6565
- name: OBJECTSTORECONFIG_ACCESSKEY
6666
valueFrom:
6767
secretKeyRef:
68-
name: mlpipeline-minio-artifact
69-
key: accesskey
68+
name: {{ include "pipelines.minioStorageSecretName" . }}
69+
key: {{ include "pipelines.minioAccessKeyName" . }}
7070
- name: OBJECTSTORECONFIG_SECRETACCESSKEY
7171
valueFrom:
7272
secretKeyRef:
73-
name: mlpipeline-minio-artifact
74-
key: secretkey
73+
name: {{ include "pipelines.minioStorageSecretName" . }}
74+
key: {{ include "pipelines.minioSecretKeyName" . }}
7575
- name: OBJECTSTORECONFIG_BUCKETNAME
7676
valueFrom:
7777
configMapKeyRef:
Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
1-
{{- if eq .Values.storageMode.kind "minio" }}
1+
{{- if and (not .Values.storageMode.minio.existingSecretName) (eq .Values.storageMode.kind "minio") }}
22
apiVersion: v1
33
kind: Secret
44
type: Opaque
55
metadata:
66
labels:
77
app: pipelines
8-
name: mlpipeline-minio-artifact
8+
name: {{ include "pipelines.minioStorageSecretName" . }}
99
namespace: {{ .Release.Namespace }}
1010
data:
11-
accesskey: {{ .Values.storageMode.minio.accessKey | b64enc }}
12-
secretkey: {{ .Values.storageMode.minio.secretKey | b64enc }}
11+
{{ include "pipelines.minioAccessKeyName" . }}: {{ .Values.storageMode.minio.accessKey | b64enc }}
12+
{{ include "pipelines.minioSecretKeyName" . }}: {{ .Values.storageMode.minio.secretKey | b64enc }}
1313
{{- end -}}

stable/pipelines-v2/templates/ml-pipeline/ui/deployment.yaml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -75,13 +75,13 @@ spec:
7575
- name: AWS_ACCESS_KEY_ID
7676
valueFrom:
7777
secretKeyRef:
78-
name: mlpipeline-minio-artifact
79-
key: accesskey
78+
name: {{ include "pipelines.minioStorageSecretName" . }}
79+
key: {{ include "pipelines.minioAccessKeyName" . }}
8080
- name: AWS_SECRET_ACCESS_KEY
8181
valueFrom:
8282
secretKeyRef:
83-
name: mlpipeline-minio-artifact
84-
key: secretkey
83+
name: {{ include "pipelines.minioStorageSecretName" . }}
84+
key: {{ include "pipelines.minioSecretKeyName" . }}
8585
{{- end }}
8686

8787
- name: DISABLE_GKE_METADATA

stable/pipelines-v2/templates/mysql/deployment.yaml

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ spec:
1717
template:
1818
metadata:
1919
annotations:
20-
checksum/mysql-kf-secret: {{ (lookup "v1" "Secret" .Release.Namespace "mysql-kf-secret").data | default dict | toJson | sha256sum }}
20+
checksum/{{ include "pipelines.dbSecretName" . }}: {{ (lookup "v1" "Secret" .Release.Namespace (include "pipelines.dbSecretName" .)).data | default dict | toJson | sha256sum }}
2121
labels:
2222
component: mysql-kf
2323
{{ include "pipelines.commonLabels" . | indent 8 }}
@@ -29,9 +29,9 @@ spec:
2929
- name: mysql-init-scripts
3030
configMap:
3131
name: mysql-kf
32-
- name: mysql-kf-secret
32+
- name: {{ include "pipelines.dbSecretName" . }}
3333
secret:
34-
secretName: mysql-kf-secret
34+
secretName: {{ include "pipelines.dbSecretName" . }}
3535
items:
3636
- key: mysql.cnf
3737
path: mysql.cnf
@@ -87,7 +87,7 @@ spec:
8787
mountPath: /etc/config/mysql/init-scripts
8888
- name: dump-volume
8989
mountPath: /dump
90-
- name: mysql-kf-secret
90+
- name: {{ include "pipelines.dbSecretName" . }}
9191
mountPath: /run/secrets/mysql
9292
readOnly: true
9393

@@ -101,12 +101,12 @@ spec:
101101
- name: DB_USER
102102
valueFrom:
103103
secretKeyRef:
104-
name: mysql-kf-secret
104+
name: {{ include "pipelines.dbSecretName" . }}
105105
key: username
106106
- name: MYSQL_PWD
107107
valueFrom:
108108
secretKeyRef:
109-
name: mysql-kf-secret
109+
name: {{ include "pipelines.dbSecretName" . }}
110110
key: password
111111
volumeMounts:
112112
- name: mysql-fuse
@@ -115,7 +115,7 @@ spec:
115115
mountPath: /etc/config/mysql/init-scripts
116116
- name: dump-volume
117117
mountPath: /dump
118-
- name: mysql-kf-secret
118+
- name: {{ include "pipelines.dbSecretName" . }}
119119
mountPath: /run/secrets/mysql
120120
readOnly: true
121121
{{- end }}
@@ -149,19 +149,19 @@ spec:
149149
- name: DB_USER
150150
valueFrom:
151151
secretKeyRef:
152-
name: mysql-kf-secret
152+
name: {{ include "pipelines.dbSecretName" . }}
153153
key: username
154154
- name: MYSQL_PWD
155155
valueFrom:
156156
secretKeyRef:
157-
name: mysql-kf-secret
157+
name: {{ include "pipelines.dbSecretName" . }}
158158
key: password
159159
volumeMounts:
160160
- name: mysql-fuse
161161
mountPath: "/var/lib/mysql"
162162
- name: mysql-init-scripts
163163
mountPath: /etc/config/mysql/init-scripts
164-
- name: mysql-kf-secret
164+
- name: {{ include "pipelines.dbSecretName" . }}
165165
mountPath: /run/secrets/mysql
166166
readOnly: true
167167
resources:
Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,12 @@
1+
{{- if .Values.deployment.create }}
2+
{{/* Only create if db existing name was not provided */}}
3+
{{- if not .Values.db.existingSecretName }}
4+
15
{{- $password := randAlphaNum 16 }}
26
apiVersion: v1
37
kind: Secret
48
metadata:
5-
name: mysql-kf-secret
9+
name: {{ include "pipelines.dbSecretName" . }}
610
type: Opaque
711
stringData:
812
username: "kubeflow"
@@ -11,3 +15,5 @@ stringData:
1115
[client]
1216
user=kubeflow
1317
password={{ $password }}
18+
{{- end }}
19+
{{- end }}

stable/pipelines-v2/values.yaml

Lines changed: 23 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -169,19 +169,39 @@ priorityClassName: ""
169169
# kind: v3io | minio
170170
# -------------------------------------------------------------------
171171
storageMode:
172-
kind: v3io # default; set to "minio" to switch
173-
172+
# default; set to "minio" to switch
173+
kind: v3io
174+
useTLS: false
174175
minio:
175176
serviceHost: minio.{{ .Release.Namespace }}.svc
176177
servicePort: 9000
177178
defaultBucket: mlrun
178179
accessKey: console
179180
secretKey: console123
180181

182+
183+
# uncomment to use an existing secret
184+
# existingSecretName: ""
185+
186+
# field names for the secret
187+
accessKeyName: accesskey
188+
secretKeyName: secretkey
189+
181190
# -------------------------------------------------------------------
182-
# MySQL pod security
191+
# MySQL pod
183192
# -------------------------------------------------------------------
184193
db:
194+
195+
# contains the secret name for the mysql credentials in a format of
196+
# stringData:
197+
# username: "kubeflow"
198+
# password: "{{ $password }}"
199+
# mysql.cnf: |
200+
# [client]
201+
# user=kubeflow
202+
# password={{ $password }}
203+
existingSecretName: ""
204+
185205
podSecurityContext:
186206
runAsUser: 1001
187207

0 commit comments

Comments
 (0)