Adopt yamllint strict linting

Upgrades yamllint to latest version and adots use of its strict
checking.

Fix all known problems reported by yamllint so we don't have to do
that while touching these files.

Change-Id: I4bdc520d9e2aff086c4b463718bc1e053261a4f5
Story: https://tree.taiga.io/project/tripleo-ci-board/task/381
This commit is contained in:
Sorin Sbarnea 2018-11-15 20:31:14 +00:00
parent 3be1290957
commit 72141b7fab
153 changed files with 634 additions and 544 deletions

View File

@ -15,14 +15,12 @@ repos:
- id: check-yaml - id: check-yaml
files: .*\.(yaml|yml)$ files: .*\.(yaml|yml)$
- repo: https://github.com/adrienverge/yamllint.git - repo: https://github.com/adrienverge/yamllint.git
rev: v1.12.1 rev: v1.13.0
hooks: hooks:
- id: yamllint - id: yamllint
files: \.(yaml|yml)$ files: \.(yaml|yml)$
types: [file, yaml] types: [file, yaml]
# uncommend once a new yamllint release is made: entry: yamllint --strict
# entry: yamllint --strict
- repo: https://github.com/openstack-dev/bashate.git - repo: https://github.com/openstack-dev/bashate.git
rev: 0.6.0 rev: 0.6.0
hooks: hooks:

View File

@ -1,3 +1,4 @@
---
environment_type: ovb_host_cloud environment_type: ovb_host_cloud
# undercloud.conf # undercloud.conf
@ -37,12 +38,12 @@ external_interface_netmask: 255.255.255.0
# images to copy to the undercloud # images to copy to the undercloud
images: images:
- name: overcloud-full - name: overcloud-full
url: "{{ overcloud_image_url }}" url: "{{ overcloud_image_url }}"
type: tar type: tar
- name: ipa_images - name: ipa_images
url: "{{ ipa_image_url }}" url: "{{ ipa_image_url }}"
type: tar type: tar
network_environment_args: network_environment_args:
ExternalNetCidr: "{{ undercloud_external_network_cidr }}" ExternalNetCidr: "{{ undercloud_external_network_cidr }}"
@ -63,7 +64,7 @@ network_environment_args:
TenantNetCidr: 172.16.0.0/24 TenantNetCidr: 172.16.0.0/24
TenantAllocationPools: [{"start": "172.16.0.10", "end": "172.16.0.250"}] TenantAllocationPools: [{"start": "172.16.0.10", "end": "172.16.0.250"}]
DnsServers: "{{ overcloud_dns_servers }}" DnsServers: "{{ overcloud_dns_servers }}"
PublicVirtualFixedIPs: [{ "ip_address": "{{ undercloud_external_network_cidr|nthhost(5) }}" }] PublicVirtualFixedIPs: [{"ip_address": "{{ undercloud_external_network_cidr|nthhost(5) }}"}]
NeutronGlobalPhysnetMtu: 1350 NeutronGlobalPhysnetMtu: 1350
BondInterfaceOvsOptions: bond_mode=balance-slb BondInterfaceOvsOptions: bond_mode=balance-slb

View File

@ -1,3 +1,4 @@
---
artcl_gzip_only: true artcl_gzip_only: true
artcl_artifact_url: https://ci.centos.org/artifacts/rdo artcl_artifact_url: https://ci.centos.org/artifacts/rdo
artcl_publish: true artcl_publish: true

View File

@ -1,3 +1,4 @@
---
# We run tempest in this topology instead of ping test. # We run tempest in this topology instead of ping test.
# We set introspection to true and use only the minimal amount of nodes # We set introspection to true and use only the minimal amount of nodes
# for this job, but test all defaults otherwise. # for this job, but test all defaults otherwise.
@ -22,7 +23,7 @@ containerized_overcloud: true
# This enables TLS for the undercloud which will also make haproxy bind to the # This enables TLS for the undercloud which will also make haproxy bind to the
# configured public-vip and admin-vip. # configured public-vip and admin-vip.
undercloud_generate_service_certificate: True undercloud_generate_service_certificate: true
# This enables the deployment of the overcloud with SSL. # This enables the deployment of the overcloud with SSL.
ssl_overcloud: false ssl_overcloud: false

View File

@ -1,3 +1,4 @@
---
# EXPERIMENTAL FEATURE # EXPERIMENTAL FEATURE
# set the working_dir on the undercloud # set the working_dir on the undercloud
working_dir: /home/stack working_dir: /home/stack
@ -44,12 +45,12 @@ run_tempest: false
tempest_workers: 4 tempest_workers: 4
# Config for custom tripleo-heat-templates # Config for custom tripleo-heat-templates
#overcloud_templates_path: /home/stack/tripleo-heat-templates # overcloud_templates_path: /home/stack/tripleo-heat-templates
#overcloud_templates_repo: https://git.openstack.org/openstack/tripleo-heat-templates # overcloud_templates_repo: https://git.openstack.org/openstack/tripleo-heat-templates
## use templates_branch when not testing with an unmerged review # # use templates_branch when not testing with an unmerged review
#overcloud_templates_branch: master # overcloud_templates_branch: master
## use templates_refspec when testing with an unmerged review # # use templates_refspec when testing with an unmerged review
#overcloud_templates_refspec: # overcloud_templates_refspec:
# options below direct automatic doc generation by tripleo-collect-logs # options below direct automatic doc generation by tripleo-collect-logs
artcl_gen_docs: true artcl_gen_docs: true

View File

@ -42,17 +42,26 @@ flavor_args: >-
timeout_args: "--timeout {{ deploy_timeout }}" timeout_args: "--timeout {{ deploy_timeout }}"
extra_args: "--compute-scale 1 -e {{ overcloud_templates_path }}/environments/network-isolation.yaml -e {{ overcloud_templates_path }}/environments/net-single-nic-with-vlans.yaml -e ~/network-environment.yaml --ntp-server pool.ntp.org" extra_args: >
--compute-scale 1
-e {{ overcloud_templates_path }}/environments/network-isolation.yaml
-e {{ overcloud_templates_path }}/environments/net-single-nic-with-vlans.yaml
-e ~/network-environment.yaml --ntp-server pool.ntp.org
# Pull out scale_extra_args so the same var can be reused for the call to # Pull out scale_extra_args so the same var can be reused for the call to
# `openstack overcloud delete` # `openstack overcloud delete`
scale_extra_configs: "-e {{ overcloud_templates_path }}/environments/network-isolation.yaml -e {{ overcloud_templates_path }}/environments/net-single-nic-with-vlans.yaml -e /home/stack/network-environment.yaml" scale_extra_configs: >
scale_extra_args: "--{{ node_to_scale }}-scale {{ final_scale_value }} {{ scale_extra_configs }} --ntp-server pool.ntp.org" -e {{ overcloud_templates_path }}/environments/network-isolation.yaml
-e {{ overcloud_templates_path }}/environments/net-single-nic-with-vlans.yaml
-e /home/stack/network-environment.yaml
scale_extra_args: >
--{{ node_to_scale }}-scale {{ final_scale_value }} {{ scale_extra_configs }}
--ntp-server pool.ntp.org
# Scale deployment info # Scale deployment info
node_to_scale: compute # Type of node to scale node_to_scale: compute # Type of node to scale
initial_scale_value: 1 # Initial number of nodes to deploy initial_scale_value: 1 # Initial number of nodes to deploy
final_scale_value: 2 # Number of additional nodes to add during the scale final_scale_value: 2 # Number of additional nodes to add during the scale
# Scale deployment arguments # Scale deployment arguments
scale_args: >- scale_args: >-

View File

@ -1,3 +1,4 @@
---
# baremetal settings # baremetal settings
step_introspect: true step_introspect: true
network_isolation_type: public-bond network_isolation_type: public-bond
@ -22,9 +23,9 @@ extra_args: " --control-flavor baremetal --compute-flavor baremetal "
# in order to reduce the overall memory footprint # in order to reduce the overall memory footprint
# This is not required in newton # This is not required in newton
telemetry_args: >- telemetry_args: >-
{% if release not in ['newton', 'ocata'] %} {% if release not in ['newton', 'ocata'] %}
-e {{ overcloud_templates_path }}/environments/disable-telemetry.yaml -e {{ overcloud_templates_path }}/environments/disable-telemetry.yaml
{% endif %} {% endif %}
run_tempest: false run_tempest: false
tempest_config: false tempest_config: false

View File

@ -1,3 +1,4 @@
---
# baremetal settings # baremetal settings
step_introspect: true step_introspect: true
network_isolation_type: multiple-nics network_isolation_type: multiple-nics

View File

@ -1,3 +1,4 @@
---
artcl_publish: true artcl_publish: true
artcl_use_zuul_swift_upload: true artcl_use_zuul_swift_upload: true
artcl_swift_container: artifacts artcl_swift_container: artifacts

View File

@ -1,3 +1,4 @@
---
- name: Configure next release repository in the undercloud - name: Configure next release repository in the undercloud
hosts: undercloud hosts: undercloud
tags: tags:
@ -12,7 +13,7 @@
roles: roles:
- role: repo-setup - role: repo-setup
- role: build-test-packages - role: build-test-packages
- { role: install-built-repo, when: compressed_gating_repo is defined } - {role: install-built-repo, when: compressed_gating_repo is defined}
- name: Run tripleo-upgrade role to upgrade undercloud - name: Run tripleo-upgrade role to upgrade undercloud
hosts: undercloud hosts: undercloud
@ -20,4 +21,3 @@
- undercloud-upgrade - undercloud-upgrade
roles: roles:
- role: tripleo-upgrade - role: tripleo-upgrade

View File

@ -13,5 +13,4 @@
- name: Create the OVB stack - name: Create the OVB stack
hosts: localhost hosts: localhost
roles: roles:
- { role: ovb-manage-stack, ovb_manage_stack_mode: 'create' } - {role: ovb-manage-stack, ovb_manage_stack_mode: 'create'}

View File

@ -2,4 +2,4 @@
- name: clean up heat stack - name: clean up heat stack
hosts: localhost hosts: localhost
roles: roles:
- { role: ovb-manage-stack, ovb_manage_stack_mode: 'delete' } - {role: ovb-manage-stack, ovb_manage_stack_mode: 'delete'}

View File

@ -1,3 +1,4 @@
---
# Playbook included in OVB setups that use a testenv broker to create the # Playbook included in OVB setups that use a testenv broker to create the
# OVB stack. # OVB stack.
@ -40,9 +41,8 @@
addresses: addresses:
- ip_netmask: 10.0.0.1/24 - ip_netmask: 10.0.0.1/24
- ip_netmask: 2001:db8:fd00:1000::1/64 - ip_netmask: 2001:db8:fd00:1000::1/64
create: yes create: true
- name: Install ipmitool if not installed - name: Install ipmitool if not installed
yum: name=ipmitool state=latest yum: name=ipmitool state=latest
become: true become: true

View File

@ -1,3 +1,4 @@
---
# This is the playbook used by the `quickstart.sh` script. # This is the playbook used by the `quickstart.sh` script.
- include: quickstart.yml - include: quickstart.yml

View File

@ -15,13 +15,13 @@
- name: Scale overcloud nodes - name: Scale overcloud nodes
hosts: undercloud hosts: undercloud
roles: roles:
- { role: overcloud-scale, artosn_scale_nodes: true, artosn_delete_original_node: false } - {role: overcloud-scale, artosn_scale_nodes: true, artosn_delete_original_node: false}
# Delete the original node of type that was scaled - ensure overcloud validates after reducing scale # Delete the original node of type that was scaled - ensure overcloud validates after reducing scale
- name: Delete original node of type scaled - name: Delete original node of type scaled
hosts: undercloud hosts: undercloud
roles: roles:
- { role: overcloud-scale, artosn_scale_nodes: false, artosn_delete_original_node: true } - {role: overcloud-scale, artosn_scale_nodes: false, artosn_delete_original_node: true}
# NOTE(hrybacki: inventory regeneration and overcloud validation must be completed in a second playbook. The # NOTE(hrybacki: inventory regeneration and overcloud validation must be completed in a second playbook. The
# deleted node is removed from the hosts file. However, it still exists in memory and will cause the # deleted node is removed from the hosts file. However, it still exists in memory and will cause the

View File

@ -3,4 +3,3 @@ features:
- Add support for composable upgrade since Newton release. The workflow for - Add support for composable upgrade since Newton release. The workflow for
composable upgrade implement also the one for making mixed upgrade composable upgrade implement also the one for making mixed upgrade
https://blueprints.launchpad.net/tripleo/+spec/tripleo-composable-upgrade-job https://blueprints.launchpad.net/tripleo/+spec/tripleo-composable-upgrade-job

View File

@ -1,4 +1,4 @@
---
features: features:
- | - |
Add `undercloud_roles_data` for containerized undercloud Add `undercloud_roles_data` for containerized undercloud

View File

@ -10,11 +10,9 @@ features:
config/general_config/containers_undercloud_minimal.yml config/general_config/containers_undercloud_minimal.yml
e.g. ./quickstart.sh -c $working_dir/config/general_config/containers_undercloud_minimal.yml --tags all -R master-tripleo-ci -w $working_dir $VIRTHOST e.g. ./quickstart.sh -c $working_dir/config/general_config/containers_undercloud_minimal.yml --tags all -R master-tripleo-ci -w $working_dir $VIRTHOST
deprecations: deprecations:
- | - |
The variable "undercloud_hieradata_override_file" which was the hieradata The variable "undercloud_hieradata_override_file" which was the hieradata
override file for the undercloud, was deprecated in favor of the override file for the undercloud, was deprecated in favor of the
variables "hieradata_override_file_classic_undercloud" and variables "hieradata_override_file_classic_undercloud" and
"hieradata_override_file_t_h_t_undercloud". "hieradata_override_file_t_h_t_undercloud".

View File

@ -1,2 +1,3 @@
---
dependencies: dependencies:
- extras-common - extras-common

View File

@ -10,5 +10,3 @@
shell: > shell: >
"{{ working_dir }}"/install-upstream-ipxe.sh "{{ working_dir }}"/install-upstream-ipxe.sh
when: step_install_upstream_ipxe|bool when: step_install_upstream_ipxe|bool

View File

@ -2,4 +2,4 @@
- hosts: localhost - hosts: localhost
remote_user: root remote_user: root
roles: roles:
- ansible-role-tripleo-baremetal-overcloud - ansible-role-tripleo-baremetal-overcloud

View File

@ -1,2 +1,3 @@
---
dependencies: dependencies:
- extras-common - extras-common

View File

@ -2,4 +2,4 @@
- hosts: localhost - hosts: localhost
remote_user: root remote_user: root
roles: roles:
- ansible-role-tripleo-baremetal-prep-virthost - ansible-role-tripleo-baremetal-prep-virthost

View File

@ -1,2 +1,3 @@
---
dependencies: dependencies:
- extras-common - extras-common

View File

@ -1,3 +1,4 @@
---
# Additional packages # Additional packages
undercloud_additional_pkgs: undercloud_additional_pkgs:
- vim - vim

View File

@ -1,20 +1,21 @@
---
# Ensure ntp packages are installed # Ensure ntp packages are installed
- name: Install ntp packages - name: Install ntp packages
package: package:
name: [ 'ntp', 'ntpdate' ] name: ['ntp', 'ntpdate']
state: present state: present
# Enable ntpd service # Enable ntpd service
- name: Enable ntpd service - name: Enable ntpd service
service: service:
name: 'ntpd' name: 'ntpd'
enabled: yes enabled: true
# Enable ntpdate service # Enable ntpdate service
- name: Enable ntpdate service - name: Enable ntpdate service
service: service:
name: 'ntpdate' name: 'ntpdate'
enabled: yes enabled: true
# Stop ntpd service # Stop ntpd service
- name: Ensure ntp service is stopped to be able to launch ntpdate - name: Ensure ntp service is stopped to be able to launch ntpdate
@ -42,7 +43,7 @@
lineinfile: lineinfile:
destfile: /etc/ntp/step-tickers destfile: /etc/ntp/step-tickers
line: '{{ item }}' line: '{{ item }}'
create: yes create: true
with_items: '{{ undercloud_custom_ntps|default([]) }}' with_items: '{{ undercloud_custom_ntps|default([]) }}'
# Configure ntpdate hardware synchronization # Configure ntpdate hardware synchronization
@ -54,7 +55,9 @@
# Sync time now # Sync time now
- name: Synchronize time immediately with ntpdate - name: Synchronize time immediately with ntpdate
shell: ntpdate $(grep ^server /etc/ntp.conf | tail -1 | awk '{print $2}') shell: |
set -euxo pipefail
ntpdate $(grep ^server /etc/ntp.conf | tail -1 | awk '{print $2}')
changed_when: false changed_when: false
# Start ntpd # Start ntpd

View File

@ -1,3 +1,4 @@
---
- name: Provision script execution - name: Provision script execution
shell: > shell: >
set -o pipefail && set -o pipefail &&

View File

@ -1,3 +1,4 @@
---
- name: Check that virthost/undercloud is set - name: Check that virthost/undercloud is set
fail: fail:
msg: "You need to set virthost/undercloud before running these playbooks." msg: "You need to set virthost/undercloud before running these playbooks."

View File

@ -1,2 +1,3 @@
---
dependencies: dependencies:
- extras-common - extras-common

View File

@ -1,3 +1,4 @@
---
- name: indirect role include (workaround to https://github.com/ansible/ansible/issues/19472) - name: indirect role include (workaround to https://github.com/ansible/ansible/issues/19472)
include_role: include_role:
name: convert-image name: convert-image

View File

@ -1,3 +1,4 @@
---
- name: indirect role include (workaround to https://github.com/ansible/ansible/issues/19472) - name: indirect role include (workaround to https://github.com/ansible/ansible/issues/19472)
include_role: include_role:
name: fetch-images name: fetch-images

View File

@ -152,7 +152,7 @@
chdir: "{{ images_working_dir }}" chdir: "{{ images_working_dir }}"
- name: Clean up the images working dir - name: Clean up the images working dir
shell: >- shell: >-
rm -rf {{ images_working_dir }}/overcloud-full.d {{ images_working_dir }}/ironic-python-agent.d/ rm -rf {{ images_working_dir }}/overcloud-full.d {{ images_working_dir }}/ironic-python-agent.d/
sudo chown $USER: {{ images_working_dir }}/overcloud-full.* {{ images_working_dir }}/ironic-python-agent.* sudo chown $USER: {{ images_working_dir }}/overcloud-full.* {{ images_working_dir }}/ironic-python-agent.*
when: cleanup_images_working_dir|bool when: cleanup_images_working_dir|bool

View File

@ -1,3 +1,4 @@
---
- name: indirect role include (workaround to https://github.com/ansible/ansible/issues/19472) - name: indirect role include (workaround to https://github.com/ansible/ansible/issues/19472)
include_role: include_role:
name: modify-image name: modify-image

View File

@ -5,7 +5,7 @@ build_repo_dir: "{{ ansible_user_dir }}"
artg_dlrn_repo_url: "https://github.com/openstack-packages/DLRN.git" artg_dlrn_repo_url: "https://github.com/openstack-packages/DLRN.git"
artg_rdoinfo_repo_url: "https://github.com/redhat-openstack/rdoinfo" artg_rdoinfo_repo_url: "https://github.com/redhat-openstack/rdoinfo"
artg_compressed_gating_repo: "/home/stack/gating_repo.tar.gz" artg_compressed_gating_repo: "/home/stack/gating_repo.tar.gz"
artg_build_one: True artg_build_one: true
dlrn_target: centos dlrn_target: centos
dlrn_cleanup: false dlrn_cleanup: false
dlrn_baseurl: "https://trunk.rdoproject.org/centos7/" dlrn_baseurl: "https://trunk.rdoproject.org/centos7/"

View File

@ -1,2 +1,3 @@
---
dependencies: dependencies:
- extras-common - extras-common

View File

@ -24,11 +24,11 @@
regexp: '{{ project_item.regexp }}' regexp: '{{ project_item.regexp }}'
line: '{{ project_item.line }}' line: '{{ project_item.line }}'
with_items: with_items:
- { regexp: 'baseurl=.*', line: 'baseurl={{ dlrn_baseurl }}' } - {regexp: 'baseurl=.*', line: 'baseurl={{ dlrn_baseurl }}'}
- { regexp: 'distro=.*', line: 'distro={{ artg_distro }}' } - {regexp: 'distro=.*', line: 'distro={{ artg_distro }}'}
- { regexp: 'source=.*', line: 'source={{ artg_change.branch }}' } - {regexp: 'source=.*', line: 'source={{ artg_change.branch }}'}
loop_control: loop_control:
loop_var: project_item loop_var: project_item
- name: Map project name to DLRN project name - name: Map project name to DLRN project name
register: project_name_mapped register: project_name_mapped
@ -37,7 +37,7 @@
export PROJECT_NAME=$(echo {{ artg_change.project }} | sed "s|openstack/||"); export PROJECT_NAME=$(echo {{ artg_change.project }} | sed "s|openstack/||");
rdopkg findpkg -s $PROJECT_NAME -l rdoinfo | grep ^name | awk '{print $2}' rdopkg findpkg -s $PROJECT_NAME -l rdoinfo | grep ^name | awk '{print $2}'
args: args:
chdir: '{{ build_repo_dir }}/DLRN' chdir: '{{ build_repo_dir }}/DLRN'
changed_when: false changed_when: false
- debug: - debug:
@ -80,7 +80,7 @@
dest: '{{ build_repo_dir }}/DLRN/data/{{ project_name_mapped.stdout }}_distro' dest: '{{ build_repo_dir }}/DLRN/data/{{ project_name_mapped.stdout }}_distro'
refspec: '{{ artg_change.distgit.refspec }}' refspec: '{{ artg_change.distgit.refspec }}'
version: 'FETCH_HEAD' version: 'FETCH_HEAD'
accept_hostkey: yes accept_hostkey: true
when: artg_change.distgit is defined and (artg_repos_dir is not defined or copy_dir is failed) when: artg_change.distgit is defined and (artg_repos_dir is not defined or copy_dir is failed)
- name: Run DLRN - name: Run DLRN
@ -103,7 +103,6 @@
exit $?; exit $?;
done; done;
args: args:
chdir: '{{ build_repo_dir }}/DLRN' chdir: '{{ build_repo_dir }}/DLRN'
register: repo_built register: repo_built
when: artg_build_one|bool when: artg_build_one|bool

View File

@ -1,2 +1,3 @@
---
dependencies: dependencies:
- extras-common - extras-common

View File

@ -1,2 +1,3 @@
---
dependencies: dependencies:
- extras-common - extras-common

View File

@ -1,3 +1,4 @@
---
# Conditional facts to be set which are common to undercloud and overcloud # Conditional facts to be set which are common to undercloud and overcloud
- name: set docker_registry_namespace_used - name: set docker_registry_namespace_used
set_fact: set_fact:
@ -26,8 +27,8 @@
docker_registry_namespace_used: "{{ overcloud_docker_registry_namespace }}" docker_registry_namespace_used: "{{ overcloud_docker_registry_namespace }}"
cacheable: true cacheable: true
when: when:
- container_build_id is not defined - container_build_id is not defined
- use_overcloud_mixed_upgrade|default(false)|bool - use_overcloud_mixed_upgrade|default(false)|bool
tags: tags:
- undercloud-install - undercloud-install
@ -58,4 +59,3 @@
var: container_build_id var: container_build_id
tags: tags:
- undercloud-install - undercloud-install

View File

@ -1,3 +1,4 @@
---
env_vars_to_source_file: env_vars_to_src.sh env_vars_to_source_file: env_vars_to_src.sh
reproducer_quickstart_script: reproducer-quickstart.sh.j2 reproducer_quickstart_script: reproducer-quickstart.sh.j2
reproducer_quickstart_readme_file: "{{ artcl_collect_dir }}/README-reproducer-quickstart.html" reproducer_quickstart_readme_file: "{{ artcl_collect_dir }}/README-reproducer-quickstart.html"

View File

@ -1,2 +1,3 @@
---
dependencies: dependencies:
- extras-common - extras-common

View File

@ -31,4 +31,4 @@
template: template:
src: dump_variables_hostvars.j2 src: dump_variables_hostvars.j2
dest: "{{ dump_vars_log_dir }}/dump_variables_hostvars.json" dest: "{{ dump_vars_log_dir }}/dump_variables_hostvars.json"
become: true become: true

View File

@ -1,2 +1,3 @@
---
dependencies: dependencies:
- common - common

View File

@ -1,2 +1,3 @@
---
dependencies: dependencies:
- extras-common - extras-common

View File

@ -1,3 +1,3 @@
---
dependencies: dependencies:
- extras-common - extras-common

View File

@ -38,4 +38,3 @@
pip: pip:
name: '{{ gated_project_name }}' name: '{{ gated_project_name }}'
state: absent state: absent

View File

@ -1,2 +1,3 @@
---
dependencies: dependencies:
- extras-common - extras-common

View File

@ -1,3 +1,4 @@
---
- name: Inject into image and install packages - name: Inject into image and install packages
include_role: include_role:
name: modify-image name: modify-image
@ -5,5 +6,5 @@
image_to_modify: "{{ ib_repo_image_path }}" image_to_modify: "{{ ib_repo_image_path }}"
modify_script: "{{ ib_repo_workdir }}/install-built-repo.sh" modify_script: "{{ ib_repo_workdir }}/install-built-repo.sh"
modify_image_upload_files: modify_image_upload_files:
- src: "/tmp/gating_repo.tar.gz" - src: "/tmp/gating_repo.tar.gz"
dest: "/tmp/gating_repo.tar.gz" dest: "/tmp/gating_repo.tar.gz"

View File

@ -1,3 +1,4 @@
---
- name: Setup repos on live host - name: Setup repos on live host
shell: > shell: >
set -o pipefail && set -o pipefail &&

View File

@ -1,3 +1,4 @@
---
- name: gather facts used by role - name: gather facts used by role
setup: setup:
gather_subset: "!min,pkg_mgr" gather_subset: "!min,pkg_mgr"

View File

@ -1,2 +1,3 @@
---
dependencies: dependencies:
- extras-common - extras-common

View File

@ -1,3 +1,4 @@
---
- name: ensure libguestfs is installed - name: ensure libguestfs is installed
yum: name=libguestfs-tools-c state=latest yum: name=libguestfs-tools-c state=latest
become: true become: true
@ -57,8 +58,7 @@
{{ item }} {{ item }}
{{ modify_image_working_dir }} {{ modify_image_working_dir }}
environment: environment:
LIBGUESTFS_BACKEND: direct LIBGUESTFS_BACKEND: direct
args: args:
chdir: "{{ modify_image_working_dir }}" chdir: "{{ modify_image_working_dir }}"
with_items: "{{ modify_image_extract_list }}" with_items: "{{ modify_image_extract_list }}"

View File

@ -2,9 +2,9 @@
- name: make sure an image and script are provided - name: make sure an image and script are provided
fail: fail:
msg: msg: |
"In order to use this role image_to_modify and modify_script must be In order to use this role image_to_modify and modify_script must be
provided." provided.
when: image_to_modify is not defined or (modify_script is not defined and modify_image_upload_files == []) when: image_to_modify is not defined or (modify_script is not defined and modify_image_upload_files == [])
- include: libguestfs.yml - include: libguestfs.yml

View File

@ -40,47 +40,47 @@
- become: true - become: true
block: block:
- name: Upload files to image - name: Upload files to image
shell: > shell: >
cp {{ item.src }} {{ mount_tempdir }}/{{ item.dest }}; cp {{ item.src }} {{ mount_tempdir }}/{{ item.dest }};
with_items: "{{ modify_image_upload_files }}" with_items: "{{ modify_image_upload_files }}"
- name: Run script on image - name: Run script on image
shell: > shell: >
chmod 775 {{ mount_tempdir }}; chmod 775 {{ mount_tempdir }};
mount -o bind /dev {{ mount_tempdir }}/dev/; mount -o bind /dev {{ mount_tempdir }}/dev/;
mv {{ mount_tempdir }}/etc/resolv.conf{,_}; mv {{ mount_tempdir }}/etc/resolv.conf{,_};
echo -e "nameserver 8.8.8.8\nnameserver 8.8.4.4" > {{ mount_tempdir }}/etc/resolv.conf; echo -e "nameserver 8.8.8.8\nnameserver 8.8.4.4" > {{ mount_tempdir }}/etc/resolv.conf;
cp {{ modify_script }} {{ mount_tempdir }}/tmp/{{ modify_script|basename }}; cp {{ modify_script }} {{ mount_tempdir }}/tmp/{{ modify_script|basename }};
{% if initramfs_image|bool %}sed -i "s/sudo //g" {{ mount_tempdir }}/tmp/{{ modify_script|basename }};{% endif %} {% if initramfs_image|bool %}sed -i "s/sudo //g" {{ mount_tempdir }}/tmp/{{ modify_script|basename }};{% endif %}
set -o pipefail && chroot {{ mount_tempdir }} /bin/bash /tmp/{{ modify_script|basename }} 2>&1 set -o pipefail && chroot {{ mount_tempdir }} /bin/bash /tmp/{{ modify_script|basename }} 2>&1
{{ timestamper_cmd }} > {{ working_dir }}/{{ modify_script|basename }}.$(date +%s).log; {{ timestamper_cmd }} > {{ working_dir }}/{{ modify_script|basename }}.$(date +%s).log;
mv -f {{ mount_tempdir }}/etc/resolv.conf{_,}; mv -f {{ mount_tempdir }}/etc/resolv.conf{_,};
- name: Extract files from image - name: Extract files from image
shell: cp {{ mount_tempdir }}/{{ item }} {{ modify_image_working_dir }}/; shell: cp {{ mount_tempdir }}/{{ item }} {{ modify_image_working_dir }}/;
with_items: "{{ modify_image_extract_list }}" with_items: "{{ modify_image_extract_list }}"
ignore_errors: true ignore_errors: true
- name: Close initramfs image - name: Close initramfs image
shell: > shell: >
set -o pipefail && set -o pipefail &&
umount {{ mount_tempdir }}/dev/; umount {{ mount_tempdir }}/dev/;
pushd {{ mount_tempdir }}; pushd {{ mount_tempdir }};
find . -print | cpio -o -H newc | gzip > {{ image_to_modify_abs_path.stdout }}; find . -print | cpio -o -H newc | gzip > {{ image_to_modify_abs_path.stdout }};
popd; popd;
rm -rf "{{ mount_tempdir }}"; rm -rf "{{ mount_tempdir }}";
when: initramfs_image|bool when: initramfs_image|bool
- name: Close qcow2 image - name: Close qcow2 image
shell: > shell: >
chroot {{ mount_tempdir }} setfiles /etc/selinux/targeted/contexts/files/file_contexts / ; chroot {{ mount_tempdir }} setfiles /etc/selinux/targeted/contexts/files/file_contexts / ;
umount {{ mount_tempdir }}/dev/; umount {{ mount_tempdir }}/dev/;
umount {{ mount_tempdir }}; umount {{ mount_tempdir }};
kpartx -dv {{ image_to_modify_raw }}; kpartx -dv {{ image_to_modify_raw }};
qemu-img convert -c -f raw -O qcow2 {{ image_to_modify_raw }} {{ image_to_modify_qcow }}; qemu-img convert -c -f raw -O qcow2 {{ image_to_modify_raw }} {{ image_to_modify_qcow }};
rm -rf "{{ image_to_modify_raw }}"; rm -rf "{{ image_to_modify_raw }}";
losetup -d /dev/loop0; losetup -d /dev/loop0;
rm -rf "{{ mount_tempdir }}"; rm -rf "{{ mount_tempdir }}";
chown -R {{ undercloud_user }}: /home/{{ undercloud_user }}/; chown -R {{ undercloud_user }}: /home/{{ undercloud_user }}/;
when: not initramfs_image|bool when: not initramfs_image|bool

View File

@ -1,3 +1,4 @@
---
os_region: "{{ lookup('env', 'OS_REGION_NAME')|default('regionOne') }}" os_region: "{{ lookup('env', 'OS_REGION_NAME')|default('regionOne') }}"
os_tenant: "{{ lookup('env', 'OS_TENANT_ID') }}" os_tenant: "{{ lookup('env', 'OS_TENANT_ID') }}"
os_identity_api_version: "{{ lookup('env', 'OS_IDENTITY_API_VERSION')|default(2) }}" os_identity_api_version: "{{ lookup('env', 'OS_IDENTITY_API_VERSION')|default(2) }}"

View File

@ -1,3 +1,4 @@
---
- name: Delete stack - name: Delete stack
shell: > shell: >
echo "Executing 'openstack stack delete {{ stack_name }} --yes'" >> {{ stack_log }}; echo "Executing 'openstack stack delete {{ stack_name }} --yes'" >> {{ stack_log }};

View File

@ -1,3 +1,4 @@
---
- name: Fail if no auth is provided - name: Fail if no auth is provided
fail: fail:
msg: 'Please source credential rc file from your tenant on cloud' msg: 'Please source credential rc file from your tenant on cloud'
@ -147,54 +148,54 @@
- "{{ groups['subnodes'] }}" - "{{ groups['subnodes'] }}"
# In case of blank centos image we need to create CI user and update inventory # In case of blank centos image we need to create CI user and update inventory
- block: - when: hostvars['subnode-0'].ansible_user != "{{ nodepool_user }}"
block:
- name: Setup user - name: Setup user
user: user:
name: "{{ nodepool_user }}" name: "{{ nodepool_user }}"
groups: wheel groups: wheel
append: yes append: true
become: true become: true
delegate_to: "{{ item}}" delegate_to: "{{ item}}"
with_items: with_items:
- "{{ groups['subnodes'] }}" - "{{ groups['subnodes'] }}"
- name: Setup keys - name: Setup keys
authorized_key: authorized_key:
user: "{{ nodepool_user }}" user: "{{ nodepool_user }}"
state: present state: present
key: "{{ lookup('file', '{{ key_location }}') }}" key: "{{ lookup('file', '{{ key_location }}') }}"
become: true become: true
become_user: "{{ nodepool_user }}" become_user: "{{ nodepool_user }}"
delegate_to: "{{ item}}" delegate_to: "{{ item}}"
with_items: with_items:
- "{{ groups['subnodes'] }}" - "{{ groups['subnodes'] }}"
- name: Allow user to have passwordless sudo - name: Allow user to have passwordless sudo
lineinfile: lineinfile:
dest: /etc/sudoers dest: /etc/sudoers
state: present state: present
line: '{{ nodepool_user }} ALL=(ALL) NOPASSWD:ALL' line: '{{ nodepool_user }} ALL=(ALL) NOPASSWD:ALL'
validate: 'visudo -cf %s' validate: 'visudo -cf %s'
become: true become: true
delegate_to: "{{ item}}" delegate_to: "{{ item}}"
with_items: with_items:
- "{{ groups['subnodes'] }}" - "{{ groups['subnodes'] }}"
- name: Add hosts - name: Add hosts
add_host: add_host:
name: "subnode-{{ item.0 }}" name: "subnode-{{ item.0 }}"
hostname: "{{ item.1.1 }}" hostname: "{{ item.1.1 }}"
groups: "{{ subnode_groups| join(',') }}" groups: "{{ subnode_groups| join(',') }}"
ansible_user: "{{ nodepool_user }}" ansible_user: "{{ nodepool_user }}"
ansible_host: "{{ item.1.1 }}" ansible_host: "{{ item.1.1 }}"
ansible_fqdn: "subnode-{{ item.0 }}" ansible_fqdn: "subnode-{{ item.0 }}"
ansible_private_key_file: "{{ private_key_location }}" ansible_private_key_file: "{{ private_key_location }}"
subnode_public_ip: "{{ item.1.1 }}" subnode_public_ip: "{{ item.1.1 }}"
subnode_private_ip: "{{ item.1.0 }}" subnode_private_ip: "{{ item.1.0 }}"
with_indexed_items: with_indexed_items:
- "{{ subnode_ips.stdout }}" - "{{ subnode_ips.stdout }}"
when: hostvars['subnode-0'].ansible_user != "{{ nodepool_user }}"
- name: Dump hosts to file - name: Dump hosts to file
template: template:

View File

@ -1,3 +1,4 @@
---
heat_template_version: newton heat_template_version: newton
description: > description: >
@ -40,29 +41,29 @@ resources:
private_net: private_net:
type: OS::Neutron::Net type: OS::Neutron::Net
properties: properties:
name: { get_param: private_net_name } name: {get_param: private_net_name}
private_subnet: private_subnet:
type: OS::Neutron::Subnet type: OS::Neutron::Subnet
properties: properties:
network_id: { get_resource: private_net } network_id: {get_resource: private_net}
cidr: { get_param: private_net_cidr } cidr: {get_param: private_net_cidr}
gateway_ip: { get_param: private_net_gateway } gateway_ip: {get_param: private_net_gateway}
allocation_pools: allocation_pools:
- start: { get_param: private_net_pool_start } - start: {get_param: private_net_pool_start}
end: { get_param: private_net_pool_end } end: {get_param: private_net_pool_end}
router: router:
type: OS::Neutron::Router type: OS::Neutron::Router
properties: properties:
external_gateway_info: external_gateway_info:
network: { get_param: public_net_name } network: {get_param: public_net_name}
router_interface: router_interface:
type: OS::Neutron::RouterInterface type: OS::Neutron::RouterInterface
properties: properties:
router_id: { get_resource: router } router_id: {get_resource: router}
subnet_id: { get_resource: private_subnet } subnet_id: {get_resource: private_subnet}
server_security_group: server_security_group:
@ -86,19 +87,19 @@ resources:
type: OS::Heat::ResourceGroup type: OS::Heat::ResourceGroup
depends_on: router_interface depends_on: router_interface
properties: properties:
count: { get_param: subnode_count } count: {get_param: subnode_count}
resource_def: resource_def:
type: "{{ local_working_dir }}/subnode.yaml" type: "{{ local_working_dir }}/subnode.yaml"
properties: properties:
name: "{{ prefix }}subnode-%index%" name: "{{ prefix }}subnode-%index%"
private_net: { get_resource: private_net } private_net: {get_resource: private_net}
private_subnet: { get_resource: private_subnet } private_subnet: {get_resource: private_subnet}
server_security_group: {get_resource: server_security_group} server_security_group: {get_resource: server_security_group}
subnode_flavor: { get_param: subnode_flavor } subnode_flavor: {get_param: subnode_flavor}
public_net_name: { get_param: public_net_name } public_net_name: {get_param: public_net_name}
key_name: { get_param: key_name } key_name: {get_param: key_name}
image: { get_param: image } image: {get_param: image}
outputs: outputs:
subnode_ip_pairs: subnode_ip_pairs:
value: { get_attr: [subnodes, subnode_ip_pair] } value: {get_attr: [subnodes, subnode_ip_pair]}

View File

@ -1,3 +1,4 @@
---
heat_template_version: newton heat_template_version: newton
description: > description: >
@ -33,7 +34,7 @@ resources:
type: OS::Neutron::FloatingIP type: OS::Neutron::FloatingIP
# depends_on: router_interface, subnode_port # depends_on: router_interface, subnode_port
properties: properties:
floating_network: { get_param: public_net_name } floating_network: {get_param: public_net_name}
port_id: {get_attr: [subnode, addresses, {get_param: private_net}, 0, port]} port_id: {get_attr: [subnode, addresses, {get_param: private_net}, 0, port]}
subnode: subnode:
@ -41,17 +42,17 @@ resources:
properties: properties:
name: {get_param: name} name: {get_param: name}
image: {get_param: image} image: {get_param: image}
flavor: { get_param: subnode_flavor } flavor: {get_param: subnode_flavor}
key_name: { get_param: key_name } key_name: {get_param: key_name}
networks: networks:
- network: { get_param: private_net } - network: {get_param: private_net}
- network: { get_param: private_net } - network: {get_param: private_net}
security_groups: security_groups:
- { get_param: server_security_group } - {get_param: server_security_group}
outputs: outputs:
subnode_ip_pair: subnode_ip_pair:
description: IP addresses of subnode in network description: IP addresses of subnode in network
value: value:
- get_attr: [subnode_floating_ip, fixed_ip_address] - get_attr: [subnode_floating_ip, fixed_ip_address]
- get_attr: [subnode_floating_ip, floating_ip_address] - get_attr: [subnode_floating_ip, floating_ip_address]

View File

@ -1,3 +1,4 @@
---
nodepool_cirros_url: http://download.cirros-cloud.net/0.3.5/cirros-0.3.5-x86_64-disk.img nodepool_cirros_url: http://download.cirros-cloud.net/0.3.5/cirros-0.3.5-x86_64-disk.img
nodepool_cirros_dest: /opt/cache/files/cirros-0.3.5-x86_64-disk.img nodepool_cirros_dest: /opt/cache/files/cirros-0.3.5-x86_64-disk.img
nodepool_cirros_checksum: md5:f8ab98ff5e73ebab884d80c9dc9c7290 nodepool_cirros_checksum: md5:f8ab98ff5e73ebab884d80c9dc9c7290
@ -11,7 +12,7 @@ repos:
- https://git.openstack.org/openstack-dev/devstack - https://git.openstack.org/openstack-dev/devstack
- https://git.openstack.org/openstack-infra/devstack-gate - https://git.openstack.org/openstack-infra/devstack-gate
zuul_changes: "{{ lookup('env', 'ZUUL_CHANGES') }}" zuul_changes: "{{ lookup('env', 'ZUUL_CHANGES') }}"
subnode_swap_size: 8388608 # 8GB subnode_swap_size: 8388608 # 8GB
update_subnodes: true update_subnodes: true
rdo_cloud_provider: true rdo_cloud_provider: true
packages_list: packages_list:

View File

@ -9,7 +9,7 @@
- name: Create /etc/nodepool/node_private - name: Create /etc/nodepool/node_private
lineinfile: lineinfile:
create: yes create: true
state: present state: present
name: /etc/nodepool/node_private name: /etc/nodepool/node_private
owner: "{{ ansible_user }}" owner: "{{ ansible_user }}"
@ -18,7 +18,7 @@
- name: Create /etc/nodepool/primary_node_private - name: Create /etc/nodepool/primary_node_private
lineinfile: lineinfile:
create: yes create: true
state: present state: present
name: /etc/nodepool/primary_node_private name: /etc/nodepool/primary_node_private
owner: "{{ ansible_user }}" owner: "{{ ansible_user }}"
@ -46,7 +46,7 @@
- name: Create /etc/nodepool/sub_nodes - name: Create /etc/nodepool/sub_nodes
lineinfile: lineinfile:
create: yes create: true
state: present state: present
name: /etc/nodepool/sub_nodes name: /etc/nodepool/sub_nodes
line: "{{ hostvars[item].subnode_public_ip }}" line: "{{ hostvars[item].subnode_public_ip }}"
@ -61,7 +61,7 @@
- name: Create /etc/nodepool/sub_nodes_private - name: Create /etc/nodepool/sub_nodes_private
lineinfile: lineinfile:
create: yes create: true
state: present state: present
name: /etc/nodepool/sub_nodes_private name: /etc/nodepool/sub_nodes_private
line: "{{ hostvars[item].subnode_private_ip }}" line: "{{ hostvars[item].subnode_private_ip }}"

View File

@ -33,28 +33,28 @@
- when: not yum_contentdir.stat.exists - when: not yum_contentdir.stat.exists
block: block:
- name: Discover package architecture - name: Discover package architecture
command: rpm -q --qf "%{arch}" -f /etc/redhat-release command: rpm -q --qf "%{arch}" -f /etc/redhat-release
register: rpm_arch register: rpm_arch
- debug: - debug:
msg: Package architecture is '{{ rpm_arch.stdout }}' msg: Package architecture is '{{ rpm_arch.stdout }}'
- name: Set contentdir to altarch - name: Set contentdir to altarch
set_fact: set_fact:
yum_contentdir_data: altarch yum_contentdir_data: altarch
when: rpm_arch.stdout in ['aarch64', 'ppc64le'] when: rpm_arch.stdout in ['aarch64', 'ppc64le']
- name: Set contentdir to default centos arch - name: Set contentdir to default centos arch
set_fact: set_fact:
yum_contentdir_data: centos yum_contentdir_data: centos
when: rpm_arch.stdout not in ['aarch64', 'ppc64le'] when: rpm_arch.stdout not in ['aarch64', 'ppc64le']
- name: Populate /etc/yum/vars/contentdir - name: Populate /etc/yum/vars/contentdir
copy: copy:
dest: /etc/yum/vars/contentdir dest: /etc/yum/vars/contentdir
content: "{{ yum_contentdir_data }}" content: "{{ yum_contentdir_data }}"
become: true become: true
- name: Install repos (will be removed by toci_gatetest) - name: Install repos (will be removed by toci_gatetest)
package: package:
@ -98,7 +98,7 @@
service: service:
name: unbound name: unbound
state: started state: started
enabled: yes enabled: true
become: true become: true
- name: start iptables service - name: start iptables service
@ -131,7 +131,7 @@
with_items: with_items:
- "WORKSPACE=/tmp" - "WORKSPACE=/tmp"
- "DEVSTACK_GATE_TIMEOUT=300" - "DEVSTACK_GATE_TIMEOUT=300"
- "REMAINING_TIME=180" # 3 hours for quickstart run - "REMAINING_TIME=180" # 3 hours for quickstart run
# In case of multinode # In case of multinode
- "EXTRA_VARS=' --extra-vars vxlan_mtu=1400'" - "EXTRA_VARS=' --extra-vars vxlan_mtu=1400'"
become: true become: true
@ -139,26 +139,26 @@
- when: update_subnodes|bool - when: update_subnodes|bool
block: block:
- name: Update packages - name: Update packages
yum: yum:
name: '*' name: '*'
state: latest state: latest
become: true become: true
- name: Reboot hosts - name: Reboot hosts
shell: sleep 2 && shutdown -r now shell: sleep 2 && shutdown -r now
async: 1 async: 1
poll: 0 poll: 0
ignore_errors: true ignore_errors: true
become: true become: true
- name: Wait for provisioned hosts to become reachable - name: Wait for provisioned hosts to become reachable
local_action: local_action:
module: wait_for module: wait_for
host: "{{ hostvars[inventory_hostname].subnode_public_ip }}" host: "{{ hostvars[inventory_hostname].subnode_public_ip }}"
port: 22 port: 22
delay: 35 delay: 35
sleep: 10 sleep: 10
state: started state: started
connect_timeout: 10 connect_timeout: 10
timeout: 180 timeout: 180

View File

@ -1,3 +1,4 @@
---
- name: Check if repo should be changed - name: Check if repo should be changed
set_fact: set_fact:
proj: "{{ repo_item.replace('.git', '').split('/')[-2:]|join('/') }}:" proj: "{{ repo_item.replace('.git', '').split('/')[-2:]|join('/') }}:"

View File

@ -3,7 +3,7 @@ release: master
ovb_repo_version: a3786bca1604d6048562af80eca3bcad119e5065 ovb_repo_version: a3786bca1604d6048562af80eca3bcad119e5065
tmp: tmp:
idnum: "{{ 100000 |random }}" idnum: "{{ 100000 |random }}"
os_username: admin os_username: admin
os_password: password os_password: password
@ -19,40 +19,40 @@ ssh_extra_args: '-F "{{ local_working_dir }}/ssh.config.ansible"'
undercloud_key: "{{ local_working_dir }}/id_rsa_undercloud" undercloud_key: "{{ local_working_dir }}/id_rsa_undercloud"
nodepool_user: 'zuul' nodepool_user: 'zuul'
node_groups: node_groups:
- 'undercloud' - 'undercloud'
- 'tester' - 'tester'
templates_dir: "{{ local_working_dir }}/openstack-virtual-baremetal/templates" templates_dir: "{{ local_working_dir }}/openstack-virtual-baremetal/templates"
ovb_dir: "{{ local_working_dir }}/openstack-virtual-baremetal" ovb_dir: "{{ local_working_dir }}/openstack-virtual-baremetal"
heat_template: "{{ templates_dir }}/quintupleo.yaml" heat_template: "{{ templates_dir }}/quintupleo.yaml"
environment_list: environment_list:
- "{{ templates_dir }}/resource-registry.yaml" - "{{ templates_dir }}/resource-registry.yaml"
- "{{ local_working_dir }}/env-{{ idnum }}.yaml" - "{{ local_working_dir }}/env-{{ idnum }}.yaml"
boot_from_volume: false boot_from_volume: false
baremetal_boot_from_volume_size: 50 baremetal_boot_from_volume_size: 50
undercloud_boot_from_volume_size: 50 undercloud_boot_from_volume_size: 50
latest_guest_image: latest_guest_image:
newton: CentOS-7-x86_64-GenericCloud-released-latest newton: CentOS-7-x86_64-GenericCloud-released-latest
ocata: CentOS-7-x86_64-GenericCloud-released-latest ocata: CentOS-7-x86_64-GenericCloud-released-latest
pike: CentOS-7-x86_64-GenericCloud-released-latest pike: CentOS-7-x86_64-GenericCloud-released-latest
queens: CentOS-7-x86_64-GenericCloud-released-latest queens: CentOS-7-x86_64-GenericCloud-released-latest
master: CentOS-7-x86_64-GenericCloud-released-latest master: CentOS-7-x86_64-GenericCloud-released-latest
rhos-11: rhel-7.4-server-x86_64-latest rhos-11: rhel-7.4-server-x86_64-latest
rhos-12: rhel-7.4-server-x86_64-latest rhos-12: rhel-7.4-server-x86_64-latest
rhos-13: rhel-7.4-server-x86_64-latest rhos-13: rhel-7.4-server-x86_64-latest
port_security: true port_security: true
baremetal_ports_template: baremetal_ports_template:
multiple-nics: baremetal-ports-all.yaml multiple-nics: baremetal-ports-all.yaml
multi-nic: baremetal-ports-all.yaml multi-nic: baremetal-ports-all.yaml
public-bond: baremetal-ports-public-bond.yaml public-bond: baremetal-ports-public-bond.yaml
baremetal_port_security_template: baremetal_port_security_template:
none: baremetal-ports-default-port-security.yaml none: baremetal-ports-default-port-security.yaml
multiple-nics: baremetal-ports-all-port-security.yaml multiple-nics: baremetal-ports-all-port-security.yaml
multi-nic: baremetal-ports-all-port-security.yaml multi-nic: baremetal-ports-all-port-security.yaml
public-bond: baremetal-ports-public-bond-port-security.yaml public-bond: baremetal-ports-public-bond-port-security.yaml
existing_key_location: '~/.ssh/id_rsa' existing_key_location: '~/.ssh/id_rsa'
remove_image_from_host_cloud: false remove_image_from_host_cloud: false
@ -76,7 +76,7 @@ provision_net_cidr: 192.0.2.0/24
undercloud_name: 'undercloud-{{ idnum }}' undercloud_name: 'undercloud-{{ idnum }}'
undercloud_image: 'undercloud-{{ idnum }}.qcow2' undercloud_image: 'undercloud-{{ idnum }}.qcow2'
undercloud_flavor: m1.xlarge undercloud_flavor: m1.xlarge
external_net: '10.2.1.0/22' external_net: '10.2.1.0/22'
network_isolation_type: multiple-nics network_isolation_type: multiple-nics
@ -90,11 +90,11 @@ registered_releases:
- rhos-13 - rhos-13
baremetal_driver: >- baremetal_driver: >-
{% if release not in ['newton', 'ocata', 'pike'] -%} {% if release not in ['newton', 'ocata', 'pike'] -%}
"ipmi" "ipmi"
{%- else -%} {%- else -%}
"pxe_ipmitool" "pxe_ipmitool"
{%- endif -%} {%- endif -%}
# OVB environment clean up # OVB environment clean up
cleanup_stacks_keypairs: false cleanup_stacks_keypairs: false

View File

@ -1,2 +1,3 @@
---
dependencies: dependencies:
- extras-common - extras-common

View File

@ -1,14 +1,14 @@
--- ---
- name: Create OVB environment clean up script - name: Create OVB environment clean up script
template: template:
src: "{{ cleanup_stacks_keypairs_script }}" src: "{{ cleanup_stacks_keypairs_script }}"
dest: "{{ local_working_dir }}/cleanup-stacks-keypairs.sh" dest: "{{ local_working_dir }}/cleanup-stacks-keypairs.sh"
mode: 0755 mode: 0755
- name: Remove existing stacks and key pairs - name: Remove existing stacks and key pairs
shell: > shell: >
set -o pipefail && set -o pipefail &&
{{ local_working_dir }}/cleanup-stacks-keypairs.sh 2>&1 {{ timestamper_cmd }} > {{ local_working_dir }}/cleanup-stacks-keypairs.sh 2>&1 {{ timestamper_cmd }} >
{{ cleanup_stacks_keypairs_log }} {{ cleanup_stacks_keypairs_log }}
args: args:
executable: /bin/bash executable: /bin/bash

View File

@ -12,9 +12,9 @@
- name: Clone Openstack Virtual Baremetal repo if it does not exist - name: Clone Openstack Virtual Baremetal repo if it does not exist
git: git:
repo: https://github.com/cybertron/openstack-virtual-baremetal.git repo: https://github.com/cybertron/openstack-virtual-baremetal.git
dest: "{{ local_working_dir }}/openstack-virtual-baremetal" dest: "{{ local_working_dir }}/openstack-virtual-baremetal"
version: "{{ ovb_repo_version }}" version: "{{ ovb_repo_version }}"
- include: ovb-cleanup-stacks-keypairs.yml - include: ovb-cleanup-stacks-keypairs.yml
when: cleanup_stacks_keypairs|bool when: cleanup_stacks_keypairs|bool
@ -29,18 +29,18 @@
- name: copy key inserted in image to undercloud_key location - name: copy key inserted in image to undercloud_key location
copy: copy:
src: "{{ existing_key_location }}{{ item }}" src: "{{ existing_key_location }}{{ item }}"
dest: "{{ local_working_dir }}/id_rsa_undercloud{{ item }}" dest: "{{ local_working_dir }}/id_rsa_undercloud{{ item }}"
mode: 0600 mode: 0600
with_items: with_items:
- "" - ""
- .pub - .pub
- name: Copy deploy stack parameters template - name: Copy deploy stack parameters template
template: template:
src: env.yaml.j2 src: env.yaml.j2
dest: "{{ local_working_dir }}/env-{{ idnum }}.yaml" dest: "{{ local_working_dir }}/env-{{ idnum }}.yaml"
mode: 0755 mode: 0755
- name: Add keypair - name: Add keypair
shell: > shell: >
@ -54,9 +54,9 @@
- name: copy clouds.yaml file - name: copy clouds.yaml file
template: template:
src: clouds.yaml.j2 src: clouds.yaml.j2
dest: "{{ local_working_dir }}/clouds.yaml" dest: "{{ local_working_dir }}/clouds.yaml"
mode: 0755 mode: 0755
- name: Deploy stack - name: Deploy stack
shell: > shell: >
@ -92,19 +92,19 @@
- name: Show stack status - name: Show stack status
debug: debug:
var: stack_status.stdout_lines var: stack_status.stdout_lines
- block: - block:
- name: Get full stack status info in case of failure - name: Get full stack status info in case of failure
shell: openstack stack show "{{ stack_name }}" shell: openstack stack show "{{ stack_name }}"
register: failed_stack register: failed_stack
- name: Show stack status in case of failure - name: Show stack status in case of failure
debug: var="failed_stack.stdout" debug: var="failed_stack.stdout"
- name: Fail if stack did not deploy successfully - name: Fail if stack did not deploy successfully
fail: fail:
msg: "Stack {{ stack_name }} did not deploy successfully. See the stack status message above." msg: "Stack {{ stack_name }} did not deploy successfully. See the stack status message above."
when: stack_status.stdout.find("CREATE_COMPLETE") == -1 when: stack_status.stdout.find("CREATE_COMPLETE") == -1
- name: Return floating ip outputs - name: Return floating ip outputs
@ -124,64 +124,63 @@
- name: Add provisioned undercloud host - name: Add provisioned undercloud host
add_host: add_host:
name: undercloud name: undercloud
hostname: "{{ undercloud_ip }}" hostname: "{{ undercloud_ip }}"
groups: "{{ node_groups| join(',') }}" groups: "{{ node_groups| join(',') }}"
ansible_host: "{{ undercloud_ip }}" ansible_host: "{{ undercloud_ip }}"
ansible_user: root ansible_user: root
ansible_fqdn: undercloud ansible_fqdn: undercloud
ansible_private_key_file: "{{ undercloud_key }}" ansible_private_key_file: "{{ undercloud_key }}"
ansible_ssh_extra_args: "{{ ssh_extra_args }}" ansible_ssh_extra_args: "{{ ssh_extra_args }}"
undercloud_ip: "{{ undercloud_ip }}" undercloud_ip: "{{ undercloud_ip }}"
- name: Wait for provisioned host to become reachable - name: Wait for provisioned host to become reachable
command: command: |
ssh -o BatchMode=yes -o "StrictHostKeyChecking=no" root@{{ undercloud_ip }} -i "{{ undercloud_key }}" ssh -o BatchMode=yes -o "StrictHostKeyChecking=no" root@{{ undercloud_ip }} -i "{{ undercloud_key }}"
register: result register: result
until: result is success until: result is success
retries: 300 retries: 300
delay: 5 delay: 5
- block: - when: ovb_setup_user|default('false')|bool
block:
- name: Setup user - name: Setup user
user: user:
name: "{{ nodepool_user }}" name: "{{ nodepool_user }}"
groups: wheel groups: wheel
append: yes append: true
become: true become: true
delegate_to: undercloud delegate_to: undercloud
- name: Setup keys - name: Setup keys
authorized_key: authorized_key:
user: "{{ nodepool_user }}" user: "{{ nodepool_user }}"
state: present state: present
key: "{{ lookup('file', '{{ undercloud_key }}.pub') }}" key: "{{ lookup('file', '{{ undercloud_key }}.pub') }}"
become: true become: true
become_user: "{{ nodepool_user }}" become_user: "{{ nodepool_user }}"
delegate_to: undercloud delegate_to: undercloud
- name: Allow user to have passwordless sudo - name: Allow user to have passwordless sudo
lineinfile: lineinfile:
dest: /etc/sudoers dest: /etc/sudoers
state: present state: present
line: '{{ nodepool_user }} ALL=(ALL) NOPASSWD:ALL' line: '{{ nodepool_user }} ALL=(ALL) NOPASSWD:ALL'
validate: 'visudo -cf %s' validate: 'visudo -cf %s'
become: true become: true
delegate_to: undercloud delegate_to: undercloud
- name: Add undercloud with non-root user - name: Add undercloud with non-root user
add_host: add_host:
name: subnode-0 name: subnode-0
hostname: "{{ undercloud_ip }}" hostname: "{{ undercloud_ip }}"
groups: subnodes groups: subnodes
ansible_user: "{{ nodepool_user }}" ansible_user: "{{ nodepool_user }}"
ansible_host: "{{ undercloud_ip }}" ansible_host: "{{ undercloud_ip }}"
ansible_private_key_file: "{{ undercloud_key }}" ansible_private_key_file: "{{ undercloud_key }}"
subnode_public_ip: "{{ undercloud_ip }}" subnode_public_ip: "{{ undercloud_ip }}"
subnode_private_ip: 192.168.23.23 subnode_private_ip: 192.168.23.23
when: ovb_setup_user|default('false')|bool
- name: Build nodes.json file to be used as instackenv.json - name: Build nodes.json file to be used as instackenv.json
shell: > shell: >
@ -193,12 +192,11 @@
- name: remove clouds.yaml file - name: remove clouds.yaml file
file: file:
path: "{{ local_working_dir }}/clouds.yaml" path: "{{ local_working_dir }}/clouds.yaml"
state: absent state: absent
- name: Dump hosts to file - name: Dump hosts to file
template: template:
src: ovb_hosts.j2 src: ovb_hosts.j2
dest: '{{ local_working_dir }}/ovb_hosts' dest: '{{ local_working_dir }}/ovb_hosts'
when: ovb_dump_hosts|default('false')|bool when: ovb_dump_hosts|default('false')|bool

View File

@ -1,21 +1,21 @@
--- ---
- name: Clone Openstack Virtual Baremetal repo if it does not exist - name: Clone Openstack Virtual Baremetal repo if it does not exist
git: git:
repo: https://github.com/cybertron/openstack-virtual-baremetal.git repo: https://github.com/cybertron/openstack-virtual-baremetal.git
dest: "{{ local_working_dir }}/openstack-virtual-baremetal" dest: "{{ local_working_dir }}/openstack-virtual-baremetal"
version: "{{ ovb_repo_version }}" version: "{{ ovb_repo_version }}"
- name: copy clouds.yaml file - name: copy clouds.yaml file
template: template:
src: clouds.yaml.j2 src: clouds.yaml.j2
dest: "{{ local_working_dir }}/clouds.yaml" dest: "{{ local_working_dir }}/clouds.yaml"
mode: 0755 mode: 0755
- name: Remove stack - name: Remove stack
os_stack: os_stack:
name: "{{ stack_name }}" name: "{{ stack_name }}"
cloud: "{{ cloud_name }}" cloud: "{{ cloud_name }}"
state: absent state: absent
environment: environment:
OS_CLIENT_CONFIG_FILE: "{{ local_working_dir }}/clouds.yaml" OS_CLIENT_CONFIG_FILE: "{{ local_working_dir }}/clouds.yaml"
ignore_errors: true ignore_errors: true
@ -32,6 +32,5 @@
- name: remove clouds.yaml file - name: remove clouds.yaml file
file: file:
path: "{{ local_working_dir }}/clouds.yaml" path: "{{ local_working_dir }}/clouds.yaml"
state: absent state: absent

View File

@ -1,2 +1,3 @@
---
dependencies: dependencies:
- extras-common - extras-common

View File

@ -1,3 +1,4 @@
---
# Generate a script from templates. These are scripts # Generate a script from templates. These are scripts
# rather than additional ansible tasks so that they can be run # rather than additional ansible tasks so that they can be run
# manually from the undercloud host. # manually from the undercloud host.

View File

@ -158,7 +158,7 @@ hypervisor_wait: true
overcloud_services: overcloud_services:
- name: 'ControllerServices:' - name: 'ControllerServices:'
services: services:
- OS::TripleO::Services::Kernel - OS::TripleO::Services::Kernel
ara_overcloud_db_path: "/var/lib/mistral/overcloud/ara_overcloud.sqlite" ara_overcloud_db_path: "/var/lib/mistral/overcloud/ara_overcloud.sqlite"
override_ansiblecfg: true override_ansiblecfg: true

View File

@ -1,2 +1,3 @@
---
parameters: parameters:
Controller-1::NeutronExternalNetworkBridge: "''" Controller-1::NeutronExternalNetworkBridge: "''"

View File

@ -1,3 +1,4 @@
---
hw_env: hw_env:
env_type: virt env_type: virt
libvirt_type: qemu libvirt_type: qemu

View File

@ -1,3 +1,4 @@
---
hw_env: hw_env:
env_type: virt env_type: virt
libvirt_type: qemu libvirt_type: qemu

View File

@ -1,3 +1,4 @@
---
hw_env: hw_env:
env_type: virt env_type: virt
libvirt_type: qemu libvirt_type: qemu

View File

@ -1,3 +1,4 @@
---
parameters: parameters:
ServiceNetMap: ServiceNetMap:
NeutronTenantNetwork: tenant NeutronTenantNetwork: tenant
@ -7,7 +8,7 @@ parameters:
CinderIscsiNetwork: storage CinderIscsiNetwork: storage
GlanceApiNetwork: storage GlanceApiNetwork: storage
GlanceRegistryNetwork: internal_api GlanceRegistryNetwork: internal_api
KeystoneAdminApiNetwork: ctlplane # allows undercloud to config endpoints KeystoneAdminApiNetwork: ctlplane # allows undercloud to config endpoints
KeystonePublicApiNetwork: internal_api KeystonePublicApiNetwork: internal_api
NeutronApiNetwork: internal_api NeutronApiNetwork: internal_api
HeatApiNetwork: internal_api HeatApiNetwork: internal_api

View File

@ -1,3 +1,4 @@
---
dependencies: dependencies:
- tripleo - tripleo
- extras-common - extras-common

View File

@ -1,3 +1,4 @@
---
# Generate a number of scripts from templates. These are scripts # Generate a number of scripts from templates. These are scripts
# rather than additional ansible tasks so that they can be run # rather than additional ansible tasks so that they can be run
# manually from the undercloud host. # manually from the undercloud host.

View File

@ -1,9 +1,10 @@
---
- name: Deploy the overcloud - name: Deploy the overcloud
shell: > shell: >
set -o pipefail && set -o pipefail &&
{{ working_dir }}/overcloud-deploy.sh 2>&1 {{ timestamper_cmd }} > {{ deploy_log }} {{ working_dir }}/overcloud-deploy.sh 2>&1 {{ timestamper_cmd }} > {{ deploy_log }}
register: deploy_script_result register: deploy_script_result
ignore_errors: True ignore_errors: true
when: step_deploy_overcloud|bool when: step_deploy_overcloud|bool
- name: Export actual used deploy args for persistence to other plays - name: Export actual used deploy args for persistence to other plays

View File

@ -1,3 +1,4 @@
---
- include: pre-deploy.yml - include: pre-deploy.yml
tags: tags:
- overcloud-scripts - overcloud-scripts

View File

@ -1,3 +1,4 @@
---
# This makes the overcloudrc file available locally. This file # This makes the overcloudrc file available locally. This file
# contains credentials for accessing OpenStack API services on the # contains credentials for accessing OpenStack API services on the
# overcloud. # overcloud.

View File

@ -1,3 +1,4 @@
---
# Note.. the order of heat templates and args is very important. The last environment that sets a variable takes precedent. # Note.. the order of heat templates and args is very important. The last environment that sets a variable takes precedent.
- name: Deprecation message for network isolation types - name: Deprecation message for network isolation types
@ -103,14 +104,14 @@
- name: Set cloud-name variables - name: Set cloud-name variables
set_fact: set_fact:
cloud_name_args: >- cloud_name_args: >-
-e {{ working_dir }}/cloud-names.yaml -e {{ working_dir }}/cloud-names.yaml
when: release not in ['mitaka', 'liberty'] when: release not in ['mitaka', 'liberty']
- name: Set the hostname_map config if defined - name: Set the hostname_map config if defined
set_fact: set_fact:
hostnamemap_args: >- hostnamemap_args: >-
-e {{ working_dir }}/hostnamemap.yaml -e {{ working_dir }}/hostnamemap.yaml
when: when:
- groups['overcloud'] is defined - groups['overcloud'] is defined
- groups['overcloud'][0] is defined - groups['overcloud'][0] is defined
@ -150,10 +151,10 @@
- name: set novajoin/TLS everywhere fact - name: set novajoin/TLS everywhere fact
set_fact: set_fact:
tls_everywhere_args: >- tls_everywhere_args: >-
-e {{ overcloud_templates_path }}/environments/services/haproxy-public-tls-certmonger.yaml -e {{ overcloud_templates_path }}/environments/services/haproxy-public-tls-certmonger.yaml
-e {{ overcloud_templates_path }}/environments/ssl/enable-internal-tls.yaml -e {{ overcloud_templates_path }}/environments/ssl/enable-internal-tls.yaml
-e {{ overcloud_templates_path }}/environments/ssl/tls-everywhere-endpoints-dns.yaml -e {{ overcloud_templates_path }}/environments/ssl/tls-everywhere-endpoints-dns.yaml
when: when:
- enable_tls_everywhere|bool - enable_tls_everywhere|bool
- release not in ['mitaka', 'liberty', 'newton'] - release not in ['mitaka', 'liberty', 'newton']
@ -273,4 +274,3 @@
when: when:
- ci_job_end_time is defined - ci_job_end_time is defined
- '"ovb" not in lookup("env", "TOCI_JOBTYPE")' - '"ovb" not in lookup("env", "TOCI_JOBTYPE")'

View File

@ -2,4 +2,4 @@
- hosts: localhost - hosts: localhost
remote_user: root remote_user: root
roles: roles:
- ansible-role-tripleo-overcloud - ansible-role-tripleo-overcloud

View File

@ -1,13 +1,13 @@
--- ---
network_isolation: true network_isolation: true
network_isolation_type: single-nic-vlans # multiple-nics, bond-with-vlans, public-bond network_isolation_type: single-nic-vlans # multiple-nics, bond-with-vlans, public-bond
network_environment_file: network-environment.yaml.j2 network_environment_file: network-environment.yaml.j2
external_network_cidr: 192.168.23.0/24 external_network_cidr: 192.168.23.0/24
undercloud_external_network_cidr: >- undercloud_external_network_cidr: >-
{%- if overcloud_ipv6|bool %}2001:db8:fd00:1000::/64{% else %}10.0.0.1/24{% endif -%} {%- if overcloud_ipv6|bool %}2001:db8:fd00:1000::/64{% else %}10.0.0.1/24{% endif -%}
overcloud_dns_servers: [ '{{ external_network_cidr|nthhost(1) }}' ] overcloud_dns_servers: ['{{ external_network_cidr|nthhost(1) }}']
overcloud_public_vip: "{{ undercloud_external_network_cidr|nthhost(5) }}" overcloud_public_vip: "{{ undercloud_external_network_cidr|nthhost(5) }}"
ssl_overcloud: false ssl_overcloud: false

View File

@ -1,2 +1,3 @@
---
dependencies: dependencies:
- extras-common - extras-common

View File

@ -69,8 +69,8 @@
download_templates_rpm: "{{ download_overcloud_templates_rpm|default('') }}" download_templates_rpm: "{{ download_overcloud_templates_rpm|default('') }}"
prep_post_hook_script: "{{ overcloud_prep_post_hook_script|default('') }}" prep_post_hook_script: "{{ overcloud_prep_post_hook_script|default('') }}"
when: when:
- overcloud_templates_refspec is defined or overcloud_templates_branch is defined - overcloud_templates_refspec is defined or overcloud_templates_branch is defined
- overcloud_templates_repo is defined - overcloud_templates_repo is defined
- name: Copy extra THT config files on the undercloud - name: Copy extra THT config files on the undercloud
copy: copy:

View File

@ -1,3 +1,4 @@
---
dependencies: dependencies:
- extras-common - extras-common
- container-prep - container-prep

View File

@ -1,3 +1,4 @@
---
# Create the scripts that will be used to setup the overcloud images # Create the scripts that will be used to setup the overcloud images
- name: set the service environments for container image prepare - name: set the service environments for container image prepare

View File

@ -6,32 +6,32 @@
when: ansible_python.version.major == 2 when: ansible_python.version.major == 2
block: block:
- command: "{{ python_cmd }} -m pip --version" - command: "{{ python_cmd }} -m pip --version"
register: have_pip register: have_pip
changed_when: false
failed_when: false
- when: have_pip.rc != 0
become: true
block:
- name: check if python setup tool is installed
shell: "{{ python_cmd }} -m easy_install --version"
register: easy_install_exists
changed_when: false changed_when: false
failed_when: false failed_when: false
- name: Install python setuptools (easy_install) - when: have_pip.rc != 0
when: easy_install_exists.rc != 0 become: true
package: block:
state: latest
name:
- python2-setuptools
# python2-setuptools deprecates python-setuptools the former
# one being too old to be usable. included in openstack distro.
- name: easy-install pip - name: check if python setup tool is installed
command: "{{ python_cmd }} -m easy_install pip" shell: "{{ python_cmd }} -m easy_install --version"
register: easy_install_exists
changed_when: false
failed_when: false
- name: Install python setuptools (easy_install)
when: easy_install_exists.rc != 0
package:
state: latest
name:
- python2-setuptools
# python2-setuptools deprecates python-setuptools the former
# one being too old to be usable. included in openstack distro.
- name: easy-install pip
command: "{{ python_cmd }} -m easy_install pip"
- name: Update pip - name: Update pip
pip: pip:

View File

@ -1,2 +1,3 @@
---
dependencies: dependencies:
- extras-common - extras-common

View File

@ -1,3 +1,4 @@
---
# Creat the scripts that will be used to setup flavors for the overcloud # Creat the scripts that will be used to setup flavors for the overcloud
- name: Create overcloud-prep-flavors script - name: Create overcloud-prep-flavors script

View File

@ -1,3 +1,4 @@
---
- include: create-scripts.yml - include: create-scripts.yml
tags: tags:
- undercloud-scripts - undercloud-scripts

View File

@ -1,3 +1,4 @@
---
- name: Prepare the scripts for overcloud flavors - name: Prepare the scripts for overcloud flavors
shell: > shell: >
set -o pipefail && set -o pipefail &&

View File

@ -1,2 +1,3 @@
---
dependencies: dependencies:
- extras-common - extras-common

View File

@ -1,3 +1,4 @@
---
# Create the scripts that will be used to setup the overcloud images # Create the scripts that will be used to setup the overcloud images
- name: Create overcloud prep-images script - name: Create overcloud prep-images script

View File

@ -1,3 +1,4 @@
---
- include: create-scripts.yml - include: create-scripts.yml
tags: tags:
- undercloud-scripts - undercloud-scripts

View File

@ -1,3 +1,4 @@
---
- name: Prepare the overcloud images for deploy - name: Prepare the overcloud images for deploy
shell: > shell: >
set -o pipefail && set -o pipefail &&

View File

@ -1,2 +1,3 @@
---
dependencies: dependencies:
- extras-common - extras-common

View File

@ -1,3 +1,4 @@
---
# Creat the overcloud-prep-network scripts that will be used to setup the undercloud for network isolation # Creat the overcloud-prep-network scripts that will be used to setup the undercloud for network isolation
- name: Create overcloud-prep-network script - name: Create overcloud-prep-network script

View File

@ -1,3 +1,4 @@
---
- include: create-scripts.yml - include: create-scripts.yml
tags: tags:
- undercloud-scripts - undercloud-scripts

Some files were not shown because too many files have changed in this diff Show More