Retire Tripleo: remove repo content

TripleO project is retiring
- https://review.opendev.org/c/openstack/governance/+/905145

this commit remove the content of this project repo

Change-Id: Ic549bdcc76a5e12a0104143fbe79fd0db2c866b0
This commit is contained in:
Ghanshyam Mann 2024-02-24 11:34:11 -08:00
parent 4eec311e76
commit 72ea117f61
589 changed files with 8 additions and 26756 deletions

View File

@ -1,59 +0,0 @@
exclude_paths:
- roles/validate-ui/.travis.yml
- roles/virthost-full-cleanup/tasks/main.yml
# we don't want to see failures from sideloaded repos
- ../tripleo-upgrade/
# These playbooks are from tq repo and checked there
- playbooks/baremetal-full-deploy.yml
- playbooks/baremetal-prep-virthost.yml
- playbooks/deploy-delete.yml
- playbooks/multinode-minion.yml
- playbooks/multinode-multiple-overcloud.yml
- playbooks/multinode.yml
- playbooks/quickstart-extras-standalone.yml
- playbooks/quickstart-extras.yml
- playbooks/scale_nodes.yml
# No any idea why those don't pass linter
- playbooks/build-images-v2.yml
- playbooks/build-test-packages.yml
parseable: true
quiet: false
skip_list:
# TODO(ssbarnea): Gradually remove these skips ASAP
- syntax-check
- internal-error
- unnamed-task
- risky-file-permissions
- ignore-errors
- command-instead-of-module
- meta-no-info
- risky-shell-pipe
- deprecated-command-syntax
- empty-string-compare
- role-name
- experimental
- no-changed-when
- literal-compare
- command-instead-of-shell
- package-latest
- deprecated-local-action
- no-jinja-nesting
verbosity: 1
mock_modules:
- authorized_key
- virt
- ini_file
- openvswitch_bridge
- os_stack
- redhat_subscription
- synchronize
mock_roles:
- tripleo-inventory
- repo-setup
- common
- tripleo-upgrade
- fetch-images
- tripleo
- parts/kvm
- collect-logs

64
.gitignore vendored
View File

@ -1,64 +0,0 @@
# If you want to ignore sour editor temp files, please follow this:
# - create ~/.gitignore, add your content
# - git config --global core.excludesfile '~/.gitignore'
# Byte-compiled / optimized / DLL files
__pycache__/
*.py[cod]
# C extensions
*.so
# Distribution / packaging
.Python
env/
develop-eggs/
dist/
downloads/
eggs/
.eggs/
lib/
lib64/
sdist/
var/
*.egg-info/
.installed.cfg
*.egg
# PyInstaller
# Usually these files are written by a python script from a template
# before PyInstaller builds the exe, so as to inject date/other infos into it.
*.manifest
*.spec
# Installer logs
pip-log.txt
pip-delete-this-directory.txt
# Unit test / coverage reports
htmlcov/
.tox/
.coverage
.coverage.*
.cache
nosetests.xml
coverage.xml
*,cover
# Translations
*.mo
*.pot
# Django stuff:
*.log
# Sphinx documentation
doc/build/
# PyBuilder
target/
# virtualenv
.venv/
# Files created by releasenotes build
releasenotes/build

View File

@ -1,53 +0,0 @@
---
# to bump run: pre-commit autoupdate
repos:
- repo: https://github.com/pre-commit/pre-commit-hooks
rev: v3.3.0
hooks:
- id: end-of-file-fixer
- id: trailing-whitespace
- id: mixed-line-ending
- id: check-byte-order-marker
- id: check-executables-have-shebangs
- id: check-merge-conflict
- id: check-symlinks
- id: debug-statements
- id: check-yaml
files: .*\.(yaml|yml)$
- repo: https://github.com/PyCQA/flake8.git
rev: 3.8.4
hooks:
- id: flake8
- repo: https://github.com/adrienverge/yamllint.git
rev: v1.25.0
hooks:
- id: yamllint
files: \.(yaml|yml)$
types: [file, yaml]
entry: yamllint --strict -f parsable
- repo: https://github.com/ansible/ansible-lint
rev: v5.3.2
hooks:
- id: ansible-lint
always_run: true
pass_filenames: false
# do not add file filters here as ansible-lint does not give reliable
# results when called with individual files.
# https://github.com/ansible/ansible-lint/issues/611
verbose: true
# plugins is the standard collection dir for modules
entry: env ANSIBLE_LIBRARY=plugins ansible-lint --force-color -p -v
additional_dependencies:
- 'ansible-core>=2.11,<2.12'
- repo: https://github.com/openstack-dev/bashate.git
rev: 2.0.0
hooks:
- id: bashate
# Run bashate check for all bash scripts
# Ignores the following rules:
# E006: Line longer than 79 columns (as many scripts use jinja
# templating, this is very difficult)
# E040: Syntax error determined using `bash -n` (as many scripts
# use jinja templating, this will often fail and the syntax
# error will be discovered in execution anyway)
entry: bashate --error . --verbose --ignore=E006,E040

View File

@ -1,10 +0,0 @@
---
extends: default
rules:
line-length:
max: 180
#braces: {min-spaces-inside: 1, max-spaces-inside: 10}
ignore: |
/roles/standalone/tasks/main.yml

201
LICENSE
View File

@ -1,201 +0,0 @@
Apache License
Version 2.0, January 2004
http://www.apache.org/licenses/
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
1. Definitions.
"License" shall mean the terms and conditions for use, reproduction,
and distribution as defined by Sections 1 through 9 of this document.
"Licensor" shall mean the copyright owner or entity authorized by
the copyright owner that is granting the License.
"Legal Entity" shall mean the union of the acting entity and all
other entities that control, are controlled by, or are under common
control with that entity. For the purposes of this definition,
"control" means (i) the power, direct or indirect, to cause the
direction or management of such entity, whether by contract or
otherwise, or (ii) ownership of fifty percent (50%) or more of the
outstanding shares, or (iii) beneficial ownership of such entity.
"You" (or "Your") shall mean an individual or Legal Entity
exercising permissions granted by this License.
"Source" form shall mean the preferred form for making modifications,
including but not limited to software source code, documentation
source, and configuration files.
"Object" form shall mean any form resulting from mechanical
transformation or translation of a Source form, including but
not limited to compiled object code, generated documentation,
and conversions to other media types.
"Work" shall mean the work of authorship, whether in Source or
Object form, made available under the License, as indicated by a
copyright notice that is included in or attached to the work
(an example is provided in the Appendix below).
"Derivative Works" shall mean any work, whether in Source or Object
form, that is based on (or derived from) the Work and for which the
editorial revisions, annotations, elaborations, or other modifications
represent, as a whole, an original work of authorship. For the purposes
of this License, Derivative Works shall not include works that remain
separable from, or merely link (or bind by name) to the interfaces of,
the Work and Derivative Works thereof.
"Contribution" shall mean any work of authorship, including
the original version of the Work and any modifications or additions
to that Work or Derivative Works thereof, that is intentionally
submitted to Licensor for inclusion in the Work by the copyright owner
or by an individual or Legal Entity authorized to submit on behalf of
the copyright owner. For the purposes of this definition, "submitted"
means any form of electronic, verbal, or written communication sent
to the Licensor or its representatives, including but not limited to
communication on electronic mailing lists, source code control systems,
and issue tracking systems that are managed by, or on behalf of, the
Licensor for the purpose of discussing and improving the Work, but
excluding communication that is conspicuously marked or otherwise
designated in writing by the copyright owner as "Not a Contribution."
"Contributor" shall mean Licensor and any individual or Legal Entity
on behalf of whom a Contribution has been received by Licensor and
subsequently incorporated within the Work.
2. Grant of Copyright License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
copyright license to reproduce, prepare Derivative Works of,
publicly display, publicly perform, sublicense, and distribute the
Work and such Derivative Works in Source or Object form.
3. Grant of Patent License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
(except as stated in this section) patent license to make, have made,
use, offer to sell, sell, import, and otherwise transfer the Work,
where such license applies only to those patent claims licensable
by such Contributor that are necessarily infringed by their
Contribution(s) alone or by combination of their Contribution(s)
with the Work to which such Contribution(s) was submitted. If You
institute patent litigation against any entity (including a
cross-claim or counterclaim in a lawsuit) alleging that the Work
or a Contribution incorporated within the Work constitutes direct
or contributory patent infringement, then any patent licenses
granted to You under this License for that Work shall terminate
as of the date such litigation is filed.
4. Redistribution. You may reproduce and distribute copies of the
Work or Derivative Works thereof in any medium, with or without
modifications, and in Source or Object form, provided that You
meet the following conditions:
(a) You must give any other recipients of the Work or
Derivative Works a copy of this License; and
(b) You must cause any modified files to carry prominent notices
stating that You changed the files; and
(c) You must retain, in the Source form of any Derivative Works
that You distribute, all copyright, patent, trademark, and
attribution notices from the Source form of the Work,
excluding those notices that do not pertain to any part of
the Derivative Works; and
(d) If the Work includes a "NOTICE" text file as part of its
distribution, then any Derivative Works that You distribute must
include a readable copy of the attribution notices contained
within such NOTICE file, excluding those notices that do not
pertain to any part of the Derivative Works, in at least one
of the following places: within a NOTICE text file distributed
as part of the Derivative Works; within the Source form or
documentation, if provided along with the Derivative Works; or,
within a display generated by the Derivative Works, if and
wherever such third-party notices normally appear. The contents
of the NOTICE file are for informational purposes only and
do not modify the License. You may add Your own attribution
notices within Derivative Works that You distribute, alongside
or as an addendum to the NOTICE text from the Work, provided
that such additional attribution notices cannot be construed
as modifying the License.
You may add Your own copyright statement to Your modifications and
may provide additional or different license terms and conditions
for use, reproduction, or distribution of Your modifications, or
for any such Derivative Works as a whole, provided Your use,
reproduction, and distribution of the Work otherwise complies with
the conditions stated in this License.
5. Submission of Contributions. Unless You explicitly state otherwise,
any Contribution intentionally submitted for inclusion in the Work
by You to the Licensor shall be under the terms and conditions of
this License, without any additional terms or conditions.
Notwithstanding the above, nothing herein shall supersede or modify
the terms of any separate license agreement you may have executed
with Licensor regarding such Contributions.
6. Trademarks. This License does not grant permission to use the trade
names, trademarks, service marks, or product names of the Licensor,
except as required for reasonable and customary use in describing the
origin of the Work and reproducing the content of the NOTICE file.
7. Disclaimer of Warranty. Unless required by applicable law or
agreed to in writing, Licensor provides the Work (and each
Contributor provides its Contributions) on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
implied, including, without limitation, any warranties or conditions
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
PARTICULAR PURPOSE. You are solely responsible for determining the
appropriateness of using or redistributing the Work and assume any
risks associated with Your exercise of permissions under this License.
8. Limitation of Liability. In no event and under no legal theory,
whether in tort (including negligence), contract, or otherwise,
unless required by applicable law (such as deliberate and grossly
negligent acts) or agreed to in writing, shall any Contributor be
liable to You for damages, including any direct, indirect, special,
incidental, or consequential damages of any character arising as a
result of this License or out of the use or inability to use the
Work (including but not limited to damages for loss of goodwill,
work stoppage, computer failure or malfunction, or any and all
other commercial damages or losses), even if such Contributor
has been advised of the possibility of such damages.
9. Accepting Warranty or Additional Liability. While redistributing
the Work or Derivative Works thereof, You may choose to offer,
and charge a fee for, acceptance of support, warranty, indemnity,
or other liability obligations and/or rights consistent with this
License. However, in accepting such obligations, You may act only
on Your own behalf and on Your sole responsibility, not on behalf
of any other Contributor, and only if You agree to indemnify,
defend, and hold each Contributor harmless for any liability
incurred by, or claims asserted against, such Contributor by reason
of your accepting any such warranty or additional liability.
END OF TERMS AND CONDITIONS
APPENDIX: How to apply the Apache License to your work.
To apply the Apache License to your work, attach the following
boilerplate notice, with the fields enclosed by brackets "{}"
replaced with your own identifying information. (Don't include
the brackets!) The text should be enclosed in the appropriate
comment syntax for the file format. We also recommend that a
file or class name and description of purpose be included on the
same "printed page" as the copyright notice for easier
identification within third-party archives.
Copyright {yyyy} {name of copyright owner}
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

View File

@ -1,19 +1,10 @@
========================
Team and repository tags
========================
This project is no longer maintained.
.. image:: https://governance.openstack.org/tc/badges/tripleo-quickstart-extras.svg
:target: https://governance.openstack.org/tc/reference/tags/index.html
The contents of this repository are still available in the Git
source code management system. To see the contents of this
repository before it reached its end of life, please check out the
previous commit with "git checkout HEAD^1".
.. Change things from this point on
==================================
Extra roles for tripleo-quickstart
==================================
These Ansible role are extending the functionality of tripleo-quickstart to do
end-to-end deployment and testing of TripleO.
The documentation of each role is located in the individual role folders, and
general usage information is in the `tripleo-quickstart documentation
<https://docs.openstack.org/tripleo-quickstart/latest/>`_.
For any further questions, please email
openstack-discuss@lists.openstack.org or join #openstack-dev on
OFTC.

View File

@ -1,3 +0,0 @@
# debian requirements (linters)
libffi-dev [platform:dpkg]
libssl-dev [platform:dpkg]

View File

@ -1,27 +0,0 @@
#!/usr/bin/env bash
rm -rf releasenotes/build
sphinx-build -a -E -W \
-d releasenotes/build/doctrees \
-b html \
releasenotes/source releasenotes/build/html
BUILD_RESULT=$?
UNCOMMITTED_NOTES=$(git status --porcelain | \
awk '$1 == "M" && $2 ~ /releasenotes\/notes/ {print $2}')
if [ "${UNCOMMITTED_NOTES}" ]; then
cat <<EOF
REMINDER: The following changes to release notes have not been committed:
${UNCOMMITTED_NOTES}
While that may be intentional, keep in mind that release notes are built from
committed changes, not the working directory.
EOF
fi
exit ${BUILD_RESULT}

View File

@ -1,62 +0,0 @@
#!/usr/bin/python
# coding: utf-8 -*-
#
# (c) 2017, Chandan Kumar <chkumar@redhat.com>
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
# implied.
# See the License for the specific language governing permissions and
# limitations under the License.
from jinja2 import Environment
from jinja2 import exceptions
import os
import sys
DOCUMENTATION = '''
---
python script to read and parse jinja2 templates
---
'''
# Jinja Environment
env = Environment()
def get_jinja_files(dir_path):
"""Get all the .j2 and .jinja2 files"""
files_path = []
for root, subdir, files in os.walk(dir_path):
for file in files:
if file.endswith('.j2') or file.endswith('.jinja2'):
files_path.append(os.path.join(root, file))
return files_path
def validate_jinja_templates(file_path):
"""Validate jinja templates file"""
try:
with open(file_path) as fobj:
env.parse(fobj.read())
except exceptions.TemplateSyntaxError as e:
print('%s has template error: %s' % (file_path, e))
raise(e)
if __name__ == "__main__":
base_dir = os.path.join(os.path.dirname(sys.argv[0]), "..")
os.chdir(base_dir)
jinja_files = get_jinja_files(base_dir)
for file_path in jinja_files:
validate_jinja_templates(file_path)
print('Validating: %s' % file_path)

View File

@ -1,80 +0,0 @@
---
environment_type: ovb_host_cloud
# undercloud.conf
undercloud_network_cidr: 192.168.24.0/24
undercloud_local_ip: 192.168.24.1/24
undercloud_network_gateway: 192.168.24.1
undercloud_undercloud_public_vip: 192.168.24.2
undercloud_undercloud_admin_vip: 192.168.24.3
undercloud_local_interface: eth1
undercloud_masquerade_network: 192.168.24.0/24
undercloud_dhcp_start: 192.168.24.5
undercloud_dhcp_end: 192.168.24.24
undercloud_inspection_iprange: 192.168.24.25,192.168.24.39
undercloud_external_network_cidr: 10.0.0.0/24
undercloud_undercloud_nameservers: "{{ overcloud_dns_servers }}"
# template copies
undercloud_instackenv_template: "{{ local_working_dir }}/instackenv.json"
image_cache_dir: "{{ working_dir }}/images-cache"
# baremetal settings
undercloud_type: ovb
step_root_device_size: false
hw_env: ovb_host_cloud
enable_vbmc: false
ovb_setup_connectivity: true
step_set_undercloud_hostname: true
# adjust mtus
step_adjust_mtu: true
undercloud_local_mtu: "{{ mtu }}"
overcloud_neutron_global_physnet_mtu: "{{ mtu }}"
# set up external interface
external_interface: eth2
external_interface_ip: 10.0.0.1
external_interface_netmask: 255.255.255.0
# images to copy to the undercloud
images:
- name: "{{ overcloud_image }}"
url: "{{ overcloud_image_url }}"
type: tar
- name: ipa_images
url: "{{ ipa_image_url }}"
type: tar
network_environment_args:
ExternalNetCidr: "{{ undercloud_external_network_cidr }}"
ExternalAllocationPools: >
[{'start': '{{ undercloud_external_network_cidr|nthhost(10) }}',
'end': '{{ undercloud_external_network_cidr|nthhost(50) }}'}]
NeutronExternalNetworkBridge: ""
ControlPlaneSubnetCidr: "{{ undercloud_network_cidr|ipaddr('prefix') }}"
ControlPlaneDefaultRoute: "{{ undercloud_network_cidr|nthhost(1) }}"
EC2MetadataIp: "{{ undercloud_network_cidr|nthhost(1) }}"
ExternalInterfaceDefaultRoute: "{{ undercloud_external_network_cidr|nthhost(1) }}"
InternalApiNetCidr: 172.20.0.0/24
InternalApiAllocationPools: [{"start": "172.20.0.10", "end": "172.20.0.250"}]
StorageNetCidr: 172.18.0.0/24
StorageAllocationPools: [{"start": "172.18.0.10", "end": "172.18.0.250"}]
StorageMgmtNetCidr: 172.19.0.0/24
StorageMgmtAllocationPools: [{"start": "172.19.0.10", "end": "172.19.0.250"}]
TenantNetCidr: 172.16.0.0/24
TenantAllocationPools: [{"start": "172.16.0.10", "end": "172.16.0.250"}]
DnsServers: "{{ overcloud_dns_servers }}"
PublicVirtualFixedIPs: [{"ip_address": "{{ undercloud_external_network_cidr|nthhost(5) }}"}]
NeutronGlobalPhysnetMtu: 1350
BondInterfaceOvsOptions: bond_mode=balance-slb
# overcloud deployment settings
flavor_args: ""
validation_args: " "
# validate / tempest config
floating_ip_cidr: 10.0.0.0/24
public_net_pool_start: 10.0.0.50
public_net_pool_end: 10.0.0.100
public_net_gateway: 10.0.0.1

View File

@ -1,40 +0,0 @@
os_username: "{{ lookup('env','OS_USERNAME') }}"
os_password: "{{ lookup('env','OS_PASSWORD') }}"
os_tenant_name: "{{ lookup('env','OS_TENANT_NAME') }}"
os_auth_url: "{{ lookup('env','OS_AUTH_URL') }}"
os_region_name: "{{ lookup('env','OS_REGION_NAME') }}"
cloud_name: rdocloud
latest_guest_image:
ocata: CentOS-7-x86_64-GenericCloud-1708
pike: CentOS-7-x86_64-GenericCloud-1708
queens: CentOS-7-x86_64-GenericCloud-1708
master: CentOS-7-x86_64-GenericCloud-1708
bmc_flavor: ci.m1.small
baremetal_flavor: ci.m1.large
undercloud_flavor: ci.m1.large
provision_net_cidr: 192.168.24.0/24
nameserver_from_virthost: false
custom_nameserver:
- 38.145.33.91
undercloud_undercloud_nameservers: "{{ custom_nameserver }}"
undercloud_undercloud_timezone: 'UTC'
external_net: '38.145.32.0/22'
overcloud_dns_servers: "{{ custom_nameserver }}"
ntp_server: 'pool.ntp.org'
overcloud_image_url: http://images.rdoproject.org/{{ release }}/rdo_trunk/{{ dlrn_hash|default(dlrn_hash_tag) }}/overcloud-full.tar
ipa_image_url: http://images.rdoproject.org/{{ release }}/rdo_trunk/{{ dlrn_hash|default(dlrn_hash_tag) }}/ironic-python-agent.tar
docker_registry_host: docker.io
docker_registry_namespace: "tripleo{{ release }}"
mtu: 1350
mtu_interface:
- eth0
- eth1
- "{% if network_isolation|default(true)|bool %}eth2{% endif %}"
undercloud_local_mtu: "{{ mtu }}"
overcloud_neutron_global_physnet_mtu: "{{ mtu }}"

View File

@ -1,45 +0,0 @@
---
os_username: "{{ lookup('env','OS_USERNAME') }}"
os_password: "{{ lookup('env','OS_PASSWORD') }}"
os_tenant_name: "{{ lookup('env','OS_TENANT_NAME') }}"
os_auth_url: "{{ lookup('env','OS_AUTH_URL') }}"
os_region_name: "{{ lookup('env', 'OS_REGION_NAME') }}"
cloud_name: rdocloud
latest_guest_image:
ocata: CentOS-7-x86_64-GenericCloud-1708
pike: CentOS-7-x86_64-GenericCloud-1708
queens: CentOS-7-x86_64-GenericCloud-1708
master: CentOS-7-x86_64-GenericCloud-1708
bmc_flavor: m1.medium
baremetal_flavor: m1.large
undercloud_flavor: m1.large2
provision_net_cidr: 192.168.24.0/24
nameserver_from_virthost: false
custom_nameserver:
- 1.1.1.1
- 1.0.0.1
undercloud_undercloud_nameservers: "{{ custom_nameserver }}"
external_net: '38.145.32.0/22'
overcloud_dns_servers: "{{ custom_nameserver }}"
ntp_server: 'pool.ntp.org'
overcloud_image_url: http://images.rdoproject.org/{{ release }}/rdo_trunk/{{ dlrn_hash|default(dlrn_hash_tag) }}/overcloud-full.tar
ipa_image_url: http://images.rdoproject.org/{{ release }}/rdo_trunk/{{ dlrn_hash|default(dlrn_hash_tag) }}/ironic-python-agent.tar
docker_registry_host: docker.io
docker_registry_namespace: "tripleo{{ release }}"
mtu: 1350
mtu_interface:
- eth0
- eth1
- "{% if network_isolation|default(true)|bool %}eth2{% endif %}"
undercloud_local_mtu: "{{ mtu }}"
overcloud_neutron_global_physnet_mtu: "{{ mtu }}"
# Browbeat settings
elastic_host: browbeat.test.com
grafana_host: browbeat.test.com

View File

@ -1,7 +0,0 @@
---
artcl_gzip: true
artcl_artifact_url: https://artifacts.ci.centos.org/rdo
artcl_publish: true
artcl_use_rsync: true
artcl_rsync_use_daemon: true
artcl_rsync_path: rdo@artifacts.ci.centos.org::rdo

View File

@ -1,70 +0,0 @@
---
# We run tempest in this topology instead of ping test.
# We set introspection to true and use only the minimal amount of nodes
# for this job, but test all defaults otherwise.
step_introspect: true
# Tell tripleo how we want things done.
extra_args: >-
--ntp-server pool.ntp.org
# This featureset is extremely resource intensive, so we disable telemetry
# in order to reduce the overall memory footprint
# Disabled by default in ussuri
telemetry_args: >-
{% if release in ['queens', 'stein', 'train'] %}
-e {{ overcloud_templates_path }}/environments/disable-telemetry.yaml
{% endif %}
network_isolation: true
network_isolation_type: 'single-nic-vlans'
containerized_overcloud: true
# This enables TLS for the undercloud which will also make haproxy bind to the
# configured public-vip and admin-vip.
undercloud_generate_service_certificate: true
# This enables the deployment of the overcloud with SSL.
ssl_overcloud: false
# If `run_tempest` is `true`, run tempests tests, otherwise do not
# run them.
test_ping: true
run_tempest: false
tempest_workers: 4
# Config for custom tripleo-heat-templates, used in overcloud-prep-config
# overcloud_templates_path: /home/stack/tripleo-heat-templates
# overcloud_templates_repo: https://opendev.org/openstack/tripleo-heat-templates
# use templates_branch when not testing with an unmerged review
# overcloud_templates_branch: master
# use templates_refspec when testing with an unmerged review
# overcloud_templates_refspec:
# options below direct automatic doc generation by tripleo-collect-logs
artcl_gen_docs: true
artcl_create_docs_payload:
included_deployment_scripts:
- undercloud-install
- overcloud-custom-tht-script
- overcloud-prep-containers
- overcloud-prep-flavors
- overcloud-prep-images
- overcloud-prep-network
- overcloud-deploy
- overcloud-deploy-post
- overcloud-validate
included_static_docs:
- env-setup-virt
table_of_contents:
- env-setup-virt
- undercloud-install
- overcloud-custom-tht-script
- overcloud-prep-containers
- overcloud-prep-flavors
- overcloud-prep-images
- overcloud-prep-network
- overcloud-deploy
- overcloud-deploy-post
- overcloud-validate

View File

@ -1,108 +0,0 @@
---
# NOTE(hrybacki): This is a hotfix to be removed after
# https://review.openstack.org/#/c/414167/ has been merged.
validation_args: ""
control_memory: 16384
control_vcpu: 4
# Define single controller node with two computes to allow for scaling
overcloud_nodes:
- name: control_0
flavor: control
virtualbmc_port: 6230
- name: compute_0
flavor: compute
virtualbmc_port: 6231
- name: compute_1
flavor: compute
virtualbmc_port: 6232
# If `run_tempest` is `true`, run tempests tests, otherwise do not
# run them.
run_tempest: false
tempest_config: false
enable_pacemaker: true
network_isolation: true
network_isolation_type: 'single-nic-vlans'
deploy_timeout: 75
# General deployment info
libvirt_args: "--libvirt-type qemu"
flavor_args: >-
--control-flavor {{flavor_map.control
if flavor_map is defined and 'control' in flavor_map else 'oooq_control'}}
--compute-flavor {{flavor_map.compute
if flavor_map is defined and 'compute' in flavor_map else 'oooq_compute'}}
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
# Pull out scale_extra_args so the same var can be reused for the call to
# `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_args: >
--{{ node_to_scale }}-scale {{ final_scale_value }} {{ scale_extra_configs }}
--ntp-server pool.ntp.org
# Scale deployment info
node_to_scale: compute # Type of node to scale
initial_scale_value: 1 # Initial number of nodes to deploy
final_scale_value: 2 # Number of additional nodes to add during the scale
# Scale deployment arguments
scale_args: >-
{{ libvirt_args }}
{{ flavor_args }}
{{ timeout_args }}
{{ pacemaker_args }}
{{ scale_extra_args }}
# Options below direct automatic doc generation by collect-logs
artcl_gen_docs: true
artcl_create_docs_payload:
included_deployment_scripts:
- undercloud-install
- overcloud-custom-tht-script
- overcloud-prep-flavors
- overcloud-prep-images
- overcloud-prep-network
- overcloud-deploy
- overcloud-deploy-post
- overcloud-validate
- scale-deployment
- delete-node
included_static_docs:
- env-setup-virt
table_of_contents:
- env-setup-virt
- undercloud-install
- overcloud-custom-tht-script
- overcloud-prep-flavors
- overcloud-prep-images
- overcloud-prep-network
- overcloud-deploy
- overcloud-deploy-post
- overcloud-validate
- scale-deployment
- delete-node
- overcloud-validate
# Path to tripleo-heat-templates
overcloud_templates_path: /usr/share/openstack-tripleo-heat-templates
# Sample call
# ./deploy.sh -v --playbook scale_nodes --config-file config/scale/scale_compute.yml

View File

@ -1,6 +0,0 @@
---
# this file is intentionally left blank, it can be used to pass the "local"
# parameter to the collect-logs.sh CI script, resulting in using the default
# settings, collecting logs locally but not attempting to upload them anywhere
# we need at least one dummy value here
artcl_placeholder: true

View File

@ -1,33 +0,0 @@
---
# baremetal settings
step_introspect: true
network_isolation_type: public-bond
network_isolation: true
# template copies
baremetal_nic_configs: "{{ local_working_dir }}/openstack-virtual-baremetal/bond-network-templates/nic-configs"
use_resource_registry_nic_configs: true
# This enables container deployments with Pike and later
containerized_overcloud: >-
{% if release in ['newton', 'ocata'] -%}
false
{%- else -%}
true
{%- endif -%}
delete_docker_cache: true
extra_args: " --control-flavor baremetal --compute-flavor baremetal "
# This featureset is extremely resource intensive, so we disable telemetry
# in order to reduce the overall memory footprint
# Disabled by default in ussuri
telemetry_args: >-
{% if release in ['queens', 'stein', 'train'] %}
-e {{ overcloud_templates_path }}/environments/disable-telemetry.yaml
{% endif %}
run_tempest: false
tempest_config: false
test_ping: true
enable_pacemaker: true

View File

@ -1,33 +0,0 @@
---
# baremetal settings
step_introspect: true
network_isolation_type: multiple-nics
network_isolation: true
# template copies
baremetal_nic_configs: "{{ local_working_dir }}/openstack-virtual-baremetal/network-templates/nic-configs"
use_resource_registry_nic_configs: true
# This enables container deployments Pike and after
containerized_overcloud: >-
{% if release in ['newton', 'ocata'] -%}
false
{%- else -%}
true
{%- endif -%}
delete_docker_cache: true
extra_args: " --control-flavor baremetal --compute-flavor baremetal "
# This featureset is extremely resource intensive, so we disable telemetry
# in order to reduce the overall memory footprint
# This is not required in newton
telemetry_args: >-
{% if release not in ['newton', 'ocata'] %}
-e {{ overcloud_templates_path }}/environments/disable-telemetry.yaml
{% endif %}
run_tempest: false
tempest_config: false
test_ping: true
enable_pacemaker: true

View File

@ -1,5 +0,0 @@
---
artcl_publish: true
artcl_use_zuul_swift_upload: true
artcl_swift_container: artifacts
artcl_full_artifact_url: "{{ lookup('env', 'SWIFT_artifacts_URL') }}"

View File

@ -1,4 +0,0 @@
openstackdocstheme>=2.0.0 # Apache-2.0
sphinx>=2.0.0,!=2.1.0 # BSD
reno>=2.5.0 # Apache-2.0

View File

@ -1,12 +0,0 @@
ansible-core>=2.11,<2.12
ansi2html # GPL (soft-dependency of pytest-html)
docker
paramiko>=2.5.0 # LGPL (soft-dependency of docker that enables ssh protocol)
pytest
pytest-cov
pytest-html
pytest-metadata>=2.0.1,<3.0.0
pytest-molecule>=1.3.0,<1.3.1
mock
molecule>=3.0,<3.1
selinux>=0.2.1

View File

@ -1,20 +0,0 @@
---
- include: baremetal-prep-virthost.yml
when: undercloud_type == 'virtual' and environment_type is defined
- include: ovb-setup.yml
when: undercloud_type == 'ovb'
- include: baremetal-full-freeipa.yml
when: deploy_supplemental_node|default(false)|bool
- include: baremetal-undercloud.yml
when: undercloud_type == 'baremetal' and environment_type is defined
- include: baremetal-quickstart-extras.yml
- include: overcloud-validate-ha.yml
when: validate_ha_overcloud|default(false)|bool
- include: browbeat-minimal.yml
when: enable_minimal_browbeat|default(false)|bool

View File

@ -1,132 +0,0 @@
---
- name: Run inventory to add supplemental node
hosts: undercloud
gather_facts: false
tags:
- freeipa-setup
tasks:
- include_role:
name: tripleo-inventory
vars:
inventory: extra_node
- name: Add supplemental IP to /etc/hosts
lineinfile:
line: "{{ supplemental_node_ip }} {{ freeipa_server_hostname }}"
path: /etc/hosts
become: true
- name: set the freeipa_internal_ip
set_fact:
freeipa_internal_ip: "{{ supplemental_node_ip }}"
cacheable: true
- name: Deploy the FreeIPA server
hosts: supplemental
gather_facts: true
tags:
- freeipa-setup
tasks:
- name: Create /etc/ci directory for supplemental
become: true
file:
path: /etc/ci
state: directory
owner: root
group: root
mode: 0755
- name: Slurp the contents of mirror_info.sh from undercloud
become: true
slurp:
src: '/etc/ci/mirror_info.sh'
register: mirror_info_sh
delegate_to: undercloud
- name: Write mirror_info.sh contents to file on supplemental
become: true
copy:
dest: '/etc/ci/mirror_info.sh'
content: |
{{ mirror_info_sh['content'] | b64decode }}
- include_role:
name: repo-setup
vars:
repo_setup_dir: /home/{{ supplemental_user|default('centos') }}
- name: Set eth2 public IP address
shell: |
ip a add dev eth2 {{ supplemental_node_ip }}/24;
ip l set eth2 up;
ip link set dev eth2 mtu 1450;
ping 10.0.0.1 -c 4 -q;
become: true
changed_when: false
- include_role:
name: freeipa-setup
- name: Use supplemental node as DNS server
hosts: undercloud
gather_facts: false
tags:
- freeipa-setup
tasks:
- name: ensure that DHCP doesn't overwrite DNS settings (CentOS/RHEL >= 8)
become: true
when:
- ansible_os_family == 'RedHat'
- ansible_distribution_major_version is version(8, '>=')
block:
- name: set 'dns=none' in NetworkManager config file
ini_file:
path: /etc/NetworkManager/NetworkManager.conf
state: present
no_extra_spaces: true
section: main
option: dns
value: none
backup: true
- name: reload NetworkManager service
service:
name: NetworkManager
state: reloaded
- name: disable unbound service
become: true
service:
name: unbound
state: stopped
ignore_errors: true
- name: remove any existing entries from the resolv.conf file
become: true
lineinfile:
path: /etc/resolv.conf
regexp: "^nameserver "
state: absent
- name: set IPA server domain search
become: true
lineinfile:
path: /etc/resolv.conf
insertafter: '^search'
line: "search ooo.test"
state: present
- name: set IPA server as primary DNS provider
become: true
lineinfile:
path: /etc/resolv.conf
insertafter: '^search'
line: "nameserver {{ freeipa_internal_ip }}"
state: present
- name: print content of 'resolv.conf' after modifications
become: true
debug:
msg: "Content of resolv.conf: {{ lookup('file', '/etc/resolv.conf') }}"

View File

@ -1,57 +0,0 @@
---
- name: Prepare the undercloud networks for the overcloud deployment
hosts: undercloud
gather_facts: false
roles:
- overcloud-prep-network
tags:
- overcloud-prep-network
- name: copy over config files
hosts: undercloud
gather_facts: false
roles:
- overcloud-prep-config
tags:
- overcloud-prep-config
- name: Perpare the baremetal overcloud
hosts: undercloud
gather_facts: true
roles:
- baremetal-prep-overcloud
tags:
- baremetal-prep-overcloud
- name: Prepare overcloud containers
hosts: undercloud
gather_facts: false
roles:
- role: overcloud-prep-containers
tags:
- overcloud-prep-containers
- name: Prepare the overcloud images for deployment
hosts: undercloud
gather_facts: false
roles:
- overcloud-prep-images
tags:
- overcloud-prep-images
- name: Prepare overcloud flavors
hosts: undercloud
gather_facts: false
roles:
- {role: overcloud-prep-flavors,
when: step_overcloud_prep_flavors|default(true)|bool}
tags:
- overcloud-prep-flavors
- name: Prepare the SSL Configuration for the overcloud deployment
hosts: undercloud
gather_facts: false
roles:
- {role: overcloud-ssl}
tags:
- overcloud-ssl

View File

@ -1,78 +0,0 @@
---
- name: Run dump vars on all!localhost
hosts: all:!localhost:!127.0.0.2
roles:
- dump_vars
- name: Ensure the overcloud nodes are added to the generated inventory
hosts: undercloud
gather_facts: true
tags:
- overcloud-validate
vars:
inventory: all
roles:
- tripleo-inventory
ignore_errors: true
# Execute sanity checks agsinst the overcloud deployment
- name: setup dstat performance monitoring
hosts: all:!localhost:!127.0.0.2:!undercloud:!virthost
tags:
- overcloud-validate
roles:
- {role: validate-perf,
when: validate_performance|bool and use_os_tempest | default(true) | bool}
ignore_errors: true
- name: Sanity check the overcloud services
hosts: undercloud
tags:
- overcloud-validate
gather_facts: false
roles:
- {role: validate-sanity-checks,
when: run_sanity_checks|default(false)|bool}
# Validate the deployment
- name: Execute netstat for port audit
hosts: overcloud
vars:
execute_netstat: true
roles:
- overcloud-network-discovery
tags:
- overcloud-validate
# Execute tempest against the overcloud deployment
- name: Validate the deployment
hosts: undercloud
tasks:
- include_tasks: tasks/tempest.yml
vars:
tempest_install_method: distro
tempest_cloud_name: 'overcloud'
when: use_os_tempest | default(true)
environment:
# Disable ssl waarnings
CURL_CA_BUNDLE: ""
tags:
- overcloud-validate
- name: Kill netstat
hosts: overcloud
vars:
kill_netstat: true
roles:
- overcloud-network-discovery
tags:
- overcloud-validate
- name: Delete the overcloud
hosts: undercloud
tags:
- overcloud-delete
gather_facts: false
roles:
- {role: overcloud-delete,
when: step_delete_overcloud|default(false)|bool}

View File

@ -1,22 +0,0 @@
---
- name: Deploy the overcloud
hosts: undercloud
gather_facts: false
tasks:
- name: Deploy the overcloud
include_role:
name: overcloud-deploy
tags:
- overcloud-deploy
- name: Check the overcloud_deployment_result.json if this is CI job
tags:
- overcloud-deploy
block:
- name: ensure the deployment result has been read into memory
include_vars: "{{ local_working_dir }}/overcloud_deployment_result.json"
delegate_to: localhost
# overcloud_deploy_result = ["failed", "passed"]
- name: did the deployment pass or fail?
debug: var=overcloud_deploy_result
failed_when: overcloud_deploy_result == "failed"
delegate_to: localhost

View File

@ -1,34 +0,0 @@
---
- name: Deploy the undercloud
hosts: undercloud
gather_facts: true
roles:
- undercloud-deploy
tags:
- undercloud-deploy
- name: Validate the undercloud
hosts: undercloud
roles:
- {role: validate-undercloud,
when: run_validate_undercloud|default(false)|bool}
tags:
- validate-undercloud
- name: Download amphora image for octavia
hosts: undercloud
gather_facts: false
tags:
- octavia
roles:
- {role: octavia-amphora-download,
when: download_amphora is defined and download_amphora|bool}
- name: Build images for quickstart
hosts: undercloud
gather_facts: false
roles:
- {role: build-images, when: to_build|default(false)|bool}
tags:
- get-images
- images

View File

@ -1,205 +0,0 @@
---
# Add the virthost to the in-memory inventory. The inventory is not
# wirtten out to disk unless you call the `rebuild-inventory` role.
- name: Add the virthost to the inventory
hosts: localhost
tasks:
- name: Add virthost
add_host:
name: "{{ virthost }}"
groups: "virthost"
ansible_fqdn: "{{ virthost }}"
ansible_user: "root"
ansible_host: "{{ virthost }}"
ansible_private_key_file: "{{ ansible_private_key_file_location | default('') }}"
- include: teardown-provision.yml
# The `provision.yml` playbook is responsible for
# creating an inventory entry for our `virthost` and for creating an
# unprivileged user on that host for use by our virtual environment.
- include: provision.yml
# These teardown tasks only make sense after running provision.yml,
# because they assume they are connecting as the `stack` user rather
# than `root`.
- include: teardown-nodes.yml
- include: teardown-environment.yml
- name: setup yum repos on virthost
hosts: virthost
gather_facts: true
roles:
- repo-setup
tags:
- provision
# The `environment/setup` role performs any tasks that require `root`
# access on the target host.
- name: Install libvirt packages and configure networks
hosts: virthost
tags:
- environment
roles:
- environment/setup
- name: Check whether to build images
hosts: virthost
gather_facts: true
roles:
- check-to-build-or-not-to-build
- name: Add firewalld services and ports
hosts: virthost
gather_facts: false
tasks:
- include_role:
name: baremetal-prep-virthost
tasks_from: add_services_ports_firewalld.yml
when:
- ansible_distribution == 'RedHat'
- ansible_distribution_major_version|int >= 8
- name: Find latest Centos image and set facts for undercloud base image.
hosts: virthost
gather_facts: true
tasks:
- block:
- name: Discover latest CentOS qcow2 image
include_role:
name: discover-latest-image
- name: set_fact for undercloud base image
set_fact:
baseos_undercloud_image_url: "{{ discovered_image_url }}"
baseos_image: "{{ ansible_distribution | lower }}"
baseos_image_type: qcow2
baseos_md5sum: "{{ discovered_md5sum }} {{ discovered_image_name }}"
cacheable: true
when:
- ansible_distribution == 'CentOS'
- ansible_distribution_major_version is version(9, '>=')
- name: Setup undercloud and baremetal vms and networks in libvirt
hosts: virthost
gather_facts: true
vars:
baseos: true
roles:
- libvirt/setup
# Add the undercloud node to the generated
# inventory.
- name: Inventory the undercloud
hosts: localhost
gather_facts: true
vars:
inventory: undercloud
roles:
- tripleo-inventory
- name: Set to_build on undercloud
hosts: undercloud
gather_facts: true
tasks:
- name: set_fact for to_build on undercloud
set_fact:
to_build: "{{ hostvars[groups['virthost'][0]]['to_build'] }}"
cacheable: true
- name: set_fact for image_cache_dir on undercloud
set_fact:
image_cache_dir: "{{ working_dir }}/images-cache"
cacheable: true
- name: set_fact for libguestfs_mode on undercloud
set_fact:
libguestfs_mode: false
cacheable: true
# Always build images even if running a periodic-* named job
# in a check pipeline for testing
- name: Always build images in periodic
set_fact:
to_build: true
cacheable: true
when: "'periodic' in zuul.job"
- name: Setup the undercloud
hosts: undercloud
gather_facts: true
vars:
non_root_user_setup: false
roles:
- undercloud-setup
- name: Remove ens3 if not required
hosts: undercloud
gather_facts: false
tasks:
- include_role:
name: baremetal-prep-virthost
tasks_from: remove_ens3.yml
when:
- ansible_distribution == 'CentOS'
- ansible_distribution_major_version|int >= 8
- name: Ensure locale has LANG=en_US.UTF-8
hosts: undercloud
gather_facts: false
tasks:
- include_role:
name: baremetal-prep-virthost
tasks_from: set_locale_UTF_8
when:
- ansible_distribution == 'RedHat'
- ansible_distribution_major_version|int >= 8
- name: Prepare the host for PXE forwarding
hosts: virthost
gather_facts: true
roles:
- baremetal-prep-virthost
- name: Get images for quickstart
hosts: undercloud
gather_facts: true
vars:
ib_repo_image_inject: "{{ not to_build|bool }}"
ib_repo_run_live: false
modify_image_vc_ram: 4096
modify_image_vc_cpu: 4
modify_image_vc_verbose: true
tasks:
- include_role:
name: fetch-images
when: not to_build|bool
- include_role:
name: repo-setup
vars:
repo_inject_image_path: "/home/{{ undercloud_user }}/{{ overcloud_image }}.qcow2"
repo_run_live: false
when: not to_build|bool
- include_role:
name: repo-setup
vars:
repo_inject_image_path: "/home/{{ undercloud_user }}/ironic-python-agent.initramfs"
repo_run_live: false
initramfs_image: true
libguestfs_mode: false
when: not to_build|bool
- include_role:
name: install-built-repo
vars:
ib_repo_image_path: "/home/{{ undercloud_user }}/{{ overcloud_image }}.qcow2"
when: compressed_gating_repo is defined and not to_build|bool
- include_role:
name: install-built-repo
vars:
ib_repo_image_path: "/home/{{ undercloud_user }}/ironic-python-agent.initramfs"
initramfs_image: true
libguestfs_mode: false
when: compressed_gating_repo is defined and not to_build|bool

View File

@ -1,5 +0,0 @@
---
- import_playbook: baremetal-full-undercloud.yml
- import_playbook: baremetal-full-overcloud-prep.yml
- import_playbook: baremetal-full-overcloud.yml
- import_playbook: baremetal-full-overcloud-validate.yml

View File

@ -1,96 +0,0 @@
---
- name: Provision undercloud by directly calling provisioning script
hosts: localhost
pre_tasks:
- name: Provision script execution
shell: >
set -o pipefail &&
{{ baremetal_provisioning_script }} 2>&1 | tee
"{{ local_working_dir }}/baremetal_provision.log"
when: step_provide_undercloud|bool
- name: Add the undercloud VM to the inventory
add_host:
name: "{{ undercloud_eth0_ip }}"
groups: undercloud
ansible_user: "root"
ansible_private_key_file: "{{ ansible_private_key_file_location | default('') }}"
ansible_ssh_common_args: '-o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no'
- name: Copy the private key to the expected location
copy:
src: "{{ ansible_private_key_file_location }}"
dest: "{{ local_working_dir }}/id_rsa_undercloud"
mode: 0600
- name: Inventory the undercloud
hosts: localhost
gather_facts: true
vars:
inventory: undercloud
roles:
- tripleo-inventory
- name: Setup repositories
hosts: undercloud
gather_facts: true
roles:
- repo-setup
tags:
- undercloud-repo-setup
- name: Install packages
hosts: undercloud
gather_facts: false
roles:
- baremetal-undercloud/packages
tags:
- undercloud-pkgs-install
# Small playbook with logic for when to build images or not.
# The logic there can be completely overridden by setting the
# to_build variable.
- include: to-build-or-not-to-build.yml
- name: Run DLRN gate role and install repo
hosts: undercloud
vars:
artg_compressed_gating_repo: "${HOME}/gating_repo.tar.gz"
artg_repos_dir: "{{ repo_clone_dir|default('/opt/stack/new') }}"
ib_create_web_repo: "{{ to_build|bool }}"
roles:
- {role: build-test-packages, when: build_test_packages|default(false)|bool}
- {role: install-built-repo, when: compressed_gating_repo is defined}
tags:
- build
- name: Get images for quickstart
hosts: undercloud
gather_facts: false
vars:
ib_repo_image_inject: "{{ not to_build|bool }}"
ib_repo_run_live: false
modify_image_vc_ram: 4096
modify_image_vc_cpu: 4
modify_image_vc_verbose: true
roles:
- {role: fetch-images,
when: not to_build|bool}
- {role: repo-setup,
repo_inject_image_path: "$HOME/{{ overcloud_image }}.qcow2",
repo_run_live: false,
when: not to_build|bool}
- {role: repo-setup,
repo_inject_image_path: "$HOME/ironic-python-agent.initramfs",
repo_run_live: false,
initramfs_image: true,
libguestfs_mode: false,
when: not to_build|bool}
- {role: install-built-repo,
ib_repo_image_path: "$HOME/{{ overcloud_image }}.qcow2",
when: compressed_gating_repo is defined and not to_build|bool}
- {role: install-built-repo,
ib_repo_image_path: "$HOME/ironic-python-agent.initramfs",
initramfs_image: true,
libguestfs_mode: false,
when: compressed_gating_repo is defined and not to_build|bool}

View File

@ -1,39 +0,0 @@
---
- name: Baremetal undercloud install
hosts: localhost
roles:
- baremetal-undercloud
tags:
- baremetal-undercloud
- name: Add the undercloud node to the generated inventory
hosts: localhost
gather_facts: true
roles:
- tripleo-inventory
tags:
- undercloud-inventory
- name: Setup repositories
hosts: undercloud
gather_facts: true
roles:
- repo-setup
tags:
- undercloud-repo-setup
- name: Install packages
hosts: undercloud
gather_facts: false
roles:
- baremetal-undercloud/packages
tags:
- undercloud-pkgs-install
- name: Fetch the overcloud images
hosts: undercloud
gather_facts: false
roles:
- fetch-images
tags:
- overcloud-fetch-images

View File

@ -1,31 +0,0 @@
---
- name: Add the virthost to the inventory
hosts: localhost
tasks:
- name: Add virthost
add_host:
name: "{{ virthost }}"
groups: "virthost"
ansible_fqdn: "{{ virthost }}"
ansible_user: "root"
ansible_host: "{{ virthost }}"
tags:
- provision
- name: Inventory the virthost
hosts: localhost
gather_facts: true
roles:
- tripleo-inventory
tags:
- provision
- include: teardown-provision.yml
- include: provision.yml
- name: Build images
hosts: virthost
roles:
- build-images

View File

@ -1,31 +0,0 @@
---
- name: Add the virthost to the inventory
hosts: localhost
tasks:
- name: Add virthost
add_host:
name: "{{ virthost }}"
groups: "virthost"
ansible_fqdn: "{{ virthost }}"
ansible_user: "root"
ansible_host: "{{ virthost }}"
tags:
- provision
- name: Inventory the virthost
hosts: localhost
gather_facts: true
roles:
- tripleo-inventory
tags:
- provision
- include: teardown.yml
- include: provision.yml
- name: Build test packages using DLRN
hosts: virthost
roles:
- build-test-packages

View File

@ -1,17 +0,0 @@
---
- name: Add virthost to inventory
hosts: localhost
tasks:
- name: Add the virthost to the inventory
add_host:
name: "{{ virthost }}"
groups: "virthost"
ansible_fqdn: "{{ virthost }}"
ansible_user: "root"
ansible_host: "{{ virthost }}"
- name: Clean up tripleo packages and libvirt
hosts: virthost
gather_facts: false
roles:
- virthost-full-cleanup

View File

@ -1,26 +0,0 @@
---
- name: Run dump vars on all!localhost
hosts: all:!localhost:!127.0.0.2
roles:
- dump_vars
- name: Ensure the overcloud nodes are added to the generated inventory
hosts: undercloud
gather_facts: true
tags:
- collect-logs
vars:
inventory: all
roles:
- tripleo-inventory
ignore_errors: true
- name: Collect logs
hosts: all:!localhost:!127.0.0.2
roles:
- collect-logs
- name: Create docs, publish logs
hosts: localhost
roles:
- {role: collect-logs, artcl_collect: false}

View File

@ -1,57 +0,0 @@
---
- name: Build containers for content provider job
hosts: undercloud
tasks:
- name: Build containers for CentOS 8
include_role:
name: standalone
tasks_from: containers
apply:
tags:
- standalone
when: ansible_distribution_major_version is version('8', '>=')
- name: Build containers for CentOS 7
when: ansible_distribution_major_version is version('8', '<')
block:
- name: Include pre tasks from build-containers role
vars:
buildcontainers_venv: false
include_role:
name: build-containers
tasks_from: pre
- name: Check for gating repo
stat:
path: "/etc/yum.repos.d/gating.repo"
register: new_repo
- name: Set proper repos
set_fact:
buildcontainers_rpm_setup_config: >-
http://{{ ansible_default_ipv4.address }}/delorean.repo,
http://{{ ansible_default_ipv4.address }}/delorean-current.repo,
{% if new_repo.stat.exists %}
http://{{ ansible_default_ipv4.address }}/gating.repo,
{% endif %}
{% if release in ['queens'] %}
http://{{ ansible_default_ipv4.address }}/quickstart-centos-ceph-luminous.repo,
http://{{ ansible_default_ipv4.address }}/quickstart-centos-extras.repo,
http://{{ ansible_default_ipv4.address }}/quickstart-centos-opstools.repo,
http://{{ ansible_default_ipv4.address }}/quickstart-centos-updates.repo,
http://{{ ansible_default_ipv4.address }}/quickstart-centos7-rt.repo,
{% else %}
http://{{ ansible_default_ipv4.address }}/delorean-{{ ci_branch }}-build-deps.repo,
{% endif %}
http://{{ ansible_default_ipv4.address }}/quickstart-centos-qemu.repo,
http://{{ ansible_default_ipv4.address }}/delorean-{{ ci_branch }}-deps.repo
- name: Build containers for provider job
vars:
buildcontainers_venv: false
include_role:
name: build-containers
tags:
- standalone
- undercloud

View File

@ -1,16 +0,0 @@
---
# This is the playbook used by the `quickstart.sh` script.
- import_playbook: quickstart-extras.yml
- name: Collect logs, create docs, publish
hosts: all:!localhost
gather_facts: false
roles:
- {role: tripleo-collect-logs, artcl_collect: true}
- name: test overcloud deletion
hosts: undercloud
gather_facts: false
roles:
- {role: overcloud-delete}

View File

@ -1,50 +0,0 @@
---
# First, deploy the undercloud. This will also ensure the inventory is properly
# populated with the subnode-1 host and all the needed data.
- hosts: undercloud
gather_facts: true
tags:
- standalone
tasks:
- name: Run External Data Plane management role
include_role:
name: external_data_plane_management
tasks_from: prepare_node.yml
# Now that we have the updated inventory, we can get to subnode-1 using the
# correct data. Let's bootstrap it!
- hosts: subnode-1
gather_facts: true
tags:
- standalone
tasks:
- name: Run External Data Plane management role
include_role:
name: external_data_plane_management
tasks_from: prepare_node.yml
# On undercloud:
# + Deploy standalone
# + Deploy the external compute from within the undercloud
# + Validate external compute
- hosts: undercloud
gather_facts: false
tags:
- standalone
tasks:
- name: Deploy standalone
include_role:
name: external_data_plane_management
tasks_from: deploy_standalone.yml
- name: Deploy remote compute
vars:
target_host: 'subnode-1'
include_role:
name: external_data_plane_management
tasks_from: compute_services_on_target_host.yml
- name: Validate EDPM deploy
vars:
target_host: 'subnode-1'
include_role:
name: external_data_plane_management
tasks_from: validate_edpm.yml

View File

@ -1,8 +0,0 @@
---
# This playbooks is responsible for gating changes in tripleo-quickstart or
# tripleo-quickstart-extras with a possibility to depend on changes from the
# other repo
- name: Gate quickstart changes
hosts: localhost
roles:
- gate-quickstart

View File

@ -1,4 +0,0 @@
---
- import_playbook: quickstart.yml
- import_playbook: multinode-undercloud.yml
- import_playbook: multinode-undercloud-minion.yml

View File

@ -1,79 +0,0 @@
---
##########################
# Prepare for deployment #
##########################
# From tripleo-quickstart/playbooks
- import_playbook: quickstart.yml
- import_playbook: multinode-undercloud.yml
- import_playbook: multinode-overcloud-prep.yml
##################################
# Deploy First stack - overcloud #
##################################
- name: Deploy the overcloud
hosts: undercloud
gather_facts: false
environment:
TRIPLEO_ROOT: "{{ lookup('env','TRIPLEO_ROOT') }}"
tasks:
- name: Deploy the overcloud
include_role:
name: overcloud-deploy
- name: Check the overcloud_deployment_result.json if this is CI job
tags:
- overcloud-deploy
block:
- name: ensure the deployment result has been read into memory
include_vars: "{{ local_working_dir }}/overcloud_deployment_result.json"
delegate_to: localhost
# overcloud_deploy_result = ["failed", "passed"]
- name: did the deployment pass or fail?
debug: var=overcloud_deploy_result
failed_when: overcloud_deploy_result == "failed"
delegate_to: localhost
#######################################
# Deploy Second stack - overcloud-two #
#######################################
- name: Deploy the second overcloud
hosts: undercloud
gather_facts: false
environment:
TRIPLEO_ROOT: "{{ lookup('env','TRIPLEO_ROOT') }}"
vars:
stack_name: "overcloud-two"
overcloud_cloud_name: "{{ stack_name }}.localdomain"
overcloud_cloud_name_internal: "{{ stack_name }}.internalapi.localdomain"
overcloud_cloud_name_storage: "{{ stack_name }}.storage.localdomain"
overcloud_cloud_name_storage_management: "{{ stack_name }}.storagemgmt.localdomain"
overcloud_cloud_name_ctlplane: "{{ stack_name }}.ctlplane.localdomain"
tasks:
- name: Deploy the second overcloud
include_role:
name: overcloud-deploy
- name: Check the overcloud_deployment_result.json if this is CI job
tags:
- overcloud-deploy
block:
- name: ensure the deployment result has been read into memory
include_vars: "{{ local_working_dir }}/overcloud_deployment_result.json"
delegate_to: localhost
# overcloud_deploy_result = ["failed", "passed"]
- name: did the deployment pass or fail?
debug: var=overcloud_deploy_result
failed_when: overcloud_deploy_result == "failed"
delegate_to: localhost
######################################
# Run tempest on overcloud-two stack #
######################################
# From tripleo-quickstart/playbooks
- import_playbook: multinode-validate.yml
vars:
tempest_cloud_name: 'overcloud-two'

View File

@ -1,29 +0,0 @@
---
- name: Deploy the overcloud control stack
hosts: undercloud
gather_facts: false
environment:
TRIPLEO_ROOT: "{{ lookup('env','TRIPLEO_ROOT') }}"
tasks:
- name: Deploy the overcloud
include_role:
name: overcloud-deploy
vars:
overcloud_roles: "{{ overcloud_roles_mixed }}"
topology_map: "{{ topology_map_mixed }}"
tags:
- overcloud-deploy
- name: Check the overcloud_deployment_result.json if this is CI job
tags:
- overcloud-deploy
block:
- name: ensure the deployment result has been read into memory
include_vars: "{{ local_working_dir }}/overcloud_deployment_result.json"
delegate_to: localhost
# overcloud_deploy_result = ["failed", "passed"]
- name: did the deployment pass or fail?
debug: var=overcloud_deploy_result
failed_when: overcloud_deploy_result == "failed"
delegate_to: localhost

View File

@ -1,32 +0,0 @@
---
- name: Add the overcloud nodes to the generated inventory
hosts: undercloud
gather_facts: true
tags:
- overcloud-deploy
vars:
inventory: multinode_mixed_os
roles:
- tripleo-inventory
- name: Create configs on subnodes
hosts: overcloud_compute
roles:
- role: repo-setup
when: not mixed_upgrade|default(false)|bool
tasks:
- name: Create a clean hosts file on subnodes
copy:
dest: /etc/hosts
content: |
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
become: true
- name: Run atop on overcloud node if configured
include_role:
name: undercloud-setup
tasks_from: atop
tags:
- undercloud-setup

View File

@ -1,40 +0,0 @@
---
- name: Run overcloud prep config
hosts: undercloud
gather_facts: false
roles:
- role: overcloud-prep-config
# only run when we know we have to, save time otherwise
when: mixed_upgrade|default(false)|bool
tags:
- overcloud-prep-config
- name: Run overcloud prep roles
hosts: undercloud
gather_facts: false
roles:
- {role: overcloud-prep-images,
step_overcloud_image: false,
step_glance_upload: true,
step_register: false}
- name: Prepare for containerized deployment
hosts: undercloud
gather_facts: false
tags:
- overcloud-prep-containers
roles:
- role: overcloud-prep-containers
use_overcloud_mixed_upgrade: "{{ mixed_upgrade|default(false) }}"
- name: Ensure openvswitch is started and enabled
hosts: overcloud
tags:
- overcloud-deploy
tasks:
- name: Ensure openvswitch is started and enabled
become: true
service:
name: openvswitch
state: started
enabled: true

View File

@ -1,40 +0,0 @@
---
# the yum repos ALWAYS need to change
- name: Configure next minor release repository on overcloud nodes
hosts: overcloud
gather_facts: false
tags:
- overcloud-update
vars:
repo_setup_script: "repo-setup-update.sh"
repo_setup_log: "repo-setup-update.log"
repo_setup_run_update: false
# This should not be enabled because the updating of the packages occurs
# durring the upgrade process. For general installation it's ok to have
# this enabled, but this needs to be disabled for upgrades
ib_gating_repo_update: false
roles:
- role: repo-setup
when:
- minor_update|default(false)|bool
- not mixed_os|default(false)|bool
- name: Update containers file before minor update
hosts: undercloud
gather_facts: false
tags:
- overcloud-update
roles:
- role: container-update
when:
- minor_update|default(false)|bool
- not mixed_os|default(false)|bool
- name: Run tripleo-upgrade role to update the overcloud
hosts: undercloud
gather_facts: true
tags:
- overcloud-update
roles:
- role: tripleo-upgrade
when: overcloud_update|default(false)|bool

View File

@ -1,66 +0,0 @@
---
# the yum repos ALWAYS need to change
- name: Configure next release repository in the undercloud
hosts: overcloud
tags:
- overcloud-upgrade
gather_facts: false
vars:
repo_setup_script: "repo-setup-{{ release }}.sh"
repo_setup_log: "repo-setup-{{ release }}.log"
# Avoid running yum update, only set up repos
repo_setup_run_update: false
# This should not be enabled because the updating of the packages occurs
# durring the upgrade process. For general installation it's ok to have
# this enabled, but this needs to be disabled for upgrades
ib_gating_repo_update: false
roles:
- role: repo-setup
when: containerized_overcloud_upgrade|default(false)|bool
# note: in upstream CI the gerrit change is built on the content-provider
# this task will be skipped upstream
- name: Build the gerrit changes on the relevant release for the upgrade
hosts: overcloud
tags:
- build
gather_facts: false
vars:
repo_setup_script: "repo-setup-{{ release }}.sh"
repo_setup_log: "repo-setup-{{ release }}.log"
# Avoid running yum update, only set up repos
repo_setup_run_update: false
artg_compressed_gating_repo: "${HOME}/gating_repo.tar.gz"
# This should not be enabled because the updating of the packages occurs
# durring the upgrade process. For general installation it's ok to have
# this enabled, but this needs to be disabled for upgrades
ib_gating_repo_update: false
roles:
- role: build-test-packages
- role: install-built-repo
when: hostvars['undercloud']['compressed_gating_repo'] is defined and mixed_upgrade|default(false)|bool
- name: Prepare containers for Upgrade
hosts: undercloud
gather_facts: false
tags:
- overcloud-prep-containers
roles:
- role: overcloud-prep-containers
# This need the new repo in place.
update_containers: true
# Do not overwrite the deployment log if any.
overcloud_prep_containers_log: "upgrade_overcloud_prep_containers.log"
overcloud_prep_containers_script: "upgrade_overcloud_prep_containers.sh"
when: containerized_overcloud_upgrade|default(false)|bool
- name: Run tripleo-upgrade role to upgrade overcloud
hosts: undercloud
gather_facts: true
tags:
- overcloud-upgrade
tasks:
- name: Include TripleO upgrade role
include_role:
name: tripleo-upgrade
when: overcloud_upgrade|default(false)|bool or ffu_overcloud_upgrade|default(false)|bool

View File

@ -1,26 +0,0 @@
---
- name: Deploy the overcloud
hosts: undercloud
gather_facts: false
environment:
TRIPLEO_ROOT: "{{ lookup('env','TRIPLEO_ROOT') }}"
tasks:
- name: Deploy the overcloud
include_role:
name: overcloud-deploy
tags:
- overcloud-deploy
- name: Check the overcloud_deployment_result.json if this is CI job
tags:
- overcloud-deploy
block:
- name: ensure the deployment result has been read into memory
include_vars: "{{ local_working_dir }}/overcloud_deployment_result.json"
delegate_to: localhost
# overcloud_deploy_result = ["failed", "passed"]
- name: did the deployment pass or fail?
debug: var=overcloud_deploy_result
failed_when: overcloud_deploy_result == "failed"
delegate_to: localhost

View File

@ -1,28 +0,0 @@
---
- name: Add the nodes to the generated inventory
hosts: undercloud
gather_facts: true
vars:
inventory: multinode
roles:
- tripleo-inventory
tags:
- standalone
- name: Setup the IPA server
hosts: subnode-1
tags:
- standalone
tasks:
- include_role:
name: ipa-multinode
tasks_from: ipaserver-subnode-install.yml
- name: Setup the undercloud for IPA server
hosts: undercloud
tags:
- standalone
tasks:
- include_role:
name: ipa-multinode
tasks_from: ipaserver-undercloud-setup.yml

View File

@ -1,39 +0,0 @@
---
- name: Discover a real branch for a running job
hosts: undercloud
tags:
- standalone
- undercloud
tasks:
- name: Set branch for building containers check jobs
set_fact:
ci_branch: "{{ job.zuul.branch | regex_replace('(stable|cloudsig)/', '') }}"
cacheable: true
when: job.zuul is defined
- name: Set branch for building containers branchless
set_fact:
ci_branch: "{{ job.branch_override | regex_replace('(stable|cloudsig)/', '') }}"
cacheable: true
when: job.branch_override is defined
- name: Add the overcloud nodes to the generated inventory
hosts: undercloud
gather_facts: true
tags:
- standalone
- undercloud
vars:
inventory: multinode
roles:
- tripleo-inventory
- name: Prepare the undercloud for installation
hosts: undercloud
roles:
- undercloud-setup
tags:
- standalone
- undercloud
- import_playbook: content-provider-containers.yml

View File

@ -1,32 +0,0 @@
---
- name: Add the overcloud nodes to the generated inventory
hosts: undercloud
gather_facts: true
tags:
- standalone
vars:
inventory: multinode
roles:
- tripleo-inventory
- name: Enable nested virtualization on the host
hosts: undercloud
gather_facts: true
roles:
- parts/kvm
tags:
- nested_virt
- name: Prepare the undercloud for installation
hosts: undercloud
roles:
- undercloud-setup
tags:
- standalone
- name: Test available repos for repoclosure
hosts: undercloud
roles:
- repoclosure
tags:
- standalone

View File

@ -1,131 +0,0 @@
---
# Opening up repo-setup as cached variables can cause issue, see
# https://bugs.launchpad.net/tripleo/+bug/1795367
- name: Standalone upgrade repos setup and host upgrade
hosts: undercloud
tasks:
- name: Standalone upgrade get new dlrn hash.
include_role:
name: repo-setup
tasks_from: get-dlrn-hash
- name: Standalone upgrade get new dlrn hash.
include_role:
name: repo-setup
tasks_from: get-dlrn-hash-newest
- name: Standalone upgrade generate new dlrn repo-setup script.
include_role:
name: repo-setup
tasks_from: create-repo-script
vars:
repo_setup_script: repo_setup_upgrade.sh
repo_setup_run_update: false
# when yum_config_module is enabled
repo_cmd_before_setup_script: repo_cmd_before_setup_upgrade.sh
repo_setup_new_script: repo_setup_upgrade_new.sh
repo_cmd_after_setup_script: repo_cmd_after_setup_upgrade.sh
# The next task triggers the yum upgrade command in as
# repo_setup_run_update is true in release files by default.
- name: Standalone upgrade setup new repos
include_role:
name: repo-setup
tasks_from: setup_repos
vars:
repo_setup_log: repo_setup_upgrade.log
repo_setup_script: repo_setup_upgrade.sh
when: not use_yum_config_module|default(false)|bool
# Run setup_repos_new tasks when using yum_config_module
- name: Standalone upgrade setup new repos using yum-config module
include_role:
name: repo-setup
tasks_from: setup_repos_new
vars:
repo_setup_log: repo_setup_upgrade.log
repo_cmd_before_setup_script: repo_cmd_before_setup_upgrade.sh
repo_setup_new_script: repo_setup_upgrade_new.sh
repo_cmd_after_setup_script: repo_cmd_after_setup_upgrade.sh
when: use_yum_config_module|default(false)|bool
- name: Check and enable the component-ci-testing repo if present
become: true
when: job.component is defined
block:
- name: Stat for the component-ci-testing repo file
stat:
path: "/etc/yum.repos.d/{{ job.component }}-component.repo"
register: component_repo
- name: Enable the component-ci-testing repo if we have one
ini_file:
path: "/etc/yum.repos.d/{{ job.component }}-component.repo"
option: enabled
value: '1'
section: "{{ job.component }}"
no_extra_spaces: true
when:
- component_repo.stat.isreg is defined
- component_repo.stat.isreg
tags:
- standalone-upgrade
# This is what is gating the patch in the N version in a N-1->N
# upgrade.
- name: Standalone upgrade runs DLRN gate role and install repo
hosts: undercloud
vars:
artg_compressed_gating_repo: "/home/{{ undercloud_user }}/gating_repo.tar.gz"
# This should not be enabled because the updating of the packages occurs
# durring the upgrade process. For general installation it's ok to have
# this enabled, but this needs to be disabled for upgrades
ib_gating_repo_update: false
roles:
- build-test-packages
- {role: install-built-repo, when: compressed_gating_repo is defined}
tags:
- build
# NOTE(aschultz): nested virt causes problems in CI so we default to qemu
# and do not do the dynamic virt lookup.
- name: Standalone Upgrade
hosts: undercloud
vars:
standalone_libvirt_type: "{{ standalone_virt_type|default('qemu') }}"
roles:
- standalone-upgrade
tags:
- standalone-upgrade
# Remove me when os_tempest tempest init gets fixed
- name: Tempest workspace workaround
hosts: undercloud
tasks:
- name: Nuke tempest workspace
file:
path: "{{ item }}"
state: absent
with_items:
- "{{ ansible_user_dir }}/tempest"
- "{{ ansible_user_dir }}/.tempest"
ignore_errors: true
- name: Validate the Standalone upgrade
hosts: undercloud
# Note(chkumar246): Moved the os_tempest related var at the top
# of play level in order to have scope for the whole of the play
# https://bugs.launchpad.net/tripleo/+bug/1838496
vars:
tempest_install_method: distro
tempest_cloud_name: 'standalone'
tempest_cidr: '192.168.24.0/24'
tasks:
- include_tasks: tasks/tempest.yml
when: use_os_tempest | default(true)
environment:
# Disable ssl warnings
CURL_CA_BUNDLE: ""
tags:
- standalone-upgrade

View File

@ -1,79 +0,0 @@
---
- name: Add the overcloud nodes to the generated inventory
hosts: undercloud
gather_facts: true
tags:
- standalone
vars:
inventory: multinode
roles:
- tripleo-inventory
- name: Enable nested virtualization on the host
hosts: undercloud
gather_facts: true
roles:
- parts/kvm
tags:
- nested_virt
- name: Prepare the undercloud for installation
hosts: undercloud
roles:
- undercloud-setup
tags:
- standalone
- name: Download amphora image for octavia
hosts: undercloud
gather_facts: false
roles:
- {role: octavia-amphora-download,
when: download_amphora is defined and download_amphora|bool}
tags:
- octavia
# NOTE(aschultz): nested virt causes problems in CI so we default to qemu
# and do not do the dynamic virt lookup.
- name: Deploy Standalone
hosts: undercloud
vars:
standalone_libvirt_type: "{{ standalone_virt_type|default('qemu') }}"
roles:
- standalone
tags:
- standalone
- name: Run tripleo-validations standalone tests
import_playbook: validations.yml
- name: Validate the undercloud
hosts: undercloud
gather_facts: false
roles:
- {role: validate-services, when: validate_services|default(false)|bool}
tags:
- standalone
# Per https://bugs.launchpad.net/tripleo/+bug/1903993 we need to reduce the
# standalone-upgrade runtime. If this is upgrade job fs56 skip tempest include.
- name: Validate the deployment
hosts: undercloud
# Note(chkumar246): Moved the os_tempest related var at the top
# of play level in order to have scope for the whole of the play
# https://bugs.launchpad.net/tripleo/+bug/1838496
vars:
tempest_install_method: distro
tempest_cloud_name: 'standalone'
tasks:
- include_tasks: tasks/tempest.yml
when:
- job is undefined or (job is defined and
job.featureset is defined and job.featureset != '056')
- use_os_tempest | default(true)
- not job.skip_os_tempest|default(false)
environment:
# Disable ssl warnings
CURL_CA_BUNDLE: ""
tags:
- standalone

View File

@ -1,84 +0,0 @@
---
# TODO(aschultz): fix tags in here to be undercloud-minion-setup
- name: Collect output from undercloud
hosts: undercloud
gather_facts: false
tasks:
- name: Copy output files
include_role:
name: undercloud-deploy
tasks_from: gather-outputs
tags:
- undercloud-setup
- name: Write output from undercloud
hosts: overcloud
gather_facts: false
tasks:
- name: Reading and setting undercloud facts from gather-outputs
set_fact:
undercloud_outputs: "{{ hostvars['undercloud']['undercloud_outputs'] }}"
undercloud_passwords: "{{ hostvars['undercloud']['undercloud_passwords'] }}"
- name: write output files to old consistent location
include_role:
name: undercloud-setup
tasks_from: write-outputs
- name: create new consistent location
file:
state: directory
path: "{{ working_dir ~ '/tripleo-deploy/minion' }}"
- name: write output files to new consistent location
include_role:
name: undercloud-setup
tasks_from: write-outputs
vars:
undercloud_outputs_dir: "{{ working_dir ~ '/tripleo-deploy/minion/' }}"
tags:
- undercloud-setup
- name: Setup the undercloud minion
hosts: overcloud
vars:
# these are the defaults but we should be explicit
minion_enable_heat_engine: true
minion_enable_ironic_conductor: true
tasks:
- name: Include atop setup
include_role:
name: undercloud-setup
tasks_from: atop
- name: Set container update fact from undercloud
set_fact:
update_containers_append_tag: "{{ hostvars['undercloud']['update_containers_append_tag'] | default('') }}"
- name: Include repo-setup
include_role:
name: repo-setup
- name: Include package installs
include_role:
name: undercloud-setup
tasks_from: package_installs
when: package_installs|default(true)|bool
- name: Update built packages
shell: |
{{ ansible_pkg_mgr }} --enablerepo='gating-repo' update -y # noqa 305
become: true
when: hostvars['undercloud']['compressed_gating_repo'] is defined
tags:
- undercloud-setup
- name: Deploy the undercloud minion
hosts: overcloud
roles:
- undercloud-minion-deploy
tags:
- undercloud-setup
- name: Validate minion
hosts: undercloud
vars:
validate_minion_heat_engine: true
validate_minion_ironic_conductor: true
roles:
- validate-minion
tags:
- overcloud-validate

View File

@ -1,95 +0,0 @@
---
- name: Add the overcloud nodes to the generated inventory
hosts: undercloud
gather_facts: true
tags:
- overcloud-deploy
vars:
inventory: multinode_mixed_os
roles:
- tripleo-inventory
- name: Create configs on subnodes
hosts: overcloud_control
roles:
- role: repo-setup
when: not mixed_upgrade|default(false)|bool
tasks:
- name: Create a clean hosts file on subnodes
copy:
dest: /etc/hosts
content: |
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
become: true
- name: Run atop on overcloud node if configured
include_role:
name: undercloud-setup
tasks_from: atop
tags:
- undercloud-setup
- name: Prepare the undercloud for installation
hosts: undercloud
roles:
- undercloud-setup
tags:
- undercloud-setup
- name: Install built packages on subnodes
hosts: overcloud_control
vars:
ib_repo_host: undercloud
roles:
- role: repo-setup
when: not mixed_upgrade|default(false)|bool
- role: install-built-repo
when: hostvars['undercloud']['compressed_gating_repo'] is defined and not mixed_upgrade|default(false)|bool
tags:
- build
- name: Install the undercloud
tags: undercloud-install
hosts: undercloud
tasks:
- name: get hash set fact mixed_os_dlrn_hash_8 for periodic jobs (no content provider)
when:
- not job.consumer_job | default(false) | bool
- registry_distro_lower is defined
block:
- include_role:
name: repo-setup
tasks_from: tripleo-get-hash-set-fact.yml
vars:
search_tag: "{{ dlrn_hash_tag }}"
tgh_os_version_override: "{{ (ansible_distribution == 'RedHat') | ternary('rhel', 'centos') }}8"
fact_name: "mixed_os_dlrn_hash_8"
- name: "debug dlrn_hash_tag resolution "
debug:
msg: "d_h_t {{ dlrn_hash_tag }} resolved to mixed_os_dlrn_hash_8 {{ mixed_os_dlrn_hash_8 }} "
- name: set fact mixed_os_dlrn_hash_8 for check/gate jobs (with content provider)
when:
- job.consumer_job | default(false) | bool
- job.provider_dlrn_hash_distro is defined
- registry_distro_lower is defined
set_fact:
mixed_os_dlrn_hash_8: "{{ job.provider_dlrn_hash_distro[registry_distro_lower] }}"
- name: Deploy the undercloud
include_role:
name: undercloud-deploy
- name: Validate the undercloud
hosts: undercloud
roles:
- validate-undercloud
- name: Set Libvirt type
hosts: overcloud
roles:
- set-libvirt-type
tags:
- overcloud-deploy

View File

@ -1,56 +0,0 @@
---
# the yum repos ALWAYS need to change
- name: Configure next release repository in the undercloud
hosts: undercloud
tags:
- undercloud-upgrade
vars:
repo_setup_script: "repo-setup-{{ lookup('env', 'UPGRADE_RELEASE') }}.sh"
repo_setup_log: "repo-setup-{{ lookup('env', 'UPGRADE_RELEASE') }}.log"
repo_setup_run_update: false
dlrn_hash_path: ''
dlrn_hash_path_newest: ''
# This should not be enabled because the updating of the packages occurs
# durring the upgrade process. For general installation it's ok to have
# this enabled, but this needs to be disabled for upgrades
ib_gating_repo_update: false
roles:
- role: repo-setup
# note: in upstream CI the gerrit change is built on the content-provider
# this task will be skipped upstream
- name: Build the gerrit changes on the relevant release for the upgrade
hosts: undercloud
tags:
- build
vars:
repo_setup_script: "repo-setup-{{ lookup('env', 'UPGRADE_RELEASE') }}.sh"
repo_setup_log: "repo-setup-{{ lookup('env', 'UPGRADE_RELEASE') }}.log"
repo_setup_run_update: false
dlrn_hash_path: ''
dlrn_hash_path_newest: ''
artg_compressed_gating_repo: "${HOME}/gating_repo.tar.gz"
# This should not be enabled because the updating of the packages occurs
# durring the upgrade process. For general installation it's ok to have
# this enabled, but this needs to be disabled for upgrades
ib_gating_repo_update: false
roles:
- role: build-test-packages
- {role: install-built-repo, when: compressed_gating_repo is defined}
- name: Prepare containers for Upgrade
hosts: undercloud
gather_facts: false
tags:
- undercloud-upgrade
roles:
- role: container-update
when:
- containerized_undercloud_upgrade|default(false)|bool
- name: Run tripleo-upgrade role to upgrade undercloud
hosts: undercloud
tags:
- undercloud-upgrade
roles:
- role: tripleo-upgrade

View File

@ -1,91 +0,0 @@
---
- name: Add the overcloud nodes to the generated inventory
hosts: undercloud
gather_facts: true
tags:
- overcloud-deploy
vars:
inventory: multinode
roles:
- tripleo-inventory
- name: Create configs on subnodes
hosts: overcloud
pre_tasks:
- name: Include vars when dependency is defined
when: job.dependency is defined or dependency is defined
vars:
tripleo_quickstart_dir: "{{ ansible_user_dir }}/{{ zuul.projects['opendev.org/openstack/tripleo-quickstart'].src_dir }}"
t_q_dependency_dir: "{{ tripleo_quickstart_dir }}/config/release/dependency_ci/{{ job.dependency|default(dependency) }}"
block:
- name: Load vars from dependency file
include_vars:
file: "{{ t_q_dependency_dir }}/repo_config.yaml"
roles:
# When doing mixed upgrade, we need different repos on undercloud
# vs. overcloud. Rely on $UPGRADE_RELEASE together with
# bootstrap-overcloud-full-minimal.sh to setup overcloud.
- role: repo-setup
when: not mixed_upgrade|default(false)|bool
tasks:
- name: Create a clean hosts file on subnodes
copy:
dest: /etc/hosts
content: |
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
become: true
- name: Run atop on overcloud node if configured
include_role:
name: undercloud-setup
tasks_from: atop
tags:
- undercloud-setup
- name: Prepare the undercloud for installation
hosts: undercloud
roles:
- undercloud-setup
tags:
- undercloud-setup
- name: Install built packages on subnodes
hosts: overcloud
vars:
ib_repo_host: undercloud
roles:
- role: repo-setup
when: not mixed_upgrade|default(false)|bool
- role: install-built-repo
when: hostvars['undercloud']['compressed_gating_repo'] is defined and not mixed_upgrade|default(false)|bool
tags:
- build
- name: Install the undercloud
hosts: undercloud
roles:
- undercloud-deploy
- name: Validate the undercloud
hosts: undercloud
roles:
- validate-undercloud
- name: Download amphora image for octavia
hosts: undercloud
gather_facts: false
tags:
- octavia
roles:
- {role: octavia-amphora-download,
when: download_amphora is defined and download_amphora|bool}
- name: Set Libvirt type
hosts: overcloud
roles:
- set-libvirt-type
tags:
- overcloud-deploy

View File

@ -1,38 +0,0 @@
---
- name: setup dstat performance monitoring
hosts: overcloud
tags:
- overcloud-validate
roles:
- {role: validate-perf,
when: validate_performance|bool and use_os_tempest | default(true) | bool}
ignore_errors: true
# Validate the deployment
- name: validate the overcloud
hosts: undercloud
tags:
- overcloud-validate
- undercloud-validate
gather_facts: false
roles:
- {role: validate-services, when: validate_services|default(false)|bool}
- name: Validate the deployment
hosts: undercloud
# Note(chkumar246): Moved the os_tempest related var at the top
# of play level in order to have scope for the whole of the play
# https://bugs.launchpad.net/tripleo/+bug/1838496
vars:
tempest_install_method: distro
tempest_cloud_name: 'overcloud'
tempest_cidr: '192.168.24.0/24'
tasks:
- include_tasks: tasks/tempest.yml
when: use_os_tempest | default(true) | bool
environment:
# Disable ssl waarnings
CURL_CA_BUNDLE: ""
tags:
- overcloud-validate
- undercloud-validate

View File

@ -1,9 +0,0 @@
---
- import_playbook: quickstart.yml
- import_playbook: multinode-undercloud.yml
- import_playbook: multinode-overcloud-prep.yml
- import_playbook: multinode-overcloud.yml
- import_playbook: multinode-overcloud-update.yml
- import_playbook: multinode-overcloud-upgrade.yml
- import_playbook: validations.yml
- import_playbook: multinode-validate.yml

View File

@ -1,7 +0,0 @@
---
# setup the nodepool nodes
- name: Setup the provisioned virtual machines to look like nodepool nodes
hosts: subnodes
gather_facts: true
roles:
- nodepool-setup

View File

@ -1,16 +0,0 @@
---
# Add the virthost to the in-memory inventory. The inventory is not
# written out to disk unless you call the `tripleo-inventory` role.
- name: Add the virthost to the inventory
hosts: localhost
tasks:
- name: Add virthost
add_host:
name: "virthost"
groups: "virthost"
ansible_host: "{{ virthost }}"
- name: Create the OVB stack
hosts: localhost
roles:
- {role: ovb-manage-stack, ovb_manage_stack_mode: 'create'}

View File

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

View File

@ -1,78 +0,0 @@
---
- include: ovb-create-stack.yml
when: not use_testenv_broker|default(false)|bool
- include: prepare-slave.yml
when: use_testenv_broker|default(false)|bool
- name: Inventory the undercloud instance
hosts: localhost
gather_facts: true
roles:
- tripleo-inventory
# Small playbook with logic for when to build images or not.
# The logic there can be completely overridden by setting the
# to_build variable.
- name: When to build images or not
import_playbook: to-build-or-not-to-build.yml
- name: Setup the undercloud
hosts: undercloud
gather_facts: true
roles:
- undercloud-setup
tasks:
- name: Add eth2 interface from eth2.conf
command: os-net-config -c {{ working_dir }}/eth2.conf -v
become: true
when:
- network_isolation|bool
- use_testenv_broker|default(false)|bool
- name: Set DNS servers for OVB clouds - undercloud
set_fact:
undercloud_undercloud_nameservers: "{{ custom_nameserver }}"
cacheable: true
- name: Set DNS servers for OVB clouds - overcloud
set_fact:
overcloud_dns_servers: "{{ custom_nameserver }}"
cacheable: true
- name: Inventory the undercloud instance
hosts: localhost
gather_facts: true
roles:
- tripleo-inventory
- name: Get images for quickstart
hosts: undercloud
gather_facts: false
vars:
ib_repo_image_inject: "{{ not to_build|bool }}"
ib_repo_run_live: false
modify_image_vc_ram: 4096
modify_image_vc_cpu: 4
modify_image_vc_verbose: true
roles:
- {role: fetch-images,
when: not to_build|bool}
- {role: repo-setup,
repo_inject_image_path: "$HOME/{{ overcloud_image }}.qcow2",
repo_run_live: false,
when: not to_build|bool}
- {role: repo-setup,
repo_inject_image_path: "$HOME/ironic-python-agent.initramfs",
repo_run_live: false,
initramfs_image: true,
libguestfs_mode: false,
when: not to_build|bool}
- {role: install-built-repo,
ib_repo_image_path: "$HOME/{{ overcloud_image }}.qcow2",
when: compressed_gating_repo is defined and not to_build|bool}
- {role: install-built-repo,
ib_repo_image_path: "$HOME/ironic-python-agent.initramfs",
initramfs_image: true,
libguestfs_mode: false,
when: compressed_gating_repo is defined and not to_build|bool}

View File

@ -1,8 +0,0 @@
---
- import_playbook: ovb-setup.yml
- import_playbook: baremetal-full-undercloud.yml
- import_playbook: baremetal-full-overcloud-prep.yml
- import_playbook: baremetal-full-overcloud.yml
- import_playbook: validations.yml
- import_playbook: baremetal-full-overcloud-validate.yml
when: job.enable_overcloud_validate|default(true)|bool

View File

@ -1,52 +0,0 @@
---
# Playbook included in OVB setups that use a testenv broker to create the
# OVB stack.
- name: Local setup for quickstart
hosts: localhost
connection: local
tasks:
- name: Host setup
shell: >
set -eo pipefail;
echo "127.0.0.1 $(hostname) $(hostname).openstacklocal" | sudo tee -a /etc/hosts;
echo "127.0.0.2 undercloud undercloud.openstacklocal" | sudo tee -a /etc/hosts;
if [ ! -e ${HOME}/.ssh/id_rsa.pub ] ; then
if [[ -e ${HOME}/.ssh/id_rsa ]]; then
ssh-keygen -y -f ${HOME}/.ssh/id_rsa > ${HOME}/.ssh/id_rsa.pub;
else
ssh-keygen -N "" -f ${HOME}/.ssh/id_rsa;
fi
fi;
sudo mkdir -p /root/.ssh;
cat ~/.ssh/id_rsa.pub | sudo tee -a /root/.ssh/authorized_keys | tee -a ~/.ssh/authorized_keys;
sudo rm -rf /etc/puppet /etc/hiera.yaml;
sudo cp {{ tripleo_root }}/tripleo-ci/test-environments/overcloud-cacert.pem /etc/pki/ca-trust/source/anchors/;
sudo update-ca-trust extract;
cp -f {{ lookup('env', 'TE_DATAFILE') }} ~/instackenv.json;
changed_when: true
- name: Correct the driver for newer releases
# TODO(dtantsur): remove when Pike is not supported
command: sed -i s/pxe_ipmitool/ipmi/ ~/instackenv.json
when: release not in ['newton', 'ocata', 'pike']
- name: Create eth2.conf file
blockinfile:
dest: "{{ working_dir }}/eth2.conf"
content: |
network_config:
- type: interface
name: eth2
use_dhcp: false
mtu: 1450
addresses:
- ip_netmask: 10.0.0.1/24
- ip_netmask: 2001:db8:fd00:1000::1/64
create: true
- name: Install ipmitool if not installed
package:
name: ipmitool
state: latest # noqa 403
become: true

View File

@ -1,6 +0,0 @@
---
- name: Multinode
hosts: localhost
gather_facts: false
roles:
- role: multinodes

View File

@ -1,55 +0,0 @@
---
# Prepare any additional configuration files required by the overcloud
- name: Prepare configuration files for the overcloud deployment
hosts: undercloud
gather_facts: false
tags:
- overcloud-prep-config
roles:
- overcloud-prep-config
# Prepare the overcloud for a containerized deployment
- name: Prepare overcloud containers
hosts: undercloud
gather_facts: false
tags:
- overcloud-prep-containers
roles:
- overcloud-prep-containers
# Prepare the overcloud images for deployment
- name: Prepare the overcloud images for deployment
hosts: undercloud
gather_facts: false
tags:
- overcloud-prep-images
roles:
- overcloud-prep-images
# Prepare the overcloud flavor configuration
- name: Prepare overcloud flavors
hosts: undercloud
gather_facts: false
tags:
- overcloud-prep-flavors
roles:
- {role: overcloud-prep-flavors,
when: step_overcloud_prep_flavors|bool and undercloud_enable_nova|bool}
# Prepare the undercloud networks for the overcloud deployment
- name: Prepare the undercloud networks for the overcloud deployment
hosts: undercloud
gather_facts: false
tags:
- overcloud-prep-network
roles:
- overcloud-prep-network
- name: Prepare the SSL Configuration for the overcloud deployment
hosts: undercloud
gather_facts: false
tags:
- overcloud-scripts
- overcloud-ssl
roles:
- {role: overcloud-ssl}

View File

@ -1,40 +0,0 @@
---
# Deploy the overcloud
- name: Deploy the overcloud
hosts: undercloud
gather_facts: true
tags:
- overcloud-deploy
roles:
- overcloud-deploy
- name: Add the overcloud nodes to the generated inventory
hosts: undercloud
gather_facts: true
tags:
- overcloud-deploy
- overcloud-inventory
vars:
inventory: all
roles:
- tripleo-inventory
# Check the results of the deployment, note after inventory has executed
- name: Check the result of the deployment
hosts: undercloud
tags:
- overcloud-deploy
- overcloud-check
tasks:
- name: Check the overcloud_deployment_result.json if this is CI job
tags:
- overcloud-deploy
block:
- name: ensure the deployment result has been read into memory
include_vars: "{{ local_working_dir }}/overcloud_deployment_result.json"
delegate_to: localhost
# overcloud_deploy_result = ["failed", "passed"]
- name: did the deployment pass or fail?
debug: var=overcloud_deploy_result
failed_when: overcloud_deploy_result == "failed"
delegate_to: localhost

View File

@ -1,66 +0,0 @@
---
- include: quickstart.yml
# setup for the undercloud
- name: Prepare the node for installation
hosts: undercloud
gather_facts: false
tags:
- standalone
roles:
- undercloud-setup
- name: Add remove ens3 if not required
hosts: undercloud
gather_facts: true
tasks:
- include_role:
name: baremetal-prep-virthost
tasks_from: remove_ens3.yml
when:
- ansible_distribution == 'CentOS'
- ansible_distribution_major_version|int >= 8
- name: Gather facts
hosts: undercloud
become: false
tags:
- standalone
tasks:
- name: Ensure all facts are gathered
setup:
# Deploy the standalone
- name: Deploy the standalone
hosts: undercloud
gather_facts: true
tags:
- standalone
roles:
- standalone
- name: Validate the undercloud
hosts: undercloud
gather_facts: false
roles:
- {role: validate-services, when: validate_services|default(false)|bool}
tags:
- standalone
- name: Validate the deployment
hosts: undercloud
# Note(chkumar246): Moved the os_tempest related var at the top
# of play level in order to have scope for the whole of the play
# https://bugs.launchpad.net/tripleo/+bug/1838496
vars:
tempest_install_method: distro
tempest_cloud_name: 'standalone'
tasks:
- include_tasks: tasks/tempest.yml
when: use_os_tempest | default(true)
environment:
# Disable ssl warnings
CURL_CA_BUNDLE: ""
tags:
- standalone

View File

@ -1,38 +0,0 @@
---
# Deploy the FreeIPA server
- name: Deploy the FreeIPA server
hosts: supplemental
gather_facts: false
tags:
- freeipa-setup
roles:
- {role: freeipa-setup, when: deploy_supplemental_node|bool and enable_tls_everywhere|bool}
# setup for the undercloud
- name: Setup the undercloud
hosts: undercloud
gather_facts: false
vars:
ansible_user: root
tags:
- undercloud-setup
roles:
- {role: undercloud-setup, when: undercloud_setup|bool}
# Deploy the undercloud
- name: Deploy the undercloud
hosts: undercloud
gather_facts: false
tags:
- undercloud-deploy
roles:
- undercloud-deploy
- name: Download amphora image for octavia
hosts: undercloud
gather_facts: false
tags:
- octavia
roles:
- {role: octavia-amphora-download,
when: download_amphora is defined and download_amphora|bool}

View File

@ -1,37 +0,0 @@
---
# Validate the deployment
- name: setup dstat performance monitoring
hosts: overcloud
tags:
- overcloud-validate
roles:
- {role: validate-perf,
when: validate_performance|bool and use_os_tempest | default(true) | bool}
ignore_errors: true
# Execute tempest against the overcloud deployment
- name: Validate the deployment
hosts: undercloud
tasks:
- include_tasks: tasks/tempest.yml
vars:
tempest_install_method: distro
tempest_cloud_name: 'overcloud'
when: use_os_tempest | default(true)
environment:
# Disable ssl waarnings
CURL_CA_BUNDLE: ""
tags:
- overcloud-validate
# Ensure services and containers are OK
- name: Execute simple service and container validations
hosts:
- undercloud
- overcloud
tags:
- overcloud-validate
- undercloud-validate
gather_facts: false
roles:
- {role: validate-services, when: validate_services|default(false)|bool}

View File

@ -1,8 +0,0 @@
---
# This is the playbook used by the `quickstart.sh` script.
- import_playbook: quickstart.yml
- import_playbook: quickstart-extras-undercloud.yml
- import_playbook: quickstart-extras-overcloud-prep.yml
- import_playbook: quickstart-extras-overcloud.yml
- import_playbook: quickstart-extras-validate.yml

View File

@ -1,6 +0,0 @@
---
- name: Setup repositories
hosts: undercloud
gather_facts: true
roles:
- repo-setup

View File

@ -1,28 +0,0 @@
---
################
# Deploy Nodes #
################
# From tripleo-quickstart/playbooks
- import_playbook: quickstart-extras.yml
###############
# Scale Nodes #
###############
# Scale nodes w/o delete
- name: Scale overcloud nodes
hosts: undercloud
roles:
- {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
- name: Delete original node of type scaled
hosts: undercloud
roles:
- {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
# deleted node is removed from the hosts file. However, it still exists in memory and will cause the
# 'ansible-role-tripleo-inventory: regenerate ssh config' task to fail when attempting to acces non-existant host vars

View File

@ -1,14 +0,0 @@
---
# 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
# 'ansible-role-tripleo-inventory: regenerate ssh config' task to fail when attempting to acces non-existant host vars
# Re-inventory the overcloud
- name: Inventory the overcloud
hosts: undercloud
gather_facts: true
vars:
inventory: all
roles:
- tripleo-inventory

View File

@ -1,12 +0,0 @@
---
- name: Snapshot virts
hosts: virthost
gather_facts: true
vars:
- libvirt_uri: qemu:///system
- overcloud_nodes:
- name: subnode-0
- name: subnode-1
roles:
- snapshot-libvirt
become: true

View File

@ -1,237 +0,0 @@
---
# Load the skipp list
- name: Run tempest-skip tool to load tests to be skipped
block:
- name: Load tests to be skipped
vars:
list_skipped_release: "{{ release }}"
list_skipped_job: "{{ zuul.job | default(omit) }}"
list_skipped_deployment: "{{ (tempest_cloud_name in ['undercloud']) | ternary('undercloud', 'overcloud') }}"
list_skipped_installer: "{{ (osp_release is defined) | ternary('osp', 'tripleo') }}"
include_role:
name: list_skipped
- name: Add skiplist tests to tempest_test_blacklist - skip them
set_fact:
tempest_test_blacklist: "{{ tempest_skip_register.skipped_tests }}"
when: not tempest_run_skipped | default(false) | bool
- name: Add skiplist tests to tempest_test_whitelist - run them
set_fact:
tempest_test_whitelist: "{{ tempest_skip_register.skipped_tests }}"
tempest_test_blacklist: []
when: tempest_run_skipped | default(false) | bool
vars:
# when ansible.cfg have the option interpreter_python set to auto, ansible
# executes with the system python instead of virtualenv even though you are
# inside the virtualenv. Setting ansible_python_interpreter here ensures
# that this playbook will be executed the virtualenv python, which have the
# openstac-tempest-skiplist module
ansible_python_interpreter: "{{ local_working_dir }}/bin/python"
list_skipped_yaml_file: "{{ local_working_dir }}/usr/local/share/ansible/roles/validate-tempest/vars/tempest_skip.yml"
when: tempest_use_skiplist | default(true)
delegate_to: localhost
- name: Run tempest-skip tool to load tests to be executed
block:
- name: Load tests to be executed
vars:
list_allowed_release: "{{ release }}"
list_allowed_job: "{{ zuul.job | default(omit) }}"
list_allowed_group: "{{ tempest_allowed_group | default(omit) }}"
include_role:
name: list_allowed
- name: Add tests to tempest_test_includelist
set_fact:
tempest_test_includelist: "{{ tempest_allowed_register.allowed_tests }}"
tempest_test_whitelist: "{{ tempest_allowed_register.allowed_tests }}"
vars:
ansible_python_interpreter: "{{ local_working_dir }}/bin/python"
list_allowed_yaml_file: "{{ local_working_dir }}/usr/local/share/ansible/roles/validate-tempest/vars/tempest_allow.yml"
when:
- tempest_test_whitelist is not defined
- not tempest_run_skipped | default(false) | bool
delegate_to: localhost
- name: set python_cmd
set_fact:
python_cmd: "python{{ ansible_python.version.major }}"
cacheable: true
when: python_cmd is not defined
- name: Check if virtualenv is in the system
command: "{{ python_cmd }} -m virtualenv --version"
register: virtualenv_exist
failed_when: false
changed_when: false
- when: virtualenv_exist.rc != 0
name: Install virtualenv
become: true
package:
state: present
name: >
{% if ansible_python.version.major == 3 %}
python3-virtualenv
{% else %}
python-virtualenv
{% endif %}
# FIXME(chandankumar): centos9 https://bugs.launchpad.net/tripleo/+bug/1953032/comments/5
# TODO(marios): centos8 https://bugs.launchpad.net/tripleo/+bug/1976247
- name: Disable stackviz for CentOS Stream 9 and 8
set_fact:
tempest_run_stackviz: false
when: ansible_distribution_major_version is version('8', '>=')
# This will execute os_tempest
- name: Execute os_tempest
when: use_os_tempest | default(true)
block:
- name: Fail the tempest playbook on undefined cloud name and install method
fail:
msg: |
The variable tempest_install_method and tempest_cloud_name is required and
has not been set.
when:
- tempest_install_method is not defined
- tempest_cloud_name is not defined
# If tempest is running on undercloud, do not set this variable to true
- name: Initialize neutron service for network creation
set_fact:
tempest_service_available_neutron: true
when: tempest_cloud_name not in ['undercloud']
- name: Create /root/.config/openstack directory
file:
state: directory
path: "/root/.config/openstack"
mode: 0700
become: true
- name: Copy clouds.yaml file to /root directory
block:
- name: Copy clouds.yaml file from user's home to /root directory
copy:
src: '{{ ansible_user_dir }}/.config/openstack/clouds.yaml'
remote_src: true
dest: '/root/.config/openstack/clouds.yaml'
mode: 0600
become: true
rescue:
- name: Copy clouds.yaml file /etc/openstack to /root directory
copy:
src: '/etc/openstack/clouds.yaml'
remote_src: true
dest: '/root/.config/openstack/clouds.yaml'
mode: 0600
become: true
- name: Set network vars
set_fact:
tempest_public_net_physical_type: 'datacentre'
tempest_public_subnet_cidr: '{{ tempest_cidr }}'
tempest_public_subnet_gateway_ip: '{{ tempest_cidr|nthhost(1) }}'
tempest_public_subnet_allocation_pools: '{{ tempest_cidr|nthhost(150) ~ "-" ~ tempest_cidr|nthhost(200) }}'
tempest_network_ping_gateway: "{{ tempest_ping_router|default(true)|bool }}"
tempest_private_net_provider_type: 'geneve'
tempest_private_net_create: true
tempest_router_create: true
when: tempest_cidr is defined
- name: Handle migration of br-ex network
block:
- name: Check if standalone parameters exists
stat:
path: "{{ working_dir }}/standalone_parameters.yaml"
register: parameter_file
- name: Read content of standalone parameters file if exists
slurp:
src: "{{ working_dir }}/standalone_parameters.yaml"
register: standalone_parameters
when: parameter_file.stat.exists
- name: Parse contents
set_fact:
standalone_parameters_yaml: "{{ standalone_parameters['content'] | b64decode | from_yaml }}"
when: parameter_file.stat.exists
- name: set tempest facts for br-ex network migration
set_fact:
tempest_public_subnet_cidr: '172.16.1.0/24'
tempest_public_subnet_gateway_ip: '172.16.1.2'
tempest_public_subnet_allocation_pools: '172.16.1.100-172.16.1.150'
when:
- parameter_file.stat.exists
- "'NeutronPhysicalBridge' not in (standalone_parameters_yaml | from_yaml)['parameter_defaults']"
when:
- job.environment_type is defined and job.environment_type == "standalone"
- job.bridge_address_prefix is defined and job.bridge_address_prefix == "172.16.1"
- name: Set tempest workspace related vars
set_fact:
tempest_use_tempestconf: true
tempest_service_setup_host: '{{ inventory_hostname }}'
tempest_workspace: "{{ ansible_user_dir }}/tempest"
stackviz_venv_bin: "{{ ansible_user_dir }}/stackviz_venv/bin"
tempest_test_extra_test: ['keystone_tempest_plugin.tests.api']
- name: set facts while running tempest from source
set_fact:
tempest_git_repo: https://opendev.org/openstack/tempest
tempest_tempestconf_git_repo: https://opendev.org/openinfra/python-tempestconf
tempest_tempestconf_venv_bin: "{{ ansible_user_dir }}/tempestconf_venv/bin"
tempest_venv_bin: "{{ ansible_user_dir }}/tempest_venv/bin"
when: tempest_install_method == 'source'
- name: Set extra facts for tempestconf
vars:
default_cirros_image: /opt/cache/files/cirros-0.5.2-x86_64-disk.img
set_fact:
tempest_tempestconf_profile_extras:
image: "{{ featureset_override['cirros_image'] | default(default_cirros_image) }}"
flavor_min_mem: 128
retry_image: true
overrides:
identity.v3_endpoint_type: public
validation.ssh_key_type: 'ecdsa'
image.http_image: https://github.com/cirros-dev/cirros/releases/download/0.5.2/cirros-0.5.2-x86_64-disk.img
# stackviz in venv pulls oslo.db due upstream constraints,
# but it dropped py2 support so on such system we need to skip it
# https://bugs.launchpad.net/tripleo/+bug/1862134
- name: disable stackviz in python2 environment
set_fact:
tempest_run_stackviz: false
when:
- ansible_distribution_major_version is version('8', '<')
- name: Run overcloud_network_discovery role
vars:
ansible_become: true
debug: true
execute_netstat: true
kill_netstat: false
include_role:
name: overcloud-network-discovery
- name: Run os_tempest role
vars:
ansible_become: true
debug: true
tempest_run: 'yes'
include_role:
name: os_tempest
- name: Run overcloud_network_discovery role to kill netstat service
vars:
ansible_become: true
debug: true
execute_netstat: false
kill_netstat: true
include_role:
name: overcloud-network-discovery

View File

@ -1,6 +0,0 @@
---
- name: Decide whether we need to build images
hosts: undercloud
tasks:
- include_role:
name: check-to-build-or-not-to-build

View File

@ -1,13 +0,0 @@
---
- name: Prepare and run Tobiko
hosts: undercloud
vars:
debug: true
tobiko_config: true
tobiko_run: true
tempest_cloud_name: overcloud
tags:
- overcloud-validate
- standalone
roles:
- {role: validate-tobiko}

View File

@ -1,16 +0,0 @@
---
- name: Execute Validations Framework tests
hosts: undercloud
gather_facts: true
vars:
inventory: "{{ job.validations_inventory|default('tripleo-deploy/tripleo-ansible-inventory.yaml') }}"
vf_log_dir: "/var/log/validations"
tags:
- overcloud-deploy
- undercloud-deploy
- standalone
tasks:
- include_role:
name: validations
when:
- job.enable_validation|default(false)|bool

View File

@ -1,5 +0,0 @@
---
fixes:
- |
The references to the Heat command are deprecated from Mitaka release and
we should now be using the OpenStack CLI instead.

View File

@ -1,7 +0,0 @@
---
features:
- |
Added public cloud settings.
All public cloud settings can be overridden to deploy on custom cloud
environments.
Added functionality to remove stacks and key pairs from the host cloud.

View File

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

View File

@ -1,10 +0,0 @@
---
fixes:
- |
Fix `undercloud_roles_data` to contain a relative path as tripleoclient
expects it.
other:
- |
``undercloud deploy`` CLI now supports `undercloud_roles_data`.
It can also be defined in `undercloud.conf` as `roles_file` to be
used with ``undercloud install --use-heat`` as well.

View File

@ -1,14 +0,0 @@
---
features:
- |
Add `undercloud_roles_data` for containerized undercloud
deployments. Allows to specify a custom undercloud roles file which
should be taken into account when preparing docker images for UC.
Defaults to `{{ overcloud_templates_path }}/roles_data_undercloud.yaml`.
.. note :: The default value can not be changed yet. The command
`openstack undercloud deploy` works only with the static role file
`roles_data_undercloud.yaml` from t-h-t. Custom undercloud roles
data files, like `roles/UndercloudLight.yaml`, need to be copied as
`{{ overcloud_heat_templates }}/roles_data_undercloud.yaml` in order
to use this feature.

View File

@ -1,18 +0,0 @@
---
features:
- |
EXPERIMENTAL feature to install the undercloud with openstack heat
add support for a containerized undercloud. It allows to update the
specified packages, install custom t-h-t templates and fetch work
in progress dependency changes. This can be done deployment runtime,
by an undercloud deploy script defined from a given template.
The feature is invoked by using the config file in
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
deprecations:
- |
The variable "undercloud_hieradata_override_file" which was the hieradata
override file for the undercloud, was deprecated in favor of the
variables "hieradata_override_file_classic_undercloud" and
"hieradata_override_file_t_h_t_undercloud".

View File

@ -1,9 +0,0 @@
---
issues:
- |
Because of very long image modifying by libguestfs, we now implement
a different way to do it by converting image to raw, mounting it
and modifying in the place (usual tripleo-ci way
to do it, as it was before transition to quickstart).
This implementation might be temporary until we figure what happens
with libguestfs.

View File

@ -1,5 +0,0 @@
---
prelude: >
This will be the final release that supports Mitaka. Consumers of
tripleo-quickstart that need Mitaka support will need to maintain their own
branch starting from this commit.

View File

@ -1,9 +0,0 @@
---
features:
- Added support for other network isolation physical topologies such as
'multiple-nics', 'bond-with-vlans', and 'public-bond'
deprecations:
- The use of network isolation types 'multi-nic', 'bond_with_vlans', and
'single_nic_vlans' are deprecated and will be removed in the 'R' release.
Please change these values to 'multiple-nics', 'bond-with-vlans', and
'single-nic-vlans' accordingly.

View File

@ -1,16 +0,0 @@
---
features:
- |
This introduce needed changes to be able to deploy an additional
cell via oooq. If additional_cell is set to true after the
overcloud got deployed the additional cell gets deployed. Todo
this information gets extracted from the overcloud stack, which
is requried as input to the second heat stack, where the additional
cell is managed with. As a reference [1] is the scenario which
is installed adding a single additional cell.
config/general_config/featureset063.yml is used for the configuration
and config/nodes/1ctlr_1cellctrl_1comp.yml has a nova config
example.
[1] https://docs.openstack.org/project-deploy-guide/tripleo-docs/latest/features/deploy_cellv2_basic.html

View File

@ -1,5 +0,0 @@
---
other:
- |
The `openstack undercloud deploy` command has been removed. The support for
this method of deployment in the `undercloud-deploy` role has been removed.

View File

@ -1,8 +0,0 @@
---
features:
- |
Tags were added in all the playbooks so that it is possible to control
atomically the flow of the entire process.
For details about how to use tags check the chapter *Using tags to
atomically execute specific phases of the deployment* in
[TripleO Quickstart - Getting Started Guide](https://docs.openstack.org/tripleo-quickstart/latest/getting-started.html)

View File

@ -1,21 +0,0 @@
---
features:
- Added the possibility to give root device hints
for nodes, covering the same type of hints as
Ironic allows.
deprecations:
- Currently only support for disk size hint was possible
on OOOQ. This was using the ``disk_root_device_size``
setting, as well as the disk property on instackenv.json
This feature is not being removed, but the usage of new
root device hintes feature is prefered. If some device
hints are given using this new env setting, the old
way will be ignored.
In the future, ``disk_root_device_size`` hint will need
to be deprecated.
fixes:
- Currently OOOQ deploys on baremetal, on servers with multiple
disks, is not behaving correctly. There was the possibility
of giving root device hints, but only based on size. On systems
where the disk size was the same, it was impossible to target
the right disk.

View File

@ -1,9 +0,0 @@
---
feature:
- |
Switch to tripleomaster registry be default for container images, where
push happens automaticallyon RDO promotion.
deprecations:
- |
The tripleoupstream container registry is not used anymore and may be
retired in the future.

View File

@ -1,15 +0,0 @@
---
fixes:
- |
Containerized underclouds are allowed to have a custom
`undercloud_docker_registry_tag`. `undercloud_docker_registry_port`
may be omitted, if `undercloud_docker_registry_host` does not
expect a custom port, like 'docker.io'.
The docker registry host, port and tag for containerized undercloud
services default to the values provided for overcloud deployments.
You may want to alter it, if building images locally with Kolla, or
fetching from remote registries not fitting overcloud deployment cases.
As overcloud deployments may consume images form the undercloud local
registry, it is possible to have `undercloud_docker_*` and
`docker_*` params diverged for containerized underclouds vs overclouds.

View File

@ -1,5 +0,0 @@
---
deprecations:
- |
The experimental containerized undercloud deployments driven via
`undercloud deploy` CLI is not supported anymore for Pike.

View File

@ -1,5 +0,0 @@
---
features:
- |
Underclouds and overclouds may be installed with Heat templates fetched
into a custom location defined with ``overcloud_templates_path``.

View File

@ -1,5 +0,0 @@
---
other:
- |
The nodes registration and configure are done through `openstack overcloud
node import instackenv.json` command from newton release and above.

View File

@ -1,5 +0,0 @@
---
features:
- New "validate_services" boolean flag in order to check the service state
- New "validate-services" role in charge of container and service state
validation

View File

@ -1,270 +0,0 @@
# -*- coding: utf-8 -*-
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
# implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
# flake8: noqa
# If extensions (or modules to document with autodoc) are in another directory,
# add these directories to sys.path here. If the directory is relative to the
# documentation root, use os.path.abspath to make it absolute, like shown here.
#sys.path.insert(0, os.path.abspath('.'))
# -- General configuration ------------------------------------------------
# If your documentation needs a minimal Sphinx version, state it here.
#needs_sphinx = '1.0'
# Add any Sphinx extension module names here, as strings. They can be
# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom
# ones.
extensions = [
'openstackdocstheme',
'reno.sphinxext',
]
# Add any paths that contain templates here, relative to this directory.
templates_path = ['_templates']
# The suffix of source filenames.
source_suffix = '.rst'
# The encoding of source files.
#source_encoding = 'utf-8-sig'
# The master toctree document.
master_doc = 'index'
# General information about the project.
project = u'tripleo-quickstart Release Notes'
copyright = u'2017, TripleO Developers'
# The version info for the project you're documenting, acts as replacement for
# |version| and |release|, also used in various other places throughout the
# built documents.
#
# The full version, including alpha/beta/rc tags.
release = ''
# The short X.Y version.
version = ''
# The full version, including alpha/beta/rc tags.
# The language for content autogenerated by Sphinx. Refer to documentation
# for a list of supported languages.
#language = None
# There are two options for replacing |today|: either, you set today to some
# non-false value, then it is used:
#today = ''
# Else, today_fmt is used as the format for a strftime call.
#today_fmt = '%B %d, %Y'
# List of patterns, relative to source directory, that match files and
# directories to ignore when looking for source files.
exclude_patterns = []
# The reST default role (used for this markup: `text`) to use for all
# documents.
#default_role = None
# If true, '()' will be appended to :func: etc. cross-reference text.
#add_function_parentheses = True
# If true, the current module name will be prepended to all description
# unit titles (such as .. function::).
#add_module_names = True
# If true, sectionauthor and moduleauthor directives will be shown in the
# output. They are ignored by default.
#show_authors = False
# The name of the Pygments (syntax highlighting) style to use.
pygments_style = 'sphinx'
# A list of ignored prefixes for module index sorting.
#modindex_common_prefix = []
# If true, keep warnings as "system message" paragraphs in the built documents.
#keep_warnings = False
# -- Options for HTML output ----------------------------------------------
# The theme to use for HTML and HTML Help pages. See the documentation for
# a list of builtin themes.
html_theme = 'openstackdocs'
# Theme options are theme-specific and customize the look and feel of a theme
# further. For a list of options available for each theme, see the
# documentation.
#html_theme_options = {}
# Add any paths that contain custom themes here, relative to this directory.
#html_theme_path = []
# The name for this set of Sphinx documents. If None, it defaults to
# "<project> v<release> documentation".
#html_title = None
# A shorter title for the navigation bar. Default is the same as html_title.
#html_short_title = None
# The name of an image file (relative to this directory) to place at the top
# of the sidebar.
#html_logo = None
# The name of an image file (within the static path) to use as favicon of the
# docs. This file should be a Windows icon file (.ico) being 16x16 or 32x32
# pixels large.
#html_favicon = None
# Add any paths that contain custom static files (such as style sheets) here,
# relative to this directory. They are copied after the builtin static files,
# so a file named "default.css" will overwrite the builtin "default.css".
html_static_path = ['_static']
# Add any extra paths that contain custom files (such as robots.txt or
# .htaccess) here, relative to this directory. These files are copied
# directly to the root of the documentation.
#html_extra_path = []
# If not '', a 'Last updated on:' timestamp is inserted at every page bottom,
# using the given strftime format.
#html_last_updated_fmt = '%b %d, %Y'
# If true, SmartyPants will be used to convert quotes and dashes to
# typographically correct entities.
#html_use_smartypants = True
# Custom sidebar templates, maps document names to template names.
#html_sidebars = {}
# Additional templates that should be rendered to pages, maps page names to
# template names.
#html_additional_pages = {}
# If false, no module index is generated.
#html_domain_indices = True
# If false, no index is generated.
#html_use_index = True
# If true, the index is split into individual pages for each letter.
#html_split_index = False
# If true, links to the reST sources are added to the pages.
#html_show_sourcelink = True
# If true, "Created using Sphinx" is shown in the HTML footer. Default is True.
#html_show_sphinx = True
# If true, "(C) Copyright ..." is shown in the HTML footer. Default is True.
#html_show_copyright = True
# If true, an OpenSearch description file will be output, and all pages will
# contain a <link> tag referring to it. The value of this option must be the
# base URL from which the finished HTML is served.
#html_use_opensearch = ''
# This is the file name suffix for HTML files (e.g. ".xhtml").
#html_file_suffix = None
# Output file base name for HTML help builder.
htmlhelp_basename = 'tripleo-quickstartReleaseNotesdoc'
# -- Options for LaTeX output ---------------------------------------------
latex_elements = {
# The paper size ('letterpaper' or 'a4paper').
#'papersize': 'letterpaper',
# The font size ('10pt', '11pt' or '12pt').
#'pointsize': '10pt',
# Additional stuff for the LaTeX preamble.
#'preamble': '',
}
# Grouping the document tree into LaTeX files. List of tuples
# (source start file, target name, title,
# author, documentclass [howto, manual, or own class]).
latex_documents = [
('index', 'tripleo-quickstartReleaseNotes.tex', u'tripleo-quickstart Release Notes Documentation',
u'2017, TripleO Developers', 'manual'),
]
# The name of an image file (relative to this directory) to place at the top of
# the title page.
#latex_logo = None
# For "manual" documents, if this is true, then toplevel headings are parts,
# not chapters.
#latex_use_parts = False
# If true, show page references after internal links.
#latex_show_pagerefs = False
# If true, show URL addresses after external links.
#latex_show_urls = False
# Documents to append as an appendix to all manuals.
#latex_appendices = []
# If false, no module index is generated.
#latex_domain_indices = True
# -- Options for manual page output ---------------------------------------
# One entry per manual page. List of tuples
# (source start file, name, description, authors, manual section).
man_pages = [
('index', 'tripleo-quickstartreleasenotes', u'tripleo-quickstart Release Notes Documentation',
[u'2017, TripleO Developers'], 1)
]
# If true, show URL addresses after external links.
#man_show_urls = False
# -- Options for Texinfo output -------------------------------------------
# Grouping the document tree into Texinfo files. List of tuples
# (source start file, target name, title, author,
# dir menu entry, description, category)
texinfo_documents = [
('index', 'tripleo-quickstartReleaseNotes', u'tripleo-quickstart Release Notes Documentation',
u'2017, TripleO Developers', 'tripleo-quickstartReleaseNotes', 'Ansible based project for setting up TripleO virtual environments',
'Miscellaneous'),
]
# Documents to append as an appendix to all manuals.
#texinfo_appendices = []
# If false, no module index is generated.
#texinfo_domain_indices = True
# How to display URL addresses: 'footnote', 'no', or 'inline'.
#texinfo_show_urls = 'footnote'
# If true, do not generate a @detailmenu in the "Top" node's menu.
#texinfo_no_detailmenu = False
# -- Options for Internationalization output ------------------------------
locale_dirs = ['locale/']
# openstackdocstheme options
repository_name = 'openstack/tripleo-quickstart-extras'
bug_project = 'tripleo'
bug_tag = 'documentation'

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