Fuel plugin for Murano with MOS integration
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

deployment_tasks.yaml 11KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363
  1. - id: primary-murano-node
  2. type: group
  3. role: [primary-murano-node]
  4. tasks: &common_tasks
  5. - hiera
  6. - setup_repositories
  7. - fuel_pkgs
  8. - globals
  9. - tools
  10. - logging
  11. - hiera_default_route
  12. - netconfig
  13. - hosts
  14. required_for: [deploy_end]
  15. requires: [primary-controller]
  16. parameters:
  17. strategy:
  18. type: one_by_one
  19. - id: murano-node
  20. type: group
  21. role: [murano-node]
  22. tasks: *common_tasks
  23. required_for: [deploy_end]
  24. requires: [primary-murano-node]
  25. parameters:
  26. strategy:
  27. type: parallel
  28. - id: hiera-murano-override
  29. version: 2.1.0
  30. type: puppet
  31. groups: ['primary-controller', 'controller', 'primary-murano-node', 'murano-node']
  32. required_for: [logging]
  33. requires: [globals]
  34. parameters:
  35. puppet_manifest: manifests/murano_hiera_override.pp
  36. puppet_modules: /etc/puppet/modules
  37. timeout: 120
  38. # reexecute_on is needed for scale-down operations
  39. reexecute_on:
  40. - deploy_changes
  41. - id: pin-murano-plugin-repo
  42. version: 2.1.0
  43. type: puppet
  44. groups: ['primary-controller', 'controller', 'primary-murano-node', 'murano-node' ]
  45. condition:
  46. yaql_exp: >
  47. $.get('detach-murano', {}).get('metadata', {}).get('enabled', false) and
  48. changedAny($.get('detach-murano').metadata.plugin_version)
  49. required_for: [hiera-murano-override]
  50. requires: [globals]
  51. parameters:
  52. puppet_manifest: manifests/pin_murano_plugin_repo.pp
  53. puppet_modules: /etc/puppet/modules
  54. timeout: 120
  55. - id: murano-keystone-endpoints
  56. version: 2.1.0
  57. type: puppet
  58. groups: ['primary-controller']
  59. condition:
  60. yaql_exp: >
  61. $.get('detach-murano', {}).get('metadata', {}).get('enabled', false) and
  62. changedAny($.get('detach-murano'), $.network_metadata.vips,
  63. $.get('region', 'RegionOne'), $.public_ssl, $.get('use_ssl'))
  64. required_for: [murano-controller-end]
  65. requires: [primary-keystone, keystone]
  66. cross-depends:
  67. - name: keystone
  68. parameters:
  69. puppet_manifest: manifests/murano_keystone.pp
  70. puppet_modules: modules:/etc/puppet/modules
  71. timeout: 1800
  72. - id: murano-database
  73. version: 2.1.0
  74. type: puppet
  75. groups: ['primary-controller']
  76. condition:
  77. yaql_exp: >
  78. $.get('detach-murano', {}).get('metadata', {}).get('enabled', false) and
  79. changedAny($.network_metadata.nodes.values().where($.fqdn = new($.fqdn)),
  80. $.get('detach-murano').metadata.plugin_version,
  81. $.get('detach-murano').yaml_additional_config, $.mysql,
  82. $.network_metadata.vips, $.get('database_vip'))
  83. cross-depends:
  84. - name: /(primary-)?database/
  85. required_for: [murano-controller-end]
  86. requires: [primary-database, database]
  87. parameters:
  88. puppet_manifest: manifests/murano_db.pp
  89. puppet_modules: modules:/etc/puppet/modules
  90. timeout: 1800
  91. - id: murano-dashboard
  92. version: 2.1.0
  93. type: puppet
  94. groups: ['primary-controller','controller']
  95. required_for: [murano-controller-end]
  96. requires: [horizon, glance]
  97. condition:
  98. yaql_exp: >
  99. $.get('detach-murano', {}).get('metadata', {}).get('enabled', false) and
  100. changedAny($.get('detach-murano').murano_glance_artifacts,
  101. $.get('detach-murano').murano_repo_url,
  102. $.get('detach-murano').metadata.plugin_version, $.network_scheme,
  103. $.horizon, $.get('memcached_addresses'),
  104. $.get('memcache_roles'),
  105. $.network_metadata.nodes.values().where(
  106. ('controller' in $.node_roles) or
  107. ('primary-controller' in $.node_roles)),
  108. $.storage, $.neutron_advanced_configuration, $.public_ssl,
  109. $.get('horizon_use_ssl'), $.get('external_lb'), $.get('use_ssl'),
  110. $.nova_quota, $.debug, $.get('verbose'), $.get('apache_ports'))
  111. parameters:
  112. puppet_manifest: manifests/murano_dashboard.pp
  113. puppet_modules: modules:/etc/puppet/modules
  114. timeout: 1800
  115. - id: murano-controller-end
  116. version: 2.1.0
  117. type: skipped
  118. groups: ['primary-controller','controller']
  119. required_for: [deploy_end]
  120. requires: []
  121. - id: murano-update-openrc
  122. version: 2.1.0
  123. type: puppet
  124. groups: ['primary-controller', 'controller']
  125. condition:
  126. yaql_exp: >
  127. $.get('detach-murano', {}).get('metadata', {}).get('enabled', false) and
  128. changedAny($.get('detach-murano').murano_glance_artifacts,
  129. $.get('detach-murano').murano_repo_url)
  130. required_for: [murano-controller-end]
  131. requires: [primary-keystone, keystone]
  132. cross-depends:
  133. - name: keystone
  134. parameters:
  135. puppet_manifest: manifests/update_openrc.pp
  136. puppet_modules: /etc/puppet/modules
  137. timeout: 120
  138. - id: murano-haproxy
  139. version: 2.1.0
  140. type: puppet
  141. groups: ['primary-controller', 'controller']
  142. required_for: [murano-controller-end]
  143. requires: [deploy_start, primary-cluster-haproxy, cluster-haproxy]
  144. condition:
  145. yaql_exp: >
  146. $.get('detach-murano', {}).get('metadata', {}).get('enabled', false) and
  147. (changedAny($.get('detach-murano'),
  148. $.public_ssl, $.get('use_ssl'), $.get('external_lb'),
  149. $.network_metadata.nodes.values().where(
  150. ('murano-node' in $.node_roles) or
  151. ('primary-murano-node' in $.node_roles)),
  152. $.network_metadata.vips) or
  153. (not $.network_metadata.nodes.values().any(
  154. ('murano-node' in $.node_roles) or
  155. ('primary-murano-node' in $.node_roles)) and
  156. changedAny($.network_metadata.nodes.values().where(
  157. ('controller' in $.node_roles) or
  158. ('primary-controller' in $.node_roles)))))
  159. cross-depends:
  160. - name: /(primary-)?cluster-haproxy/
  161. role: self
  162. parameters:
  163. puppet_manifest: manifests/murano_haproxy.pp
  164. puppet_modules: /etc/puppet/modules
  165. timeout: 300
  166. - id: murano-disable-old-services
  167. version: 2.1.0
  168. type: puppet
  169. groups: ['primary-controller', 'controller']
  170. condition:
  171. yaql_exp: >
  172. $.get('detach-murano', {}).get('metadata', {}).get('enabled', false) and
  173. $.network_metadata.nodes.values().any('primary-murano-node' in $.node_roles)
  174. required_for: [murano-controller-end]
  175. parameters:
  176. puppet_manifest: manifests/murano_disable_old.pp
  177. puppet_modules: /etc/puppet/modules
  178. timeout: 900
  179. - id: murano-logging
  180. version: 2.1.0
  181. type: puppet
  182. groups: ['primary-controller', 'controller', 'primary-murano-node', 'murano-node']
  183. condition:
  184. yaql_exp: >
  185. $.get('detach-murano', {}).get('metadata', {}).get('enabled', false) and
  186. ($.roles.any($.matches('(primary-)?murano-node')) or
  187. not ($.murano.enabled or $.roles.any($.matches('(primary-)?murano-node'))))
  188. required_for: [murano-services]
  189. requires: [logging]
  190. parameters:
  191. puppet_manifest: manifests/murano_logging.pp
  192. puppet_modules: /etc/puppet/modules
  193. timeout: 1800
  194. - id: murano-services
  195. version: 2.1.0
  196. type: puppet
  197. groups: ['primary-controller', 'controller', 'primary-murano-node', 'murano-node']
  198. condition:
  199. yaql_exp: >
  200. $.get('detach-murano', {}).get('metadata', {}).get('enabled', false) and
  201. ($.roles.any($.matches('(primary-)?murano-node')) or
  202. not $.network_metadata.nodes.values().any(
  203. ('murano-node' in $.node_roles) or
  204. ('primary-murano-node' in $.node_roles))) and
  205. changedAny($.get('detach-murano'), $.rabbit, $.ceilometer,
  206. $.quantum_settings, $.network_metadata.vips, $.get('database_vip'),
  207. $.get('region', 'RegionOne'), $.quantum, $.network_metadata,
  208. $.get('syslog_log_facility_murano'), $.debug,
  209. $.get('default_log_levels'), $.get('use_syslog'),
  210. $.get('use_stderr'), $.get('rabbit_ha_queues'), $.get('amqp_port'),
  211. $.get('amqp_hosts'), $.external_dns, $.public_ssl, $.get('use_ssl'),
  212. $.get('kombu_compression'), $.get('keystone_endpoint'))
  213. required_for: [deploy_end]
  214. requires: [hosts]
  215. cross-depends:
  216. - name: murano-controller-end
  217. parameters:
  218. puppet_manifest: manifests/murano.pp
  219. puppet_modules: modules:/etc/puppet/modules
  220. timeout: 3600
  221. - id: murano-node-rabbitmq
  222. version: 2.1.0
  223. type: puppet
  224. groups: ['primary-controller', 'controller', 'primary-murano-node', 'murano-node']
  225. condition:
  226. yaql_exp: >
  227. $.get('detach-murano', {}).get('metadata', {}).get('enabled', false) and
  228. ($.roles.any($.matches('(primary-)?murano-node')) or
  229. not $.network_metadata.nodes.values().any(
  230. ('murano-node' in $.node_roles) or
  231. ('primary-murano-node' in $.node_roles))) and
  232. changedAny($.get('detach-murano'), $.rabbit)
  233. required_for: [murano-services]
  234. requires: [hosts]
  235. parameters:
  236. puppet_manifest: manifests/murano_rabbitmq.pp
  237. puppet_modules: modules:/etc/puppet/modules
  238. timeout: 1800
  239. - id: murano-node-cfapi
  240. version: 2.1.0
  241. type: puppet
  242. groups: ['primary-controller', 'controller', 'primary-murano-node', 'murano-node']
  243. condition:
  244. yaql_exp: >
  245. $.get('detach-murano', {}).get('murano_cfapi', false) and
  246. ($.roles.any($.matches('(primary-)?murano-node')) or
  247. not $.network_metadata.nodes.values().any(
  248. ('murano-node' in $.node_roles) or
  249. ('primary-murano-node' in $.node_roles))) and
  250. changedAny($.public_ssl,
  251. $.network_metadata.vips, $.get('use_ssl'), $.network_metadata)
  252. required_for: [deploy_end]
  253. requires: [murano-services]
  254. parameters:
  255. puppet_manifest: manifests/murano_cfapi.pp
  256. puppet_modules: modules:/etc/puppet/modules
  257. timeout: 3600
  258. # Murano ssl tasks
  259. - id: murano-ssl-keys-saving
  260. type: puppet
  261. version: 2.1.0
  262. groups: ['primary-murano-node', 'murano-node']
  263. requires: [netconfig]
  264. condition:
  265. yaql_exp: >
  266. (($.public_ssl.horizon or $.public_ssl.services) and
  267. $.public_ssl.cert_source = 'user_uploaded' and
  268. changed($.public_ssl.cert_data)) or
  269. (changed($.get('use_ssl')) and len($.get('use_ssl', [])) > 0)
  270. required_for: [deploy_end]
  271. parameters:
  272. puppet_manifest: /etc/puppet/modules/osnailyfacter/modular/ssl/ssl_keys_saving.pp
  273. puppet_modules: /etc/puppet/modules
  274. timeout: 120
  275. - id: murano-ssl-add-trust-chain
  276. type: puppet
  277. version: 2.1.0
  278. groups: ['primary-murano-node', 'murano-node']
  279. requires: [murano-ssl-keys-saving]
  280. condition:
  281. yaql_exp: &public_ssl_enabled >
  282. (changed($.public_ssl) and
  283. ($.public_ssl.horizon or $.public_ssl.services)) or
  284. (changed($.get('use_ssl')) and (len($.get('use_ssl', [])) > 0))
  285. required_for: [hosts]
  286. parameters:
  287. puppet_manifest: /etc/puppet/modules/osnailyfacter/modular/ssl/ssl_add_trust_chain.pp
  288. puppet_modules: /etc/puppet/modules
  289. timeout: 120
  290. - id: murano-ssl-dns-setup
  291. type: puppet
  292. version: 2.1.0
  293. groups: ['primary-murano-node', 'murano-node']
  294. requires: [murano-ssl-add-trust-chain]
  295. condition:
  296. yaql_exp: *public_ssl_enabled
  297. required_for: [hosts]
  298. parameters:
  299. puppet_manifest: /etc/puppet/modules/osnailyfacter/modular/ssl/ssl_dns_setup.pp
  300. puppet_modules: /etc/puppet/modules
  301. timeout: 120
  302. #####
  303. - id: import_murano_package
  304. type: puppet
  305. version: 2.1.0
  306. groups: ['primary-murano-node', 'primary-controller']
  307. condition:
  308. yaql_exp: >
  309. $.get('detach-murano', {}).get('metadata', {}).get('enabled', false) and
  310. ($.roles.any($.matches('primary-murano-node')) or
  311. not $.network_metadata.nodes.values().any(
  312. ('primary-murano-node' in $.node_roles))) and
  313. changedAny($.get('detach-murano').murano_glance_artifacts)
  314. required_for: [post_deployment_end]
  315. cross-depends:
  316. - name: upload_cirros
  317. parameters:
  318. puppet_manifest: manifests/import_murano_package.pp
  319. puppet_modules: modules:/etc/puppet/modules
  320. timeout: 180
  321. # skip base murano tasks
  322. - id: murano
  323. type: skipped
  324. - id: murano-db
  325. type: skipped
  326. - id: murano-keystone
  327. type: skipped
  328. - id: murano-rabbitmq
  329. type: skipped
  330. - id: murano-cfapi
  331. type: skipped
  332. - id: murano-cfapi-keystone
  333. type: skipped
  334. - id: openstack-haproxy-murano
  335. type: skipped
  336. - id: upload_murano_package
  337. type: skipped