/
galaxy_docker.yaml
170 lines (156 loc) · 5.46 KB
/
galaxy_docker.yaml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
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: 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 AAAAB3NzaC1yc2EAAAADAQABAAABAQDy787GZIVdHW7QV+Wu2q9q5k5CiTOq04ENioVig88IIVGNqi8qiX+3fhZx/w2hhlz6AePrYu8CfVPplCRdSMjP46av53V1M7r0+yqJvuk1PC2f/rSoEL95TvaeiV28+5Wy4MC58UvYuewuhIHcbfPiXHf3NEE3scd38GXCYKLhAP28mUQ950Ar4SoWv4irv21maJwkwqn5AYXcy1yrbBZtaTbQELVPa/E6X9j+k29bn32ITmmtKBA3ne/QlFRaaYI3XggvMXhhSSIYsJUdlSOjUTriB2DraHsxMGfOPjmPXkjvrXp9MfOzjMg10fb7K2Mda8u/ujK/dvx3BnhlSIpn marco@marco-Latitude-3440'
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: "galaxy-no-tools"
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 }
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
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 ] }