summaryrefslogtreecommitdiffstats
path: root/roles/openstack-stack
diff options
context:
space:
mode:
Diffstat (limited to 'roles/openstack-stack')
-rw-r--r--roles/openstack-stack/tasks/generate-templates.yml6
-rw-r--r--roles/openstack-stack/templates/heat_stack.yaml.j279
-rw-r--r--roles/openstack-stack/templates/heat_stack_server.yaml.j267
-rw-r--r--roles/openstack-stack/templates/heat_stack_server_nofloating.yaml.j2170
4 files changed, 128 insertions, 194 deletions
diff --git a/roles/openstack-stack/tasks/generate-templates.yml b/roles/openstack-stack/tasks/generate-templates.yml
index 110da8444..0ff50a095 100644
--- a/roles/openstack-stack/tasks/generate-templates.yml
+++ b/roles/openstack-stack/tasks/generate-templates.yml
@@ -20,12 +20,6 @@
src: heat_stack_server.yaml.j2
dest: "{{ stack_template_pre.path }}/server.yaml"
-- name: generate HOT server w/o floating IPs template from jinja2 template
- template:
- src: heat_stack_server_nofloating.yaml.j2
- dest: "{{ stack_template_pre.path }}/server_nofloating.yaml"
- when: use_bastion|bool
-
- name: generate user_data from jinja2 template
template:
src: user_data.j2
diff --git a/roles/openstack-stack/templates/heat_stack.yaml.j2 b/roles/openstack-stack/templates/heat_stack.yaml.j2
index a6b088efb..2359842a5 100644
--- a/roles/openstack-stack/templates/heat_stack.yaml.j2
+++ b/roles/openstack-stack/templates/heat_stack.yaml.j2
@@ -71,6 +71,9 @@ outputs:
value: { get_attr: [ dns, private_ip ] }
{% endif %}
+conditions:
+ no_floating: {% if provider_network or use_bastion|bool %}true{% else %}false{% endif %}
+
resources:
{% if not provider_network %}
@@ -113,6 +116,22 @@ resources:
- {{ nameserver }}
{% endfor %}
+{% if openshift_use_flannel|default(False)|bool %}
+ data_net:
+ type: OS::Neutron::Net
+ properties:
+ name: openshift-ansible-{{ stack_name }}-data-net
+ port_security_enabled: false
+
+ data_subnet:
+ type: OS::Neutron::Subnet
+ properties:
+ name: openshift-ansible-{{ stack_name }}-data-subnet
+ network: { get_resource: data_net }
+ cidr: {{ osm_cluster_network_cidr|default('10.128.0.0/14') }}
+ gateway_ip: null
+{% endif %}
+
router:
type: OS::Neutron::Router
properties:
@@ -322,6 +341,12 @@ resources:
protocol: tcp
port_range_min: 9090
port_range_max: 9090
+{% if openshift_use_flannel|default(False)|bool %}
+ - direction: ingress
+ protocol: tcp
+ port_range_min: 2379
+ port_range_max: 2379
+{% endif %}
etcd-secgrp:
type: OS::Neutron::SecurityGroup
@@ -488,11 +513,7 @@ resources:
properties:
count: {{ num_etcd }}
resource_def:
-{% if use_bastion|bool %}
- type: server_nofloating.yaml
-{% else %}
type: server.yaml
-{% endif %}
properties:
name:
str_replace:
@@ -527,8 +548,13 @@ resources:
secgrp:
- { get_resource: {% if openstack_flat_secgrp|default(False)|bool %}flat-secgrp{% else %}etcd-secgrp{% endif %} }
- { get_resource: common-secgrp }
-{% if not use_bastion|bool and not provider_network %}
- floating_network: {{ external_network }}
+ floating_network:
+ if:
+ - no_floating
+ - null
+ - {{ external_network }}
+{% if use_bastion|bool or provider_network %}
+ attach_float_net: false
{% endif %}
volume_size: {{ etcd_volume_size }}
{% if not provider_network %}
@@ -606,11 +632,7 @@ resources:
properties:
count: {{ num_masters }}
resource_def:
-{% if use_bastion|bool %}
- type: server_nofloating.yaml
-{% else %}
type: server.yaml
-{% endif %}
properties:
name:
str_replace:
@@ -641,6 +663,11 @@ resources:
template: openshift-ansible-cluster_id-net
params:
cluster_id: {{ stack_name }}
+{% if openshift_use_flannel|default(False)|bool %}
+ attach_data_net: true
+ data_net: { get_resource: data_net }
+ data_subnet: { get_resource: data_subnet }
+{% endif %}
{% endif %}
secgrp:
{% if openstack_flat_secgrp|default(False)|bool %}
@@ -653,8 +680,13 @@ resources:
{% endif %}
{% endif %}
- { get_resource: common-secgrp }
-{% if not use_bastion|bool and not provider_network %}
- floating_network: {{ external_network }}
+ floating_network:
+ if:
+ - no_floating
+ - null
+ - {{ external_network }}
+{% if use_bastion|bool or provider_network %}
+ attach_float_net: false
{% endif %}
volume_size: {{ master_volume_size }}
{% if master_server_group_policies|length > 0 %}
@@ -673,11 +705,7 @@ resources:
removal_policies:
- resource_list: {{ nodes_to_remove }}
resource_def:
-{% if use_bastion|bool %}
- type: server_nofloating.yaml
-{% else %}
type: server.yaml
-{% endif %}
properties:
name:
str_replace:
@@ -713,12 +741,22 @@ resources:
template: openshift-ansible-cluster_id-net
params:
cluster_id: {{ stack_name }}
+{% if openshift_use_flannel|default(False)|bool %}
+ attach_data_net: true
+ data_net: { get_resource: data_net }
+ data_subnet: { get_resource: data_subnet }
+{% endif %}
{% endif %}
secgrp:
- { get_resource: {% if openstack_flat_secgrp|default(False)|bool %}flat-secgrp{% else %}node-secgrp{% endif %} }
- { get_resource: common-secgrp }
-{% if not use_bastion|bool and not provider_network %}
- floating_network: {{ external_network }}
+ floating_network:
+ if:
+ - no_floating
+ - null
+ - {{ external_network }}
+{% if use_bastion|bool or provider_network %}
+ attach_float_net: false
{% endif %}
volume_size: {{ node_volume_size }}
{% if not provider_network %}
@@ -767,6 +805,11 @@ resources:
template: openshift-ansible-cluster_id-net
params:
cluster_id: {{ stack_name }}
+{% if openshift_use_flannel|default(False)|bool %}
+ attach_data_net: true
+ data_net: { get_resource: data_net }
+ data_subnet: { get_resource: data_subnet }
+{% endif %}
{% endif %}
secgrp:
# TODO(bogdando) filter only required node rules into infra-secgrp
diff --git a/roles/openstack-stack/templates/heat_stack_server.yaml.j2 b/roles/openstack-stack/templates/heat_stack_server.yaml.j2
index 66c2491a9..9ffe721a5 100644
--- a/roles/openstack-stack/templates/heat_stack_server.yaml.j2
+++ b/roles/openstack-stack/templates/heat_stack_server.yaml.j2
@@ -68,14 +68,44 @@ parameters:
description: Subnet resource
{% endif %}
+{% if openshift_use_flannel|default(False)|bool %}
+ attach_data_net:
+ type: boolean
+ default: false
+ label: Attach-data-net
+ description: A switch for data port connection
+
+ data_net:
+ type: string
+ default: ''
+ label: Net ID
+ description: Net resource
+
+{% if not provider_network %}
+ data_subnet:
+ type: string
+ default: ''
+ label: Subnet ID
+ description: Subnet resource
+{% endif %}
+{% endif %}
+
secgrp:
type: comma_delimited_list
label: Security groups
description: Security group resources
+ attach_float_net:
+ type: boolean
+ default: true
+
+ label: Attach-float-net
+ description: A switch for floating network port connection
+
{% if not provider_network %}
floating_network:
type: string
+ default: ''
label: Floating network
description: Network to allocate floating IP from
{% endif %}
@@ -133,6 +163,12 @@ outputs:
{% endif %}
- addr
+conditions:
+ no_floating: {not: { get_param: attach_float_net} }
+{% if openshift_use_flannel|default(False)|bool %}
+ no_data_subnet: {not: { get_param: attach_data_net} }
+{% endif %}
+
resources:
server:
@@ -143,11 +179,28 @@ resources:
image: { get_param: image }
flavor: { get_param: flavor }
networks:
+{% if openshift_use_flannel|default(False)|bool %}
+ if:
+ - no_data_subnet
+{% if use_trunk_ports|default(false)|bool %}
+ - - port: { get_attr: [trunk-port, port_id] }
+{% else %}
+ - - port: { get_resource: port }
+{% endif %}
+{% if use_trunk_ports|default(false)|bool %}
+ - - port: { get_attr: [trunk-port, port_id] }
+{% else %}
+ - - port: { get_resource: port }
+ - port: { get_resource: data_port }
+{% endif %}
+
+{% else %}
{% if use_trunk_ports|default(false)|bool %}
- port: { get_attr: [trunk-port, port_id] }
{% else %}
- port: { get_resource: port }
{% endif %}
+{% endif %}
user_data:
get_file: user-data
user_data_format: RAW
@@ -179,8 +232,22 @@ resources:
{% endif %}
security_groups: { get_param: secgrp }
+{% if openshift_use_flannel|default(False)|bool %}
+ data_port:
+ type: OS::Neutron::Port
+ condition: { not: no_data_subnet }
+ properties:
+ network: { get_param: data_net }
+ port_security_enabled: false
+{% if not provider_network %}
+ fixed_ips:
+ - subnet: { get_param: data_subnet }
+{% endif %}
+{% endif %}
+
{% if not provider_network %}
floating-ip:
+ condition: { not: no_floating }
type: OS::Neutron::FloatingIP
properties:
floating_network: { get_param: floating_network }
diff --git a/roles/openstack-stack/templates/heat_stack_server_nofloating.yaml.j2 b/roles/openstack-stack/templates/heat_stack_server_nofloating.yaml.j2
deleted file mode 100644
index 4b79d5ab6..000000000
--- a/roles/openstack-stack/templates/heat_stack_server_nofloating.yaml.j2
+++ /dev/null
@@ -1,170 +0,0 @@
-heat_template_version: 2016-10-14
-
-description: OpenShift cluster server w/o floating IP
-
-parameters:
-
- name:
- type: string
- label: Name
- description: Name
-
- group:
- type: string
- label: Host Group
- description: The Primary Ansible Host Group
- default: host
-
- cluster_env:
- type: string
- label: Cluster environment
- description: Environment of the cluster
-
- cluster_id:
- type: string
- label: Cluster ID
- description: Identifier of the cluster
-
- type:
- type: string
- label: Type
- description: Type master or node
-
- subtype:
- type: string
- label: Sub-type
- description: Sub-type compute or infra for nodes, default otherwise
- default: default
-
- key_name:
- type: string
- label: Key name
- description: Key name of keypair
-
- image:
- type: string
- label: Image
- description: Name of the image
-
- flavor:
- type: string
- label: Flavor
- description: Name of the flavor
-
- net:
- type: string
- label: Net ID
- description: Net resource
-
- net_name:
- type: string
- label: Net name
- description: Net name
-
- subnet:
- type: string
- label: Subnet ID
- description: Subnet resource
-
- secgrp:
- type: comma_delimited_list
- label: Security groups
- description: Security group resources
-
- availability_zone:
- type: string
- description: The Availability Zone to launch the instance.
- default: nova
-
- volume_size:
- type: number
- description: Size of the volume to be created.
- default: 1
- constraints:
- - range: { min: 1, max: 1024 }
- description: must be between 1 and 1024 Gb.
-
- node_labels:
- type: json
- description: OpenShift Node Labels
- default: {"region": "default" }
-
- scheduler_hints:
- type: json
- description: Server scheduler hints.
- default: {}
-
-outputs:
-
- name:
- description: Name of the server
- value: { get_attr: [ server_nofloating, name ] }
-
- private_ip:
- description: Private IP of the server
- value:
- get_attr:
- - server_nofloating
- - addresses
- - { get_param: net_name }
- - 0
- - addr
-
-resources:
-
- server_nofloating:
- type: OS::Nova::Server
- properties:
- name: { get_param: name }
- key_name: { get_param: key_name }
- image: { get_param: image }
- flavor: { get_param: flavor }
- networks:
-{% if use_trunk_ports|default(false)|bool %}
- - port: { get_attr: [trunk-port, port_id] }
-{% else %}
- - port: { get_resource: port }
-{% endif %}
- user_data:
- get_file: user-data
- user_data_format: RAW
- user_data_update_policy: IGNORE
- metadata:
- group: { get_param: group }
- environment: { get_param: cluster_env }
- clusterid: { get_param: cluster_id }
- host-type: { get_param: type }
- sub-host-type: { get_param: subtype }
- node_labels: { get_param: node_labels }
- scheduler_hints: { get_param: scheduler_hints }
-
-{% if use_trunk_ports|default(false)|bool %}
- trunk-port:
- type: OS::Neutron::Trunk
- properties:
- name: { get_param: name }
- port: { get_resource: port }
-{% endif %}
-
- port:
- type: OS::Neutron::Port
- properties:
- network: { get_param: net }
- fixed_ips:
- - subnet: { get_param: subnet }
- security_groups: { get_param: secgrp }
-
-{% if not ephemeral_volumes|default(false)|bool %}
- cinder_volume:
- type: OS::Cinder::Volume
- properties:
- size: { get_param: volume_size }
- availability_zone: { get_param: availability_zone }
-
- volume_attachment:
- type: OS::Cinder::VolumeAttachment
- properties:
- volume_id: { get_resource: cinder_volume }
- instance_uuid: { get_resource: server_nofloating }
- mountpoint: /dev/sdb
-{% endif %}