Skip to content

Instantly share code, notes, and snippets.

@pmandreoli
Created July 20, 2019 08:39
Show Gist options
  • Select an option

  • Save pmandreoli/58433da9ee898b3f17563ebb6f0dd8f5 to your computer and use it in GitHub Desktop.

Select an option

Save pmandreoli/58433da9ee898b3f17563ebb6f0dd8f5 to your computer and use it in GitHub Desktop.
tosca_definitions_version: tosca_simple_yaml_1_0
imports:
- indigo_custom_types: https://raw.githubusercontent.com/mtangaro/tosca-types/master/custom_types.yaml
description: >
TOSCA test for launching a Galaxy Server also configuring the bowtie2
tool using Galaxy Tool Shed.
topology_template:
inputs:
instance_flavor:
type: string
description: instance flavor (num_cpu, memory, disk)
default: m1.medium
storage_size:
type: string
description: storage memory required for the instance
default: 50 GB
admin_email:
type: string
description: email of the admin user
default: ma.tangaro@gmail.com
admin_api_key:
type: string
description: key to access the API with admin role
default: GALAXY_ADMIN_API_KEY
user:
type: string
description: username to launch the galaxy daemon
default: galaxy
version:
type: string
description: galaxy version to install
default: release_18.05
instance_description:
type: string
description: galaxy instance description
default: "INDIGO Galaxy test"
instance_key_pub:
type: string
description: galaxy instance ssh public key
default: 'ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDrm8mxOuqwP5XTHf685V9rqRXXg41F4isJvRr4h3MPDs8PgqZBzzjxEFyGpJ/Rgg4ACesGBZy+CbVVGtOveltKvgkpzyHIrh+vMay9z82eK2LMZEfmEPgw1BHdRifPZ1Qb7Zmj1nRk1EMWoNvbBxEc3/MSorWb+2SVMs+42EZ7QxavBmsU7zNU0Nd0e1xiqJ00VDWMnXullp/ieR9M4/XsSlS3oqxsxkAbY3eQYVMsnh64oiRw3lpYBkPyNtC/VSL5Cqig3CMaiK9AW8FjP1GwwqoMjL0H0Mkr0fY8eSSQ9Tcy5AqyaiPn7tmG0fSeNOFwxGkTzrujqlCiOkRSM1Yj marco@MacBook-Pro-di-Marco.local'
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: "https://cloud-90-147-75-223.cloud.ba.infn.it:8200"
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
iam_client_id:
type: string
description:
default: iam_client_id_for_luks_client
required: false
iam_client_secret:
type: string
description:
default: iam_secret_for_luks_client
required: false
flavor:
type: string
description: Galaxy flavor for tools installation
default: "bgruening/galaxy-stable"
reference_data:
type: boolean
description: Install Reference data
default: true
node_templates:
galaxy:
type: tosca.nodes.indigo.GalaxyPortalDocker
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 }
iam_client_id: { get_input: iam_client_id }
iam_client_secret: { get_input: iam_client_id }
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 }
flavor: { get_input: flavor }
requirements:
- lrms: local_lrms
# 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:
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: ost://cloud.recas.ba.infn.it/60dfe164-c9f6-4ed0-a63b-c03eea75a552(image centos RECAS)
image: ost://keystone.cloud.garrservices.it/426bee0c-8a7a-4db8-a248-f151891de4a9
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 ] }
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment