heat_stack.yaml.j2 22 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749
  1. heat_template_version: 2016-10-14
  2. description: OpenShift cluster
  3. parameters:
  4. outputs:
  5. etcd_names:
  6. description: Name of the etcds
  7. value: { get_attr: [ etcd, name ] }
  8. etcd_ips:
  9. description: IPs of the etcds
  10. value: { get_attr: [ etcd, private_ip ] }
  11. etcd_floating_ips:
  12. description: Floating IPs of the etcds
  13. value: { get_attr: [ etcd, floating_ip ] }
  14. master_names:
  15. description: Name of the masters
  16. value: { get_attr: [ masters, name ] }
  17. master_ips:
  18. description: IPs of the masters
  19. value: { get_attr: [ masters, private_ip ] }
  20. master_floating_ips:
  21. description: Floating IPs of the masters
  22. value: { get_attr: [ masters, floating_ip ] }
  23. node_names:
  24. description: Name of the nodes
  25. value: { get_attr: [ compute_nodes, name ] }
  26. node_ips:
  27. description: IPs of the nodes
  28. value: { get_attr: [ compute_nodes, private_ip ] }
  29. node_floating_ips:
  30. description: Floating IPs of the nodes
  31. value: { get_attr: [ compute_nodes, floating_ip ] }
  32. infra_names:
  33. description: Name of the nodes
  34. value: { get_attr: [ infra_nodes, name ] }
  35. infra_ips:
  36. description: IPs of the nodes
  37. value: { get_attr: [ infra_nodes, private_ip ] }
  38. infra_floating_ips:
  39. description: Floating IPs of the nodes
  40. value: { get_attr: [ infra_nodes, floating_ip ] }
  41. dns_name:
  42. description: Name of the DNS
  43. value:
  44. get_attr:
  45. - dns
  46. - name
  47. dns_floating_ips:
  48. description: Floating IPs of the DNS
  49. value: { get_attr: [ dns, floating_ip ] }
  50. dns_private_ips:
  51. description: Private IPs of the DNS
  52. value: { get_attr: [ dns, private_ip ] }
  53. resources:
  54. net:
  55. type: OS::Neutron::Net
  56. properties:
  57. name:
  58. str_replace:
  59. template: openshift-ansible-cluster_id-net
  60. params:
  61. cluster_id: {{ stack_name }}
  62. subnet:
  63. type: OS::Neutron::Subnet
  64. properties:
  65. name:
  66. str_replace:
  67. template: openshift-ansible-cluster_id-subnet
  68. params:
  69. cluster_id: {{ stack_name }}
  70. network: { get_resource: net }
  71. cidr:
  72. str_replace:
  73. template: subnet_24_prefix.0/24
  74. params:
  75. subnet_24_prefix: {{ subnet_prefix }}
  76. allocation_pools:
  77. - start:
  78. str_replace:
  79. template: subnet_24_prefix.3
  80. params:
  81. subnet_24_prefix: {{ subnet_prefix }}
  82. end:
  83. str_replace:
  84. template: subnet_24_prefix.254
  85. params:
  86. subnet_24_prefix: {{ subnet_prefix }}
  87. dns_nameservers:
  88. {% for nameserver in dns_nameservers %}
  89. - {{ nameserver }}
  90. {% endfor %}
  91. router:
  92. type: OS::Neutron::Router
  93. properties:
  94. name:
  95. str_replace:
  96. template: openshift-ansible-cluster_id-router
  97. params:
  98. cluster_id: {{ stack_name }}
  99. external_gateway_info:
  100. network: {{ external_network }}
  101. interface:
  102. type: OS::Neutron::RouterInterface
  103. properties:
  104. router_id: { get_resource: router }
  105. subnet_id: { get_resource: subnet }
  106. # keypair:
  107. # type: OS::Nova::KeyPair
  108. # properties:
  109. # name:
  110. # str_replace:
  111. # template: openshift-ansible-cluster_id-keypair
  112. # params:
  113. # cluster_id: {{ stack_name }}
  114. # public_key: {{ ssh_public_key }}
  115. common-secgrp:
  116. type: OS::Neutron::SecurityGroup
  117. properties:
  118. name:
  119. str_replace:
  120. template: openshift-ansible-cluster_id-common-secgrp
  121. params:
  122. cluster_id: {{ stack_name }}
  123. description:
  124. str_replace:
  125. template: Basic ssh/icmp security group for cluster_id OpenShift cluster
  126. params:
  127. cluster_id: {{ stack_name }}
  128. rules:
  129. - direction: ingress
  130. protocol: tcp
  131. port_range_min: 22
  132. port_range_max: 22
  133. remote_ip_prefix: {{ ssh_ingress_cidr }}
  134. {% if use_bastion|bool %}
  135. - direction: ingress
  136. protocol: tcp
  137. port_range_min: 22
  138. port_range_max: 22
  139. remote_ip_prefix: {{ bastion_ingress_cidr }}
  140. {% endif %}
  141. - direction: ingress
  142. protocol: icmp
  143. remote_ip_prefix: {{ ssh_ingress_cidr }}
  144. {% if openstack_flat_secgrp|default(False)|bool %}
  145. flat-secgrp:
  146. type: OS::Neutron::SecurityGroup
  147. properties:
  148. name:
  149. str_replace:
  150. template: openshift-ansible-cluster_id-flat-secgrp
  151. params:
  152. cluster_id: {{ stack_name }}
  153. description:
  154. str_replace:
  155. template: Security group for cluster_id OpenShift cluster
  156. params:
  157. cluster_id: {{ stack_name }}
  158. rules:
  159. - direction: ingress
  160. protocol: tcp
  161. port_range_min: 4001
  162. port_range_max: 4001
  163. - direction: ingress
  164. protocol: tcp
  165. port_range_min: 8443
  166. port_range_max: 8444
  167. - direction: ingress
  168. protocol: tcp
  169. port_range_min: 8053
  170. port_range_max: 8053
  171. - direction: ingress
  172. protocol: udp
  173. port_range_min: 8053
  174. port_range_max: 8053
  175. - direction: ingress
  176. protocol: tcp
  177. port_range_min: 24224
  178. port_range_max: 24224
  179. - direction: ingress
  180. protocol: udp
  181. port_range_min: 24224
  182. port_range_max: 24224
  183. - direction: ingress
  184. protocol: tcp
  185. port_range_min: 2224
  186. port_range_max: 2224
  187. - direction: ingress
  188. protocol: udp
  189. port_range_min: 5404
  190. port_range_max: 5405
  191. - direction: ingress
  192. protocol: tcp
  193. port_range_min: 9090
  194. port_range_max: 9090
  195. - direction: ingress
  196. protocol: tcp
  197. port_range_min: 2379
  198. port_range_max: 2380
  199. remote_mode: remote_group_id
  200. - direction: ingress
  201. protocol: tcp
  202. port_range_min: 10250
  203. port_range_max: 10250
  204. remote_mode: remote_group_id
  205. - direction: ingress
  206. protocol: udp
  207. port_range_min: 10250
  208. port_range_max: 10250
  209. remote_mode: remote_group_id
  210. - direction: ingress
  211. protocol: tcp
  212. port_range_min: 10255
  213. port_range_max: 10255
  214. remote_mode: remote_group_id
  215. - direction: ingress
  216. protocol: udp
  217. port_range_min: 10255
  218. port_range_max: 10255
  219. remote_mode: remote_group_id
  220. - direction: ingress
  221. protocol: udp
  222. port_range_min: 4789
  223. port_range_max: 4789
  224. remote_mode: remote_group_id
  225. - direction: ingress
  226. protocol: tcp
  227. port_range_min: 30000
  228. port_range_max: 32767
  229. remote_ip_prefix: {{ node_ingress_cidr }}
  230. - direction: ingress
  231. protocol: tcp
  232. port_range_min: 30000
  233. port_range_max: 32767
  234. remote_ip_prefix: "{{ openstack_subnet_prefix }}.0/24"
  235. {% else %}
  236. master-secgrp:
  237. type: OS::Neutron::SecurityGroup
  238. properties:
  239. name:
  240. str_replace:
  241. template: openshift-ansible-cluster_id-master-secgrp
  242. params:
  243. cluster_id: {{ stack_name }}
  244. description:
  245. str_replace:
  246. template: Security group for cluster_id OpenShift cluster master
  247. params:
  248. cluster_id: {{ stack_name }}
  249. rules:
  250. - direction: ingress
  251. protocol: tcp
  252. port_range_min: 4001
  253. port_range_max: 4001
  254. - direction: ingress
  255. protocol: tcp
  256. port_range_min: 8443
  257. port_range_max: 8444
  258. - direction: ingress
  259. protocol: tcp
  260. port_range_min: 8053
  261. port_range_max: 8053
  262. - direction: ingress
  263. protocol: udp
  264. port_range_min: 8053
  265. port_range_max: 8053
  266. - direction: ingress
  267. protocol: tcp
  268. port_range_min: 24224
  269. port_range_max: 24224
  270. - direction: ingress
  271. protocol: udp
  272. port_range_min: 24224
  273. port_range_max: 24224
  274. - direction: ingress
  275. protocol: tcp
  276. port_range_min: 2224
  277. port_range_max: 2224
  278. - direction: ingress
  279. protocol: udp
  280. port_range_min: 5404
  281. port_range_max: 5405
  282. - direction: ingress
  283. protocol: tcp
  284. port_range_min: 9090
  285. port_range_max: 9090
  286. etcd-secgrp:
  287. type: OS::Neutron::SecurityGroup
  288. properties:
  289. name:
  290. str_replace:
  291. template: openshift-ansible-cluster_id-etcd-secgrp
  292. params:
  293. cluster_id: {{ stack_name }}
  294. description:
  295. str_replace:
  296. template: Security group for cluster_id etcd cluster
  297. params:
  298. cluster_id: {{ stack_name }}
  299. rules:
  300. - direction: ingress
  301. protocol: tcp
  302. port_range_min: 2379
  303. port_range_max: 2379
  304. remote_mode: remote_group_id
  305. remote_group_id: { get_resource: master-secgrp }
  306. - direction: ingress
  307. protocol: tcp
  308. port_range_min: 2380
  309. port_range_max: 2380
  310. remote_mode: remote_group_id
  311. node-secgrp:
  312. type: OS::Neutron::SecurityGroup
  313. properties:
  314. name:
  315. str_replace:
  316. template: openshift-ansible-cluster_id-node-secgrp
  317. params:
  318. cluster_id: {{ stack_name }}
  319. description:
  320. str_replace:
  321. template: Security group for cluster_id OpenShift cluster nodes
  322. params:
  323. cluster_id: {{ stack_name }}
  324. rules:
  325. - direction: ingress
  326. protocol: tcp
  327. port_range_min: 10250
  328. port_range_max: 10250
  329. remote_mode: remote_group_id
  330. - direction: ingress
  331. protocol: tcp
  332. port_range_min: 10255
  333. port_range_max: 10255
  334. remote_mode: remote_group_id
  335. - direction: ingress
  336. protocol: udp
  337. port_range_min: 10255
  338. port_range_max: 10255
  339. remote_mode: remote_group_id
  340. - direction: ingress
  341. protocol: udp
  342. port_range_min: 4789
  343. port_range_max: 4789
  344. remote_mode: remote_group_id
  345. - direction: ingress
  346. protocol: tcp
  347. port_range_min: 30000
  348. port_range_max: 32767
  349. remote_ip_prefix: {{ node_ingress_cidr }}
  350. - direction: ingress
  351. protocol: tcp
  352. port_range_min: 30000
  353. port_range_max: 32767
  354. remote_ip_prefix: "{{ openstack_subnet_prefix }}.0/24"
  355. {% endif %}
  356. infra-secgrp:
  357. type: OS::Neutron::SecurityGroup
  358. properties:
  359. name:
  360. str_replace:
  361. template: openshift-ansible-cluster_id-infra-secgrp
  362. params:
  363. cluster_id: {{ stack_name }}
  364. description:
  365. str_replace:
  366. template: Security group for cluster_id OpenShift infrastructure cluster nodes
  367. params:
  368. cluster_id: {{ stack_name }}
  369. rules:
  370. - direction: ingress
  371. protocol: tcp
  372. port_range_min: 80
  373. port_range_max: 80
  374. - direction: ingress
  375. protocol: tcp
  376. port_range_min: 443
  377. port_range_max: 443
  378. dns-secgrp:
  379. type: OS::Neutron::SecurityGroup
  380. properties:
  381. name:
  382. str_replace:
  383. template: openshift-ansible-cluster_id-dns-secgrp
  384. params:
  385. cluster_id: {{ stack_name }}
  386. description:
  387. str_replace:
  388. template: Security group for cluster_id cluster DNS
  389. params:
  390. cluster_id: {{ stack_name }}
  391. rules:
  392. - direction: ingress
  393. protocol: udp
  394. port_range_min: 53
  395. port_range_max: 53
  396. remote_ip_prefix: {{ node_ingress_cidr }}
  397. - direction: ingress
  398. protocol: udp
  399. port_range_min: 53
  400. port_range_max: 53
  401. remote_ip_prefix: "{{ openstack_subnet_prefix }}.0/24"
  402. - direction: ingress
  403. protocol: tcp
  404. port_range_min: 53
  405. port_range_max: 53
  406. remote_ip_prefix: {{ node_ingress_cidr }}
  407. - direction: ingress
  408. protocol: tcp
  409. port_range_min: 53
  410. port_range_max: 53
  411. remote_ip_prefix: "{{ openstack_subnet_prefix }}.0/24"
  412. {% if num_masters > 1 %}
  413. lb-secgrp:
  414. type: OS::Neutron::SecurityGroup
  415. properties:
  416. name: openshift-ansible-{{ stack_name }}-lb-secgrp
  417. description: Security group for {{ stack_name }} cluster Load Balancer
  418. rules:
  419. - direction: ingress
  420. protocol: tcp
  421. port_range_min: {{ openshift_master_api_port | default(8443) }}
  422. port_range_max: {{ openshift_master_api_port | default(8443) }}
  423. remote_ip_prefix: {{ lb_ingress_cidr }}
  424. {% if openshift_master_console_port is defined and openshift_master_console_port != openshift_master_api_port %}
  425. - direction: ingress
  426. protocol: tcp
  427. port_range_min: {{ openshift_master_console_port | default(8443) }}
  428. port_range_max: {{ openshift_master_console_port | default(8443) }}
  429. remote_ip_prefix: {{ lb_ingress_cidr }}
  430. {% endif %}
  431. {% endif %}
  432. etcd:
  433. type: OS::Heat::ResourceGroup
  434. properties:
  435. count: {{ num_etcd }}
  436. resource_def:
  437. {% if use_bastion|bool %}
  438. type: server_nofloating.yaml
  439. {% else %}
  440. type: server.yaml
  441. {% endif %}
  442. properties:
  443. name:
  444. str_replace:
  445. template: k8s_type-%index%.cluster_id
  446. params:
  447. cluster_id: {{ stack_name }}
  448. k8s_type: etcd
  449. cluster_env: {{ public_dns_domain }}
  450. cluster_id: {{ stack_name }}
  451. group:
  452. str_replace:
  453. template: k8s_type.cluster_id
  454. params:
  455. k8s_type: etcds
  456. cluster_id: {{ stack_name }}
  457. type: etcd
  458. image: {{ openstack_image }}
  459. flavor: {{ etcd_flavor }}
  460. key_name: {{ ssh_public_key }}
  461. net: { get_resource: net }
  462. subnet: { get_resource: subnet }
  463. secgrp:
  464. - { get_resource: {% if openstack_flat_secgrp|default(False)|bool %}flat-secgrp{% else %}etcd-secgrp{% endif %} }
  465. - { get_resource: common-secgrp }
  466. {% if not use_bastion|bool %}
  467. floating_network: {{ external_network }}
  468. {% endif %}
  469. net_name:
  470. str_replace:
  471. template: openshift-ansible-cluster_id-net
  472. params:
  473. cluster_id: {{ stack_name }}
  474. volume_size: {{ etcd_volume_size }}
  475. depends_on:
  476. - interface
  477. {% if num_masters > 1 %}
  478. loadbalancer:
  479. type: OS::Heat::ResourceGroup
  480. properties:
  481. count: 1
  482. resource_def:
  483. type: server.yaml
  484. properties:
  485. name:
  486. str_replace:
  487. template: k8s_type-%index%.cluster_id
  488. params:
  489. cluster_id: {{ stack_name }}
  490. k8s_type: lb
  491. cluster_env: {{ public_dns_domain }}
  492. cluster_id: {{ stack_name }}
  493. group:
  494. str_replace:
  495. template: k8s_type.cluster_id
  496. params:
  497. k8s_type: lb
  498. cluster_id: {{ stack_name }}
  499. type: lb
  500. image: {{ openstack_image }}
  501. flavor: {{ lb_flavor }}
  502. key_name: {{ ssh_public_key }}
  503. net: { get_resource: net }
  504. subnet: { get_resource: subnet }
  505. secgrp:
  506. - { get_resource: lb-secgrp }
  507. - { get_resource: common-secgrp }
  508. floating_network: {{ external_network }}
  509. net_name:
  510. str_replace:
  511. template: openshift-ansible-cluster_id-net
  512. params:
  513. cluster_id: {{ stack_name }}
  514. volume_size: 5
  515. depends_on:
  516. - interface
  517. {% endif %}
  518. masters:
  519. type: OS::Heat::ResourceGroup
  520. properties:
  521. count: {{ num_masters }}
  522. resource_def:
  523. {% if use_bastion|bool %}
  524. type: server_nofloating.yaml
  525. {% else %}
  526. type: server.yaml
  527. {% endif %}
  528. properties:
  529. name:
  530. str_replace:
  531. template: k8s_type-%index%.cluster_id
  532. params:
  533. cluster_id: {{ stack_name }}
  534. k8s_type: master
  535. cluster_env: {{ public_dns_domain }}
  536. cluster_id: {{ stack_name }}
  537. group:
  538. str_replace:
  539. template: k8s_type.cluster_id
  540. params:
  541. k8s_type: masters
  542. cluster_id: {{ stack_name }}
  543. type: master
  544. image: {{ openstack_image }}
  545. flavor: {{ master_flavor }}
  546. key_name: {{ ssh_public_key }}
  547. net: { get_resource: net }
  548. subnet: { get_resource: subnet }
  549. secgrp:
  550. {% if openstack_flat_secgrp|default(False)|bool %}
  551. - { get_resource: flat-secgrp }
  552. {% else %}
  553. - { get_resource: master-secgrp }
  554. - { get_resource: node-secgrp }
  555. {% if num_etcd == 0 %}
  556. - { get_resource: etcd-secgrp }
  557. {% endif %}
  558. {% endif %}
  559. - { get_resource: common-secgrp }
  560. {% if not use_bastion|bool %}
  561. floating_network: {{ external_network }}
  562. {% endif %}
  563. net_name:
  564. str_replace:
  565. template: openshift-ansible-cluster_id-net
  566. params:
  567. cluster_id: {{ stack_name }}
  568. volume_size: {{ master_volume_size }}
  569. depends_on:
  570. - interface
  571. compute_nodes:
  572. type: OS::Heat::ResourceGroup
  573. properties:
  574. count: {{ num_nodes }}
  575. removal_policies:
  576. - resource_list: {{ nodes_to_remove }}
  577. resource_def:
  578. {% if use_bastion|bool %}
  579. type: server_nofloating.yaml
  580. {% else %}
  581. type: server.yaml
  582. {% endif %}
  583. properties:
  584. name:
  585. str_replace:
  586. template: subtype-k8s_type-%index%.cluster_id
  587. params:
  588. cluster_id: {{ stack_name }}
  589. k8s_type: node
  590. subtype: app
  591. cluster_env: {{ public_dns_domain }}
  592. cluster_id: {{ stack_name }}
  593. group:
  594. str_replace:
  595. template: k8s_type.cluster_id
  596. params:
  597. k8s_type: nodes
  598. cluster_id: {{ stack_name }}
  599. type: node
  600. subtype: app
  601. node_labels:
  602. {% for k, v in openshift_cluster_node_labels.app.iteritems() %}
  603. {{ k|e }}: {{ v|e }}
  604. {% endfor %}
  605. image: {{ openstack_image }}
  606. flavor: {{ node_flavor }}
  607. key_name: {{ ssh_public_key }}
  608. net: { get_resource: net }
  609. subnet: { get_resource: subnet }
  610. secgrp:
  611. - { get_resource: {% if openstack_flat_secgrp|default(False)|bool %}flat-secgrp{% else %}node-secgrp{% endif %} }
  612. - { get_resource: common-secgrp }
  613. {% if not use_bastion|bool %}
  614. floating_network: {{ external_network }}
  615. {% endif %}
  616. net_name:
  617. str_replace:
  618. template: openshift-ansible-cluster_id-net
  619. params:
  620. cluster_id: {{ stack_name }}
  621. volume_size: {{ app_volume_size }}
  622. depends_on:
  623. - interface
  624. infra_nodes:
  625. type: OS::Heat::ResourceGroup
  626. properties:
  627. count: {{ num_infra }}
  628. resource_def:
  629. type: server.yaml
  630. properties:
  631. name:
  632. str_replace:
  633. template: subtypek8s_type-%index%.cluster_id
  634. params:
  635. cluster_id: {{ stack_name }}
  636. k8s_type: node
  637. subtype: infra
  638. cluster_env: {{ public_dns_domain }}
  639. cluster_id: {{ stack_name }}
  640. group:
  641. str_replace:
  642. template: k8s_type.cluster_id
  643. params:
  644. k8s_type: infra
  645. cluster_id: {{ stack_name }}
  646. type: node
  647. subtype: infra
  648. node_labels:
  649. {% for k, v in openshift_cluster_node_labels.infra.iteritems() %}
  650. {{ k|e }}: {{ v|e }}
  651. {% endfor %}
  652. image: {{ openstack_image }}
  653. flavor: {{ infra_flavor }}
  654. key_name: {{ ssh_public_key }}
  655. net: { get_resource: net }
  656. subnet: { get_resource: subnet }
  657. secgrp:
  658. # TODO(bogdando) filter only required node rules into infra-secgrp
  659. {% if openstack_flat_secgrp|default(False)|bool %}
  660. - { get_resource: flat-secgrp }
  661. {% else %}
  662. - { get_resource: node-secgrp }
  663. {% endif %}
  664. - { get_resource: infra-secgrp }
  665. - { get_resource: common-secgrp }
  666. floating_network: {{ external_network }}
  667. net_name:
  668. str_replace:
  669. template: openshift-ansible-cluster_id-net
  670. params:
  671. cluster_id: {{ stack_name }}
  672. volume_size: {{ infra_volume_size }}
  673. depends_on:
  674. - interface
  675. dns:
  676. type: OS::Heat::ResourceGroup
  677. properties:
  678. count: {{ num_dns }}
  679. resource_def:
  680. type: server.yaml
  681. properties:
  682. name:
  683. str_replace:
  684. template: k8s_type-%index%.cluster_id
  685. params:
  686. cluster_id: {{ stack_name }}
  687. k8s_type: dns
  688. cluster_env: {{ public_dns_domain }}
  689. cluster_id: {{ stack_name }}
  690. group:
  691. str_replace:
  692. template: k8s_type.cluster_id
  693. params:
  694. k8s_type: dns
  695. cluster_id: {{ stack_name }}
  696. type: dns
  697. image: {{ openstack_image }}
  698. flavor: {{ dns_flavor }}
  699. key_name: {{ ssh_public_key }}
  700. net: { get_resource: net }
  701. subnet: { get_resource: subnet }
  702. secgrp:
  703. - { get_resource: dns-secgrp }
  704. - { get_resource: common-secgrp }
  705. floating_network: {{ external_network }}
  706. net_name:
  707. str_replace:
  708. template: openshift-ansible-cluster_id-net
  709. params:
  710. cluster_id: {{ stack_name }}
  711. volume_size: {{ dns_volume_size }}
  712. depends_on:
  713. - interface