Since the ctlplane network and it's subnets are created
outside of the overcloud heat templates we cannot in an
easy way create a list containing the cidr of each of
the ctlplane subnets in THT.
Prior to routed networks we only had one subnet and was
able to create the NetCidrMapValue by reading the cidr
value of one of the ControlVirtualIP resource. When we
have multiple subnets on each network we should make
NetCidrMapValue contain lists of cidrs for each network.
By setting a tags on the ctlplane network, one
per subnet, containing each individual subnets cidr the
tags can be loaded via the ControlVirtualIP resource so
that we can have NetCidrMapValue contain all the cidrs
of the ctlplane network.
Change-Id: I7d9a951d0c156c83430c1e326bc8edcb52b08537
Partial: blueprint tripleo-routed-networks-templates
Change: I4ba148f465b4c452bd5b2c31009ac8a2897bcd5f makes
dhcp_start and dhcp_end optional for non-local subnet
definitions in undercloud.conf.
Start using the AllocationPools parameter istead of the
legacy DhcpStart | DhcpEnd parameters.
Closes-Bug: #1806512
Closes-Bug: #1807707
Depends-On: I4ba148f465b4c452bd5b2c31009ac8a2897bcd5f
Change-Id: Ifdf3e9d22766c1b5ede151979b93754a3d244cc3
In order to specify which version of python we should use for the
deployment, we need to pass in the python interpreter into the
postconfig where we are directly calling the ansible heat hook.
Change-Id: I9dfc72269f800395a9864c457a5a43f7590c8e75
Related-Blueprint: python3-support
Numerous files have incorrect modes set. Correct these so that executables
have 755 and yaml files are 644 to address rpmlint errors.
Change-Id: I8db36209b41a492f6b85e3469994de884bf556e8
Update /etc/tuned/{{ _TUNED_PROFILE_NAME_ }}-variables.conf only
if it exists.
Change-Id: I20562efd61ba49b3ae0af62c079967681e05aeed
Closes-Bug: #1806812
When we generate metadata for compact services, all of the compact
services where joining in one single blob and we hit the size limit
for it. Splitting compact services each one with per line with the
compact service name and a list of their networks, so we will not hit
this size limit anymore.
Change-Id: I90d7bc73000352ad2c4b3f08f00d2a115f075a5e
Depends-On: Ida39f5768c67f982b2fe316f6fae4988a74c8534
The redhat-subscription ansible module doesn't cover the case
when a system is already registered via Satellite and we try to
upgrade it's repositories to a new version providing a different
activation key. The role will catch that the system is already
registered and it won't register the new activation key.
This patch passes the rhsm_force_registration option when invoking
redhat-subscription during an upgrade. This way the system will
be unregistered and registered again, activating the new key passed.
Change-Id: I9cd35882e5db47d22df8a456749188c17b48e451
Closes-Bug: #1807987
... and use host_prep_tasks from config-download.
We are trying to HostPrepConfig resource that use OS::Heat::SoftwareConfig
and the old fashion to run Ansible, for more native config-downlaod.
undercloud_pre is the only service that needs HostPrepConfig now, so
let's switch to config-download.
It restarts keepalived container at each undercloud install & upgrade.
Also it adds support for podman as it uses container_cli variable.
Note: the workaround can still be removed once we have Keepalived 2.0.6
but it won't happen before CentOS8 probably.
Change-Id: I7454013c2e37058b5010a2a6cacfae0d0f873744
Related-Bug: #1791238
The `openshift_master_cluster_hostname` and
`openshift_master_cluster_public_hostname` variables are set to IP
addresses by tripleo, but were wrongly combined with the
openshift_global_vars dictionnary in a way that prevented customization
via the OpenShiftGlobalVariables heat parameter.
Reverse the order of the combine to make customization possible as they
should.
Change-Id: I47805608b90d8fda7d8357d3cb55f6372e746da1
Closes-Bug: #1806736
According to the inventory examples[1] openshift_master_cluster_hostname
points to an internal hostname/address set on the loadbalancer while
openshift_master_cluster_public_hostname points to the external.
This change sets openshift_master_cluster_hostname to use the InternalApi
network instead of the External network as it is at this moment.
[1] https://docs.openshift.com/container-platform/3.11/install/example_inventories.html
Change-Id: I9efab5b07682efd6b03da433801d636e7d324619
Before performing an upgrade, the new repositories and
activation key should be configured. Rhsm is the service
in charge of performing the overcloud nodes registration,
so we need to enable the new repository/parameters in the
upgrade_tasks to point to the right repositories during
upgrade.
Also, after [0] got merged, the registration is being forced
via --force in case it fails for the first time. Plus,
there is also a new option that allows us to enable only
the repositories passed in rhsm_repos variable, disabling
what is not included and was enabled. We need to pass
this variable set to true during upgrades so we disable
the latest version repositories.
[0] - https://review.openstack.org/#/c/615689/
Change-Id: I10fb84baa67275ed1f01fbb5b1236a284f2c763e
Related-Bug: #1797138
Add the cloud to clouds.yaml for the undercloud so
that it is available for post deploy script's.
The clouds.yaml is created both in the stack users
home directory ~/.config/openstack/clouds.yaml and
globally for the system in /etc/openstack/clouds.yaml.
Update standalone post configuration to use the same
code to create and update clouds.yaml on standalone.
clouds.yaml is used when setting up client's in other
post scripts instead of passing all the options to
each script.
Partial-Bug: #1801927
Change-Id: I6402fa561745bacf184b1ad2ada44bf8f7c75324
Setting boot_option_local is no longer required as its the default.
So setting this is redundant.
Migrate existing flavors to remove boot_option if set to local.
Change-Id: Ib793acc98641091bcde2580b725656976e5d6625
Depends-On: I9fbe12f7878328f0ca084e29483f30d18dad1773
Related-Bug: #1803965
We're deploying an additional glusterfs cluster on infra nodes with
Ife73d7c50c304cff7cd05e08f74855cb107f3c46 but never actually enabled
the registry to make use of it. This is controlled by the
openshift_hosted_registry_storage_kind variable which needs to be set
to 'glusterfs'.
Change-Id: I67ae122447fdf0ae32f576b849dfa65cce4f30a3
Closes-Bug: #1804154
Since Rocky neutron has support to enable routed networks on
existing an network and subnet if certain conditions are met.
The tripleo undercloud does meet these conditions.
This change updates the extraconfig post script that creates
the neutron ctlplane networks. Any non routed network is
updated to a routed network if 'enable_routed_networks' = True
in the configuration.
Closes-Bug: #1790877
Change-Id: Idf2dd4c158d29b147d48153d3626cf403059d660
We're collocating the etcd and master nodes, we should also be run the
etcd scaleup playbook when adding new master nodes to the cluster.
However, this needs to happen in a separate ansible run as the master
node scale up and etcd scale up use different inventory files.
Change-Id: I523ed32681818112b7570aeab3ede32ed4ec322b
Closes-Bug: #1802319
Openshift-ansible expects that on initial deployment the nodes belong
to a <host_type> group, while on scale up, it expects the new nodes to
belong to a new_<host_type> group and not be part of the <host_type>
one.
Change-Id: Ibe461b4a7948813b69a0f85642e01aebb0531043
* https://review.openstack.org/#/c/614540/ converts undercloud
post deploystep to python where property resources:MEMORY_MB
was setted to 1 but earlier it was zero. It fixes the typo.
Change-Id: If26e17cb2079ef994cc0e0506cbf40bf9023808e
With the upgrade to puppet 5, we can no longer use dots in the hieradata
key lookups. This change updates the THT for firewall_rules,
haproxy_endpoints and haproxy_userlists to use the colon notation.
Change-Id: I6f67153e04aed191acb715fe8cfa976ee2e75878
Related-Bug: #1803024
The openshift-master service will fail any time it is used with a
stack update. This is because the openshift_upgrade var is not
defined, but is checked whenever tripleo_stack_action == 'UPDATE'.
This patch adds a check for openshift_upgrade being defined before
checking if it is True.
Closes-Bug: 1794824
Change-Id: I3a598724154a3242b777eefed9304300c45d8c29
Openshift-ansible gives us a friendly error when we do:
"Please run playbooks/openshift-master/scaleup.yml if you need to scale
up both masters and nodes. This playbook is only needed if you are only
adding new nodes and not new masters"
Change-Id: Ibf52b9dbabc9a4f86c11b7de345c3b73e157435c
Closes-Bug: #1802324
For the openshift-node service, the new_node detection was checking for
stdout instead of rc causing it to always tag nodes as new. This commit
fixes it.
Change-Id: I518f386395b515f59e98877274f4a0fce52ec4d5
Closes-Bug: #1802323
For Python 3.0, has_key() isn't supported already, it can be
replaced with in.
Change-Id: I86344ac971b1e0c75abe5fdd2cddab884daedd9e
Closes-Bug: #1797770
For python3 packaging we are looking for /usr/bin/env python to swap out
with the python3 binary in the packaging. Rather than look for
/usr/bin/python, it's easier to use /usr/bin/env python since the other
files have this. Update this script for consistency.
Change-Id: I3606c356a2103ce1e26e78e1192f0713b51e1ca4
Related-Blueprint: python3-support
Configuring Nova (quota, flavors) and Mistral (workbooks,
workflows, etc.) is a lot faster if we do it in python.
Initial undercloud install - 3.5x faster
----------------------------------------
Run deployment UndercloudPostDeployment ---- 130.50s < Shell
Run deployment UndercloudPostDeployment ---- 37.39s < Python
Re-Running undercloud install - 10x faster
------------------------------------------
Run deployment UndercloudPostDeployment ---- 405.01s < Shell
Run deployment UndercloudPostDeployment ---- 39.95s < Python
Change-Id: If7b3ad701e434ed0d606356b9bbab2716d53c5bb
_run_command() returns the output of the command executed.
If the Neutron API is disabled it would return the string
'false' which is in fact True as far as python is concerned.
We also need a depends_on to ensure the link to hiera.yaml
created in extraconfig/post_deploy/undercloud_post.sh is
already in place.
Change-Id: Iec958a92433d3f671862422ac85bc78d7babc01d