Galaxy templateΒΆ
The orchetrator interprets the TOSCA template and orchestrate the Galaxy deployment on the virtual machine.
Galaxy template is located here.
Input parameters are needed for each custom type used in the template:
Virtual hardware parameters:
number_cpus: type: integer description: number of cpus required for the instance default: 1 memory_size: type: string description: ram memory required for the instance default: 1 GB storage_size: type: string description: storage memory required for the instance default: 10 GBGalaxy input paramters:
admin_email: type: string description: email of the admin user default: admin@admin.com admin_api_key: type: string description: key to access the API with admin role default: not_very_secret_api_key user: type: string description: username to launch the galaxy daemon default: galaxy version: type: string description: galaxy version to install default: master instance_description: type: string description: galaxy instance description default: "INDIGO Galaxy test" instance_key_pub: type: string description: galaxy instance ssh public key default: your_ssh_public_key export_dir: type: string description: path to store galaxy data default: /exportStorage input parameters:
galaxy_storage_type: type: string description: Storage type (Iaas Block Storage, Onedaata, Filesystem encryption) default: "IaaS" userdata_provider: type: string description: default OneProvider default: "not_a_privder_url" userdata_token: type: string description: Access token for onedata space default: "not_a_token" userdata_space: type: string description: Onedata space default: "galaxy"Galaxy flavor input parameters:
flavor: type: string description: Galaxy flavor for tools installation default: "galaxy-no-tools"Reference data input parameters, for all possible options (CernVM-FS, Onedata and download).
reference_data: type: boolean description: Install Reference data default: true refdata_dir: type: string description: path to store galaxy reference data default: /refdata refdata_repository_name: type: string description: Onedata space name, CernVM-FS repository name or subdirectory downaload name default: 'elixir-italy.galaxy.refdata' refdata_provider_type: type: string description: Select Reference data provider type (Onedata, CernVM-FS or download) default: 'onedata' refdata_provider: type: string description: Oneprovider for reference data default: 'not_a_provider' refdata_token: type: string description: Access token for reference data default: 'not_a_token' refdata_cvmfs_server_url: type: string description: CernVM-FS server, replica or stratum-zero default: 'server_url' refdata_cvmfs_repository_name: type: string description: Reference data CernVM-FS repository name default: 'not_a_cvmfs_repository_name' refdata_cvmfs_key_file: type: string description: CernVM-FS public key default: 'not_a_key' refdata_cvmfs_proxy_url: type: string description: CernVM-FS proxy url default: 'DIRECT' refdata_cvmfs_proxy_port: type: integer description: CernVM-FS proxy port default: 80
Input parameters are passed to the corresponding ansible roles, through custom type call:
galaxy:
type: tosca.nodes.indigo.GalaxyPortalAndStorage
properties:
os_storage: { get_input: galaxy_storage_type }
token: { get_input: userdata_token }
provider: { get_input: userdata_provider }
space: { get_input: userdata_space }
admin_email: { get_input: admin_email }
admin_api_key: { get_input: admin_api_key }
version: { get_input: version }
instance_description: { get_input: instance_description }
instance_key_pub: { get_input: instance_key_pub }
export_dir: { get_input: export_dir }
requirements:
- lrms: local_lrms
galaxy_tools:
type: tosca.nodes.indigo.GalaxyShedTool
properties:
flavor: { get_input: flavor }
admin_api_key: { get_input: admin_api_key }
requirements:
- host: galaxy
galaxy_refdata:
type: tosca.nodes.indigo.GalaxyReferenceData
properties:
reference_data: { get_input: reference_data }
refdata_dir: { get_input: refdata_dir }
flavor: { get_input: flavor }
refdata_repository_name: { get_input: refdata_repository_name }
refdata_provider_type: { get_input: refdata_provider_type }
refdata_provider: { get_input: refdata_provider }
refdata_token: { get_input: refdata_token }
refdata_cvmfs_server_url: { get_input: refdata_cvmfs_server_url }
refdata_cvmfs_repository_name: { get_input: refdata_cvmfs_repository_name }
refdata_cvmfs_key_file: { get_input: refdata_cvmfs_key_file }
refdata_cvmfs_proxy_url: { get_input: refdata_cvmfs_proxy_url }
refdata_cvmfs_proxy_port: { get_input: refdata_cvmfs_proxy_port }
requirements:
- host: galaxy
- dependency: galaxy_tools
Note
Note that Reference data custom type needs Galaxy installed to the ost host: galaxy
, but depends on galaxy tools dependency: galaxy_tools
since it has to check installed and missing tools.
Finally we have virtual hardware customization:
host:
properties:
num_cpus: { get_input: number_cpus }
mem_size: { get_input: memory_size }
Image selection:
os:
properties:
type: linux
distribution: centos
version: 7.2
image: indigodatacloudapps/galaxy
And Storage configuration, which takes the export_dir
input for the mount point and storage_size
input allowing for storage size customization.
- local_storage:
# capability is provided by Compute Node Type
node: my_block_storage
capability: tosca.capabilities.Attachment
relationship:
type: tosca.relationships.AttachesTo
properties:
location: { get_input: export_dir }
device: hdb
my_block_storage:
type: tosca.nodes.BlockStorage
properties:
size: { get_input: storage_size }