From c00fd552bf27a57ce60991652a2f9b7e83c7e107 Mon Sep 17 00:00:00 2001 From: Vismayak Mohanarajan Date: Thu, 20 Feb 2025 13:38:38 -0600 Subject: [PATCH 1/7] Created chart --- .../kubernetes/charts/clowder2/ibm-hpc.yaml | 86 +++++++++++++++++++ 1 file changed, 86 insertions(+) create mode 100644 deployments/kubernetes/charts/clowder2/ibm-hpc.yaml diff --git a/deployments/kubernetes/charts/clowder2/ibm-hpc.yaml b/deployments/kubernetes/charts/clowder2/ibm-hpc.yaml new file mode 100644 index 000000000..0aea293da --- /dev/null +++ b/deployments/kubernetes/charts/clowder2/ibm-hpc.yaml @@ -0,0 +1,86 @@ +hostname: &hostname ibmclowder.software-dev.ncsa.illinois.edu + +ingress: + enabled: true + annotations: + nginx.ingress.kubernetes.io/proxy-body-size: "0" + tls: + - hosts: + - *hostname + secretName: clowder2-tls + + +geoserver: + enabled: false + +minio: + auth: + rootUser: clowder + rootPassword: ilikecats + persistence: + storageClass: nfs-taiga + size: 20Gi + ingress: + enabled: true + hostname: minio.ibmclowder.software-dev.ncsa.illinois.edu + apiIngress: + enabled: true + hostname: minio-api.ibmclowder.software-dev.ncsa.illinois.edu + +rabbitmq: + # login + auth: + username: guest + password: ilikecats + erlangCookie: kittencookie + ingress: + enabled: true + hostname: rabbitmq.ibmclowder.software-dev.ncsa.illinois.edu + persistence: + storageClass: csi-cinder-sc-delete + size: 8Gi + +mongodb: + persistence: + storageClass: csi-cinder-sc-delete + size: 8Gi + +elasticsearch: + master: + persistence: + storageClass: csi-cinder-sc-delete + size: 20Gi + data: + persistence: + storageClass: csi-cinder-sc-delete + size: 20Gi + +keycloak: + auth: + adminUser: guest + adminPassword: ilikecats + ingress: + hostname: ibmclowder.software-dev.ncsa.illinois.edu + postgresql: + auth: + password: cGFzc3dvcmQ= + postgresPassword: Nm50T2lJR05sZQ== + primary: + persistence: + storageClass: csi-cinder-sc-delete + size: 8Gi + +message: + image: + repository: clowder/clowder2-messages + tag: release-v2.0-beta-3 + +heartbeat: + image: + repository: clowder/clowder2-heartbeat + tag: release-v2.0-beta-3 + +extractors: + wordcount: + enabled: true + image: clowder/extractors-wordcount:latest From c017be141103b90826832f9d33bb1469191e6120 Mon Sep 17 00:00:00 2001 From: Vismayak Mohanarajan Date: Mon, 24 Feb 2025 11:53:29 -0600 Subject: [PATCH 2/7] Updated templates to check that secret exists --- .../charts/clowder2/templates/backend/deployment.yaml | 4 +++- .../charts/clowder2/templates/geoserver/deployment.yaml | 4 +++- .../charts/clowder2/templates/heartbeat/deployment.yaml | 4 +++- 3 files changed, 9 insertions(+), 3 deletions(-) diff --git a/deployments/kubernetes/charts/clowder2/templates/backend/deployment.yaml b/deployments/kubernetes/charts/clowder2/templates/backend/deployment.yaml index 55962ffb6..bf8eb899c 100644 --- a/deployments/kubernetes/charts/clowder2/templates/backend/deployment.yaml +++ b/deployments/kubernetes/charts/clowder2/templates/backend/deployment.yaml @@ -54,11 +54,13 @@ spec: secretKeyRef: name: {{ .Values.backend.existingSecret }} key: {{ .Values.backend.existingMinioSecretKey | default "root-password" }} - {{- else }} + {{- else if (lookup "v1" "Secret" .Release.Namespace (printf "%s-secret" (include "clowder2.releaseName" .))) }} valueFrom: secretKeyRef: name: {{include "clowder2.releaseName" . }}-secret key: root-password + {{- else }} + value: {{ .Values.minio.auth.rootPassword }} {{- end }} - name: MINIO_UPLOAD_CHUNK_SIZE value: "10485760" diff --git a/deployments/kubernetes/charts/clowder2/templates/geoserver/deployment.yaml b/deployments/kubernetes/charts/clowder2/templates/geoserver/deployment.yaml index 9aaba90d1..9d1b0a8f7 100644 --- a/deployments/kubernetes/charts/clowder2/templates/geoserver/deployment.yaml +++ b/deployments/kubernetes/charts/clowder2/templates/geoserver/deployment.yaml @@ -36,11 +36,13 @@ spec: secretKeyRef: name: {{.Values.geoserver.existingSecret }} key: {{.Values.geoserver.existingGeoserverSecretKey | default "GEOSERVER_PW" }} - {{- else }} + {{- else if (lookup "v1" "Secret" .Release.Namespace (printf "%s-secret" (include "clowder2.releaseName" .))) }} valueFrom: secretKeyRef: name: {{include "clowder2.releaseName" . }}-secret key: GEOSERVER_PW + {{- else }} + value: {{ .Values.geoserver.password }} {{- end }} ports: - containerPort: 8080 diff --git a/deployments/kubernetes/charts/clowder2/templates/heartbeat/deployment.yaml b/deployments/kubernetes/charts/clowder2/templates/heartbeat/deployment.yaml index d306fec81..256d02516 100644 --- a/deployments/kubernetes/charts/clowder2/templates/heartbeat/deployment.yaml +++ b/deployments/kubernetes/charts/clowder2/templates/heartbeat/deployment.yaml @@ -43,11 +43,13 @@ spec: secretKeyRef: name: {{.Values.heartbeat.existingSecret }} key: {{.Values.heartbeat.existingRabbitMQSecretKey | default "rabbitmq-password" }} - {{- else }} + {{- else if (lookup "v1" "Secret" .Release.Namespace (printf "%s-secret" (include "clowder2.releaseName" .))) }} valueFrom: secretKeyRef: name: {{include "clowder2.releaseName" . }}-secret key: rabbitmq-password + {{- else }} + value: {{ .Values.rabbitmq.auth.password }} {{- end }} - name: RABBITMQ_HOST value: {{ include "clowder2.releaseName" . }}-rabbitmq From 96c2af62ab9833892fb275ac36b6557e1f39e5e0 Mon Sep 17 00:00:00 2001 From: Vismayak Mohanarajan Date: Mon, 24 Feb 2025 12:25:12 -0600 Subject: [PATCH 3/7] Updated templates to check that secret exists --- .../charts/clowder2/templates/backend/deployment.yaml | 4 +++- .../charts/clowder2/templates/messages/deployment.yaml | 4 +++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/deployments/kubernetes/charts/clowder2/templates/backend/deployment.yaml b/deployments/kubernetes/charts/clowder2/templates/backend/deployment.yaml index bf8eb899c..3682e7c83 100644 --- a/deployments/kubernetes/charts/clowder2/templates/backend/deployment.yaml +++ b/deployments/kubernetes/charts/clowder2/templates/backend/deployment.yaml @@ -106,11 +106,13 @@ spec: secretKeyRef: name: {{ .Values.backend.existingSecret }} key: {{ .Values.backend.existingRabbitMQSecretKey | default "rabbitmq-password" }} - {{- else }} + {{- else if (lookup "v1" "Secret" .Release.Namespace (printf "%s-secret" (include "clowder2.releaseName" .))) }} valueFrom: secretKeyRef: name: {{ include "clowder2.releaseName" . }}-secret key: rabbitmq-password + {{- else }} + value: {{ .Values.rabbitmq.auth.password }} {{- end }} - name: RABBITMQ_HOST value: {{ include "clowder2.releaseName" . }}-rabbitmq diff --git a/deployments/kubernetes/charts/clowder2/templates/messages/deployment.yaml b/deployments/kubernetes/charts/clowder2/templates/messages/deployment.yaml index ab04f0008..36c591f62 100644 --- a/deployments/kubernetes/charts/clowder2/templates/messages/deployment.yaml +++ b/deployments/kubernetes/charts/clowder2/templates/messages/deployment.yaml @@ -43,11 +43,13 @@ spec: secretKeyRef: name: {{ .Values.message.existingSecret }} key: {{ .Values.message.existingRabbitMQSecretKey | default "rabbitmq-password" }} - {{- else }} + {{- else if (lookup "v1" "Secret" .Release.Namespace (printf "%s-secret" (include "clowder2.releaseName" .))) }} valueFrom: secretKeyRef: name: {{ include "clowder2.releaseName" . }}-secret key: rabbitmq-password + {{- else }} + value: {{ .Values.rabbitmq.auth.password }} {{- end }} - name: RABBITMQ_HOST value: {{ include "clowder2.releaseName" . }}-rabbitmq From 68e11298eeb53f5a03a743f62be1e6546ae1dc01 Mon Sep 17 00:00:00 2001 From: Vismayak Mohanarajan Date: Tue, 25 Feb 2025 15:09:04 -0600 Subject: [PATCH 4/7] Minio test pod and daemonset --- .../charts/clowder2/minio-daemonset.yaml | 40 +++++++++++++++++++ .../charts/clowder2/minio-test-pod.yaml | 16 ++++++++ 2 files changed, 56 insertions(+) create mode 100644 deployments/kubernetes/charts/clowder2/minio-daemonset.yaml create mode 100644 deployments/kubernetes/charts/clowder2/minio-test-pod.yaml diff --git a/deployments/kubernetes/charts/clowder2/minio-daemonset.yaml b/deployments/kubernetes/charts/clowder2/minio-daemonset.yaml new file mode 100644 index 000000000..1000f3ccd --- /dev/null +++ b/deployments/kubernetes/charts/clowder2/minio-daemonset.yaml @@ -0,0 +1,40 @@ +apiVersion: apps/v1 +kind: DaemonSet +metadata: + name: minio-mounter + namespace: ibm-hpc + labels: + app: minio-mounter +spec: + selector: + matchLabels: + app: minio-mounter + template: + metadata: + labels: + app: minio-mounter + spec: + containers: + - name: minio-fuse + image: vismayak/minio-mount-daemon-container + securityContext: + privileged: true + envFrom: + - secretRef: + name: minio-credentials + volumeMounts: + - name: fuse + mountPath: /dev/fuse + - name: minio-point + mountPath: /var/clowderfs:shared + lifecycle: + preStop: + exec: + command: ["/bin/sh", "-c", "fusermount -u /var/clowderfs"] + volumes: + - name: fuse + hostPath: + path: /dev/fuse + - name: minio-point + hostPath: + path: /mnt/clowderfs diff --git a/deployments/kubernetes/charts/clowder2/minio-test-pod.yaml b/deployments/kubernetes/charts/clowder2/minio-test-pod.yaml new file mode 100644 index 000000000..46f0cf83d --- /dev/null +++ b/deployments/kubernetes/charts/clowder2/minio-test-pod.yaml @@ -0,0 +1,16 @@ +apiVersion: v1 +kind: Pod +metadata: + name: minio-test-pod +spec: + containers: + - name: minio-test-pod + image: alpine + command: [ "sleep", "infinity" ] + volumeMounts: + - name: minio-storage + mountPath: /clowderfs + volumes: + - name: minio-storage + hostPath: + path: /mnt/clowderfs From 78a7cc4097394e0b9284a18dd748e3285a601963 Mon Sep 17 00:00:00 2001 From: Vismayak Mohanarajan Date: Tue, 25 Feb 2025 15:42:20 -0600 Subject: [PATCH 5/7] new mount point --- deployments/kubernetes/charts/clowder2/minio-daemonset.yaml | 3 ++- deployments/kubernetes/charts/clowder2/minio-test-pod.yaml | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/deployments/kubernetes/charts/clowder2/minio-daemonset.yaml b/deployments/kubernetes/charts/clowder2/minio-daemonset.yaml index 1000f3ccd..9db9d1fa5 100644 --- a/deployments/kubernetes/charts/clowder2/minio-daemonset.yaml +++ b/deployments/kubernetes/charts/clowder2/minio-daemonset.yaml @@ -37,4 +37,5 @@ spec: path: /dev/fuse - name: minio-point hostPath: - path: /mnt/clowderfs + path: /mnt/ibm-hpc-clowderfs + type: DirectoryOrCreate diff --git a/deployments/kubernetes/charts/clowder2/minio-test-pod.yaml b/deployments/kubernetes/charts/clowder2/minio-test-pod.yaml index 46f0cf83d..3013cb331 100644 --- a/deployments/kubernetes/charts/clowder2/minio-test-pod.yaml +++ b/deployments/kubernetes/charts/clowder2/minio-test-pod.yaml @@ -13,4 +13,4 @@ spec: volumes: - name: minio-storage hostPath: - path: /mnt/clowderfs + path: /mnt/ibm-hpc-clowderfs From dd60bba6fde807ea51bd683bfca59a4b71a47295 Mon Sep 17 00:00:00 2001 From: Vismayak Mohanarajan Date: Tue, 25 Feb 2025 16:40:06 -0600 Subject: [PATCH 6/7] Mounting extractor --- deployments/kubernetes/charts/clowder2/ibm-hpc.yaml | 10 ++++++++++ .../clowder2/templates/extractors/deployment.yaml | 8 ++++++++ 2 files changed, 18 insertions(+) diff --git a/deployments/kubernetes/charts/clowder2/ibm-hpc.yaml b/deployments/kubernetes/charts/clowder2/ibm-hpc.yaml index 0aea293da..e309178f9 100644 --- a/deployments/kubernetes/charts/clowder2/ibm-hpc.yaml +++ b/deployments/kubernetes/charts/clowder2/ibm-hpc.yaml @@ -84,3 +84,13 @@ extractors: wordcount: enabled: true image: clowder/extractors-wordcount:latest + rcnn-iwp-inference: + enabled: true + image: vismayak/rcnn_iwp_inference_extractor_k8:latest + volumes: + - name: minio-storage + hostPath: + path: /mnt/ibm-hpc-clowderfs + volumeMounts: + - name: minio-storage + mountPath: /clowderfs diff --git a/deployments/kubernetes/charts/clowder2/templates/extractors/deployment.yaml b/deployments/kubernetes/charts/clowder2/templates/extractors/deployment.yaml index 7de69d846..bca00feeb 100644 --- a/deployments/kubernetes/charts/clowder2/templates/extractors/deployment.yaml +++ b/deployments/kubernetes/charts/clowder2/templates/extractors/deployment.yaml @@ -27,6 +27,10 @@ spec: {{- with $.Values.imagePullSecrets }} imagePullSecrets: {{- toYaml . | nindent 8 }} + {{- end }} + {{- if .volumes }} + volumes: + {{- toYaml .volumes | nindent 8 }} {{- end }} containers: - name: extractor @@ -57,6 +61,10 @@ spec: {{- if .env }} {{- toYaml .env | nindent 12 }} {{- end }} +{{- if .volumeMounts }} + volumeMounts: + {{- toYaml .volumeMounts | nindent 12 }} +{{- end }} {{- if .resources }} resources: {{- toYaml .resources | nindent 12 }} From df8d32ccd7103baee1eb471775d29cce4540875c Mon Sep 17 00:00:00 2001 From: Vismayak Mohanarajan Date: Wed, 26 Feb 2025 13:14:35 -0600 Subject: [PATCH 7/7] Storing minio_mount environment variable --- .../kubernetes/charts/clowder2/ibm-hpc.yaml | 23 ++++++++++++++++++- .../charts/clowder2/minio-credentials.yaml | 12 ++++++++++ 2 files changed, 34 insertions(+), 1 deletion(-) create mode 100644 deployments/kubernetes/charts/clowder2/minio-credentials.yaml diff --git a/deployments/kubernetes/charts/clowder2/ibm-hpc.yaml b/deployments/kubernetes/charts/clowder2/ibm-hpc.yaml index e309178f9..c75db3af2 100644 --- a/deployments/kubernetes/charts/clowder2/ibm-hpc.yaml +++ b/deployments/kubernetes/charts/clowder2/ibm-hpc.yaml @@ -25,7 +25,12 @@ minio: hostname: minio.ibmclowder.software-dev.ncsa.illinois.edu apiIngress: enabled: true - hostname: minio-api.ibmclowder.software-dev.ncsa.illinois.edu + hostname: minio.ibmclowder.software-dev.ncsa.illinois.edu + +frontend: + image: + repository: vismayak/clowder-frontend + tag: latest rabbitmq: # login @@ -87,6 +92,22 @@ extractors: rcnn-iwp-inference: enabled: true image: vismayak/rcnn_iwp_inference_extractor_k8:latest + env: + - name: MINIO_MOUNTED_PATH + value: /clowderfs + volumes: + - name: minio-storage + hostPath: + path: /mnt/ibm-hpc-clowderfs + volumeMounts: + - name: minio-storage + mountPath: /clowderfs + rcnn-iwp-finetuning: + enabled: true + image: vismayak/rcnn_iwp_finetuning_extractor_k8:latest + env: + - name: MINIO_MOUNTED_PATH + value: /clowderfs volumes: - name: minio-storage hostPath: diff --git a/deployments/kubernetes/charts/clowder2/minio-credentials.yaml b/deployments/kubernetes/charts/clowder2/minio-credentials.yaml new file mode 100644 index 000000000..74c02dd24 --- /dev/null +++ b/deployments/kubernetes/charts/clowder2/minio-credentials.yaml @@ -0,0 +1,12 @@ +apiVersion: v1 +kind: Secret +metadata: + name: minio-credentials + namespace: ibm-hpc +stringData: + MINIO_ENDPOINT: http://clowder2-minio:9000 + MINIO_ACCESS_KEY: clowder + MINIO_SECRET_KEY: ilikecats + MINIO_MOUNT_POINT: /var/clowderfs + CLOWDER_VERSION: "2" +