Skip to content

Quickstart on LDAS VMs

For a quick deployment of the LLAI on K3s on a fluxuser machine at CIT, follow the brief instructions below. Additional details can be found in the remainder of this documentation.

Before you begin

Activate an IGWN Conda environment:

source /cvmfs/software.igwn.org/conda/etc/profile.d/conda.sh
conda activate igwn

Clone the LLAI Deploy Sandboxed GitLab project:

git clone https://git.ligo.org/emfollow/k8s/llai-deploy-sandboxed.git
cd llai-deploy-sandboxed

Define enviromental variable

export TRAEFIK_IP=$(kubectl get svc -A | grep tra|awk '{print $5}')
export TRAEFIK_CLUSTERIP=$(kubectl get svc -A | grep tra|awk '{print $4}')
export HOPSKOTCH_CLUSTERIP=$(kubectl get svc -A | grep hopskotch |awk '{print $4}')
export GRACEDB_NAME="gracedb-dev<X>.ldas.cit"
export GWCELERY_NAME="fluxuser<X>.ldas.cit"
instead of <X> use the actual VM host number

Installation

Add the relevant Helm repositories:

helm repo add --force-update gracedb-helm https://git.ligo.org/api/v4/projects/15655/packages/helm/stable
helm repo add --force-update gwcelery-helm https://git.ligo.org/api/v4/projects/16068/packages/helm/stable
helm repo add --force-update meg-helm https://git.ligo.org/api/v4/projects/11815/packages/helm/stable

Install the Hopskotch server:

helm upgrade --install hopskotch  gracedb-helm/hopskotch --set storageClassName=local-path

Install GraceDB (when all the Hopskotch Pods are ready):

helm upgrade --install gracedb gracedb-helm/gracedb   --set storageClassName=local-path --set traefik.install=false --set publicName=${GRACEDB_NAME}
when all the GraceDB Pods are ready, add users and robots to gracedb instance:
ALL_PERMS=True LIGO_USERS=True LIGO_ROBOTS=True ./add-account.sh marie.curie
Install GWCelery :
# add the Kerberos keytab
./utility/init-kerberos_local.sh marie.curie
./utility/add-gwcelery-secret.sh /tmp/marie.curie@LIGO.ORG.keytab
helm upgrade --install gwcelery gwcelery-helm/gwcelery \
             --set gwcelery.storageClassName=local-path \
             --set gwcelery.gracedb.hostname=${GRACEDB_NAME} \
             --set gwcelery.ingress.host=${GWCELERY_NAME} \
             --set gwcelery.hostAlias.ip=${TRAEFIK_CLUSTERIP} \
             --set gwcelery.hostAlias.hopskotchip=${HOPSKOTCH_CLUSTERIP} \
             --set gwcelery.userName="marie.curie" \
             --set gwcelery.celery.gwfProducer.enabled=true \
             --set gwcelery.celery.gwfProducer.sslAuthentication=false \
             --set gwcelery.celery.gwfProducer.BootstrapServer="kafkaifo1.ldas.cit:9092"

Install MEG:

helm upgrade --install -n default \
             --set meg.storageClassName=local-path \
             --set meg.gracedb.hostAliases=false \
             --set meg.scitoken.enabled=true  \
             --set meg.scitoken.tokenSecretName=gwcelery-scitoken-tokens \
             meg meg-helm/meg

Access to web endpoints

The installed services are available on the local network only. You might want to use a SOCKS proxy to access these services from your local browser as explained here.

GraceDB can be reached at:

https://gracedb-dev<X>.ldas.cit

Flower and the GWCelery console are available at:

http://fluxuser<X>.ldas.cit/flower/
http://fluxuser<X>.ldas.cit/gwcelery/

Configuration

Add yourself as admin user of GraceDB:

ALL_PERMS=True ./utility/add-account.sh <marie.curie>

In order to grant full privileges to your user, access the admin interface at the URL:

https://gracedb-dev<X>.ldas.cit/admin
The default login credentials are admin/mypassword.

Navigate to AUTHENTICATION AND AUTHORIZATION->Users, search for your account, choose all the available groups and permissions and save.

Test

You are now ready to install and use MEG for testing.