From bdee4c666eb5bd200d5bfddc55a99a15e12f9a33 Mon Sep 17 00:00:00 2001 From: almahmoud Date: Mon, 22 Nov 2021 17:56:09 -0500 Subject: [PATCH] Add GCS resources --- galaxykubeman/Chart.yaml | 2 +- galaxykubeman/requirements.yaml | 6 +++- galaxykubeman/templates/_helpers.yml | 7 ++++ galaxykubeman/templates/gcs-resources.yaml | 38 ++++++++++++++++++++++ galaxykubeman/values.yaml | 32 ++++++++++++++---- 5 files changed, 77 insertions(+), 8 deletions(-) create mode 100644 galaxykubeman/templates/gcs-resources.yaml diff --git a/galaxykubeman/Chart.yaml b/galaxykubeman/Chart.yaml index 8a03c72..4720a47 100644 --- a/galaxykubeman/Chart.yaml +++ b/galaxykubeman/Chart.yaml @@ -2,4 +2,4 @@ apiVersion: v1 appVersion: 21.09 description: A chart for deploying and managing a single Galaxy out-of-the-box instance on Managed Kubernetes clusters (GKE) name: galaxykubeman -version: 1.2.0 +version: 1.3.0 diff --git a/galaxykubeman/requirements.yaml b/galaxykubeman/requirements.yaml index a2460c2..a6a2375 100644 --- a/galaxykubeman/requirements.yaml +++ b/galaxykubeman/requirements.yaml @@ -8,5 +8,9 @@ dependencies: version: 1.6.0 alias: cvmfs - name: galaxy - repository: https://raw.githubusercontent.com/cloudve/helm-charts/anvil/ + repository: https://raw.githubusercontent.com/almahmoud/helm-charts/anvil-gcs/ version: 4.8.0 + - name: csi-gcs + repository: https://raw.githubusercontent.com/almahmoud/helm-charts/anvil-gcs/ + version: 0.8.0 + alias: gcs \ No newline at end of file diff --git a/galaxykubeman/templates/_helpers.yml b/galaxykubeman/templates/_helpers.yml index 913de82..e4f6ea3 100644 --- a/galaxykubeman/templates/_helpers.yml +++ b/galaxykubeman/templates/_helpers.yml @@ -44,3 +44,10 @@ Get default value or max {{- .default | int }} {{- end }} {{- end }} + +{{/* +Get bucket name from gcs uri +*/}} +{{- define "galaxykubeman.getBucketName" -}} + {{ .Values.configs.WORKSPACE_BUCKET | replace "gs://" "" }} +{{- end }} diff --git a/galaxykubeman/templates/gcs-resources.yaml b/galaxykubeman/templates/gcs-resources.yaml new file mode 100644 index 0000000..3194634 --- /dev/null +++ b/galaxykubeman/templates/gcs-resources.yaml @@ -0,0 +1,38 @@ +apiVersion: storage.k8s.io/v1 +kind: StorageClass +metadata: + name: {{ .Release.Name }}-csi-gcs-sc +provisioner: {{ .Values.gcs.driverName }} +--- +apiVersion: v1 +kind: PersistentVolumeClaim +metadata: + name: {{ .Release.Name }}-csi-gcs-pvc +spec: + accessModes: + - ReadWriteMany + resources: + requests: + storage: 5Gi + storageClassName: {{ .Release.Name }}-csi-gcs-sc +--- +apiVersion: v1 +kind: PersistentVolume +metadata: + name: {{ .Release.Name }}-csi-gcs-pv +spec: + accessModes: + - ReadWriteMany + capacity: + storage: 5Gi + persistentVolumeReclaimPolicy: Retain + storageClassName: {{ .Release.Name }}-csi-gcs-sc + csi: + driver: {{ .Values.gcs.driverName }} + volumeHandle: csi-gcs + volumeAttributes: + gid: "101" + uid: "101" + bucket: '{{ include "galaxykubeman.getBucketName" . }}' + billingProject: "{{ .Values.configs.GOOGLE_PROJECT }}" +--- \ No newline at end of file diff --git a/galaxykubeman/values.yaml b/galaxykubeman/values.yaml index 017b171..1cd6971 100644 --- a/galaxykubeman/values.yaml +++ b/galaxykubeman/values.yaml @@ -7,6 +7,9 @@ configs: {} secrets: {} # db-password: changeme +gcs: + driverName: gcs.csi.ofek.dev + restore: persistence: nfs: @@ -66,6 +69,14 @@ cvmfs: enabled: false galaxy: + extraVolumes: + - name: galaxy-remote-data + persistentVolumeClaim: + claimName: "{{ .Release.Name }}-csi-gcs-pvc" + extraVolumeMounts: + - mountPath: /galaxy/server/database/objects + name: galaxy-remote-data + subPath: galaxy-data/objects jobs: maxRequests: cpu: 10 @@ -361,6 +372,7 @@ galaxy: galaxy.yml: galaxy: + outputs_to_working_directory: true job_config_file: "/galaxy/server/config/job_conf.yml" enable_beta_gdpr: true job_conf.yml: @@ -376,19 +388,27 @@ galaxy: k8s_pod_retries: "4" k8s_walltime_limit: "604800" k8s_galaxy_instance_id: "{{ .Release.Name }}" - k8s_persistent_volume_claims: |- + k8s_data_volume_claim: |- + {{ .Release.Name }}-csi-gcs-pvc/galaxy-data:{{ .Values.persistence.mountPath -}} + k8s_working_volume_claim: |- {{ template "galaxy.pvcname" . -}}:{{ .Values.persistence.mountPath -}} + k8s_persistent_volume_claims: |- + {{ template "galaxy.pvcname" . -}}/cache:{{ .Values.persistence.mountPath -}}/cache, + {{- template "galaxy.pvcname" . -}}/config:{{ .Values.persistence.mountPath -}}/config, + {{- template "galaxy.pvcname" . -}}/deps:{{ .Values.persistence.mountPath -}}/deps, + {{- template "galaxy.pvcname" . -}}/object_store_cache:{{ .Values.persistence.mountPath -}}/object_store_cache, + {{- template "galaxy.pvcname" . -}}/tmp:{{ .Values.persistence.mountPath -}}/tmp, + {{- template "galaxy.pvcname" . -}}/tool-data:{{ .Values.persistence.mountPath -}}/tool-data, + {{- template "galaxy.pvcname" . -}}/tools:{{ .Values.persistence.mountPath -}}/tools, + {{- template "galaxy.pvcname" . -}}/tool_search_index:{{ .Values.persistence.mountPath -}}/tool_search_index {{- if .Values.cvmfs.enabled -}} {{- range $key, $entry := .Values.cvmfs.galaxyPersistentVolumeClaims -}} - ,{{- template "galaxy.fullname" $ -}}-cvmfs-gxy-{{ $key }}-pvc:{{ $entry.mountPath -}} + ,{{ template "galaxy.fullname" $ -}}-cvmfs-gxy-{{ $key }}-pvc:{{ $entry.mountPath -}} {{- end -}} {{- end -}} {{- if .Values.initJob.downloadToolConfs.enabled -}} ,{{ template "galaxy.pvcname" . -}}/{{ .Values.initJob.downloadToolConfs.volume.subPath }}:{{ .Values.initJob.downloadToolConfs.volume.mountPath -}} - {{- end -}} - {{- if .Values.extraVolumes -}} - {{- template "galaxy.extra_pvc_mounts" . -}} - {{- end }} + {{- end d}} #k8s_timeout_seconds_job_deletion: 30 k8s_run_as_user_id: "101" k8s_run_as_group_id: "101"