Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

24.2 is coming #614

Open
wants to merge 7 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 4 additions & 2 deletions galaxy/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ ENV GALAXY_ROOT_DIR=/galaxy \
GALAXY_VIRTUAL_ENV=/galaxy_venv \
GALAXY_HOME=/home/galaxy \
GALAXY_CONDA_PREFIX=/tool_deps/_conda \
MINIFORGE_VERSION=24.3.0-0
MINIFORGE_VERSION=24.9.2-0


# Install miniforge and then virtualenv from conda
Expand All @@ -39,7 +39,7 @@ RUN curl -s -L https://github.com/conda-forge/miniforge/releases/download/$MINIF

FROM build_base AS build_galaxy

ARG GALAXY_RELEASE=release_24.1
ARG GALAXY_RELEASE=release_24.2
ARG GALAXY_REPO=https://github.com/galaxyproject/galaxy

ENV NODE_OPTIONS=--max-old-space-size=4096
Expand Down Expand Up @@ -191,6 +191,8 @@ ENV GALAXY_CONFIG_MANAGED_CONFIG_DIR=$EXPORT_DIR/${GALAXY_ROOT_DIR#/}/database/c
GALAXY_CONFIG_BOOTSTRAP_ADMIN_API_KEY=HSNiugRFvgT574F43jZ7N9F3 \
GALAXY_CONFIG_BRAND="Galaxy Docker Build" \
GALAXY_CONFIG_STATIC_ENABLED=False \
GALAXY_CONFIG_FILE_SOURCE_TEMPPLATES=$GALAXY_CONFIG_DIR/file_source_templates.yml \
GALAXY_CONFIG_VAULT_CONFIG_FILE=$GALAXY_CONFIG_DIR/vault_conf.yml \
GALAXY_INTERACTIVE_TOOLS_CONFIG_FILE=$GALAXY_CONFIG_DIR/tool_conf_interactive.xml \
# The following ENV var can be used to set the number of gunicorn workers
GUNICORN_WORKERS=2 \
Expand Down
28 changes: 28 additions & 0 deletions galaxy/ansible/files/production_b2drop.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
- id: b2drop
version: 0
name: B2DROP
description: |
B2DROP is a Nextcloud to sync and share your research data.
variables:
username:
label: Username / Account Name
type: string
help: |
The username or account name to use to connect to B2DROP. This is not your email address but the name show in the URL of your profile page.
writable:
label: Writable?
type: boolean
default: false
help: Allow Galaxy to write data to B2DROP.
secrets:
password:
label: Password
help: |
The password to use to connect to B2DROP.
configuration:
type: webdav
url: 'https://b2drop.bsc.es'
root: '/remote.php/dav/files/{{ variables.username }}'
login: '{{ variables.username }}'
writable: '{{ variables.writable }}'
password: '{{ secrets.password }}'
25 changes: 25 additions & 0 deletions galaxy/ansible/galaxy_file_source_templates.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
- hosts: localhost
connection: local
remote_user: root
tasks:
- name: Install fs.webdavfs for Galaxy's file source plugins
pip:
name: "fs.webdavfs"
extra_args: "--index-url https://wheels.galaxyproject.org/simple/ --extra-index-url https://pypi.python.org/simple"
virtualenv: "{{ galaxy_venv_dir }}"
environment:
PYTHOPATH: null
VIRTUAL_ENV: "{{ galaxy_venv_dir }}"
become_user: "{{ galaxy_user_name }}"

- name: "Setup user configurable file source templates, also called BYOD"
template: src=file_source_templates.yml.j2 dest={{ galaxy_file_source_templates_config_file }} owner={{ galaxy_user_name }} group={{ galaxy_user_name }}

- name: "Copy B2Drop file source template"
ansible.builtin.copy:
src: "./files/production_b2drop.yml"
dest: "{{ galaxy_config_dir }}/production_b2drop.yml"
owner: "{{ galaxy_user_name }}"
group: "{{ galaxy_user_name }}"
mode: '0644'

6 changes: 6 additions & 0 deletions galaxy/ansible/galaxy_object_store_templates.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
- hosts: localhost
connection: local
remote_user: root
tasks:
- name: "Setup user configurable object store templates, also called BYOS"
template: src=object_store_templates.yml.j2 dest={{ galaxy_object_store_templates_config_file }} owner={{ galaxy_user_name }} group={{ galaxy_user_name }}
12 changes: 12 additions & 0 deletions galaxy/ansible/galaxy_vault_config.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
- hosts: localhost
connection: local
remote_user: root
# You should change this key in production. You can generate Fernet keys with:
#from cryptography.fernet import Fernet
#Fernet.generate_key().decode('utf-8')
vars:
galaxy_vault_encryption_keys:
- pwiL08wXlpkBm-_Dr75aw1_uOPVA3HET1y7xrpynhKU=
tasks:
- name: "Configure Galaxy vault"
template: src=vault_conf.yml.j2 dest={{ galaxy_vault_config_file }} owner={{ galaxy_user_name }} group={{ galaxy_user_name }}
14 changes: 10 additions & 4 deletions galaxy/ansible/group_vars/all.yml
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,9 @@ galaxy_pbs: false
galaxy_k8s_jobs: false
galaxy_supervisor: true
galaxy_job_metrics: true
galaxy_file_source_templates: true
galaxy_object_store_templates: true
galaxy_vault_config: true
galaxy_scripts: true
galaxy_domain: "localhost" # This is used by letsencrypt and Interactive Tools, set it to the domain name under which galaxy can be reached
galaxy_startup: true
Expand Down Expand Up @@ -59,17 +62,20 @@ galaxy_k8s_jobs_pull_policy: IfNotPresent

# Point at the existing Galaxy configuration.
galaxy_server_dir: "/galaxy"
galaxy_job_conf_path: "{{ galaxy_server_dir }}/config/job_conf.xml"
galaxy_container_resolvers_conf_path: "{{ galaxy_server_dir }}/config/container_resolvers_conf.yml"
galaxy_job_metrics_conf_path: "{{ galaxy_server_dir }}/config/job_metrics_conf.yml"
galaxy_config_dir: "{{ galaxy_server_dir }}/config"
galaxy_job_conf_path: "{{ galaxy_config_dir }}/job_conf.xml"
galaxy_container_resolvers_conf_path: "{{ galaxy_config_dir }}/container_resolvers_conf.yml"
galaxy_job_metrics_conf_path: "{{ galaxy_config_dir }}/job_metrics_conf.yml"
galaxy_file_source_templates_config_file: "{{ galaxy_config_dir }}/file_source_templates.yml"
galaxy_object_store_templates_config_file: "{{ galaxy_config_dir }}/object_store_templates.yml"
galaxy_vault_config_file: "{{ galaxy_config_dir }}/vault_conf.yml"
galaxy_user_name: "galaxy"
galaxy_home_dir: "/home/{{ galaxy_user_name }}"
galaxy_source_shellrc: false
galaxy_user_shellrc: "{{ galaxy_home_dir }}/.bashrc"
galaxy_logs_dir: "{{ galaxy_home_dir }}/"
galaxy_venv_dir: "{{ galaxy_home_dir }}/venv"

galaxy_config_dir: "{{ galaxy_server_dir }}/config"
galaxy_config_file: "{{ galaxy_config_dir }}/galaxy.yml"
galaxy_toolshed_config_file: "{{ galaxy_config_dir }}/tool_shed.yml"
galaxy_tool_data_table_config_file: "{{ galaxy_config_dir }}/tool_data_table_conf.xml"
Expand Down
13 changes: 13 additions & 0 deletions galaxy/ansible/provision.yml
Original file line number Diff line number Diff line change
Expand Up @@ -70,3 +70,16 @@
- import_playbook: galaxy_job_metrics.yml
when: galaxy_job_metrics | bool
tags: galaxy_job_metrics

- import_playbook: galaxy_file_source_templates.yml
when: galaxy_file_source_templates | bool
tags: galaxy_file_source_templates

- import_playbook: galaxy_object_store_templates.yml
when: galaxy_object_store_templates | bool
tags: galaxy_object_store_templates

- import_playbook: galaxy_vault_config.yml
when: galaxy_vault_config | bool
tags: galaxy_vault_config

2 changes: 1 addition & 1 deletion galaxy/ansible/rabbitmq.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
connection: local
remote_user: root
vars:
rabbitmq_version: 4.0.3
rabbitmq_version: 4.0.4
rabbitmq_apt_repository: "deb [signed-by=/etc/apt/trusted.gpg.d/rabbitmq-9F4587F226208342.gpg] https://ppa1.rabbitmq.com/rabbitmq/rabbitmq-server/deb/{{ ansible_distribution | lower }} {{ ansible_distribution_release }} main"
rabbitmq_apt_gpg_url: https://github.com/rabbitmq/signing-keys/releases/download/3.0/cloudsmith.rabbitmq-server.9F4587F226208342.key
erlang_apt_repository: "deb [signed-by=/etc/apt/trusted.gpg.d/erlang-E495BB49CC4BBE5B.gpg] https://ppa1.rabbitmq.com/rabbitmq/rabbitmq-erlang/deb/{{ ansible_distribution | lower }} {{ ansible_distribution_release }} main"
Expand Down
10 changes: 10 additions & 0 deletions galaxy/ansible/templates/file_source_templates.yml.j2
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
- include: "{{ galaxy_server_dir }}/lib/galaxy/files/templates/examples/production_azure.yml"
- include: "{{ galaxy_server_dir }}/lib/galaxy/files/templates/examples/production_ftp.yml"
- include: "{{ galaxy_server_dir }}/lib/galaxy/files/templates/examples/production_s3fs.yml"
- include: "{{ galaxy_server_dir }}/lib/galaxy/files/templates/examples/production_aws_private_bucket.yml"
- include: "{{ galaxy_server_dir }}/lib/galaxy/files/templates/examples/production_aws_public_bucket.yml"
- include: "{{ galaxy_server_dir }}/lib/galaxy/files/templates/examples/production_azure.yml"
- include: "{{ galaxy_server_dir }}/lib/galaxy/files/templates/examples/production_dropbox.yml"
- include: "{{ galaxy_server_dir }}/lib/galaxy/files/templates/examples/production_google_drive.yml"
- include: "{{ galaxy_server_dir }}/lib/galaxy/files/templates/examples/production_webdav.yml"
- include: "{{ galaxy_config_dir }}/production_b2drop.yml"
8 changes: 8 additions & 0 deletions galaxy/ansible/templates/object_store_templates.yml.j2
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
# This is a catalog file for all the user object store templates
- include: "{{ galaxy_server_dir }}/lib/galaxy/objectstore/templates/examples/production_azure_blob.yml"
- include: "{{ galaxy_server_dir }}/lib/galaxy/objectstore/templates/examples/production_aws_s3.yml"
- include: "{{ galaxy_server_dir }}/lib/galaxy/objectstore/templates/examples/production_generic_s3.yml"
- include: "{{ galaxy_server_dir }}/lib/galaxy/objectstore/templates/examples/production_gcp_s3.yml"
- include: "{{ galaxy_server_dir }}/lib/galaxy/objectstore/templates/examples/cloudflare.yml"
- include: "{{ galaxy_server_dir }}/lib/galaxy/objectstore/templates/examples/onedata.yml"
- include: "{{ galaxy_server_dir }}/lib/galaxy/objectstore/templates/examples/minio_just_buckets.yml"
11 changes: 11 additions & 0 deletions galaxy/ansible/templates/vault_conf.yml.j2
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
type: database
path_prefix: /galaxy
# Encryption keys must be valid fernet keys
# To generate a valid key:
#
# Use the ascii string value as a key
# For more details, see: https://cryptography.io/en/latest/fernet/#
encryption_keys:
{% for encryption_key in galaxy_vault_encryption_keys %}
- {{ encryption_key }}
{% endfor %}
Loading