From bb9e602b589afcf4f4c33ccd80c30424aed47780 Mon Sep 17 00:00:00 2001 From: Aday Bujeda Date: Thu, 2 Mar 2023 16:45:41 +0000 Subject: [PATCH 1/9] feat(ondemand): gh #824 added OnDemand 2.1 RPM + Sid and FASRC profiles --- ondemand/.gitignore | 3 + ondemand/Makefile | 92 +++++++ ondemand/announcements.d/status.md | 1 + ondemand/apache/sid_development.crt | 20 ++ ondemand/apache/sid_development.key | 28 ++ ondemand/apps/OdysseyRD/LICENSE.txt | 22 ++ ondemand/apps/OdysseyRD/README.md | 77 ++++++ ondemand/apps/OdysseyRD/form.yml | 19 ++ ondemand/apps/OdysseyRD/local/main.yml | 3 + .../apps/OdysseyRD/local/ql_odyssey_dev.yml | 17 ++ ondemand/apps/OdysseyRD/manifest.yml | 10 + ondemand/apps/OdysseyRD/submit.yml.erb | 3 + .../apps/OdysseyRD/template/before.sh.erb | 2 + .../apps/OdysseyRD/template/desktops/gnome.sh | 17 ++ .../apps/OdysseyRD/template/desktops/kde.sh | 1 + .../apps/OdysseyRD/template/desktops/mate.sh | 30 +++ .../apps/OdysseyRD/template/desktops/xfce.sh | 40 +++ .../apps/OdysseyRD/template/script.sh.erb | 15 ++ ondemand/apps/Rstudio/LICENSE.txt | 22 ++ ondemand/apps/Rstudio/README.md | 44 +++ ondemand/apps/Rstudio/form.yml | 8 + ondemand/apps/Rstudio/icon.png | Bin 0 -> 9018 bytes ondemand/apps/Rstudio/image.png | Bin 0 -> 17097 bytes .../Rstudio/install-compute-dependencies.sh | 24 ++ ondemand/apps/Rstudio/local/main.yml | 3 + .../apps/Rstudio/local/ql_rstudio_dev.yml | 16 ++ ondemand/apps/Rstudio/manifest.yml | 7 + ondemand/apps/Rstudio/submit.yml.erb | 3 + ondemand/apps/Rstudio/template/after.sh.erb | 9 + ondemand/apps/Rstudio/template/before.sh.erb | 9 + ondemand/apps/Rstudio/template/bin/auth | 27 ++ ondemand/apps/Rstudio/template/script.sh.erb | 61 +++++ ondemand/apps/Rstudio/view.html.erb | 9 + ondemand/config/env | 4 + ondemand/config/motd | 40 +++ .../batch_connect/sessions/_panel.html.erb | 36 +++ .../sessions/connections/_kvm.html.erb | 9 + .../sessions/connections/_novnckvm.html.erb | 25 ++ .../sessions/connections/_turbovnc.html.erb | 25 ++ .../config/views/layouts/_footer.html.erb | 46 ++++ .../widgets/sid/_all_sessions_button.html.erb | 13 + .../views/widgets/sid/_cannon_button.html.erb | 15 ++ .../config/views/widgets/sid/_docs.html.erb | 69 +++++ .../views/widgets/sid/_fasse_button.html.erb | 15 ++ .../views/widgets/sid/_quick_links.html.erb | 9 + .../widgets/sid/_terminal_button.html.erb | 15 ++ .../config/views/widgets/sid/_util.html.erb | 9 + .../widgets/sid/_welcome_message.html.erb | 12 + ondemand/docker-compose.yml | 162 ++++++++++++ ondemand/docker/Dockerfile.node | 10 + ondemand/docker/Dockerfile.ondemand | 33 +++ ondemand/docker/Dockerfile.slurm | 27 ++ ondemand/docker/dev-cluster.yml | 39 +++ ondemand/docker/launch-httpd | 8 + ondemand/docker/nginx_stage.yml | 5 + ondemand/docker/ood-latest.repo | 5 + ondemand/docker/ood_portal.yml | 250 ++++++++++++++++++ ondemand/docker/with-ssh.sh | 4 + .../ood_core/batch_connect/templates/kvm.rb | 32 +++ .../batch_connect/templates/turbovnc.rb | 217 +++++++++++++++ ondemand/ondemand.d/default.yml | 13 + ondemand/ondemand.d/fasrc.yml | 28 ++ ondemand/ondemand.d/sid.yml | 67 +++++ ondemand/ondemand.d/support_ticket.yml | 8 + ondemand/public/css/sid.css | 245 +++++++++++++++++ ondemand/public/images/desktop_logo.svg | 37 +++ ondemand/public/images/fasrc_logo.jpg | Bin 0 -> 11592 bytes ondemand/public/images/fasrc_logo.png | Bin 0 -> 12713 bytes ondemand/public/images/iqss_logo.png | Bin 0 -> 79737 bytes ondemand/public/images/jupyter_logo.svg | 90 +++++++ ondemand/public/images/matlab_logo.png | Bin 0 -> 25226 bytes ondemand/public/images/rc-logo-text_2017.png | Bin 0 -> 134303 bytes ondemand/public/images/rstudio_logo.png | Bin 0 -> 17097 bytes ondemand/public/images/sas_logo.png | Bin 0 -> 29521 bytes ondemand/public/images/sid_logo.png | Bin 0 -> 11290 bytes ondemand/public/images/stata_logo.svg | 37 +++ ondemand/public/images/term_logo.svg | 119 +++++++++ 77 files changed, 2420 insertions(+) create mode 100644 ondemand/.gitignore create mode 100644 ondemand/Makefile create mode 100644 ondemand/announcements.d/status.md create mode 100644 ondemand/apache/sid_development.crt create mode 100644 ondemand/apache/sid_development.key create mode 100644 ondemand/apps/OdysseyRD/LICENSE.txt create mode 100644 ondemand/apps/OdysseyRD/README.md create mode 100644 ondemand/apps/OdysseyRD/form.yml create mode 100644 ondemand/apps/OdysseyRD/local/main.yml create mode 100644 ondemand/apps/OdysseyRD/local/ql_odyssey_dev.yml create mode 100644 ondemand/apps/OdysseyRD/manifest.yml create mode 100644 ondemand/apps/OdysseyRD/submit.yml.erb create mode 100755 ondemand/apps/OdysseyRD/template/before.sh.erb create mode 100755 ondemand/apps/OdysseyRD/template/desktops/gnome.sh create mode 100644 ondemand/apps/OdysseyRD/template/desktops/kde.sh create mode 100755 ondemand/apps/OdysseyRD/template/desktops/mate.sh create mode 100755 ondemand/apps/OdysseyRD/template/desktops/xfce.sh create mode 100755 ondemand/apps/OdysseyRD/template/script.sh.erb create mode 100644 ondemand/apps/Rstudio/LICENSE.txt create mode 100644 ondemand/apps/Rstudio/README.md create mode 100644 ondemand/apps/Rstudio/form.yml create mode 100644 ondemand/apps/Rstudio/icon.png create mode 100644 ondemand/apps/Rstudio/image.png create mode 100644 ondemand/apps/Rstudio/install-compute-dependencies.sh create mode 100644 ondemand/apps/Rstudio/local/main.yml create mode 100644 ondemand/apps/Rstudio/local/ql_rstudio_dev.yml create mode 100644 ondemand/apps/Rstudio/manifest.yml create mode 100644 ondemand/apps/Rstudio/submit.yml.erb create mode 100755 ondemand/apps/Rstudio/template/after.sh.erb create mode 100755 ondemand/apps/Rstudio/template/before.sh.erb create mode 100755 ondemand/apps/Rstudio/template/bin/auth create mode 100755 ondemand/apps/Rstudio/template/script.sh.erb create mode 100644 ondemand/apps/Rstudio/view.html.erb create mode 100644 ondemand/config/env create mode 100644 ondemand/config/motd create mode 100644 ondemand/config/views/batch_connect/sessions/_panel.html.erb create mode 100644 ondemand/config/views/batch_connect/sessions/connections/_kvm.html.erb create mode 100644 ondemand/config/views/batch_connect/sessions/connections/_novnckvm.html.erb create mode 100644 ondemand/config/views/batch_connect/sessions/connections/_turbovnc.html.erb create mode 100644 ondemand/config/views/layouts/_footer.html.erb create mode 100644 ondemand/config/views/widgets/sid/_all_sessions_button.html.erb create mode 100644 ondemand/config/views/widgets/sid/_cannon_button.html.erb create mode 100644 ondemand/config/views/widgets/sid/_docs.html.erb create mode 100644 ondemand/config/views/widgets/sid/_fasse_button.html.erb create mode 100644 ondemand/config/views/widgets/sid/_quick_links.html.erb create mode 100644 ondemand/config/views/widgets/sid/_terminal_button.html.erb create mode 100644 ondemand/config/views/widgets/sid/_util.html.erb create mode 100644 ondemand/config/views/widgets/sid/_welcome_message.html.erb create mode 100644 ondemand/docker-compose.yml create mode 100644 ondemand/docker/Dockerfile.node create mode 100644 ondemand/docker/Dockerfile.ondemand create mode 100644 ondemand/docker/Dockerfile.slurm create mode 100644 ondemand/docker/dev-cluster.yml create mode 100755 ondemand/docker/launch-httpd create mode 100644 ondemand/docker/nginx_stage.yml create mode 100644 ondemand/docker/ood-latest.repo create mode 100644 ondemand/docker/ood_portal.yml create mode 100755 ondemand/docker/with-ssh.sh create mode 100644 ondemand/lib/ood_core/batch_connect/templates/kvm.rb create mode 100644 ondemand/lib/ood_core/batch_connect/templates/turbovnc.rb create mode 100644 ondemand/ondemand.d/default.yml create mode 100644 ondemand/ondemand.d/fasrc.yml create mode 100644 ondemand/ondemand.d/sid.yml create mode 100644 ondemand/ondemand.d/support_ticket.yml create mode 100644 ondemand/public/css/sid.css create mode 100644 ondemand/public/images/desktop_logo.svg create mode 100644 ondemand/public/images/fasrc_logo.jpg create mode 100644 ondemand/public/images/fasrc_logo.png create mode 100644 ondemand/public/images/iqss_logo.png create mode 100644 ondemand/public/images/jupyter_logo.svg create mode 100644 ondemand/public/images/matlab_logo.png create mode 100644 ondemand/public/images/rc-logo-text_2017.png create mode 100644 ondemand/public/images/rstudio_logo.png create mode 100644 ondemand/public/images/sas_logo.png create mode 100644 ondemand/public/images/sid_logo.png create mode 100644 ondemand/public/images/stata_logo.svg create mode 100644 ondemand/public/images/term_logo.svg diff --git a/ondemand/.gitignore b/ondemand/.gitignore new file mode 100644 index 00000000..b6e709ca --- /dev/null +++ b/ondemand/.gitignore @@ -0,0 +1,3 @@ +/data + +VERSION diff --git a/ondemand/Makefile b/ondemand/Makefile new file mode 100644 index 00000000..b76cd203 --- /dev/null +++ b/ondemand/Makefile @@ -0,0 +1,92 @@ +# default build target +all:: + +all:: dev +.PHONY: dev remote-dev remote-fasse test release down up clean clean-remote-dev clean-remote-fasse version next-version docker-build docker-build-slurm docker-build-ood docker-push + +OOD_UID := $(shell id -u) +OOD_GID := $(shell id -g) +OOD_TAG := 2.1.0-0.rc8.el7 +SLURM_TAG := slurm-21-08-6-1 +REMOTE_USERNAME := $(if $(SSH_USERNAME),$(SSH_USERNAME),$(USER)) +SID_SLURM_IMAGE := hmdc/sid-slurm:$(SLURM_TAG) +SID_ONDEMAND_IMAGE := hmdc/sid-ood:$(SLURM_TAG)-ood-$(OOD_TAG) + +ENV := env SLURM_TAG=$(SLURM_TAG) SID_SLURM_IMAGE=$(SID_SLURM_IMAGE) SID_ONDEMAND_IMAGE=$(SID_ONDEMAND_IMAGE) OOD_UID=$(OOD_UID) OOD_GID=$(OOD_GID) + +DETACHED_MODE := $(if $(DETACHED),-d,) + +NODE_VERSION :=`cat ../.node-version` +PWD := $(shell pwd) + +ifneq ($(shell git branch --show-current),stable) +NPM_RUN_VERSION_ARGS := --config='.release-it-dev.json' +endif + +TEMPLATE_LOCATION := ./application/lib/ood_core/batch_connect/templates +TURBOVNC_TEMPLATE := turbovnc.rb +KVM_TEMPLATE := kvm.rb + +remote-dev clean-remote-dev: LOGIN_HOST := login.rc.fas.harvard.edu +remote-dev clean-remote-dev: APP_FOLDER := ./fasrc/dev/dashboard +remote-dev: TEMPLATE_URL := https://iqss-sid.rc.fas.harvard.edu/pun/sys/dashboard/files/fs/var/www/ood/apps/sys/sid/lib/ood_core/batch_connect/templates +remote-dev: CHECK_TEMPLATE_VERSION := "check_version" + +remote-fasse clean-remote-fasse: LOGIN_HOST := fasselogin.rc.fas.harvard.edu +remote-fasse clean-remote-fasse: APP_FOLDER := ./.fasseood/dev/dashboard +remote-fasse: TEMPLATE_URL := https://fasse-iqss-ood.rc.fas.harvard.edu/pun/sys/dashboard/files/fs/var/www/ood/apps/sys/sid/lib/ood_core/batch_connect/templates +remote-fasse: HTTP_PROXY := http://rcproxy.rc.fas.harvard.edu:3128 +remote-fasse: HTTPS_PROXY := http://rcproxy.rc.fas.harvard.edu:3128 +remote-fasse: CHECK_TEMPLATE_VERSION := "" + +dev: down up + +remote-dev remote-fasse: version + $(ENV) http_proxy=$(HTTP_PROXY) https_proxy=$(HTTPS_PROXY) docker-compose build + @echo "You need to be connected to the VPN" + ssh $(REMOTE_USERNAME)@$(LOGIN_HOST) mkdir -p $(APP_FOLDER) + $(ENV) docker-compose run --no-deps --entrypoint="" ood su - ood bash -c "export PATH=/home/ood/bin:/home/ood/ondemand/dev/dashboard/node_modules/.bin:$$PATH; cd /home/ood/ondemand/dev/dashboard; scl enable rh-ruby27 rh-nodejs14 'gem install --user-install bundler -v 2.1.4 && bundle config --local path 'vendor/bundle' && bundle install && npm install yarn --save && bundle exec rake assets:precompile'" + @echo "You need to be connected to the VPN" + @./download_and_check.sh $(REMOTE_USERNAME) $(TEMPLATE_URL)/$(TURBOVNC_TEMPLATE) $(TEMPLATE_LOCATION)/$(TURBOVNC_TEMPLATE) $(CHECK_TEMPLATE_VERSION) + @./download_and_check.sh $(REMOTE_USERNAME) $(TEMPLATE_URL)/$(KVM_TEMPLATE) $(TEMPLATE_LOCATION)/$(KVM_TEMPLATE) $(CHECK_TEMPLATE_VERSION) + rsync -avz --delete --exclude-from='rsync-exclude.conf' ./application/ -e ssh $(REMOTE_USERNAME)@$(LOGIN_HOST):$(APP_FOLDER) + +test: + $(ENV) docker-compose run --no-deps --entrypoint="" ood su - ood bash -c "export PATH=/home/ood/bin:/home/ood/ondemand/dev/dashboard/node_modules/.bin:$$PATH; cd /home/ood/ondemand/dev/dashboard; scl enable rh-ruby27 rh-nodejs14 'gem install --user-install bundler -v 2.1.4 && bundle config --local path 'vendor/bundle' && bundle install && npm install yarn --save && bundle exec rake test'" + +release: next-version + $(ENV) docker-compose run --no-deps --entrypoint="" ood su - ood bash -c "export PATH=/home/ood/bin:/home/ood/ondemand/dev/dashboard/node_modules/.bin:$$PATH; export RAILS_ENV=production; cd /home/ood/ondemand/dev/dashboard; scl enable rh-ruby27 rh-nodejs14 'gem install --user-install bundler -v 2.1.4 && bundle config --local path 'vendor/bundle' && bundle install && npm install yarn --save && bundle exec rake assets:precompile'" + mkdir -p ./target + tar -czvf ./target/sid2-dashboard.tar.gz ./application + +down: + $(ENV) docker-compose down -v || : + +up: + $(ENV) docker-compose up --build $(DETACHED_MODE) + +clean: + rm -rf application/.bundle application/VERSION application/log application/node_modules application/public/assets application/tmp application/vendor/bundle data/* + $(ENV) docker-compose down --rmi all --volumes + +clean-remote-dev clean-remote-fasse: + echo "For FASSE, you need to be connected to the VPN" + ssh $(REMOTE_USERNAME)@$(LOGIN_HOST) rm -rfv $(APP_FOLDER) || : + +next-version: + docker run --rm -v $(PWD)/..:/usr/app -w /usr/app node:$(NODE_VERSION) /bin/bash -c "npm install && npm run version -- $(NPM_RUN_VERSION_ARGS) | tail -n 1 > dashboard/application/VERSION" + +docker-build: docker-build-slurm docker-build-ood + +docker-push: + docker push $(SID_SLURM_IMAGE) + docker push $(SID_ONDEMAND_IMAGE) + +docker-build-slurm: + docker build --build-arg SLURM_TAG=$(SLURM_TAG) -t $(SID_SLURM_IMAGE) -f docker/Dockerfile.slurm . + +docker-build-ood: + docker build --build-arg OOD_TAG=$(OOD_TAG) --build-arg SLURM_TAG=$(SLURM_TAG) -t $(SID_ONDEMAND_IMAGE) -f docker/Dockerfile.ondemand . + +docker-push-ood: + docker push $(SID_ONDEMAND_IMAGE) diff --git a/ondemand/announcements.d/status.md b/ondemand/announcements.d/status.md new file mode 100644 index 00000000..baf1489f --- /dev/null +++ b/ondemand/announcements.d/status.md @@ -0,0 +1 @@ +
STATUS PAGE No known issues.
\ No newline at end of file diff --git a/ondemand/apache/sid_development.crt b/ondemand/apache/sid_development.crt new file mode 100644 index 00000000..d0f89969 --- /dev/null +++ b/ondemand/apache/sid_development.crt @@ -0,0 +1,20 @@ +-----BEGIN CERTIFICATE----- +MIIDLjCCAhYCCQCtMM3TbnCVsTANBgkqhkiG9w0BAQsFADBZMQswCQYDVQQGEwJV +UzEWMBQGA1UECAwNTWFzc2FjaHVzZXR0czEPMA0GA1UEBwwGQm9zdG9uMQ0wCwYD +VQQKDARJUVNTMRIwEAYDVQQDDAlsb2NhbGhvc3QwHhcNMjIwMTEyMTYzMzM4WhcN +NDkwNTMwMTYzMzM4WjBZMQswCQYDVQQGEwJVUzEWMBQGA1UECAwNTWFzc2FjaHVz +ZXR0czEPMA0GA1UEBwwGQm9zdG9uMQ0wCwYDVQQKDARJUVNTMRIwEAYDVQQDDAls +b2NhbGhvc3QwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDclKu05+65 +0yRV1yU/NmGLWCGqyeM7N1MIDlgHewtFiL20YEUy392wyOzo663yKxHrBoJormP6 +hbb/nW2/LLx4gJ0JZ+N7/Vo40trJV6sTdOsiL7Xzp1MURZPcBEuF/pS16MDVvtoF +CdQrvG8dzX/Znbtmu8jVP+WOADcguvECp/tOpkYBMBwxXvmpAch15WEzuSyPXg4e +cCufJE34c77tGcEbns+vikWrW1Evy6vVjmJPDk915p+HkPfXoXiN+4DnAttLUHNL +sAwcuRWYSCsD/tiMtjHQIzHHiU/AmmKz84rcUlYkcSu2T78rG8TaYIK20oXHfJHA +Hfcjfll8g/AHAgMBAAEwDQYJKoZIhvcNAQELBQADggEBANbwpF7T+Bs+o192f6E+ +JO5CfyMMCrzyED5PJmGSt/CtkG9KINd4/psoLKNocfDQaFE26BqpLAjUxNrxuHuY +XcGPOR+CYTqRm6RK2BpEJwxa6/mu5BLT9L+3AKDK1Z2VsSe120vhNEIIoqsrHGoS +tHXCu6HglR1XlknTsG0Yp9pHgNmS+t/J0jSZHz95UBUNuJzT2mKspW5xEFbhYIaW +6pBgp5a/shA4fQy4ypQne6q9vp4uSHm5TtEJOQhHPOVRuS4qvGhgpsuravwq39Nv +dqW8/n2IrNxPJ5P9JswQL9HbrtpHpbhbPDawm0wZ7C9QFxl1AZ/oLfpYtwTk4UhP +Jlw= +-----END CERTIFICATE----- diff --git a/ondemand/apache/sid_development.key b/ondemand/apache/sid_development.key new file mode 100644 index 00000000..61905936 --- /dev/null +++ b/ondemand/apache/sid_development.key @@ -0,0 +1,28 @@ +-----BEGIN PRIVATE KEY----- +MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQDclKu05+650yRV +1yU/NmGLWCGqyeM7N1MIDlgHewtFiL20YEUy392wyOzo663yKxHrBoJormP6hbb/ +nW2/LLx4gJ0JZ+N7/Vo40trJV6sTdOsiL7Xzp1MURZPcBEuF/pS16MDVvtoFCdQr +vG8dzX/Znbtmu8jVP+WOADcguvECp/tOpkYBMBwxXvmpAch15WEzuSyPXg4ecCuf +JE34c77tGcEbns+vikWrW1Evy6vVjmJPDk915p+HkPfXoXiN+4DnAttLUHNLsAwc +uRWYSCsD/tiMtjHQIzHHiU/AmmKz84rcUlYkcSu2T78rG8TaYIK20oXHfJHAHfcj +fll8g/AHAgMBAAECggEBAJz2IhVSMVsD90gqF3Qa02Cfrx1kGhEqNih2ZIe2M/gf +7LYtBzDDgnJpF8RK6PV5Vn/Cmwu4hKZhfi34rX6ra9Xn11c5GPRC/W+QA2Xgv3jR +6vvhrX0bZQ/4ztVyLPfFh7bGUGoJLAUH0HXq2bsAX2jQR+k72RZ+KHBakN/2hsfW +xAhcmMSvrN1KOlP27fsLulMKQL3y5YE3YbFczmcjhIqE4QePAbPfNslPFtsimW8y +G2jljjH5ZS9VfSbB+uziJ0pLeaoi0dahNzrGv70cDIY4j/P68yFvUFrUW6yMcbcO +YYSWE46wTF7z+EqUsw7z1++xfuXddBru0n8U1MK/bJkCgYEA/rLysCSLYcFSX8cf +uDHhbqkWzTs/XECLMYAohV9wlRAGfuhAqKFMIYTocWJybxVsGbmLlc+70F1tOSvE +wmnOLnHsuoKlH4WDb1cynHOIS1Ssp2TpTdJcnY8yrr9o5I8G/LQBfGKoCeVwFgqC +89AaddOmxT/dScV3vmqVXhA2TGsCgYEA3bUb0XK9IDTjl3MQ+2lUKDaLOuexyY2X +DhDI/FBjM/mUX2hVzqNNrZ6Nh7CerlsILYxrmmlJPeeQxJUFForHm3m1t56LzpkM +/93yqtASEbQAycUW/IbpEf5KBbyDqagBfo6Ca2HR8Tulml5i2Kwf8uGG9hrPAENQ +O44tsb2Z0dUCgYAiMCkNZcpj08xX2OW0FtX4wa+y2roViwBkI5zM0lPNXnpQvKI5 +QHV0pl+BIMLVkF2TUmmfMWQ3guLvYqWlpwgrCdXJ71F02roazuyXPZbU7cfDLHN4 +o70U1SzrcfwFegFpGEx+wstlkKur+bs8OPnkSQXAwmLUzTHWmH32Q1zWgwKBgEPG +8RknrX+iC42qJJ/nRE4C1q+MU0KdoXcwVHEmFh22h9Be8hR4we940CWSLgB5Xdem +3OJYm4ZsO0qNj/+jL4BtRcs7kdv32AyEioIDl/KHh9InCW7rw2a3yWNVjR6ZeNN6 +t44iWm8X3/mAL1Gz1RSIM50a9vtKmMWMIpX6s4J9AoGAUm3wf+Ce/OLlKgmshh6v +oJtNoekUDrKrhL7+aLlqReAr5ooaF+Sr4TqT5nZgaNEDX1fBrXiyXsWPT7sChviU +xzTuCE9BTeeUu7cjBC0cZRSziTBMEUdNJzg3QzkP8vquMzH3YapqjbsxUQzRkPxC +IQ2FrwBk15FurU2redQNxpc= +-----END PRIVATE KEY----- diff --git a/ondemand/apps/OdysseyRD/LICENSE.txt b/ondemand/apps/OdysseyRD/LICENSE.txt new file mode 100644 index 00000000..4c5b5e86 --- /dev/null +++ b/ondemand/apps/OdysseyRD/LICENSE.txt @@ -0,0 +1,22 @@ +Copyright (c) 2016-2018 Ohio Supercomputer Center + +MIT License + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/ondemand/apps/OdysseyRD/README.md b/ondemand/apps/OdysseyRD/README.md new file mode 100644 index 00000000..dff10b17 --- /dev/null +++ b/ondemand/apps/OdysseyRD/README.md @@ -0,0 +1,77 @@ +# Batch Connect - Desktop + +![GitHub Release](https://img.shields.io/github/release/osc/bc_desktop.svg) +[![GitHub License](https://img.shields.io/badge/license-MIT-green.svg)](https://opensource.org/licenses/MIT) + +A Batch Connect app designed to launch a GUI desktop withing a batch job. + +## Prerequisites + +This Batch Connect app requires the following software be installed on the +**compute nodes** that the batch job is intended to run on (**NOT** the +OnDemand node). + +One of the following desktops: + +- [Xfce Desktop] 4+ +- [Mate Desktop] 1+ (*default*) +- [Gnome Desktop] 2 (currently we do not support Gnome 3) + +For VNC server support: + +- [TurboVNC] 2.1+ +- [websockify] 0.8.0+ + +For hardware rendering support: + +- [X server] +- [VirtualGL] 2.3+ + +[Xfce Desktop]: https://xfce.org/ +[Mate Desktop]: https://mate-desktop.org/ +[Gnome Desktop]: https://www.gnome.org/ +[TurboVNC]: http://www.turbovnc.org/ +[websockify]: https://github.com/novnc/websockify +[X server]: https://www.x.org/ +[VirtualGL]: http://www.virtualgl.org/ + +## Install + +Use git to clone this app and checkout the desired branch/version you want to +use: + +```sh +scl enable git19 -- git clone +cd +scl enable git19 -- git checkout +``` + +You will not need to do anything beyond this as all necessary assets are +installed. You will also not need to restart this app as it isn't a Passenger +app. + +To update the app you would: + +```sh +cd +scl enable git19 -- git fetch +scl enable git19 -- git checkout +``` + +Again, you do not need to restart the app as it isn't a Passenger app. + +## Configuration + +Please see the [Install Desktops] section in the [Open OnDemand Documentation] +to learn more about setting up and configuring a desktop at your HPC center. + +[Install Desktops]: https://osc.github.io/ood-documentation/master/enable-desktops.html +[Open OnDemand Documentation]: https://osc.github.io/ood-documentation/master/index.html + +## Contributing + +1. Fork it ( https://github.com/OSC/bc_desktop/fork ) +2. Create your feature branch (`git checkout -b my-new-feature`) +3. Commit your changes (`git commit -am 'Add some feature'`) +4. Push to the branch (`git push origin my-new-feature`) +5. Create a new Pull Request diff --git a/ondemand/apps/OdysseyRD/form.yml b/ondemand/apps/OdysseyRD/form.yml new file mode 100644 index 00000000..abcb67ce --- /dev/null +++ b/ondemand/apps/OdysseyRD/form.yml @@ -0,0 +1,19 @@ +--- +cluster: "dev-cluster" +attributes: + desktop: "mate" + bc_vnc_idle: 0 + bc_vnc_resolution: + required: true + node_type: null + +form: + - bc_vnc_idle + - desktop + - bc_account + - bc_num_hours + - bc_num_slots + - node_type + - bc_queue + - bc_vnc_resolution + - bc_email_on_started diff --git a/ondemand/apps/OdysseyRD/local/main.yml b/ondemand/apps/OdysseyRD/local/main.yml new file mode 100644 index 00000000..6ec403e8 --- /dev/null +++ b/ondemand/apps/OdysseyRD/local/main.yml @@ -0,0 +1,3 @@ +--- +cluster: "dev-cluster" +title: "FAS-RC Remote Desktop" diff --git a/ondemand/apps/OdysseyRD/local/ql_odyssey_dev.yml b/ondemand/apps/OdysseyRD/local/ql_odyssey_dev.yml new file mode 100644 index 00000000..c484bdd4 --- /dev/null +++ b/ondemand/apps/OdysseyRD/local/ql_odyssey_dev.yml @@ -0,0 +1,17 @@ +--- +cluster: "dev-cluster" +title: "FAS-RC Remote Desktop" +tile: + title: "Run FAS-RC Remote Desktop" + icon: "/public/images/desktop_logo.svg" + sub_caption: | + 2 CPU cores and 4GB RAM + 8 hours job run time + Cannon cluster +attributes: + bc_account: "" + bc_num_slots: "1" + bc_num_hours: "1" + bc_queue: "" + bc_email_on_started: "0" + bc_vnc_resolution: "1024x768" diff --git a/ondemand/apps/OdysseyRD/manifest.yml b/ondemand/apps/OdysseyRD/manifest.yml new file mode 100644 index 00000000..f003e356 --- /dev/null +++ b/ondemand/apps/OdysseyRD/manifest.yml @@ -0,0 +1,10 @@ +--- +name: Remote Desktop +icon: fa://desktop +category: Interactive Apps +subcategory: Desktops +role: batch_connect +description: | + This app will launch an interactive desktop on one or more compute nodes. You + will have full access to the resources these nodes provide. This is analogous + to an interactive batch job. diff --git a/ondemand/apps/OdysseyRD/submit.yml.erb b/ondemand/apps/OdysseyRD/submit.yml.erb new file mode 100644 index 00000000..824f625c --- /dev/null +++ b/ondemand/apps/OdysseyRD/submit.yml.erb @@ -0,0 +1,3 @@ +--- +batch_connect: + template: turbovnc diff --git a/ondemand/apps/OdysseyRD/template/before.sh.erb b/ondemand/apps/OdysseyRD/template/before.sh.erb new file mode 100755 index 00000000..e9323a3b --- /dev/null +++ b/ondemand/apps/OdysseyRD/template/before.sh.erb @@ -0,0 +1,2 @@ +# Export the module function if it exists +[[ $(type -t module) == "function" ]] && export -f module diff --git a/ondemand/apps/OdysseyRD/template/desktops/gnome.sh b/ondemand/apps/OdysseyRD/template/desktops/gnome.sh new file mode 100755 index 00000000..5999fd0a --- /dev/null +++ b/ondemand/apps/OdysseyRD/template/desktops/gnome.sh @@ -0,0 +1,17 @@ +# Turn off screensaver +gconftool-2 --set -t boolean /apps/gnome-screensaver/idle_activation_enabled false + +# Use browser window instead in nautilus +gconftool-2 --set -t boolean /apps/nautilus/preferences/always_use_browser true + +# Disable the disk check utility on autostart +mkdir -p "${HOME}/.config/autostart" +cat "/etc/xdg/autostart/gdu-notification-daemon.desktop" <(echo "X-GNOME-Autostart-enabled=false") > "${HOME}/.config/autostart/gdu-notification-daemon.desktop" + +# Remove any preconfigured monitors +if [[ -f "${HOME}/.config/monitors.xml" ]]; then + mv "${HOME}/.config/monitors.xml" "${HOME}/.config/monitors.xml.bak" +fi + +# Start up Gnome desktop (block until user logs out of desktop) +/etc/X11/xinit/Xsession gnome-session diff --git a/ondemand/apps/OdysseyRD/template/desktops/kde.sh b/ondemand/apps/OdysseyRD/template/desktops/kde.sh new file mode 100644 index 00000000..a1695b8c --- /dev/null +++ b/ondemand/apps/OdysseyRD/template/desktops/kde.sh @@ -0,0 +1 @@ +startkde \ No newline at end of file diff --git a/ondemand/apps/OdysseyRD/template/desktops/mate.sh b/ondemand/apps/OdysseyRD/template/desktops/mate.sh new file mode 100755 index 00000000..5cfba959 --- /dev/null +++ b/ondemand/apps/OdysseyRD/template/desktops/mate.sh @@ -0,0 +1,30 @@ +# Turn off screensaver (this may not exist at all) +gsettings set org.mate.screensaver idle-activation-enabled false + +# Disable gnome-keyring-daemon +gsettings set org.mate.session gnome-compat-startup "['smproxy']" + +# Remove any preconfigured monitors +if [[ -f "${HOME}/.config/monitors.xml" ]]; then + mv "${HOME}/.config/monitors.xml" "${HOME}/.config/monitors.xml.bak" +fi + +# Disable useless services on autostart +AUTOSTART="${HOME}/.config/autostart" +rm -fr "${AUTOSTART}" # clean up previous autostarts +mkdir -p "${AUTOSTART}" +for service in "gnome-keyring-gpg" "gnome-keyring-pkcs11" "gnome-keyring-secrets" "gnome-keyring-ssh" "mate-volume-control-applet" "polkit-mate-authentication-agent-1" "pulseaudio" "rhsm-icon" "spice-vdagent" "xfce4-power-manager"; do + cat "/etc/xdg/autostart/${service}.desktop" <(echo "X-MATE-Autostart-enabled=false") > "${AUTOSTART}/${service}.desktop" +done + +# Disable pulseaudio +# Warning: If you disable pulseaudio you get flooded with warning messages +#PULSE_CONFIG="${HOME}/.config/pulse/client.conf" +#mkdir -p "$(dirname "${PULSE_CONFIG}")" +#echo "autospawn = no" > "${PULSE_CONFIG}" + +# Run Mate Terminal as login shell (sets proper TERM) +dconf write /org/mate/terminal/profiles/default/login-shell true + +# Start up mate desktop (block until user logs out of desktop) +mate-session diff --git a/ondemand/apps/OdysseyRD/template/desktops/xfce.sh b/ondemand/apps/OdysseyRD/template/desktops/xfce.sh new file mode 100755 index 00000000..6e2e1ae9 --- /dev/null +++ b/ondemand/apps/OdysseyRD/template/desktops/xfce.sh @@ -0,0 +1,40 @@ +# Remove any preconfigured monitors +if [[ -f "${HOME}/.config/monitors.xml" ]]; then + mv "${HOME}/.config/monitors.xml" "${HOME}/.config/monitors.xml.bak" +fi + +# Copy over default panel if doesn't exist, otherwise it will prompt the user +PANEL_CONFIG="${HOME}/.config/xfce4/xfconf/xfce-perchannel-xml/xfce4-panel.xml" +if [[ ! -e "${PANEL_CONFIG}" ]]; then + mkdir -p "$(dirname "${PANEL_CONFIG}")" + cp "/etc/xdg/xfce4/panel/default.xml" "${PANEL_CONFIG}" +fi + +# Disable startup services +xfconf-query -c xfce4-session -p /startup/ssh-agent/enabled -n -t bool -s false +xfconf-query -c xfce4-session -p /startup/gpg-agent/enabled -n -t bool -s false + +# Disable useless services on autostart +AUTOSTART="${HOME}/.config/autostart" +rm -fr "${AUTOSTART}" # clean up previous autostarts +mkdir -p "${AUTOSTART}" +for service in "pulseaudio" "rhsm-icon" "spice-vdagent" "tracker-extract" "tracker-miner-apps" "tracker-miner-user-guides" "xfce4-power-manager" "xfce-polkit"; do + echo -e "[Desktop Entry]\nHidden=true" > "${AUTOSTART}/${service}.desktop" +done + +# Run Xfce4 Terminal as login shell (sets proper TERM) +TERM_CONFIG="${HOME}/.config/xfce4/terminal/terminalrc" +if [[ ! -e "${TERM_CONFIG}" ]]; then + mkdir -p "$(dirname "${TERM_CONFIG}")" + sed 's/^ \{4\}//' > "${TERM_CONFIG}" << EOL + [Configuration] + CommandLoginShell=TRUE +EOL +else + sed -i \ + '/^CommandLoginShell=/{h;s/=.*/=TRUE/};${x;/^$/{s//CommandLoginShell=TRUE/;H};x}' \ + "${TERM_CONFIG}" +fi + +# Start up xfce desktop (block until user logs out of desktop) +xfce4-session diff --git a/ondemand/apps/OdysseyRD/template/script.sh.erb b/ondemand/apps/OdysseyRD/template/script.sh.erb new file mode 100755 index 00000000..9d7d26fd --- /dev/null +++ b/ondemand/apps/OdysseyRD/template/script.sh.erb @@ -0,0 +1,15 @@ +#!/usr/bin/env bash + +# Change working directory to user's home directory +cd "${HOME}" + +# Reset module environment (may require login shell for some HPC clusters) +module purge && module restore + +# Ensure that the user's configured login shell is used +export SHELL="$(getent passwd $USER | cut -d: -f7)" + +# Start up desktop +echo "Launching desktop '<%= context.desktop %>'..." +source "<%= session.staged_root.join("desktops", "#{context.desktop}.sh") %>" +echo "Desktop '<%= context.desktop %>' ended..." diff --git a/ondemand/apps/Rstudio/LICENSE.txt b/ondemand/apps/Rstudio/LICENSE.txt new file mode 100644 index 00000000..4c5b5e86 --- /dev/null +++ b/ondemand/apps/Rstudio/LICENSE.txt @@ -0,0 +1,22 @@ +Copyright (c) 2016-2018 Ohio Supercomputer Center + +MIT License + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/ondemand/apps/Rstudio/README.md b/ondemand/apps/Rstudio/README.md new file mode 100644 index 00000000..3501c0e4 --- /dev/null +++ b/ondemand/apps/Rstudio/README.md @@ -0,0 +1,44 @@ +# Batch Connect - Example RStudio Server + +![GitHub Release](https://img.shields.io/github/release/osc/bc_example_rstudio.svg) +![GitHub License](https://img.shields.io/github/license/osc/bc_example_rstudio.svg) + +An example Batch Connect app that launches an RStudio server within a +batch job. + +## Prerequisites + +This Batch Connect app requires the following software be installed on the +**compute nodes** that the batch job is intended to run on (**NOT** the +OnDemand node): + +- [RStudio](https://www.rstudio.com/) +- [R](https://www.r-project.org/) +- [Singularity](https://www.sylabs.io/docs/) + +All Batch Connect apps also require the following on the compute nodes: + +- [Websockify](https://pypi.org/project/websockify/) +- [TurboVNC](https://turbovnc.org) +- [nc (netcat)](http://netcat.sourceforge.net/) + +**Optional** software: + +- [Lmod](https://www.tacc.utexas.edu/research-development/tacc-projects/lmod) + 6.0.1+ or any other `module purge` and `module load ` based CLI + used to load appropriate environments within the batch job before launching + the RStudio server. + +## Install + +If you have not already be sure to start with the section about setting up your system for [Batch Connect development](https://osc.github.io/ood-documentation/master/app-development/interactive/setup.html). Detailed installation instructions for this app are included in the [OnDemand documentation](https://osc.github.io/ood-documentation/master/app-development/tutorials-interactive-apps/add-rstudio.html). + +Note that this example assumes that the compute host is CentOS 7. In order to ensure correct behavior it is important that the guest is built from the same OS as the host (type and major version), this is because most of the host's system directories are bind-mounted into the guest. + +## Contributing + +1. Fork it ( https://github.com/OSC/bc_example_rstudio/fork ) +2. Create your feature branch (`git checkout -b my-new-feature`) +3. Commit your changes (`git commit -am 'Add some feature'`) +4. Push to the branch (`git push origin my-new-feature`) +5. Create a new Pull Request diff --git a/ondemand/apps/Rstudio/form.yml b/ondemand/apps/Rstudio/form.yml new file mode 100644 index 00000000..8a23bc3e --- /dev/null +++ b/ondemand/apps/Rstudio/form.yml @@ -0,0 +1,8 @@ +--- +cluster: "dev-cluster" +form: + - bc_account + - bc_queue + - bc_num_hours + - bc_num_slots + - bc_email_on_started diff --git a/ondemand/apps/Rstudio/icon.png b/ondemand/apps/Rstudio/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..656d1333969820b9398b3d7b46011330fed0afb2 GIT binary patch literal 9018 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 literal 0 HcmV?d00001 diff --git a/ondemand/apps/Rstudio/image.png b/ondemand/apps/Rstudio/image.png new file mode 100644 index 0000000000000000000000000000000000000000..4f0270936e13c96ed6423e00ecac63dc56f80788 GIT binary patch literal 17097 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 "${RSESSION_WRAPPER_FILE}" << EOL + #!/usr/bin/env bash + + # Log all output from this script + export RSESSION_LOG_FILE="${PWD}/rsession.log" + + exec &>>"\${RSESSION_LOG_FILE}" + + # Launch the original command + echo "Launching rsession..." + set -x + exec rsession --r-libs-user "${R_LIBS_USER}" "\${@}" +EOL +) +chmod 700 "${RSESSION_WRAPPER_FILE}" + +# Set working directory to home directory +cd "${HOME}" + +export TMPDIR="$(mktemp -d)" + +mkdir -p "$TMPDIR/rstudio-server" +python -c 'from uuid import uuid4; print(uuid4())' > "$TMPDIR/rstudio-server/secure-cookie-key" +chmod 0600 "$TMPDIR/rstudio-server/secure-cookie-key" + +set -x +# Launch the RStudio Server +echo "Starting up rserver..." + +singularity run -B "$TMPDIR:/tmp" "$RSTUDIO_SERVER_IMAGE" \ + --www-port "${port}" \ + --auth-none 0 \ + --auth-pam-helper-path "${RSTUDIO_AUTH}" \ + --auth-encrypt-password 0 \ + --rsession-path "${RSESSION_WRAPPER_FILE}" + +echo 'Singularity as exited...' diff --git a/ondemand/apps/Rstudio/view.html.erb b/ondemand/apps/Rstudio/view.html.erb new file mode 100644 index 00000000..cf8923fc --- /dev/null +++ b/ondemand/apps/Rstudio/view.html.erb @@ -0,0 +1,9 @@ +
+ "> + + + + +
diff --git a/ondemand/config/env b/ondemand/config/env new file mode 100644 index 00000000..4ae33ead --- /dev/null +++ b/ondemand/config/env @@ -0,0 +1,4 @@ +MOTD_PATH="/etc/ood/config/apps/dashboard/motd" +MOTD_TITLE="" +MOTD_FORMAT="markdown" +ENABLE_NATIVE_VNC=true \ No newline at end of file diff --git a/ondemand/config/motd b/ondemand/config/motd new file mode 100644 index 00000000..52194be5 --- /dev/null +++ b/ondemand/config/motd @@ -0,0 +1,40 @@ +fas-rc + +Welcome to FAS-RC Cluster +============ + +The Computing Cluster is a resource for the research community, hosted by Research Computing at Harvard University's Faculty of Arts and Sciences. +To apply for an account please refer to [this webpage](https://docs.rc.fas.harvard.edu/kb/account-signup/) + + +From this portal you can submit your jobs, check running jobs, and open interactive graphical sessions to run your favorite applications. + +These are some examples of the things you will be able to do : + + * Open an interactive remote desktop session to a compute node + * Run Jupyter Notebooks + * Run Rstudio Server sessions + * Browse and edit your files + * Open a terminal connection to a login node + +Checkout our documentation at [this page](https://docs.rc.fas.harvard.edu/kb/virtual-desktop/). More documentation will be uploaded soon. + +Documentation and Training +------------------- + +Refer to our [main documentation](https://docs.rc.fas.harvard.edu) to learn more on + + * [running jobs on the cluster and request resources](https://docs.rc.fas.harvard.edu/kb/running-jobs/) + * [how to check your running](https://docs.rc.fas.harvard.edu/kb/convenient-slurm-commands/#Controlling_jobs) and [fairshare](https://docs.rc.fas.harvard.edu/kb/fairshare/) + * [access scientific software in your jobs](https://docs.rc.fas.harvard.edu/kb/software/) + +If you need help, please contact us following [these instructions](https://docs.rc.fas.harvard.edu/kb/support/), or come at visit us at our [office hours sessions](https://www.rc.fas.harvard.edu/training/office-hours/). + +We host **training sessions** both at on site and online. Please refer to our [updated calendar](https://www.rc.fas.harvard.edu/upcoming-training/) for more information. + + +System Status and Planned Downtime +------------------- +Please refer to [https://status.rc.fas.harvard.edu/](https://status.rc.fas.harvard.edu/) to get the latest information on the status of the system. + +You can find information on our [montly planned maintenance window at this page](https://www.rc.fas.harvard.edu/maintenance). diff --git a/ondemand/config/views/batch_connect/sessions/_panel.html.erb b/ondemand/config/views/batch_connect/sessions/_panel.html.erb new file mode 100644 index 00000000..e0c1ec0d --- /dev/null +++ b/ondemand/config/views/batch_connect/sessions/_panel.html.erb @@ -0,0 +1,36 @@ +<%= session_panel session do %> + <%= session_view session do %> + <% + if session.running? + if session.view + views = { partial: "custom", locals: { view: session.view, connect: session.connect } } + else + if session.script_type == "vnc" + views = [] + views << { title: "noVNC Connection", partial: "novnc", locals: { connect: session.connect, app_title: session.title } } + views << { title: "Native Instructions", partial: "native_vnc", locals: { connect: session.connect } } if ENV["ENABLE_NATIVE_VNC"] + elsif session.script_type == "turbovnc" + views = [] + views << { title: "noVNC Connection", partial: "novnc", locals: { connect: session.connect, app_title: session.title } } + views << { title: "VNC Desktop Client", partial: "turbovnc", locals: { connect: session.connect } } if ENV["ENABLE_NATIVE_VNC"] + elsif session.script_type == "kvm" + views = [] + views << { title: "noVNC Connection", partial: "novnckvm", locals: { connect: session.connect, app_title: session.title } } + views << { title: "VNC Desktop Client", partial: "kvm", locals: { connect: session.connect } } if ENV["ENABLE_NATIVE_VNC"] + else + views = { partial: "missing_connection" } + end + end + elsif session.starting? + views = { partial: "starting" } + elsif session.queued? + views = { partial: "queued" } + elsif session.completed? + views = { partial: "completed", locals: { session: session } } + else + views = { partial: "bad" } + end + %> + <%= connection_tabs(session.id, views) %> + <% end %> +<% end %> diff --git a/ondemand/config/views/batch_connect/sessions/connections/_kvm.html.erb b/ondemand/config/views/batch_connect/sessions/connections/_kvm.html.erb new file mode 100644 index 00000000..d828c33b --- /dev/null +++ b/ondemand/config/views/batch_connect/sessions/connections/_kvm.html.erb @@ -0,0 +1,9 @@ +
    +
  • + To connect with a VNC client:
    + point your favorite client to +
    <%= connect.host %>:<%= connect.vncport %>
    + and connect using the password +
    <%= connect.password %>
    +
  • +
diff --git a/ondemand/config/views/batch_connect/sessions/connections/_novnckvm.html.erb b/ondemand/config/views/batch_connect/sessions/connections/_novnckvm.html.erb new file mode 100644 index 00000000..c6fd1c5c --- /dev/null +++ b/ondemand/config/views/batch_connect/sessions/connections/_novnckvm.html.erb @@ -0,0 +1,25 @@ +<%= bootstrap_form_tag(url: asset_path("noVNC-1.1.0/vnc.html"), method: "get") do |f| %> + <%= hidden_field_tag(:autoconnect, 'true') %> + <%= hidden_field_tag(:path, "rnode/#{connect.host}/#{connect.port}/websockify") %> + <%= hidden_field_tag(:resize, "remote") %> + <%= hidden_field_tag(:password, connect.password) %> + +
+
+ <%= f.number_field(:compressionsetting, type: 'range', min: 0, max: 9, value: 6, label: "Compression", help: "0 (low) to 9 (high)") %> +
+
+ <%= f.number_field(:qualitysetting, type: 'range', min: 0, max: 9, value: 2, label: "Image Quality", help: "0 (low) to 9 (high)") %> +
+
+ + + <%= f.submit( t('dashboard.batch_connect_sessions_novnc_launch', app_title: app_title), class: 'btn btn-primary', :formtarget => "_blank") %> + <%= link_to t('dashboard.batch_connect_sessions_novnc_view_only'), novnc_link(connect, view_only: true), class: 'btn btn-default pull-right', target: '_blank' %> +<% end %> diff --git a/ondemand/config/views/batch_connect/sessions/connections/_turbovnc.html.erb b/ondemand/config/views/batch_connect/sessions/connections/_turbovnc.html.erb new file mode 100644 index 00000000..765a5596 --- /dev/null +++ b/ondemand/config/views/batch_connect/sessions/connections/_turbovnc.html.erb @@ -0,0 +1,25 @@ +
    +
  • + To connect with TurboVNC client: +
      +
    1. + Download and install the latest + TurboVNC client + if you don't already have it +
    2. +
    3. + Download and open the VNC connection file + +
    4. +
    +
  • +
    +
  • + To connect with any other VNC client:
    + point your favorite client to +
    <%= connect.host %>:<%= connect.port %>
    + and connect using the password +
    <%= connect.password %>
    +
  • +
diff --git a/ondemand/config/views/layouts/_footer.html.erb b/ondemand/config/views/layouts/_footer.html.erb new file mode 100644 index 00000000..13001bc4 --- /dev/null +++ b/ondemand/config/views/layouts/_footer.html.erb @@ -0,0 +1,46 @@ +
+
+ <%= link_to "https://osc.github.io/Open-OnDemand/" do %> + <%= image_tag( + "OpenOnDemand_powered_by_RGB.svg", + class: "footer-logo img-responsive center-block", + alt: "Powered by Open OnDemand", + height: "40", + style: "margin-bottom: 20px; max-height: 40px;" + ) %> + <% end %> +
+
+ <%= link_to "https://vdi.rc.fas.harvard.edu/pun/sys/dashboard" do %> + <%= content_tag( + :img, + "", + src: "/public/images/fasrc_logo.jpg", + class: "footer-logo img-responsive center-block", + alt: "FASRC", + height: "40", + style: "max-height: 40px;" + ) %> + <% end %> +
+
+ <%= link_to "https://www.iq.harvard.edu/" do %> + <%= content_tag( + :img, + "", + src: "/public/images/iqss_logo.png", + class: "footer-logo img-responsive center-block", + alt: "IQSS", + height: "40", + style: "max-height: 40px;" + ) %> + <% end %> +
+
+ You are on <%= `hostname` %> +
+
+ OnDemand version: <%= Configuration.ood_version %>
+ Config version: <%= Configuration.app_version %> +
+
\ No newline at end of file diff --git a/ondemand/config/views/widgets/sid/_all_sessions_button.html.erb b/ondemand/config/views/widgets/sid/_all_sessions_button.html.erb new file mode 100644 index 00000000..9ac402a9 --- /dev/null +++ b/ondemand/config/views/widgets/sid/_all_sessions_button.html.erb @@ -0,0 +1,13 @@ + + diff --git a/ondemand/config/views/widgets/sid/_cannon_button.html.erb b/ondemand/config/views/widgets/sid/_cannon_button.html.erb new file mode 100644 index 00000000..479d024e --- /dev/null +++ b/ondemand/config/views/widgets/sid/_cannon_button.html.erb @@ -0,0 +1,15 @@ + \ No newline at end of file diff --git a/ondemand/config/views/widgets/sid/_docs.html.erb b/ondemand/config/views/widgets/sid/_docs.html.erb new file mode 100644 index 00000000..e685c6dc --- /dev/null +++ b/ondemand/config/views/widgets/sid/_docs.html.erb @@ -0,0 +1,69 @@ +
+
+

You can submit jobs, check running jobs, and open interactive graphical sessions ro run your favorite applications from this Dashboard.

+

Click and application to launch the default configuration, or go to the menu bar to find more options.

+ +
+
+

Getting started

+

+ Some examples of the things you can do from this dashboard: +

    +
  • Open an interactive remote desktop session to a compute node
  • +
  • Run Jupyter Notebooks
  • +
  • Run Rstudio Server sessions
  • +
  • Browse and edit your files
  • +
  • Open a terminal connection to a login node
  • +
+

+ +

Documentation and Training

+

+ Check out our documentation for the Virtual Desktop Interface at this page. +

+

+ Refer to the FASRC documentation to learn more on: +

+

+ +
+ +
+

Support

+

+ If you need help, please contact us following these instructions, or come at visit us at our office hours sessions. +

+

+ We host training sessions regularly! Please refer to our calendar for more information. +

+ +

System Status and Planned Downtime

+

+ Please refer to https://status.rc.fas.harvard.edu/ to get the latest information on the status of the system. +

+

+ You can find information on our monthly planned maintenance window at this page. +

+ +
+
+ +
+
+ +
+
+ + + + +
+
\ No newline at end of file diff --git a/ondemand/config/views/widgets/sid/_fasse_button.html.erb b/ondemand/config/views/widgets/sid/_fasse_button.html.erb new file mode 100644 index 00000000..e4493b78 --- /dev/null +++ b/ondemand/config/views/widgets/sid/_fasse_button.html.erb @@ -0,0 +1,15 @@ + \ No newline at end of file diff --git a/ondemand/config/views/widgets/sid/_quick_links.html.erb b/ondemand/config/views/widgets/sid/_quick_links.html.erb new file mode 100644 index 00000000..25daf7f0 --- /dev/null +++ b/ondemand/config/views/widgets/sid/_quick_links.html.erb @@ -0,0 +1,9 @@ +<%= render partial: "/widgets/sid/util" %> + +

Quick Links

+
+ <%= render partial: "/widgets/sid/terminal_button" %> + <%= render partial: "/widgets/sid/all_sessions_button" %> + <%= render partial: "/widgets/sid/fasse_button" unless fasse_cluster? %> + <%= render partial: "/widgets/sid/cannon_button" unless cannon_cluster? %> +
\ No newline at end of file diff --git a/ondemand/config/views/widgets/sid/_terminal_button.html.erb b/ondemand/config/views/widgets/sid/_terminal_button.html.erb new file mode 100644 index 00000000..52f5c5d1 --- /dev/null +++ b/ondemand/config/views/widgets/sid/_terminal_button.html.erb @@ -0,0 +1,15 @@ + + + diff --git a/ondemand/config/views/widgets/sid/_util.html.erb b/ondemand/config/views/widgets/sid/_util.html.erb new file mode 100644 index 00000000..5629340f --- /dev/null +++ b/ondemand/config/views/widgets/sid/_util.html.erb @@ -0,0 +1,9 @@ +<% + def cannon_cluster? + OodAppkit.clusters.map(&:id).include?('odyssey3') + end + + def fasse_cluster? + OodAppkit.clusters.map(&:id).include?('fasse') + end +%> \ No newline at end of file diff --git a/ondemand/config/views/widgets/sid/_welcome_message.html.erb b/ondemand/config/views/widgets/sid/_welcome_message.html.erb new file mode 100644 index 00000000..b3947798 --- /dev/null +++ b/ondemand/config/views/widgets/sid/_welcome_message.html.erb @@ -0,0 +1,12 @@ +<%= render partial: "/widgets/sid/util" %> + +
+ <% if cannon_cluster? %> +

Welcome to Social Sciences dashboard on the Cannon Cluster

+ <%= render partial: "/widgets/sid/cannon_welcome_message" %> + <% elsif fasse_cluster? %> +

Welcome to Social Sciences dashboard on the FASSE Cluster

+ <% else %> +

Welcome to Social Sciences dashboard on the Development Cluster

+ <% end %> +
\ No newline at end of file diff --git a/ondemand/docker-compose.yml b/ondemand/docker-compose.yml new file mode 100644 index 00000000..06994941 --- /dev/null +++ b/ondemand/docker-compose.yml @@ -0,0 +1,162 @@ +version: "3" + +services: + rt: + image: netsandbox/request-tracker:4.4 + hostname: rt + container_name: rt + environment: + RT_WEB_PORT: "34000" + ports: + - "34000:34000" + expose: + - "34000" + + mysql: + image: mariadb:10.4.18 + hostname: mysql + container_name: mysql + environment: + MYSQL_RANDOM_ROOT_PASSWORD: "yes" + MYSQL_DATABASE: slurm_acct_db + MYSQL_USER: slurm + MYSQL_PASSWORD: password + volumes: + - var_lib_mysql:/var/lib/mysql + + ood: + build: + context: . + dockerfile: docker/Dockerfile.node + args: + DOCKER_IMAGE: ${SID_ONDEMAND_IMAGE} + OOD_UID: ${OOD_UID} + OOD_GID: ${OOD_GID} + hostname: ood + container_name: ood + volumes: + - etc_munge:/etc/munge + - etc_slurm:/etc/slurm + - slurm_jobdir:/data + - var_log_slurm:/var/log/slurm + - ./apps/Rstudio:/var/www/ood/apps/sys/Rstudio + - ./apps/OdysseyRD:/var/www/ood/apps/sys/OdysseyRD + - ../VERSION:/var/www/ood/apps/sys/dashboard/VERSION + - ./data:/home/ood/ondemand/data:rw + - ./config:/etc/ood/config/apps/dashboard + - ./lib/ood_core:/var/www/ood/apps/sys/dashboard/lib/ood_core + - ./ondemand.d:/etc/ood/config/ondemand.d + - ./public:/var/www/ood/public + - ./docker/dev-cluster.yml:/etc/ood/config/clusters.d/dev-cluster.yml + - ./announcements.d:/etc/ood/config/announcements.d + - ./apache/timeout.conf:/opt/rh/httpd24/root/etc/httpd/conf.d/timeout.conf + ports: + - "33000:443" + expose: + - "6817" + - "8080" + - "80" + - "443" + depends_on: + - "slurmctld" + links: + - "slurmctld" + + + slurmdbd: + build: + context: . + dockerfile: docker/Dockerfile.node + args: + DOCKER_IMAGE: ${SID_SLURM_IMAGE} + OOD_UID: ${OOD_UID} + OOD_GID: ${OOD_GID} + command: ["slurmdbd"] + container_name: slurmdbd + hostname: slurmdbd + volumes: + - etc_munge:/etc/munge + - etc_slurm:/etc/slurm + - var_log_slurm:/var/log/slurm + expose: + - "6819" + depends_on: + - mysql + + slurmctld: + build: + context: . + dockerfile: docker/Dockerfile.node + args: + DOCKER_IMAGE: ${SID_SLURM_IMAGE} + OOD_UID: ${OOD_UID} + OOD_GID: ${OOD_GID} + entrypoint: /usr/local/bin/with-ssh.sh + command: ["slurmctld"] + container_name: slurmctld + hostname: slurmctld + volumes: + - etc_munge:/etc/munge + - etc_slurm:/etc/slurm + - slurm_jobdir:/data + - var_log_slurm:/var/log/slurm + expose: + - "22" + - "6817" + + c1: + build: + context: . + dockerfile: docker/Dockerfile.node + args: + DOCKER_IMAGE: ${SID_SLURM_IMAGE} + OOD_UID: ${OOD_UID} + OOD_GID: ${OOD_GID} + entrypoint: /usr/local/bin/with-ssh.sh + command: ["slurmd"] + privileged: true + hostname: c1 + container_name: c1 + volumes: + - etc_munge:/etc/munge + - etc_slurm:/etc/slurm + - slurm_jobdir:/data + - var_log_slurm:/var/log/slurm + - ./data:/home/ood/ondemand/data:rw + expose: + - "22" + - "6818" + depends_on: + - "slurmctld" + + c2: + build: + context: . + dockerfile: docker/Dockerfile.node + args: + DOCKER_IMAGE: ${SID_SLURM_IMAGE} + OOD_UID: ${OOD_UID} + OOD_GID: ${OOD_GID} + entrypoint: /usr/local/bin/with-ssh.sh + command: ["slurmd"] + hostname: c2 + privileged: true + container_name: c2 + volumes: + - etc_munge:/etc/munge + - etc_slurm:/etc/slurm + - slurm_jobdir:/data + - var_log_slurm:/var/log/slurm + - ./data:/home/ood/ondemand/data:rw + expose: + - "22" + - "6818" + depends_on: + - "slurmctld" + +volumes: + etc_munge: + etc_slurm: + slurm_jobdir: + var_lib_mysql: + var_log_slurm: diff --git a/ondemand/docker/Dockerfile.node b/ondemand/docker/Dockerfile.node new file mode 100644 index 00000000..37d3d53a --- /dev/null +++ b/ondemand/docker/Dockerfile.node @@ -0,0 +1,10 @@ +ARG DOCKER_IMAGE + +FROM ${DOCKER_IMAGE} + +ARG OOD_UID=3210 +ARG OOD_GID=3210 + +RUN groupmod -g ${OOD_GID} ood || : +RUN usermod -u ${OOD_UID} ood +RUN usermod -G ${OOD_GID} ood \ No newline at end of file diff --git a/ondemand/docker/Dockerfile.ondemand b/ondemand/docker/Dockerfile.ondemand new file mode 100644 index 00000000..24d67516 --- /dev/null +++ b/ondemand/docker/Dockerfile.ondemand @@ -0,0 +1,33 @@ +ARG SLURM_TAG + +FROM hmdc/slurm-docker-cluster:${SLURM_TAG} + +ARG OOD_UID=3210 +ARG OOD_GID=3210 +ARG OOD_TAG + +COPY ./docker/ood-latest.repo /etc/yum.repos.d/ood-latest.repo + +# Install Open On Demand, Singularity +RUN yum install -y net-tools openssh-clients && \ + yum install -y epel-release centos-release-scl lsof sudo httpd24-mod_ssl httpd24-mod_ldap libyaml libyaml-devel && \ + yum -y update && \ + yum -y install --nogpgcheck https://yum.osc.edu/ondemand/latest/web/el7/x86_64/ondemand-${OOD_TAG}.x86_64.rpm && \ + yum -y install rh-ruby27 rh-ruby27-ruby-devel && \ + mkdir -p /etc/ood/config/clusters.d && \ + mkdir -p /etc/ood/config/apps/shell + +RUN mkdir -p /etc/ood/config/tls +COPY ./apache/sid_development.crt ./apache/sid_development.key /etc/ood/config/tls/ +COPY ./docker/ood_portal.yml ./docker/nginx_stage.yml /etc/ood/config/ +RUN /opt/ood/ood-portal-generator/sbin/update_ood_portal && \ + systemctl enable httpd24-httpd && \ + groupadd -g $OOD_GID ood || : && \ + useradd -u $OOD_UID --create-home --gid $OOD_GID ood && \ + mkdir -p /home/ood/ondemand/data && \ + chown -R ${OOD_UID}:${OOD_GID} /home/ood && \ + echo -n "ood" | passwd --stdin ood && \ + scl enable httpd24 -- htdbm -bc /opt/rh/httpd24/root/etc/httpd/.htpasswd.dbm ood ood + +COPY ./docker/launch-httpd /usr/local/bin/ +CMD ["/usr/local/bin/launch-httpd"] diff --git a/ondemand/docker/Dockerfile.slurm b/ondemand/docker/Dockerfile.slurm new file mode 100644 index 00000000..18a92acc --- /dev/null +++ b/ondemand/docker/Dockerfile.slurm @@ -0,0 +1,27 @@ +ARG SLURM_TAG + +FROM hmdc/slurm-docker-cluster:${SLURM_TAG} + +ARG OOD_UID=3210 +ARG OOD_GID=3210 + +RUN groupadd -g $OOD_GID ood || : && \ + useradd -u $OOD_UID --create-home --gid $OOD_GID ood && \ + echo -n "ood" | passwd --stdin ood && \ + wget https://turbovnc.org/pmwiki/uploads/Downloads/TurboVNC.repo && \ + mv TurboVNC.repo /etc/yum.repos.d/ && \ + curl -L https://download2.rstudio.org/rstudio-server-rhel-1.1.463-x86_64.rpm -o rstudio-server-rhel-1.1.463-x86_64.rpm && \ + yum install -y epel-release && \ + yum install -y nc openssh-server turbovnc-2.2.5-20200507 R rstudio-server-rhel-1.1.463-x86_64.rpm && \ + python3.4 -m pip install --upgrade pip==18.0 && \ + python3.4 -m pip install websockify==0.10.0 && \ + yum -y groupinstall 'MATE Desktop' && \ + mkdir -p /apps && \ + mkdir -p /run/sshd && \ + ssh-keygen -A && \ + cd /apps && \ + echo auth-minimum-user-id=100 >> /etc/rstudio/rserver.conf && \ + singularity pull --name rserver-launcher-centos7.simg shub://OSC/centos7-launcher + +COPY ./docker/with-ssh.sh /usr/local/bin/with-ssh.sh + diff --git a/ondemand/docker/dev-cluster.yml b/ondemand/docker/dev-cluster.yml new file mode 100644 index 00000000..c1787610 --- /dev/null +++ b/ondemand/docker/dev-cluster.yml @@ -0,0 +1,39 @@ +--- +v2: + metadata: + title: "Example Cluster" + login: + host: "slurmctld" + job: + adapter: "slurm" + bin: "/usr/bin" + conf: "/etc/slurm/slurm.conf" + +# This section is for interactive app +# https://osc.github.io/ood-documentation/master/app-development/interactive/setup/modify-cluster-configuration.html + batch_connect: + basic: + script_wrapper: | + %s + set_host: "host=$(hostname -A | awk '{print $1}')" + vnc: + script_wrapper: | + module purge + export PATH="/opt/TurboVNC/bin:$PATH" + export WEBSOCKIFY_CMD="/usr/bin/websockify" + %s + set_host: "host=$(hostname -A | awk '{print $1}')" + turbovnc: + script_wrapper: | + module purge + export PATH="/opt/TurboVNC/bin/:$PATH" + export WEBSOCKIFY_CMD="/usr/bin/websockify" + %s + set_host: "host=$(hostname -A | awk '{print $1}')" + kvm: + script_wrapper: | + module purge + export PATH="/opt/TurboVNC/bin/:$PATH" + export WEBSOCKIFY_CMD="/opt/websockify/bin/run" + %s + set_host: "host=$(hostname -A | awk '{print $1}')" diff --git a/ondemand/docker/launch-httpd b/ondemand/docker/launch-httpd new file mode 100755 index 00000000..f47407ee --- /dev/null +++ b/ondemand/docker/launch-httpd @@ -0,0 +1,8 @@ +#!/bin/bash + +set -e + +# Support changing environment variable options via docker run -e +env > /etc/ood/config/apps/shell/env +gosu munge /usr/sbin/munged +/opt/rh/httpd24/root/usr/sbin/httpd-scl-wrapper -DFOREGROUND diff --git a/ondemand/docker/nginx_stage.yml b/ondemand/docker/nginx_stage.yml new file mode 100644 index 00000000..0b01a17a --- /dev/null +++ b/ondemand/docker/nginx_stage.yml @@ -0,0 +1,5 @@ +min_uid: 500 +app_root: + dev: '~%{owner}/%{portal}/dev/%{name}' + usr: '/var/www/ood/apps/usr/%{owner}/gateway/%{name}' + sys: '/var/www/ood/apps/sys/%{name}' diff --git a/ondemand/docker/ood-latest.repo b/ondemand/docker/ood-latest.repo new file mode 100644 index 00000000..85a89feb --- /dev/null +++ b/ondemand/docker/ood-latest.repo @@ -0,0 +1,5 @@ +[ood-latest] +name=OOD Latest +baseurl=https://yum.osc.edu/ondemand/latest/web/el7/x86_64/ +enabled=1 +gpgcheck=0 \ No newline at end of file diff --git a/ondemand/docker/ood_portal.yml b/ondemand/docker/ood_portal.yml new file mode 100644 index 00000000..068a73fb --- /dev/null +++ b/ondemand/docker/ood_portal.yml @@ -0,0 +1,250 @@ +--- +# +# Portal configuration +# + +# The address and port to listen for connections on +# Example: +# listen_addr_port: 443 +# Default: null (don't add any more listen directives) +#listen_addr_port: null + +# The server name used for name-based Virtual Host +# Example: +# servername: 'www.example.com' +# Default: null (don't use name-based Virtual Host) +# servername: ood + +# The port specification for the Virtual Host +# Example: +# port: 8080 +#Default: null (use default port 80 or 443 if SSL enabled) +#port: null + +# List of SSL Apache directives +# Example: +# ssl: +# - 'SSLCertificateFile "/etc/pki/tls/certs/www.example.com.crt"' +# - 'SSLCertificateKeyFile "/etc/pki/tls/private/www.example.com.key"' +# Default: null (no SSL support) +#ssl: null + +# Root directory of log files (can be relative ServerRoot) +# Example: +# logroot: '/path/to/my/logs' +# Default: 'logs' (this is relative to ServerRoot) +#logroot: 'logs' + +# Root directory of the Lua handler code +# Example: +# lua_root: '/path/to/lua/handlers' +# Default : '/opt/ood/mod_ood_proxy/lib' (default install directory of mod_ood_proxy) +#lua_root: '/opt/ood/mod_ood_proxy/lib' + +# Verbosity of the Lua module logging +# (see https://httpd.apache.org/docs/2.4/mod/core.html#loglevel) +# Example: +# lua_log_level: 'warn' +# Default: 'info' (get verbose logs) +#lua_log_level: 'info' + +# System command used to map authenticated-user to system-user +# Example: +# user_map_cmd: '/opt/ood/ood_auth_map/bin/ood_auth_map.regex --regex=''^(\w+)@example.com$''' +# Default: '/opt/ood/ood_auth_map/bin/ood_auth_map.regex' (this echo's back auth-user) +#user_map_cmd: '/opt/ood/ood_auth_map/bin/ood_auth_map.regex' + +# Use an alternative CGI environment variable instead of REMOTE_USER for +# determining the authenticated-user fed to the mapping script +# Example: +# user_env: 'OIDC_CLAIM_preferred_username' +# Default: null (use REMOTE_USER) +#user_env: null + +# Redirect user to the following URI if fail to map there authenticated-user to +# a system-user +# Example: +# map_fail_uri: '/register' +# Default: null (don't redirect, just display error message) +#map_fail_uri: null + +# System command used to run the `nginx_stage` script with sudo privileges +# Example: +# pun_stage_cmd: 'sudo /path/to/nginx_stage' +# Default: 'sudo /opt/ood/nginx_stage/sbin/nginx_stage' (don't forget sudo) +#pun_stage_cmd: 'sudo /opt/ood/nginx_stage/sbin/nginx_stage' + +# List of Apache authentication directives +# NB: Be sure the appropriate Apache module is installed for this +# Default: (see below, uses basic auth with an htpasswd file) +#auth: +# - 'AuthType Basic' +# - 'AuthName "private"' +# - 'AuthUserFile "/opt/rh/httpd24/root/etc/httpd/.htpasswd"' +# - 'RequestHeader unset Authorization' +# - 'Require valid-user' + +# Redirect user to the following URI when accessing root URI +# Example: +# root_uri: '/my_uri' +# # https://www.example.com/ => https://www.example.com/my_uri +# Default: '/pun/sys/dashboard' (default location of the OOD Dashboard app) +#root_uri: '/pun/sys/dashboard' + +# Track server-side analytics with a Google Analytics account and property +# (see https://github.com/OSC/mod_ood_proxy/blob/master/lib/analytics.lua for +# information on how to setup the GA property) +# Example: +# analytics: +# url: 'http://www.google-analytics.com/collect' +# id: 'UA-79331310-4' +# Default: null (do not track) +#analytics: null + +# +# Publicly available assets +# + +# Public sub-uri (available to public with no authentication) +# Example: +# public_uri: '/assets' +# Default: '/public' +#public_uri: '/public' + +# Root directory that serves the public sub-uri (be careful, everything under +# here is open to the public) +# Example: +# public_root: '/path/to/public/assets' +# Default: '/var/www/ood/public' +#public_root: '/var/www/ood/public' + +# +# Logout redirect helper +# + +# Logout sub-uri +# Example +# logout_uri: '/log_me_out' +# NB: If you change this, then modify the Dashboard app with the new sub-uri +# Default: '/logout' (the Dashboard app is by default going to expect this) +#logout_uri: '/logout' + +# Redirect user to the following URI when accessing logout URI +# Example: +# logout_redirect: '/oidc?logout=https%3A%2F%2Fwww.example.com' +# Default: '/pun/sys/dashboard/logout' (the Dashboard app provides a simple +# HTML page explaining logout to the user) +#logout_redirect: '/pun/sys/dashboard/logout' + +# +# Reverse proxy to backend nodes +# + +# Regular expression used for whitelisting allowed hostnames of nodes +# Example: +# host_regex: '[\w.-]+\.example\.com' +# Default: '[^/]+' (allow reverse proxying to all hosts, this allows external +# hosts as well) +#host_regex: '[^/]+' + +# Sub-uri used to reverse proxy to backend web server running on node that +# knows the full URI path +# Example: +# node_uri: '/node' +# Default: null (disable this feature) +#node_uri: null + +# Sub-uri used to reverse proxy to backend web server running on node that +# ONLY uses *relative* URI paths +# Example: +# rnode_uri: '/rnode' +# Default: null (disable this feature) +#rnode_uri: null + +# +# Per-user NGINX Passenger apps +# + +# Sub-uri used to control PUN processes +# Example: +# nginx_uri: '/my_pun_controller' +# Default: '/nginx' +#nginx_uri: '/nginx' + +# Sub-uri used to access the PUN processes +# Example: +# pun_uri: '/my_pun_apps' +# Default: '/pun' +#pun_uri: '/pun' + +# Root directory that contains the PUN Unix sockets that the proxy uses to +# connect to +# Example: +# pun_socket_root: '/path/to/pun/sockets' +# Default: '/var/run/ondemand-nginx' (default location set in nginx_stage) +#pun_socket_root: '/var/run/ondemand-nginx' + +# Number of times the proxy attempts to connect to the PUN Unix socket before +# giving up and displaying an error to the user +# Example: +# pun_max_retries: 25 +# Default: 5 (only try 5 times) +#pun_max_retries: 5 + +# +# Support for OpenID Connect +# + +# Sub-uri used by mod_auth_openidc for authentication +# Example: +# oidc_uri: '/oidc' +# Default: null (disable OpenID Connect support) +#oidc_uri: null + +# Sub-uri user is redirected to if they are not authenticated. This is used to +# *discover* what ID provider the user will login through. +# Example: +# oidc_discover_uri: '/discover' +# Default: null (disable support for discovering OpenID Connect IdP) +#oidc_discover_uri: null + +# Root directory on the filesystem that serves the HTML code used to display +# the discovery page +# Example: +# oidc_discover_root: '/var/www/ood/discover' +# Default: null (disable support for discovering OpenID Connect IdP) +#oidc_discover_root: null + +# +# Support for registering unmapped users +# +# (Not necessary if using regular expressions for mapping users) +# + +# Sub-uri user is redirected to if unable to map authenticated-user to +# system-user +# Example: +# register_uri: '/register' +# Default: null (display error to user if mapping fails) +#register_uri: null + +# Root directory on the filesystem that serves the HTML code used to register +# an unmapped user +# Example: +# register_root: '/var/www/ood/register' +# Default: null (display error to user if mapping fails) +#register_root: null +ssl: + - 'SSLCertificateFile "/etc/ood/config/tls/sid_development.crt"' + - 'SSLCertificateKeyFile "/etc/ood/config/tls/sid_development.key"' + +host_regex: 'slurmctld|c(1|2)' +node_uri: '/node' +rnode_uri: '/rnode' +auth: + - 'AuthType Basic' + - 'AuthName "private"' + - 'AuthBasicProvider dbm' + - 'AuthDBMUserFile "/opt/rh/httpd24/root/etc/httpd/.htpasswd.dbm"' + - 'RequestHeader unset Authorization' + - 'Require valid-user' \ No newline at end of file diff --git a/ondemand/docker/with-ssh.sh b/ondemand/docker/with-ssh.sh new file mode 100755 index 00000000..cdd7618a --- /dev/null +++ b/ondemand/docker/with-ssh.sh @@ -0,0 +1,4 @@ +#!/bin/bash +set -e +/usr/sbin/sshd +exec /usr/local/bin/docker-entrypoint.sh "$@" diff --git a/ondemand/lib/ood_core/batch_connect/templates/kvm.rb b/ondemand/lib/ood_core/batch_connect/templates/kvm.rb new file mode 100644 index 00000000..93f54eaa --- /dev/null +++ b/ondemand/lib/ood_core/batch_connect/templates/kvm.rb @@ -0,0 +1,32 @@ +require "ood_core/refinements/hash_extensions" + +module OodCore + module BatchConnect + class Factory + using Refinements::HashExtensions + + # Build the basic template from a configuration + # @param config [#to_h] the configuration for the batch connect template + def self.build_kvm(config) + context = config.to_h.symbolize_keys.reject { |k, _| k == :template } + Templates::KVM.new(context) + end + end + + module Templates + # A batch connect template that expects to start up a basic web server + # within a batch job + class KVM < Template + def initialize(context = {}) + super + end + + private + # We need to know the VNC and websockify connection information + def conn_params + (super + [:monitorport, :serviceport, :vncport]).uniq + end + end + end + end +end diff --git a/ondemand/lib/ood_core/batch_connect/templates/turbovnc.rb b/ondemand/lib/ood_core/batch_connect/templates/turbovnc.rb new file mode 100644 index 00000000..e6774d6a --- /dev/null +++ b/ondemand/lib/ood_core/batch_connect/templates/turbovnc.rb @@ -0,0 +1,217 @@ +require "ood_core/refinements/hash_extensions" + +module OodCore + module BatchConnect + class Factory + using Refinements::HashExtensions + + # Build the VNC template from a configuration + # @param config [#to_h] the configuration for the batch connect template + def self.build_turbovnc(config) + context = config.to_h.symbolize_keys.reject { |k, _| k == :template } + Templates::TURBOVNC.new(context) + end + end + + module Templates + # A batch connect template that starts up a VNC server within a batch job + class TURBOVNC < Template + # @param context [#to_h] the context used to render the template + # @option context [#to_sym, Array<#to_sym>] :conn_params ([]) A list of + # connection parameters added to the connection file (`:host`, + # `:port`, `:password`, `:spassword`, `:display` and `:websocket` + # will always exist) + # @option context [#to_s] :websockify_cmd + # ("${WEBSOCKIFY_CMD:-/opt/websockify/run}") the path to the + # websockify script (assumes you don't modify `:after_script`) + # @option context [#to_s] :vnc_log ("vnc.log") path to vnc server log + # file (assumes you don't modify `:before_script` or `:after_script`) + # @option context [#to_s] :vnc_passwd ("vnc.passwd") path to the file + # generated that contains the encrypted vnc password (assumes you + # don't modify `:before_script`) + # @option context [#to_s] :vnc_args arguments used when starting up the + # vnc server (overrides any specific vnc argument) (assumes you don't + # modify `:before_script`) + # @option context [#to_s] :name ("") name of the vnc server session + # (not set if blank or `:vnc_args` is set) (assumes you don't modify + # `:before_script`) + # @option context [#to_s] :geometry ("") resolution of vnc display (not + # set if blank or `:vnc_args` is set) (assumes you don't modify + # `:before_script`) + # @option context [#to_s] :dpi ("") dpi of vnc display (not set if + # blank or `:vnc_args` is set) (assumes you don't modify + # `:before_script`) + # @option context [#to_s] :fonts ("") command delimited list of fonts + # available in vnc display (not set if blank or `:vnc_args` is set) + # (assumes you don't modify `:before_script`) + # @option context [#to_s] :idle ("") timeout vnc server if no + # connection in this amount of time in seconds (not set if blank or + # `:vnc_args` is set) (assumes you don't modify `:before_script`) + # @option context [#to_s] :extra_args ("") any extra arguments used + # when initializing the vnc server process (not set if blank or + # `:vnc_args` is set) (assumes you don't modify `:before_script`) + # @option context [#to_s] :vnc_clean ("...") script used to clean up + # any active vnc sessions (assumes you don't modify `:before_script` + # or `:clean_script`) + # @see Template + def initialize(context = {}) + super + end + + private + # We need to know the VNC and websockify connection information + def conn_params + (super + [:display, :websocket, :spassword, :vnc_connection_file, :staging_folder]).uniq + end + + # Before running the main script, start up a VNC server and record + # the connection information + def before_script + <<-EOT.gsub(/^ {14}/, "") + # Setup one-time use passwords and initialize the VNC password + function change_passwd () { + echo "Setting VNC password..." + password=$(create_passwd "#{password_size}") + spassword=${spassword:-$(create_passwd "#{password_size}")} + encryptedpasswd=$(echo ${password} | vncpasswd -f | xxd -c 256 -ps ) + ## add here the password encryption bit + ( + umask 077 + echo -ne "${password}\\n${spassword}" | vncpasswd -f > "#{vnc_passwd}" + ) + } + + function generate_vnc_connection_file () { + vnc_connection_file=${PWD}/turbovnc_connection_${SLURM_JOBID}.vnc + ( + umask 077 + echo "[connection]" > ${vnc_connection_file} + echo "host=${host}" >> ${vnc_connection_file} + echo "port=${port}" >> ${vnc_connection_file} + echo "password=${encryptedpasswd}" >> ${vnc_connection_file} + ) + } + + staging_folder=${PWD} + change_passwd + + # Start up vnc server (if at first you don't succeed, try, try again) + echo "Starting VNC server..." + for i in $(seq 1 10); do + # Clean up any old VNC sessions that weren't cleaned before + #{vnc_clean} + + # Attempt to start VNC server + VNC_OUT=$(vncserver -log "#{vnc_log}" -rfbauth "#{vnc_passwd}" -nohttpd -noxstartup #{vnc_args} 2>&1) + VNC_PID=$(pgrep -s 0 Xvnc) # the script above will daemonize the Xvnc process + echo "${VNC_OUT}" + + # Sometimes Xvnc hangs if it fails to find working disaply, we + # should kill it and try again + kill -0 ${VNC_PID} 2>/dev/null && [[ "${VNC_OUT}" =~ "Fatal server error" ]] && kill -TERM ${VNC_PID} + + # Check that Xvnc process is running, if not assume it died and + # wait some random period of time before restarting + kill -0 ${VNC_PID} 2>/dev/null || sleep 0.$(random_number 1 9)s + + # If running, then all is well and break out of loop + kill -0 ${VNC_PID} 2>/dev/null && break + done + + # If we fail to start it after so many tries, then just give up + kill -0 ${VNC_PID} 2>/dev/null || clean_up 1 + + # Parse output for ports used + display=$(echo "${VNC_OUT}" | awk -F':' '/^Desktop/{print $NF}') + port=$((5900+display)) + + echo "Successfully started VNC server on ${host}:${port}..." + generate_vnc_connection_file + #{super} + EOT + end + + # Run the script under the VNC server's display + def run_script + %(DISPLAY=:${display} #{super}) + end + + # After startup the main script, scan the VNC server log file for + # successful connections so that the password can be reset + def after_script + websockify_cmd = context.fetch(:websockify_cmd, "${WEBSOCKIFY_CMD:-/opt/websockify/run}").to_s + + <<-EOT.gsub(/^ {14}/, "") + #{super} + + # Launch websockify websocket server + echo "Starting websocket server..." + websocket=$(find_port ${host} 7000 11000) + #{websockify_cmd} -D ${websocket} localhost:${port} + + # Set up background process that scans the log file for successful + # connections by users, and change the password after every + # connection + echo "Scanning VNC log file for user authentications..." + while read -r line; do + if [[ ${line} =~ "Full-control authentication enabled for" ]]; then + change_passwd + generate_vnc_connection_file + create_yml + fi + done < <(tail -f --pid=${SCRIPT_PID} "#{vnc_log}") & + EOT + end + + # Clean up the running VNC server and any other stale VNC servers + def clean_script + <<-EOT.gsub(/^ {14}/, "") + #{super} + + #{vnc_clean} + [[ -n ${display} ]] && vncserver -kill :${display} + EOT + end + + # Log file for VNC server + def vnc_log + context.fetch(:vnc_log, "vnc.log").to_s + end + + # Password file for VNC server + def vnc_passwd + context.fetch(:vnc_passwd, "vnc.passwd").to_s + end + + # Arguments sent to `vncserver` command + def vnc_args + context.fetch(:vnc_args) do + name = context.fetch(:name, "").to_s + geometry = context.fetch(:geometry, "").to_s + dpi = context.fetch(:dpi, "").to_s + fonts = context.fetch(:fonts, "").to_s + idle = context.fetch(:idle, "").to_s + extra_args = context.fetch(:extra_args, "").to_s + + args = [] + args << "-name #{name}" unless name.empty? + args << "-geometry #{geometry}" unless geometry.empty? + args << "-dpi #{dpi}" unless dpi.empty? + args << "-fp #{fonts}" unless fonts.empty? + args << "-idletimeout #{idle}" unless idle.empty? + args << extra_args + + args.join(" ") + end.to_s + end + + # Clean up any stale VNC sessions + def vnc_clean + context.fetch(:vnc_clean) do + %(vncserver -list | awk '/^:/{system("kill -0 "$2" 2>/dev/null || vncserver -kill "$1)}') + end.to_s + end + end + end + end +end diff --git a/ondemand/ondemand.d/default.yml b/ondemand/ondemand.d/default.yml new file mode 100644 index 00000000..1a63573a --- /dev/null +++ b/ondemand/ondemand.d/default.yml @@ -0,0 +1,13 @@ +host_based_profiles: false +disable_dashboard_logo: false +pinned_apps_group_by: +show_all_apps_link: false + +help_menu: + - group: "Interface" + - title: "FASRC" + profile: "fasrc" + icon: "/public/images/fasrc_logo.jpg" + - title: "Sid" + profile: "sid" + icon: "/public/images/sid_logo.png" diff --git a/ondemand/ondemand.d/fasrc.yml b/ondemand/ondemand.d/fasrc.yml new file mode 100644 index 00000000..2ca8551b --- /dev/null +++ b/ondemand/ondemand.d/fasrc.yml @@ -0,0 +1,28 @@ +profiles: + fasrc: + show_all_apps_link: false + cancel_session_enabled: false + navbar_type: dark + dashboard_header_img_logo: "/public/images/fasrc_logo.png" + brand_bg_color: " rgb(157,47,60)" + brand_link_active_bg_color: "rgb(59, 61, 63)" + disable_dashboard_welcome_message: true + + pinned_apps_group_by: "category" + pinned_apps: ["*/main"] + + nav_bar: + - "clusters" + - "files" + - "jobs" + - title: "Interactive Apps" + apps: "*/main" + - "sessions" + + dashboard_layout: + rows: + - columns: + - width: 10 + widgets: + - "pinned_apps" + - "motd" \ No newline at end of file diff --git a/ondemand/ondemand.d/sid.yml b/ondemand/ondemand.d/sid.yml new file mode 100644 index 00000000..fbb52ae0 --- /dev/null +++ b/ondemand/ondemand.d/sid.yml @@ -0,0 +1,67 @@ +profiles: + sid: + show_all_apps_link: false + announcement_path: "/etc/ood/config/announcement.sid.d/" + + navbar_type: default + dashboard_header_img_logo: "/public/images/sid_logo.png" + brand_bg_color: "#F0F0F0" + brand_link_active_bg_color: "#3B3D3F" + disable_dashboard_welcome_message: true + dashboard_logo: "/public/images/sid_logo.png" + custom_css_files: ["/css/sid.css"] + + pinned_apps_group_by: + pinned_apps: ["*/ql_*"] + + nav_bar: + - "files" + - "jobs" + - title: "Terminals" + links: + - title: "Cannon" + icon: "fas://terminal" + url: "/pun/sys/shell/ssh/slurmctld" + new_tab: true + - title: "Interactive Apps" + apps: "*/main" + - "sessions" + + help_bar: + - title: "About" + url: "https://www.iq.harvard.edu/research-computing#AboutSidNG" + icon: "" + new_tab: true + - title: "Documentation" + url: "https://docs.rc.fas.harvard.edu/kb/sid-documentation/" + icon: "" + new_tab: true + - title: "Support" + url: "https://docs.rc.fas.harvard.edu/kb/getting-help-with-sid/" + icon: "" + new_tab: true + - develop + - help + - user + - log_out + + dashboard_layout: + rows: + - columns: + - width: 12 + widgets: + - "sid/welcome_message" + - "sessions" + - "pinned_apps" + - "sid/quick_links" + - "sid/docs" + + custom_pages: + docs: + layout: + rows: + - columns: + - width: 12 + widgets: + - "sessions" + - "pinned_apps" diff --git a/ondemand/ondemand.d/support_ticket.yml b/ondemand/ondemand.d/support_ticket.yml new file mode 100644 index 00000000..f02f7423 --- /dev/null +++ b/ondemand/ondemand.d/support_ticket.yml @@ -0,0 +1,8 @@ +support_ticket: + rt_api: + server: "http://rt:34000" + user: "root" + pass: "password" + priority: 4 + queues: + - "General" \ No newline at end of file diff --git a/ondemand/public/css/sid.css b/ondemand/public/css/sid.css new file mode 100644 index 00000000..0715fdf8 --- /dev/null +++ b/ondemand/public/css/sid.css @@ -0,0 +1,245 @@ +/** PAGE BODY WIDTH */ +body div.container-md { + width: 100%; + max-width: 1400px; +} + +/** NAVBAR BACKGROUND ON SELECTED */ +#navbar > ul.navbar-nav > li.nav-item > a:focus, #navbar > ul.navbar-nav > li.nav-item.show > a { + color: #cccccc; + background-color: #3b3d3f; +} + +/** TEXT COLOR FOR NAVIGATION LINKS */ +ul.navbar-nav li.show a { + color: #767676; +} + +/** WELCOME MESSAGE **/ +.fasse-color { + color: #DA6027; +} + +.cannon-color { + color: #009CD2; +} + +.default-color { + color: #255A8E; +} + +div.welcome-message { + padding: 40px 0; +} + +div.welcome-message h2 { + font-size: 60px; + letter-spacing: 1px; + color: #DA6027; +} + +div.welcome-message img { + width: 120px; + margin-top: -25px; +} + +div.welcome-message span { + font-size: 20px; + font-weight: normal; + white-space: nowrap; + vertical-align: 2px; +} + +@media (max-width: 1300px) { + div.welcome-message span { + display: block; + } +} + +@media (max-width: 620px) { + div.welcome-message h2 { + font-size: 40px; + } + + div.welcome-message span { + font-size: 14px; + } +} + +/** PINNED APPS BREAKPOINTS **/ + +@media (min-width: 676px) { + div.row div.app-launcher-container, div.quick-link-container { + flex: 0 0 50%; + max-width: 50%; + } +} + +@media (min-width: 850px) { + div.row div.app-launcher-container, div.quick-link-container { + flex: 0 0 33.3333%; + max-width: 33.3333%; + } +} + +@media (min-width: 1200px) { + div.row div.app-launcher-container, div.quick-link-container { + flex: 0 0 25%; + max-width: 25%; + } +} + +/** PINNED APPS **/ +.row h3 { + padding-bottom: 1rem; + color: #808080; + letter-spacing: 1px; + font-weight: 300; +} + +div.app-launcher-container a.launcher-click p { + margin: 0; + padding-left: 10px; + text-align: left; +} + +div.app-launcher-container a.launcher-click div.mt-2.mb-1 { + margin-top: 0 !important; +} + +div.app-launcher-container a.launcher-click p.app-title { + margin-top: 10px; +} + +/** QUICK LINKS **/ +.quick-link { + position: relative; +} +div.quick-link-header-image { + display: flex; + justify-content: center; + align-items: center; + min-height: 160px; + overflow: hidden; + margin-bottom: 50px; +} + +div.quick-link-header-text { + padding-top: 40px; + margin-bottom: 30px; + min-height: 185px; +} + +div.quick-link-header-text p { + text-align: center; + margin: 0; + padding: 0; +} + +div.quick-link-header-text .quick-link-header-title.fasse { + font-size: 26px; + color: #DA6027; +} + +div.quick-link-header-text .quick-link-header-title.cannon { + font-size: 26px; + color: #2D9BF0; +} + +div.quick-link-header-image i { + font-size: 90px; + color: rgb(128, 128, 128); +} + +div.quick-link-header-image img { + height: 140px; + margin: 0; +} + +div.quick-link-header-image span { + padding-top: 1rem; + padding-left: 10px; +} + +div.quick-link-text { + position: absolute; + left: 0; + bottom: 0; + padding: 10px; + white-space: nowrap; +} + +div.quick-link-text p { + margin: 0; +} + +div.quick-link-text .small-text { + font-size: 14px; + font-weight: 300; +} + +/** QUICK LINKS BORDERS */ +.launcher-click.fasse { + border-color: #DA6027; +} + +.launcher-click.cannon { + border-color: #2D9BF0; +} + +/** DOCUMENTATION **/ +#docs-container { + display: flex; + justify-content: center; + background-color: #F0F0F0; + padding-top: 20px; + padding-bottom: 40px; + width: 100vw; + position: relative; + left: 50%; + right: 50%; + margin-left: -50vw; + margin-right: -50vw; + margin-top: 2rem; +} + +#docs-container .content { + width: 100%; + max-width: 1380px; +} + +#docs-container .docs-sections-container { + display: flex; + flex-wrap: wrap; + margin-bottom: 30px; +} + +#docs-container section { + width: 100%; +} + +#docs-container h2 { + font-size: 24px; + font-weight: 500; + letter-spacing: 0.5px; + padding: 0 5px; +} + +#docs-container h3 { + font-size: 20px; + font-weight: 500; + color: #DA6027; + letter-spacing: 0.5px; +} + +#docs-container .docs-footer { + font-style: italic; +} + +#docs-container .status-iframe { + padding: 0px; + margin: 0px; + border: 1px solid rgb(192, 192, 192); + border-radius: 10px; + overflow: hidden; +} \ No newline at end of file diff --git a/ondemand/public/images/desktop_logo.svg b/ondemand/public/images/desktop_logo.svg new file mode 100644 index 00000000..6d811a10 --- /dev/null +++ b/ondemand/public/images/desktop_logo.svg @@ -0,0 +1,37 @@ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/ondemand/public/images/fasrc_logo.jpg b/ondemand/public/images/fasrc_logo.jpg new file mode 100644 index 0000000000000000000000000000000000000000..d2b69de37fd8d6d5c605cdcb51bcb6c37e7db37d GIT binary patch literal 11592 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 HF$(@a18fND literal 0 HcmV?d00001 diff --git a/ondemand/public/images/iqss_logo.png b/ondemand/public/images/iqss_logo.png new file mode 100644 index 0000000000000000000000000000000000000000..9e21374e0c5f7518027b596b12c4dd7bbe6b0e16 GIT binary patch literal 79737 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

Nd%efN?4e>%(r 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

^zYoL2_HaaY<2q*VS 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

=Q$hOzKHtj)*MQX*W8PngJBS) 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 Wx|y!UO&8*+&)rqlRw_eTz5E}Qxa6V$ literal 0 HcmV?d00001 diff --git a/ondemand/public/images/jupyter_logo.svg b/ondemand/public/images/jupyter_logo.svg new file mode 100644 index 00000000..ab255087 --- /dev/null +++ b/ondemand/public/images/jupyter_logo.svg @@ -0,0 +1,90 @@ + +Group.svg +Created using Figma 0.90 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/ondemand/public/images/matlab_logo.png b/ondemand/public/images/matlab_logo.png new file mode 100644 index 0000000000000000000000000000000000000000..bcc87316e6ed207b5cffcf85d603c2ae14a4bd95 GIT binary patch literal 25226 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 literal 0 HcmV?d00001 diff --git a/ondemand/public/images/rc-logo-text_2017.png b/ondemand/public/images/rc-logo-text_2017.png new file mode 100644 index 0000000000000000000000000000000000000000..ae50f42fcf78e5331e44bc5ed1b6b8fdd48bd16f GIT binary patch literal 134303 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

OgN(U2^dL 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 uMa=0^XnPsPW5t}B;+#9X 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 IM6N<$g1W=LUjP6A literal 0 HcmV?d00001 diff --git a/ondemand/public/images/sid_logo.png b/ondemand/public/images/sid_logo.png new file mode 100644 index 0000000000000000000000000000000000000000..bfcb4df29dc045dfaa44a2198033c20e31692f04 GIT binary patch literal 11290 zcmV+#EalUQP) zcbFUH@y9>As#kRV&OY}7w!y{}Q(_tczt5xR?p>{RU#(_m=bib^jKbeO z<4XZYF+`g9;f79cMhM`0TmbqxMCak3iMv|C9Vb@?dCDo0;6MtFOkV%fa*eX zI8cnfo=aA^3plB-C-G%LZ)<2LFb3Ek7zGRls)16V0B`^X5CYnf$B_qk4)}Na!|I?q zK@U?H>_FRdZqs{!%Yhld0l>Pxoz9+*-Vo@+fo}p|MSirh9F8$J{aXg81)w^4cKrj? z)OFHW?n=LV|G__jv!eeO052mqy546q`Vye01bQFfV&H6GNH>r5D)40bw-s>vxOv-C z9J}zpvv0Vtq)L3M-b5J3ho zqAFKWK?`w3{p(EK{t^dl{1kVCj$W+LT9(y%)?{F?3nD>|4Xop^&b1570avfFGN-{U*CZ^cY5&#@qX37GDC`73jYL!%f@1Lsr6Uh%CE& z;Pf)CV;#TP@gn2v7E;~3lhTd|Mi2}gP()c98t8=z&DBnHMFJ*D?t$U!OygI81vwur zznEegFYS|AdSSgU&(+O+F_^ zNqU{z&FJ6Jbnzx)xUE}9%pZ;cz7jWXAn)Fx{~cr!XgA4^<>!Gr>>WO8C%Y>_QMi8l zbDX#0L8>-%;ICF`8s-8$YttbYTxA-+fOu;918y>npCfsZm;^%sXT-pv83es*cb;5d zDr6GqUmzI)F?1qyM;qwU%0oKW@#yN`aln$L7{v;W!<}LS_s)-S9B{g6o6Q?CBdUQD z5l=}jVfE{PV@=y0wDUoEV!3Gc`6voBVko_!7WM#Gx$S(w6{c<1A^{Z(7~-XHSAeUS zJGVZ{!Z$8p;%7@~9pt3B+=-(1DjV+SrtuTNhj}{oJ<;P`pTlQUk(2%ke3a>fx(a1G z!+bjQXy%SOnevu&uJ->uSPAqGfU3ChYT%CZ|f*s zm}MG23VfX9F;bxlNnD7>NkB8gI(!5PGId7Z^8gc(#r01RLVrAhhzr!xY|&LH?$B_x z=-fH&N+=t|h^^bdREc!mMLK~#8aOy^T!;Kn7BIkB3R;MNEV+ZCx-bnxC6brHyikE3 zBHolENe(i^oq%P)2f!S}WoX5k`v%GO>F=z+gKg9!fu?tnG_n{R2zO*ULd4pF#O()@ zUVFCzUjvp~oiHZMo>ravPrR7B27C)TI+4q=7cr!}w@)^Wp9eZJ9?IqAp$+#jWW@#= zhuR8DpN`xte@7Nq>4X`?88QKRa=ZXE0>39wpyKf>)A(UhhrV;gMqppk`{E0t?~f(D zFu#Kkxt3U+C??GAW}W+|T+9uFz6Ze;FpRy6K@-vm^w&(|Io5|Uz*Ei-8s_uO#k1+G zb=XlH47g^hWpLJ5);vjq{>_~V>G;&(6*%4kMtDtH4rMV%V1h>klXFHczhDj4zX zK0jhAoJe*z%Q}R_^;P7?jHZnlc)~i~ppG{rFHcyfqB(-6P3JEsUdj!Fz6-%7FhafJ z@7&Xn%H$XTOo|&fktw347K0Yy($#;*&>-MdGim3Cf%8*r41-kYZGCYNR5Glia~i}gs@AYt;8u_cDZri zKoWot2EK;`N(LjIA_eg)Z$ms7PZH+?kKG)_?HV4xPGgmuuv10V<-kr&L-D9QJo%^G zQhN>ro52XPSDI5Jl|UavBHQajEQ{+I;PP&wRRX~{(HE}aaXQV0hj(7&}KW;I{QR*aAs&H#hq=t?M(}qeYX!IWSs8cRbU`uZkT=N_mE-!h61jzfvZvH zPt#^HujF9x?;^GEM7L?}@=^=9x8hi+oB~>i($FqW4sKykxPj708*W|9hOp|S#pz>* zvw{Vl!EEx>3UwAB954y;UZL#{QVDdWY20Xe1Vy1T(uzB5;P+vGIwh(CGmP`DLtlXmQo>q-UTcCYar6h5;C$X`qF~ zgh6}KsRKNfK%0HR8JJ%RUOkLMGcqNsLUNg_d{=Iojo8qufoBjO zcUovFRBjKmY3xY8v+pm(el-GQ7kZ0j*#togW?3Mi`$DYe_eQ8fiUl2vtfht{S?KY# z2g68Aq5;^7)K^&yEX0NAv%?ys z@QtNt84CD1G}DFG6-`4uwV55e6vy%gs!_9ag}C(0g6gkRl7TrA&BSc zOeD$K4$2U>WT;!|cyKA4%bV zJi|P)#g@#wfTuy{sT00OUGZ4x+=&g%yf31SdJ^BovX);IYB5BD98&io6y>C)rvf*S zShcCU7>01quR^ZVFOhmIy@pi3U_2MmNv7)Rn#QZ1VKn*%Qs~z+8CLI-T!Z2<`XIN@ z*P*dt>_C1|^Gygw?chBI2Dl5DRX2zImaU<=BrD79L?m!E7kk1SK}@#|2qSPa&}!pz zljtg3B`+@wF`)eFdw14j!m;qJ3@oK88JZ)LTZEz0Y)OhtYJts ztlb5&)EPi%=FrCa$M~kira&<7g<)(Uxp-w z&NFQvg7}mFjD)WrCm(e_(m-*5N7JHNxhgptqK(K?$3^xeP6P43A4XPHS`Bb}nYCj! zqt~vbX@JvCvcx4w6gC}RLhRoEkiIZaJUS5p-UPfIxBYM=DdZfI71QJNLQTO`0=>;N zPRC~JLZk%>hV#mPXK~Jd|6$FU6U;~M_PK~%8jljB7T(X0rZO)h#ckfi-lNVI3>|_F zN3@_#&QHQ6z-ir_$^*bfw)c+O&Zn=RjpAWL^Sb5 z2ov(c_?goS%3QrQqj&ph=n5Et8(q}K{HNFkf&k&FI1 z5m^ufu-#{5?T0}30!r^LhxK{ zWR~Xv>yQQEeZ6olAhkf7$w)_&X<-QR=ngjVQ27)dKJfy)yEMw0BX)&44BU_W5R;L| z)fX8)b1d)=M7ZxIx%!YLbVUILPTw>KbWJ!Z{Te#B3%R!b6-KPyV5OahA~e-<)ApB< z#oYV3&cLA?ctbixevRTzc@+dS+z}ncuv7>$NKUx!5u_5g4J2ko*O2Huw}1xWcCH@$ zBknx)YWxK*DmRBw4Fkiz^|TPl)EMdWZdfI zT-7kQFSYanq|Dl1k#Y!YlJ+okaF&4<;*9k#pcJOn&c(=D!<;nnd&Kmxy(lvjc@+dT zD(b_O?Fv&6(D8d6>?$u~Yjq9Vs;g-(Da25qyfs4Ejxc2{5uB-`#(zZ2kRFASrg?p= z$#@JeAXy+bpbMqcQvrc(ys`2&CNBAuNSR8j&tW%NHWkVdSJJsigwe`=or5e)ENjFW zDpb~mSvh(?jy~i*30><+)a7_g1U`)$&m*~vSDvARqXe8DUR*Yd$x9Z{SnEocJwKPk zTG${3>2I-nHY3W9^0jC<+jW`-dss8zAXb)6U}fP*KJW}?sj~#J^bFAbOp7!zA+U-4 z+g35QVKF1NZNc5D(^=)f?@3DbxEvvkfdtm_*?6-poj@M|nBO=O+mEZLrgN8rqH@dj zXZhhL_fy!Q(LB&;hclfCrAT7!C8YPMf)tdw*5Z8>49e>x+;;pm{Gs|J2-ah9uk^A& z8?t)!l4f{y~fUwrMx=oOnzSV4e(Tp zpVQDmj|kCfcZFC*D#xl0KmjepS?!;3&W;!O%F4I#bm%nKIL+Re>yVlx7b0t-?!cBn zgVe73cHB6JA1|(^oqscLth}9xOO_I@P-!dfmbQ+^B;jm805M@#{5rGyb#XbXGacsd@iI91ymj9%+yu z&<;+!INgrxNwj%JB7WhFm3_LP$c2db!Bfp+wWm-#u$TjOenjcE2wI^cq^9m^>+Q&o z_c-DvGH0y#ke-RHh<%P2M17sGPk>$c9KLUE@?(GHE3y0v;7rzQbHZIb^6NkP$QKS~G;KmTDi7Txab* zY`O8`5&fc}MhLfaW9@esG39aIJ^Uz&J2Wb{gz<#+Y!;2_@CCB)IgHf4&$~(Uc+*t{ z#RaErdNJykF6{PXx(6Lx6%gFU9Sd&<1=@-n>Fnm2B-T&?F~=;`M9fyM+z|!?9{u`s zzIO26c)w_@BpgIq$vxpfk?#;{fN%$w55I`Jj{iBHfKFL!B-XmR4N;JJg_VW|S%F_b zVqJ-EB5bfM2@rAG+FixdHD71Tpb1nIH8HSxJH8zeoDK-P6bx1APQ+px;>L@RYz`cP ztPc`O0V{}>95Pl65FLmg(UKJ5sHbm`YTaU_8gt&Al!rz#H zkeJ*^Tp(`73ZQ`&;DgeG2n?uU%Iddq>3I`s+a^a0uOMZ0<1rZdF*9|JO#@Xjm_v;a zZ04Q9(Oj_4FPQL^C%NnRU-HrTgHUy-*cztLuVJXR8D(ZHLD*sDRIhU}RsK{AXsK|r z-}AqPrMd)P^YRXj7!sT zhoi5Mjw>RMqFk@MUCZ@%$i<3>1L3>=DaUiO+tvy zEVT2tNhEe{Awz9xU4`l}FUsGAR?NZ@Jk}J-GKi{~svD zpeHQCd%$fM^&ogEz|fiZ$(4*>_A!lvGu8&2Ln86$dXno+cb!Fr(v}DTubUB5{toUT zQO#^AIY%QQ^Afw?CJkOe>KMujRB?c-g#A0$a$uyHc13bXnp7_ZMws6%xs`$SJ83Sl zMU72x+huzn+>A5}GNTglE3QOJVRZx1#bZosyUO|gzSl8h>hIV%bRgv$!gzu?Y3ndz zU&b58gE8Hp{sNWih6XO^SP4$+WS#E8kf(sV0t#yQO2-O5efK+zU->ajgDmal*u2dV z!Dp;K;EWhJ{08?=x(vL-#oV(N<_nQ^NGf6OL=pw=L6qFB2!}mgv!jy`FVv9T=0~W7 z<=#;|$3 zpcYW2wQ*t7+uXG637(lhgF%~j(lk)&b!7N4k3pU|G0Y$SCKSKf|Hy~vsCL)^l?W`ipHu>Lbr2HEE~}VOM>IT!bsgx!rHn&JNar5#dLpf6h<8em7eO zRZ+evj60mQw!VkNL{~R(S;84r7~Q%?qK1lf8hg%AT_}dabsyZujQ`w+fc3X&VOZo$$sW`L@K z)=ojFlZZ2WPe6B7(4P@Eo>d|7{Sj@w6=CtsBr&RG6RLz@1NHo?%|S)KrQa zHLB{v@+7nW{mrFy&mpb=L#RMyVC#Aaw@K)}CtyIGqR>&`AXudk@T%#2&8aZiG)|jY zZ75Jsud!gvG(IibPojV6h1r8pa^s;PuDQS1o}Ivtm>RJLP46L5T#Ltp0!|MPZv6+t z*6gCKID2K1k7ueMaqAT$ns|f7zK0iLy7Zvgxm^cZS_nIZS6S?9Yu_$nT4Nf9})>!>qx^>0kNGUr7AC0A1B(` z`b0O8++g*1By&4g%tFc=XINVq(p}iUk>l3PAy}d2qx}m{vg(I`bo&+ zzX9R!o{jDBlnRk%2sZJT$`d&7tFzfKXg?};g|l(@JY^d1&JBz>6^c7G#s;@XS!DeR z=9D-~H&tm{gf&CQ@=xC(5KhZc0a+KB;|;%{``vbRByyXf0;~cqFAwZ^kJCBL| zV*rkbK~1zV}xmJS$@k1!qUov#RY0uRuT9G+vth>g7w=_F;t98nCZf_;yC@YU#x! znn(K*)qaMeU__uaoVO(Ne8ODvAg$(e=mwD@g{8i+(Q*xzFeh-_lX9=TLkCY41UB*V z!mBCtN9ZWbO*=#HhQj>FWBzQ!?Qn}!o2#ei>at@rlGcb z!VLZ6mufHw6fS&~% zmHwlO5N%vO-XDAnYP&5#G$+y4#2?PB1-o+R`VY)*m$d#$RX2#JZsEpQCw!Z0UG-qG zznCy@VD;OVQc;&bVTSAldJ@Txyq>_z2;szBo8xNhk13#Qd|omRy-3;J8qEUDrg3Tf zp`3;^@abpwz4@n4J2^v9a2Vlevms0Oqd837jcAe~S^uhsFY(3E@GfhtC;DXYgzQsMI7JpnY5}ihzj!;tXXgwr48*pBFtc4pob!alNhEV7s1>F zs3%}{t!1u;syK-_+;-A?%&VouM{i7)`;@EeoM?7=?j#tX(jJvc@**dq|kUzCiz+3rBT`I)t4_l`GbQ5MD=}ybN z6@@W+2i|Zenwn9ft4-sso{0uTR994>`<05`Xc}iMQaQePSu|2;sSC{6Ml(nzD%pmr zL0gRzPpFkyZ~T^;rp?sX^qgkieO?>;+-MqaBbfp?9eEU*vnaZYai(L2fX^*Ip*lD$ zv=d)Ph;U{;t$FdYBYqHc_7HWndoXvGvMf#+C{Y=={UZo$m9)0>c#%Y&xCbd9nKK-k zLCCGrTc|Dj-2--a&oVUVbQJYR4ZWPiaQA^&Xi~q&LDkj{ZfSlGoT*%C2{4!Cno72u4#QxR z>XD?2=&5u?i7v2v9+?E%tesy%N&^#000ZsNklH4bk0*e;FPeBOm5!z`y9!0W;)4%|ik5k*0aNrkz`TG<)pi1qbgsrS7yGPO%T2pxgS(Ini`?%cPk|WbAk0T=7zTK%*uP^rw=B99 z1MHZ5d54ui-(VU)L28Zs7bJT4beiK-BN+?-L4=QlDqaOa?w6Rh&B(B><;_@ zOD$nY)k{TX#)hYGb?Ag#8J7o>NsM}aLaddt0yv@BRoWjz-;m5wJc;B5?rsvqm&($WuTsdlC-Y#5J|Q=A6? zRfmvEWrw?her7+%upGI`V<^I+AiZKhbBU9R?XApRdAGRm)Iu!2+YV&Gd}ijUh%gWJ zuj0*lGx4b!9@xzE zkMBn-RO~DU9V83D?hIw8X3$>fSIfaX$L+WB-6U3RO0cVYuiP^YPQ03W(*qlu;c z5|5F{g+2rejj8~eLm^nHa^ZV_WlGB;D2Q1p**=A$*WO#j#ExaWHg6`yZ2{`4`&O7C zxh0yD#1J<~O}n&N5jOA)8B>FV#k(wI$#113@^EE_k&qcJO zePMQ%fw!C=H!NV)g70wPrytQ=<+Pi2btZ{!t_Y?`r=i0J->7KDcfU0`K>YOa=Gfs# zgfA^r9qOxGR5vv6;p@|xwc|PPl$w}v>0n6vyP^S1?pVr8Z(d4qy9l$|4}=*K1-gpl z1~a#l$9BZsgDy2PywzYtcxu%x{N~kJRJ3%`IK-8yMQ}WBGL0W1uJO8R7-)qGpBIgZ z@`(F2HXzwP@wkHwq%l>4`bw#vH}kbW@b6{60Ps4CN`wtj<*_AH^1Ke7*8#@ zg2F(Ux~iOo*@Xr5HCMz7^pzy~iPzC%u{b_a>{(+E_R9zT(jl*12Hg<6RYrkg7LGw6$)MZdG6sc0x!0lUS^Yu-$ z8Mb;SN+C24mNsqO5axXmMRH}%M@WO1Kwm?m4|pLtGw7m=2E_wTuW%u>2R z(+G|Cytr+*Ats4Al$`(tK!?T(C$6x;QH$PX&DM{3YQp)r42@IQK26PrR*XW0mO)+p z2D=e7ane=fCvC=hcMd+DWYvFfc87@yv05ku7)6Chi1S)MrbO@Hfx>a%ssuGg_8~a} z7u&AupoKZEb2Z;+S;TRhUShZH^J0!@S;F{+MU33O0f%NVqr8YZ-!OI-4WY?XNsFt5 zR;Q1U;zBVDyhe~>t&_4)6E*&w3~F0TZNm-<8#S~7g{HwSNmb4M5jPBpsF@c@(@Ctv zkD-FQQRnl0Cd=bCn0MvT(+DB_mn9^wjb29l?*F!P5LK5}7(uThX=wHr+jejRsSD=k z4NgRRnVU3@MtWqtk6a9kesTslOF?gE(c%jkxp|kkGz*~J=OEx#DR1edcGq(B&~mYR z-9(F(iw0B;12oXX;wjTS3Y`TijRRa_y%;&^%Hx4oNoKX*M2h;y&ai=61TWW2iJC<^ zdzgj>Nu`3-)xuK*{&lzlcO~TaUnrEdHKGzO*?x@^Ioap_33zS$Dd5 z=!-`fv9gY~S_dJgns6;T3mkM7bjg)sB(h^;3cxUBS1a*vW{2OBTuBq8_+ZjSHB>0s z6=CuC!+50p$mn8lj}zt?-ax|o&zrXY9;tb9Hofm$pF#HZrE@~;(XyQ&C1Hl-NZ}ul20)9DaJ0olq!%@vYqh=1qY@MC1H|^eOkN z=<2|f63(!J;)chDpB2^4L9!6&awJewigb(GN`?aDy^N(unS(jN38wdsL1?H85clO9 zc{=9^B-nF~jeW-<3-^&ZoTn41@RVQ@rxIw8wDvUF)zQZ4S{t7%{3!$1Z>3>yuL<)Y zBtUW|BB)krDc6#LC1^yuLw!8qFdi>I3PQ0y*S2vmiFHF>CwYP0*9aij?8l^zARZHa zH6kRfmysHS*|>RzAsI;*0AES7&(jEV^Mbf-*F;}=Lpp&@gD5e`2(f6?0qEmZjYe?@kCsNRCZh!eQiR#Ty2PJ(20cC2Oyet9GS}<+>Uha zH7DWb9a#u;l%V2t^RMN%Gkp1annt)Xt(Px}zTy!=O6ax$K}4_}NTjj|p_N)@a;88S zco@;h8|-|*P@uFa!iN*S!XxEJ=c1icp})IET9E?sHzPuJR+{}Bhz&fZo9CN{bQq46 zUdTHc$&BnYw7Z0xw>`-*AHG5B5c#OZFF2e;uI}!mAa}R95`8XsAJNEY#073G!V9TIxbj7aylBYNupY@fT!oGGN^jx+0mt|t&CL$D QZ2$lO07*qoM6N<$f(MFx;s5{u literal 0 HcmV?d00001 diff --git a/ondemand/public/images/stata_logo.svg b/ondemand/public/images/stata_logo.svg new file mode 100644 index 00000000..b5550361 --- /dev/null +++ b/ondemand/public/images/stata_logo.svg @@ -0,0 +1,37 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/ondemand/public/images/term_logo.svg b/ondemand/public/images/term_logo.svg new file mode 100644 index 00000000..1307ac8d --- /dev/null +++ b/ondemand/public/images/term_logo.svg @@ -0,0 +1,119 @@ + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + From 03d89f5cc82489e4df331bff2105313ff16174d7 Mon Sep 17 00:00:00 2001 From: Aday Bujeda Date: Mon, 6 Mar 2023 08:15:28 +0000 Subject: [PATCH 2/9] feat(ondemand): gh #824 updated OnDemand version to 2.1.0-0.rc9.el7 --- ondemand/Makefile | 26 +++----------------------- 1 file changed, 3 insertions(+), 23 deletions(-) diff --git a/ondemand/Makefile b/ondemand/Makefile index b76cd203..2ec41553 100644 --- a/ondemand/Makefile +++ b/ondemand/Makefile @@ -2,13 +2,12 @@ all:: all:: dev -.PHONY: dev remote-dev remote-fasse test release down up clean clean-remote-dev clean-remote-fasse version next-version docker-build docker-build-slurm docker-build-ood docker-push +.PHONY: dev release down up clean version next-version docker-build docker-build-slurm docker-build-ood docker-push OOD_UID := $(shell id -u) OOD_GID := $(shell id -g) -OOD_TAG := 2.1.0-0.rc8.el7 +OOD_TAG := 2.1.0-0.rc9.el7 SLURM_TAG := slurm-21-08-6-1 -REMOTE_USERNAME := $(if $(SSH_USERNAME),$(SSH_USERNAME),$(USER)) SID_SLURM_IMAGE := hmdc/sid-slurm:$(SLURM_TAG) SID_ONDEMAND_IMAGE := hmdc/sid-ood:$(SLURM_TAG)-ood-$(OOD_TAG) @@ -41,23 +40,9 @@ remote-fasse: CHECK_TEMPLATE_VERSION := "" dev: down up -remote-dev remote-fasse: version - $(ENV) http_proxy=$(HTTP_PROXY) https_proxy=$(HTTPS_PROXY) docker-compose build - @echo "You need to be connected to the VPN" - ssh $(REMOTE_USERNAME)@$(LOGIN_HOST) mkdir -p $(APP_FOLDER) - $(ENV) docker-compose run --no-deps --entrypoint="" ood su - ood bash -c "export PATH=/home/ood/bin:/home/ood/ondemand/dev/dashboard/node_modules/.bin:$$PATH; cd /home/ood/ondemand/dev/dashboard; scl enable rh-ruby27 rh-nodejs14 'gem install --user-install bundler -v 2.1.4 && bundle config --local path 'vendor/bundle' && bundle install && npm install yarn --save && bundle exec rake assets:precompile'" - @echo "You need to be connected to the VPN" - @./download_and_check.sh $(REMOTE_USERNAME) $(TEMPLATE_URL)/$(TURBOVNC_TEMPLATE) $(TEMPLATE_LOCATION)/$(TURBOVNC_TEMPLATE) $(CHECK_TEMPLATE_VERSION) - @./download_and_check.sh $(REMOTE_USERNAME) $(TEMPLATE_URL)/$(KVM_TEMPLATE) $(TEMPLATE_LOCATION)/$(KVM_TEMPLATE) $(CHECK_TEMPLATE_VERSION) - rsync -avz --delete --exclude-from='rsync-exclude.conf' ./application/ -e ssh $(REMOTE_USERNAME)@$(LOGIN_HOST):$(APP_FOLDER) - -test: - $(ENV) docker-compose run --no-deps --entrypoint="" ood su - ood bash -c "export PATH=/home/ood/bin:/home/ood/ondemand/dev/dashboard/node_modules/.bin:$$PATH; cd /home/ood/ondemand/dev/dashboard; scl enable rh-ruby27 rh-nodejs14 'gem install --user-install bundler -v 2.1.4 && bundle config --local path 'vendor/bundle' && bundle install && npm install yarn --save && bundle exec rake test'" - release: next-version - $(ENV) docker-compose run --no-deps --entrypoint="" ood su - ood bash -c "export PATH=/home/ood/bin:/home/ood/ondemand/dev/dashboard/node_modules/.bin:$$PATH; export RAILS_ENV=production; cd /home/ood/ondemand/dev/dashboard; scl enable rh-ruby27 rh-nodejs14 'gem install --user-install bundler -v 2.1.4 && bundle config --local path 'vendor/bundle' && bundle install && npm install yarn --save && bundle exec rake assets:precompile'" mkdir -p ./target - tar -czvf ./target/sid2-dashboard.tar.gz ./application + tar -czvf ./target/ondemand-dashboard.tar.gz ./application down: $(ENV) docker-compose down -v || : @@ -66,13 +51,8 @@ up: $(ENV) docker-compose up --build $(DETACHED_MODE) clean: - rm -rf application/.bundle application/VERSION application/log application/node_modules application/public/assets application/tmp application/vendor/bundle data/* $(ENV) docker-compose down --rmi all --volumes -clean-remote-dev clean-remote-fasse: - echo "For FASSE, you need to be connected to the VPN" - ssh $(REMOTE_USERNAME)@$(LOGIN_HOST) rm -rfv $(APP_FOLDER) || : - next-version: docker run --rm -v $(PWD)/..:/usr/app -w /usr/app node:$(NODE_VERSION) /bin/bash -c "npm install && npm run version -- $(NPM_RUN_VERSION_ARGS) | tail -n 1 > dashboard/application/VERSION" From 39759fb7d020451ac545cc7bf9e607ca7ff4a52d Mon Sep 17 00:00:00 2001 From: Aday Bujeda Date: Tue, 7 Mar 2023 17:57:55 +0000 Subject: [PATCH 3/9] feat(ondemand): gh #824 fixed Sid profile configuration --- .../apps/{OdysseyRD => NativeRD}/LICENSE.txt | 0 ondemand/apps/{OdysseyRD => NativeRD}/README.md | 0 ondemand/apps/{OdysseyRD => NativeRD}/form.yml | 0 .../apps/{OdysseyRD => NativeRD}/local/main.yml | 0 .../local/ql_rdesktop_dev.yml} | 0 .../apps/{OdysseyRD => NativeRD}/manifest.yml | 0 .../apps/{OdysseyRD => NativeRD}/submit.yml.erb | 0 .../template/before.sh.erb | 0 .../template/desktops/gnome.sh | 0 .../template/desktops/kde.sh | 0 .../template/desktops/mate.sh | 0 .../template/desktops/xfce.sh | 0 .../template/script.sh.erb | 0 ondemand/apps/Rstudio/local/main.yml | 2 +- .../widgets/sid/_all_sessions_button.html.erb | 2 +- .../views/widgets/sid/_cannon_button.html.erb | 2 +- .../views/widgets/sid/_fasse_button.html.erb | 2 +- .../views/widgets/sid/_quick_links.html.erb | 2 +- .../views/widgets/sid/_terminal_button.html.erb | 2 +- ondemand/docker-compose.yml | 16 ++++++++-------- ondemand/ondemand.d/default.yml | 1 + 21 files changed, 15 insertions(+), 14 deletions(-) rename ondemand/apps/{OdysseyRD => NativeRD}/LICENSE.txt (100%) rename ondemand/apps/{OdysseyRD => NativeRD}/README.md (100%) rename ondemand/apps/{OdysseyRD => NativeRD}/form.yml (100%) rename ondemand/apps/{OdysseyRD => NativeRD}/local/main.yml (100%) rename ondemand/apps/{OdysseyRD/local/ql_odyssey_dev.yml => NativeRD/local/ql_rdesktop_dev.yml} (100%) rename ondemand/apps/{OdysseyRD => NativeRD}/manifest.yml (100%) rename ondemand/apps/{OdysseyRD => NativeRD}/submit.yml.erb (100%) rename ondemand/apps/{OdysseyRD => NativeRD}/template/before.sh.erb (100%) rename ondemand/apps/{OdysseyRD => NativeRD}/template/desktops/gnome.sh (100%) rename ondemand/apps/{OdysseyRD => NativeRD}/template/desktops/kde.sh (100%) rename ondemand/apps/{OdysseyRD => NativeRD}/template/desktops/mate.sh (100%) rename ondemand/apps/{OdysseyRD => NativeRD}/template/desktops/xfce.sh (100%) rename ondemand/apps/{OdysseyRD => NativeRD}/template/script.sh.erb (100%) diff --git a/ondemand/apps/OdysseyRD/LICENSE.txt b/ondemand/apps/NativeRD/LICENSE.txt similarity index 100% rename from ondemand/apps/OdysseyRD/LICENSE.txt rename to ondemand/apps/NativeRD/LICENSE.txt diff --git a/ondemand/apps/OdysseyRD/README.md b/ondemand/apps/NativeRD/README.md similarity index 100% rename from ondemand/apps/OdysseyRD/README.md rename to ondemand/apps/NativeRD/README.md diff --git a/ondemand/apps/OdysseyRD/form.yml b/ondemand/apps/NativeRD/form.yml similarity index 100% rename from ondemand/apps/OdysseyRD/form.yml rename to ondemand/apps/NativeRD/form.yml diff --git a/ondemand/apps/OdysseyRD/local/main.yml b/ondemand/apps/NativeRD/local/main.yml similarity index 100% rename from ondemand/apps/OdysseyRD/local/main.yml rename to ondemand/apps/NativeRD/local/main.yml diff --git a/ondemand/apps/OdysseyRD/local/ql_odyssey_dev.yml b/ondemand/apps/NativeRD/local/ql_rdesktop_dev.yml similarity index 100% rename from ondemand/apps/OdysseyRD/local/ql_odyssey_dev.yml rename to ondemand/apps/NativeRD/local/ql_rdesktop_dev.yml diff --git a/ondemand/apps/OdysseyRD/manifest.yml b/ondemand/apps/NativeRD/manifest.yml similarity index 100% rename from ondemand/apps/OdysseyRD/manifest.yml rename to ondemand/apps/NativeRD/manifest.yml diff --git a/ondemand/apps/OdysseyRD/submit.yml.erb b/ondemand/apps/NativeRD/submit.yml.erb similarity index 100% rename from ondemand/apps/OdysseyRD/submit.yml.erb rename to ondemand/apps/NativeRD/submit.yml.erb diff --git a/ondemand/apps/OdysseyRD/template/before.sh.erb b/ondemand/apps/NativeRD/template/before.sh.erb similarity index 100% rename from ondemand/apps/OdysseyRD/template/before.sh.erb rename to ondemand/apps/NativeRD/template/before.sh.erb diff --git a/ondemand/apps/OdysseyRD/template/desktops/gnome.sh b/ondemand/apps/NativeRD/template/desktops/gnome.sh similarity index 100% rename from ondemand/apps/OdysseyRD/template/desktops/gnome.sh rename to ondemand/apps/NativeRD/template/desktops/gnome.sh diff --git a/ondemand/apps/OdysseyRD/template/desktops/kde.sh b/ondemand/apps/NativeRD/template/desktops/kde.sh similarity index 100% rename from ondemand/apps/OdysseyRD/template/desktops/kde.sh rename to ondemand/apps/NativeRD/template/desktops/kde.sh diff --git a/ondemand/apps/OdysseyRD/template/desktops/mate.sh b/ondemand/apps/NativeRD/template/desktops/mate.sh similarity index 100% rename from ondemand/apps/OdysseyRD/template/desktops/mate.sh rename to ondemand/apps/NativeRD/template/desktops/mate.sh diff --git a/ondemand/apps/OdysseyRD/template/desktops/xfce.sh b/ondemand/apps/NativeRD/template/desktops/xfce.sh similarity index 100% rename from ondemand/apps/OdysseyRD/template/desktops/xfce.sh rename to ondemand/apps/NativeRD/template/desktops/xfce.sh diff --git a/ondemand/apps/OdysseyRD/template/script.sh.erb b/ondemand/apps/NativeRD/template/script.sh.erb similarity index 100% rename from ondemand/apps/OdysseyRD/template/script.sh.erb rename to ondemand/apps/NativeRD/template/script.sh.erb diff --git a/ondemand/apps/Rstudio/local/main.yml b/ondemand/apps/Rstudio/local/main.yml index 69d38b14..e6a45181 100644 --- a/ondemand/apps/Rstudio/local/main.yml +++ b/ondemand/apps/Rstudio/local/main.yml @@ -1,3 +1,3 @@ --- cluster: "dev-cluster" -title: "RStudio Server" +title: "Rstudio Server" diff --git a/ondemand/config/views/widgets/sid/_all_sessions_button.html.erb b/ondemand/config/views/widgets/sid/_all_sessions_button.html.erb index 9ac402a9..0557342e 100644 --- a/ondemand/config/views/widgets/sid/_all_sessions_button.html.erb +++ b/ondemand/config/views/widgets/sid/_all_sessions_button.html.erb @@ -1,4 +1,4 @@ -

+