Helm chart for GalaxyKubeMan (GKM) used for deploying Galaxy on GKE/AnVIL.
Start by launching a GKE cluster, then install the Galaxy dependencies chart that deploys necessary operators, as well as create persistent disks.
gcloud container clusters create example-gke-cluster --cluster-version="1.30" --no-enable-autorepair --disk-size=200 --num-nodes=1 --machine-type=e2-standard-16 --zone "us-east1-b"
helm repo add cloudve https://raw.githubusercontent.com/CloudVE/helm-charts/master/
helm repo update
helm install --create-namespace -n "galaxy-deps" galaxy-deps cloudve/galaxy-deps --set cvmfs.cvmfscsi.nodeplugin.priorityClassName="" --set postgresql.deploy=false
gcloud compute disks create "nfs-pd" --size 300Gi --zone "us-east1-b"
gcloud compute disks create "postgres-pd" --size 10Gi --zone "us-east1-b"
Once the cluster is created, you can deploy a new Galaxy instance. The
sample-values.yaml
file contains sample values to deploy a test/dev version
with no/minimal configuration. Consider the following changes:
- If you changed the names or the persistent disks from the instructions above,
just update those values in
persistence.[nfs, postgres].persistentVolume.extraSpec.gcePersistentDisk.pdName
; - If you plan on changing the release name from
gkm
used in the helm command below, set the value ofgalaxy.persistence.existingDatabase
to{{ release-name }}-postgresql
using the string literal, and not a template variable. - If you plan on changing the release name from
gkm
used in the helm command below, set the value ofgalaxy.persistence.galaxyExistingSecret
to{{ release-name }}-postgresql
using the string literal, and not a template variable.
Then run the following commands:
git clone https://github.com/galaxyproject/galaxykubeman-helm
cd galaxykubeman-helm/galaxykubeman
cp sample-auth.yaml templates/auth.yaml
helm dependency update
helm upgrade --install --create-namespace -n gkmns gkm . --values sample-values.yaml --wait --wait-for-jobs
It will take about 5 minutes for the Galaxy instance to be ready. It will be available at http://[galaxy-nginx service external IP]/galaxy/.
Note: If you will want to redeploy this instance (ie, keep the data), before deleting it, make sure to record the ID of the Galaxy PVC.
If you want to redeploy a Galaxy instance, meaning create a new instance but with data from an earlier installation, it is necessary to update the following values before installing the chart:
- Set
restore.persistence.nfs.galaxy.pvcID
to the PVC ID of the old PVC from the previous Galaxy instance; - Set
galaxy.persistence..existingClaim
to{{release-name}}-galaxy-galaxy-pvc
. You must use a literal string here, and not a template variable; - Set `galaxy.persistence.storageClass to -
Then run the helm upgrade
command again with the same parameters as above.
To deploy a second Galaxy instance on the same cluster, first add a node pool to the cluster (call is pool-2
if you want to minimize changes to the sample values) as well as create a second set of GCP persistent disks:
gcloud compute disks create "nfs-pd-2" --size 300Gi --zone "us-east1-b"
gcloud compute disks create "postgres-pd-2" --size 10Gi --zone "us-east1-b"
Sample values are available in sample-values-2nd-deployment.yaml
with the
necessary configurations. Consider the following values changes:
- If you changed the names of persistent disks, update
persistence.[nfs, postgres].persistentVolume.extraSpec.gcePersistentDisk.pdName
to the names of your GCP persistent disks; - Set the value of
galaxy.persistence.existingDatabase
to{{ release-name }}-postgresql
using the string literal, and not a template variable. - Set the value of
galaxy.persistence.galaxyExistingSecret
to{{ release-name }}-postgresql
using the string literal, and not a template variable.
Then run the following commands:
helm upgrade --install --create-namespace -n gkmns2 gkm2 . --values sample-values-2nd-deployment.yaml --wait --wait-for-jobs
It will take a few minutes for the second Galaxy instance to be ready. The instance will be deployed It will be available at http://[galaxy-nginx-2 service external IP]/galaxy/.
When the GKM chart version changes, need to make a PR to Leo with the updated GKM chart version, any changes to the variables being passed there.