tosca_definitions_version: tosca_simple_yaml_1_0 imports: - indigo_custom_types: https://raw.githubusercontent.com/indigo-dc/tosca-types/v3.0.1/custom_types.yaml description: > Deploy Galaxy on a single Virtual Machine installing it from scratch (SLOW). The basic configuration includes CentOS 7, the selected Galaxy flavour, companion software and reference data. Configure, click on the "Submit" button, wait for the confirmation e-mail(s) and log in to your new Galaxy instance. If after some hours you do not receive any e-mail please be sure to check your SPAM BOX. topology_template: inputs: instance_flavor: type: string description: instance flavor (num_cpu, memory, disk) default: small storage_size: type: string description: storage memory required for the instance default: 10 GB 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: /export storage_encryption: type: boolean description: Enable storage encryption using Vault to store secrets and LUKS to encrypt default: False required: true vault_url: type: string description: Hashicorp Vault server url default: changeit required: false vault_wrapping_token: type: string description: Vault Wrapping token to write secret default: not_a_wrapping_token required: false vault_secret_path: type: string description: Vault path to store secret default: "subject/depuuid" required: false vault_secret_key: type: string description: Vault secret key name default: secret required: false flavor: type: string description: Galaxy flavor for tools installation default: "galaxy-no-tools" reference_data: type: boolean description: Install Reference data default: true refdata_cvmfs_configuration: type: string description: Configure cvmfs or load preconfigured repository default: 'cvmfs_preconfigured' refdata_cvmfs_repository_name: type: string description: CernVM-FS repository name default: 'elixir-italy.galaxy.refdata' refdata_cvmfs_server_url: type: string description: CernVM-FS server, replica or stratum-zero default: '90.147.102.186' refdata_cvmfs_key_file: type: string description: CernVM-FS public key default: 'elixir-italy.galaxy.refdata.pub' 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 refdata_dir: type: string description: path to store galaxy reference data default: /cvmfs node_templates: galaxy: type: tosca.nodes.indigo.GalaxyPortalAndStorage properties: storage_encryption: { get_input: storage_encryption } vault_url: { get_input: vault_url } vault_wrapping_token: { get_input: vault_wrapping_token } vault_secret_path: { get_input: vault_secret_path } vault_secret_key: { get_input: vault_secret_key } 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 } version: { get_input: version } requirements: - host: galaxy galaxy_refdata: type: tosca.nodes.indigo.GalaxyReferenceData properties: reference_data: { get_input: reference_data } refdata_cvmfs_configuration: { get_input: refdata_cvmfs_configuration } refdata_cvmfs_repository_name: { get_input: refdata_cvmfs_repository_name } refdata_cvmfs_server_url: { get_input: refdata_cvmfs_server_url } 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 } refdata_dir: { get_input: refdata_dir } flavor: { get_input: flavor } requirements: - host: galaxy - dependency: galaxy_tools # type to describe a Galaxy not using any LRMS but using the local system local_lrms: type: tosca.nodes.indigo.LRMS.FrontEnd.Local requirements: - host: galaxy_server galaxy_server: type: tosca.nodes.indigo.Compute capabilities: endpoint: properties: network_name: PUBLIC private_ip: false ports: galaxyctl_api_port: protocol: tcp source: 5001 luks_api_port: protocol: tcp source: 5000 http_port: protocol: tcp source: 80 ftp_port: protocol: tcp source: 21 ftp_passive: protocol: tcp source_range: [ 30000, 30009 ] # Host container properties host: properties: instance_type: { get_input: instance_flavor } # Guest Operating System properties os: properties: image: centos-7-vmi requirements: # contextually this can only be a relationship type - 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 } outputs: endpoint: value: { concat: [ 'http://', get_attribute: [ galaxy_server, public_address, 0 ], '/galaxy' ] } node_ip: value: { get_attribute: [ galaxy_server, public_address, 0 ] }