diff --git a/platform_versioned_docs/version-23.3/enterprise_templates/k8s/groundswell.yml b/platform_versioned_docs/version-23.3/enterprise_templates/k8s/groundswell.yml new file mode 100644 index 000000000..f78f78096 --- /dev/null +++ b/platform_versioned_docs/version-23.3/enterprise_templates/k8s/groundswell.yml @@ -0,0 +1,137 @@ +--- +kind: ConfigMap +apiVersion: v1 +metadata: + name: tower-groundswell-cfg +data: + # Server settings + SWELL_SERVER_HOST: "0.0.0.0" + SWELL_SERVER_PORT: "8090" + + # API settings + SWELL_API_TRAIN_TIMEOUT: "60" + SWELL_API_TRAIN_BATCH_SIZE: "1000" + SWELL_API_PREDICT_FRACTIONAL_CPUS: "false" + + # Database settings, different from the Tower DB credentials. + # If using Amazon RDS or similar managed database services, `SWELL_DB_URL` will have the form + # SWELL_DB_URL=mysql://db1.abcdefghijkl.us-east-1.rds.amazonaws.com:3306/swell or similar + SWELL_DB_URL: mysql:///swell + SWELL_DB_USER: swell + SWELL_DB_PASSWORD: + SWELL_DB_DIALECT: mysql +--- +apiVersion: v1 +kind: Service +metadata: + name: groundswell + labels: + app: groundswell +spec: + selector: + app: groundswell + ports: + - name: http + port: 8090 + # targetPort must match with the SWELL_SERVER_PORT in the ConfigMap above. + targetPort: 8090 +--- +apiVersion: apps/v1 +kind: Deployment +metadata: + name: groundswell + labels: + app: groundswell +spec: + selector: + matchLabels: + app: groundswell + strategy: + type: Recreate + + template: + metadata: + labels: + app: groundswell + spec: + imagePullSecrets: + - name: "cr.seqera.io" + securityContext: + fsGroup: 101 + + initContainers: + - name: wait-for-tower-db + image: "mysql:8.0" + command: + - 'bash' + - '-c' + - | + echo "$(date): starting check for db $TOWER_DB_URL" + # Strip initial Java connection string and options after '?' from URI + until mysqlsh --uri "$(echo $TOWER_DB_URL |cut -d'?' -f1 |sed -e 's@jdbc:\(.*\)@\1@')" -u"$TOWER_DB_USER" -p"$TOWER_DB_PASSWORD" --sql -e "SELECT VERSION()"; do + echo "$(date): see you in $SLEEP_PERIOD_SECONDS seconds" + sleep $SLEEP_PERIOD_SECONDS + done + echo "$(date): db server ready" + env: + - name: SLEEP_PERIOD_SECONDS + value: "5" + envFrom: + - configMapRef: + name: tower-backend-cfg + + - name: wait-for-swell-db + image: "mysql:8.0" + command: + - 'bash' + - '-c' + - | + echo "$(date): starting check for db $SWELL_DB_URL" + # Strip initial Java connection string and options after '?' from URI + until mysqlsh --uri "$SWELL_DB_URL" -u"$SWELL_DB_USER" -p"$SWELL_DB_PASSWORD" --sql -e "SELECT VERSION()"; do + echo "$(date): see you in $SLEEP_PERIOD_SECONDS seconds" + sleep $SLEEP_PERIOD_SECONDS + done + echo "$(date): db server ready" + env: + - name: SLEEP_PERIOD_SECONDS + value: "5" + envFrom: + - configMapRef: + name: tower-groundswell-cfg + + - name: migrate-db + image: "cr.seqera.io/private/nf-tower-enterprise/groundswell:0.4.0" + command: ['/opt/groundswell/bin/migrate-db.sh'] + envFrom: + - configMapRef: + name: tower-groundswell-cfg + - configMapRef: + name: tower-backend-cfg + + containers: + - name: groundswell + image: "cr.seqera.io/private/nf-tower-enterprise/groundswell:0.4.0" + env: + - name: MPLCONFIGDIR + value: "/tmp" + envFrom: + - configMapRef: + name: tower-backend-cfg + - configMapRef: + name: tower-groundswell-cfg + volumeMounts: + - name: tmp-volume + mountPath: /tmp/ + securityContext: + capabilities: + drop: + - ALL + readOnlyRootFilesystem: true + runAsNonRoot: true + runAsUser: 101 + + volumes: + - name: tmp-volume + emptyDir: + sizeLimit: "1Gi" diff --git a/platform_versioned_docs/version-23.4/enterprise_templates/k8s/groundswell.yml b/platform_versioned_docs/version-23.4/enterprise_templates/k8s/groundswell.yml new file mode 100644 index 000000000..866ae52dd --- /dev/null +++ b/platform_versioned_docs/version-23.4/enterprise_templates/k8s/groundswell.yml @@ -0,0 +1,137 @@ +--- +kind: ConfigMap +apiVersion: v1 +metadata: + name: tower-groundswell-cfg +data: + # Server settings + SWELL_SERVER_HOST: "0.0.0.0" + SWELL_SERVER_PORT: "8090" + + # API settings + SWELL_API_TRAIN_TIMEOUT: "60" + SWELL_API_TRAIN_BATCH_SIZE: "1000" + SWELL_API_PREDICT_FRACTIONAL_CPUS: "false" + + # Database settings, different from the tower DB credentials. + # If using Amazon RDS or similar managed database services, `SWELL_DB_URL` will have the form + # SWELL_DB_URL=mysql://db1.abcdefghijkl.us-east-1.rds.amazonaws.com:3306/swell or similar + SWELL_DB_URL: mysql:///swell + SWELL_DB_USER: swell + SWELL_DB_PASSWORD: + SWELL_DB_DIALECT: mysql +--- +apiVersion: v1 +kind: Service +metadata: + name: groundswell + labels: + app: groundswell +spec: + selector: + app: groundswell + ports: + - name: http + port: 8090 + # targetPort must match with the SWELL_SERVER_PORT in the ConfigMap above. + targetPort: 8090 +--- +apiVersion: apps/v1 +kind: Deployment +metadata: + name: groundswell + labels: + app: groundswell +spec: + selector: + matchLabels: + app: groundswell + strategy: + type: Recreate + + template: + metadata: + labels: + app: groundswell + spec: + imagePullSecrets: + - name: "cr.seqera.io" + securityContext: + fsGroup: 101 + + initContainers: + - name: wait-for-tower-db + image: "mysql:8.0" + command: + - 'bash' + - '-c' + - | + echo "$(date): starting check for db $TOWER_DB_URL" + # Strip initial Java connection string and options after '?' from URI + until mysqlsh --uri "$(echo $TOWER_DB_URL |cut -d'?' -f1 |sed -e 's@jdbc:\(.*\)@\1@')" -u"$TOWER_DB_USER" -p"$TOWER_DB_PASSWORD" --sql -e "SELECT VERSION()"; do + echo "$(date): see you in $SLEEP_PERIOD_SECONDS seconds" + sleep $SLEEP_PERIOD_SECONDS + done + echo "$(date): db server ready" + env: + - name: SLEEP_PERIOD_SECONDS + value: "5" + envFrom: + - configMapRef: + name: tower-backend-cfg + + - name: wait-for-swell-db + image: "mysql:8.0" + command: + - 'bash' + - '-c' + - | + echo "$(date): starting check for db $SWELL_DB_URL" + # Strip initial Java connection string and options after '?' from URI + until mysqlsh --uri "$SWELL_DB_URL" -u"$SWELL_DB_USER" -p"$SWELL_DB_PASSWORD" --sql -e "SELECT VERSION()"; do + echo "$(date): see you in $SLEEP_PERIOD_SECONDS seconds" + sleep $SLEEP_PERIOD_SECONDS + done + echo "$(date): db server ready" + env: + - name: SLEEP_PERIOD_SECONDS + value: "5" + envFrom: + - configMapRef: + name: tower-groundswell-cfg + + - name: migrate-db + image: "cr.seqera.io/private/nf-tower-enterprise/groundswell:0.4.0" + command: ['/opt/groundswell/bin/migrate-db.sh'] + envFrom: + - configMapRef: + name: tower-groundswell-cfg + - configMapRef: + name: tower-backend-cfg + + containers: + - name: groundswell + image: "cr.seqera.io/private/nf-tower-enterprise/groundswell:0.4.0" + env: + - name: MPLCONFIGDIR + value: "/tmp" + envFrom: + - configMapRef: + name: tower-backend-cfg + - configMapRef: + name: tower-groundswell-cfg + volumeMounts: + - name: tmp-volume + mountPath: /tmp/ + securityContext: + capabilities: + drop: + - ALL + readOnlyRootFilesystem: true + runAsNonRoot: true + runAsUser: 101 + + volumes: + - name: tmp-volume + emptyDir: + sizeLimit: "1Gi" diff --git a/platform_versioned_docs/version-24.1/enterprise/_templates/k8s/groundswell.yml b/platform_versioned_docs/version-24.1/enterprise/_templates/k8s/groundswell.yml index d5316cb66..866ae52dd 100644 --- a/platform_versioned_docs/version-24.1/enterprise/_templates/k8s/groundswell.yml +++ b/platform_versioned_docs/version-24.1/enterprise/_templates/k8s/groundswell.yml @@ -68,7 +68,7 @@ spec: - | echo "$(date): starting check for db $TOWER_DB_URL" # Strip initial Java connection string and options after '?' from URI - until mysqlsh --uri "$(echo $TOWER_DB_URL |sed -e 's@jdbc:\(.*\)?.*@\1@')" -u"$TOWER_DB_USER" -p"$TOWER_DB_PASSWORD" --sql -e "SELECT VERSION()"; do + until mysqlsh --uri "$(echo $TOWER_DB_URL |cut -d'?' -f1 |sed -e 's@jdbc:\(.*\)@\1@')" -u"$TOWER_DB_USER" -p"$TOWER_DB_PASSWORD" --sql -e "SELECT VERSION()"; do echo "$(date): see you in $SLEEP_PERIOD_SECONDS seconds" sleep $SLEEP_PERIOD_SECONDS done @@ -101,7 +101,7 @@ spec: name: tower-groundswell-cfg - name: migrate-db - image: "cr.seqera.io/private/nf-tower-enterprise/groundswell:0.3.3" + image: "cr.seqera.io/private/nf-tower-enterprise/groundswell:0.4.0" command: ['/opt/groundswell/bin/migrate-db.sh'] envFrom: - configMapRef: @@ -111,7 +111,7 @@ spec: containers: - name: groundswell - image: "cr.seqera.io/private/nf-tower-enterprise/groundswell:0.3.3" + image: "cr.seqera.io/private/nf-tower-enterprise/groundswell:0.4.0" env: - name: MPLCONFIGDIR value: "/tmp"