Support direct provisioning of bare metal

If `baremetal_provision` is `true`, deploy baremetal with "openstack
overcloud node provision" and deployed-server, instead of with
heat/nova.

Change-Id: I57893a64f4c3224ffe8bd12330f12bd9d3cbbf89
Blueprint: nova-less-deploy
This commit is contained in:
Steve Baker 2019-06-11 10:38:42 +12:00 committed by Sagi Shnaidman
parent 0b62606370
commit 7a9676908f
9 changed files with 49 additions and 2 deletions

View File

@ -43,3 +43,6 @@ Role Variables
- `composable_scenario`: <''> -- path to the composable scenarios used at deployment time
- `upgrade_composable_scenario`: <''> -- path to the composable scenarios used at upgrade time
- `undercloud_rpm_dependencies`: <'python-tripleoclient'> -- Dependency packages for undercloud deployments.
- `baremetal_provision`: <false> Deploy baremetal with "openstack overcloud node provision" and deployed-server, instead of with heat/nova
- `undercloud_enable_nova`: <true> -- sets up the 'enable_nova'
option in undercloud.conf.

View File

@ -84,3 +84,9 @@ validate_performance: true
# If `validate_services` is `true`, run the validate-services role
validate_services: false
# If `baremetal_provision` is `true`, deploy baremetal with "openstack overcloud node provision" and deployed-server, instead of with heat/nova
baremetal_provision: false
# If `undercloud_enable_nova` is `true`, the undercloud will have running glance and nova services
undercloud_enable_nova: true

View File

@ -59,6 +59,12 @@
dest: "{{ working_dir }}/overcloud-topology-config.yaml"
when: topology_map is defined
- name: Create overcloud baremetal deploy yaml
template:
src: "overcloud_baremetal_deploy.yaml.j2"
dest: "{{ working_dir }}/overcloud_baremetal_deploy.yaml"
when: baremetal_provision|bool and topology_map is defined
- name: Cloud names heat environment
when: release not in ['mitaka', 'liberty']
template:

View File

@ -244,8 +244,23 @@
-e {{ overcloud_templates_path }}/environments/deployed-server-bootstrap-environment-centos.yaml
{% endif %}
--overcloud-ssh-user {{ undercloud_user }}
{% if not undercloud_enable_nova|bool %}
--deployed-server
{% endif %}
when: deploy_multinode|bool
- name: set the baremetal provision args
set_fact:
hypervisor_wait: false
multinode_args: >-
-e {{ overcloud_templates_path }}/environments/deployed-server-environment.yaml
{% if release not in ['mitaka', 'newton'] and overcloud_release|default('') not in ['newton', 'mitaka'] %}
-e {{ overcloud_templates_path }}/environments/deployed-server-bootstrap-environment-centos.yaml
{% endif %}
-e {{ working_dir }}/overcloud-baremetal-deployed.yaml
--deployed-server
when: baremetal_provision|bool
- name: set the OVN args
set_fact:
ovn_args: >-

View File

@ -28,6 +28,12 @@ done
### --start_docs
{% if baremetal_provision|bool %}
## * Provision the baremetal nodes
## ::
openstack overcloud node provision --stack overcloud --output {{ working_dir }}/overcloud-baremetal-deployed.yaml {{ working_dir }}/overcloud_baremetal_deploy.yaml
{% endif %}
## * Deploy the overcloud!
## ::
openstack overcloud deploy {% if release is not in ['newton', 'ocata', 'pike', 'queens'] %}--override-ansible-cfg {{ working_dir }}/custom_ansible.cfg{% endif %} \

View File

@ -0,0 +1,11 @@
{% for role in topology_map %}
{% set role_count = topology_map[role].scale |default(0) %}
{% set role_profile = topology_map[role].flavor |default('') %}
{% if role_count %}
- name: {{ role }}
count: {{ role_count }}
{% if role_profile %}
profile: {{ role_profile }}
{% endif %}
{% endif %}
{% endfor %}

View File

@ -56,7 +56,6 @@ https://docs.openstack.org/tripleo-quickstart/latest/accessing-libvirt.html
- `undercloud_enable_novajoin`: <'false'> -- sets up the 'enable_novajoin'
value from undercloud.conf. Note that using 'enable_tls_everywhere' will have
the same effect.
- `undercloud_enable_nova`: <'true'> -- sets up the 'enable_nova'
- `novajoin_connect_timeout`: <5> Sets vendordata_dynamic_connect_timeout when novajoin is enabled
- `novajoin_read_timeout:` <20> Sets vendordata_dynamic_read_timeout when novajoin is enabled
- `prepare_novajoin`: If set to true, it will install novajoin in the undercloud,

View File

@ -64,7 +64,6 @@ undercloud_enable_validations: true
undercloud_enable_zaqar: true
undercloud_ipxe_deploy: true
undercloud_enable_swift_encryption: false
undercloud_enable_nova: true
undercloud_undercloud_debug: true

View File

@ -52,8 +52,10 @@ rm -f {{ working_dir }}/undercloud_sanity.subunit
source {{ working_dir}}/stackrc
citest openstack user list
citest openstack catalog list
{% if undercloud_enable_nova|bool %}
citest nova service-list
citest glance image-list
{% endif %}
citest neutron subnet-list
citest neutron net-list
citest neutron agent-list