summaryrefslogtreecommitdiffstats
path: root/roles
diff options
context:
space:
mode:
Diffstat (limited to 'roles')
-rw-r--r--roles/docker-storage-setup/tasks/main.yaml5
-rw-r--r--roles/docker-storage-setup/templates/docker-storage-setup-overlayfs.j21
-rw-r--r--roles/openstack-stack/tasks/generate-templates.yml6
-rw-r--r--roles/openstack-stack/templates/heat_stack.yaml.j2101
-rw-r--r--roles/openstack-stack/templates/heat_stack_server.yaml.j273
-rw-r--r--roles/openstack-stack/templates/heat_stack_server_nofloating.yaml.j2164
6 files changed, 160 insertions, 190 deletions
diff --git a/roles/docker-storage-setup/tasks/main.yaml b/roles/docker-storage-setup/tasks/main.yaml
index 8dabb1cc7..8606eeba4 100644
--- a/roles/docker-storage-setup/tasks/main.yaml
+++ b/roles/docker-storage-setup/tasks/main.yaml
@@ -1,4 +1,7 @@
---
+- name: stop docker
+ service: name=docker state=stopped
+
- block:
- name: create the docker-storage config file
template:
@@ -7,7 +10,6 @@
owner: root
group: root
mode: 0644
-
when:
- ansible_distribution_version | version_compare('7.4', '>=')
- ansible_distribution == "RedHat"
@@ -20,7 +22,6 @@
owner: root
group: root
mode: 0644
-
when:
- ansible_distribution_version | version_compare('7.4', '<')
- ansible_distribution == "RedHat"
diff --git a/roles/docker-storage-setup/templates/docker-storage-setup-overlayfs.j2 b/roles/docker-storage-setup/templates/docker-storage-setup-overlayfs.j2
index 4bef865c8..d8b4a0276 100644
--- a/roles/docker-storage-setup/templates/docker-storage-setup-overlayfs.j2
+++ b/roles/docker-storage-setup/templates/docker-storage-setup-overlayfs.j2
@@ -4,3 +4,4 @@ DATA_SIZE="{{ docker_data_size }}"
STORAGE_DRIVER=overlay2
CONTAINER_ROOT_LV_NAME="{{ container_root_lv_name }}"
CONTAINER_ROOT_LV_MOUNT_PATH="{{ container_root_lv_mount_path }}"
+CONTAINER_ROOT_LV_SIZE=100%FREE
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 ef46211a4..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 %}
@@ -536,6 +562,20 @@ resources:
- interface
{% endif %}
+{% if master_server_group_policies|length > 0 %}
+ master_server_group:
+ type: OS::Nova::ServerGroup
+ properties:
+ name: master_server_group
+ policies: {{ master_server_group_policies }}
+{% endif %}
+{% if infra_server_group_policies|length > 0 %}
+ infra_server_group:
+ type: OS::Nova::ServerGroup
+ properties:
+ name: infra_server_group
+ policies: {{ infra_server_group_policies }}
+{% endif %}
{% if num_masters|int > 1 %}
loadbalancer:
type: OS::Heat::ResourceGroup
@@ -592,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:
@@ -627,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 %}
@@ -639,10 +680,19 @@ 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 %}
+ scheduler_hints:
+ group: { get_resource: master_server_group }
+{% endif %}
{% if not provider_network %}
depends_on:
- interface
@@ -655,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:
@@ -695,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 %}
@@ -749,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
@@ -766,6 +827,10 @@ resources:
floating_network: {{ external_network }}
{% endif %}
volume_size: {{ infra_volume_size }}
+{% if infra_server_group_policies|length > 0 %}
+ scheduler_hints:
+ group: { get_resource: infra_server_group }
+{% endif %}
{% if not provider_network %}
depends_on:
- interface
diff --git a/roles/openstack-stack/templates/heat_stack_server.yaml.j2 b/roles/openstack-stack/templates/heat_stack_server.yaml.j2
index fc797941e..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 %}
@@ -98,6 +128,11 @@ parameters:
description: OpenShift Node Labels
default: {"region": "default" }
+ scheduler_hints:
+ type: json
+ description: Server scheduler hints.
+ default: {}
+
outputs:
name:
@@ -128,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:
@@ -138,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
@@ -154,6 +212,7 @@ resources:
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:
@@ -173,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 2c16ad778..000000000
--- a/roles/openstack-stack/templates/heat_stack_server_nofloating.yaml.j2
+++ /dev/null
@@ -1,164 +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" }
-
-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 }
-
-{% 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 %}