This change introduces an optional extracted version of the Placement
service into TripleO. This extracted version will only be required once
the Placement service is fully removed from Nova during the T cycle
(previously S but delayed) at which point the corresponding
NovaPlacement service will also be removed from TripleO.
The majority of this change is code motion between the original
NovaPlacement service and the new PlacementAPI service.
Upgrades from the original NovaPlacement service to the extracted
PlacementAPI service are not currently supported by this change and will
be worked on independently during the Train cycle.
Co-authored-by: mschuppert@redhat.com
Depends-On: https://review.openstack.org/#/c/624335/
Change-Id: I9e3287bcbe9d317f32bf6b468c6ee17f04b6fff9
Not all roles are connected to all networks, there is no
need to create metadata for networks not associated with
the role.
In edge/spine-and-leaf deployments the total number of
composable networks used can be high. Passing all the
networks we quickly go beyond the nova metadata fields
size limit (each field cannot exceed 256 bytes).
Also update tools/check-up-to-date.sh script to use the
simple yaml-diff.py instead of diff. The env generator
code will sort data, while jinja rendered environments
are not sorted, thus need to diff the data in yaml not
the text.
Closes-Bug: #1821377
Change-Id: I5ae3bc845b0a6ad6986d44b14ff4b0737a9b033b
Adds the external_resource_vip_id property, which can be used to set an
external_id for the port resource for the network VIP.
Since the same template resource, port.network.j2.yaml is used for both
VIP and normal ports on a network, we can't simply add jinja to that
template that conditionally adds the external_id attribute because we
don't know during the jinja2 phase if the template is for a VIP or not.
Instead, we need to map the VIP resources to an entirely new template
resource (external_resource_port.network.j2.yaml) so that we can set the
external_id attribute just for the VIP ports.
Change-Id: I27d3eeb11277004b00aa4d6a66014d5c71081c26
implements: blueprint split-controlplane-templates
This change combines the previous puppet and docker files into a single
file that performs the containerized service installation and configuration
for the octavia services.
With this patch the baremetal version of each respective octavia service
has been removed.
Related-Blueprint: services-yaml-flattening
Change-Id: Icf2856fd261b49a4da1f197c7190c9a18d21e30f
This reverts commit 2a8719960103d2619e908290d80235e6079c334d.
BootParams takes care of the kernel args configuration and
reboot via ansible. But Enabling of OVS-DPDK (EnableDpdkDeployment)
is still handled as part of the PreNetworkConfig (host_config_and_reboot).
It can be cleaned-up to remove unused bits, but not the entire stack.
Change-Id: Ifeb029ddaeb2bc60f43abdb8bdb02a4c911ace30
host-config-and-reboot interface was deprecated in Queens in favor of:
OS::TripleO::Services::BootParams: extraconfig/pre_network/boot-params-service.yaml
and doesn't work with config-download, which has been the default since
Rocky.
Let's remove these files.
Change-Id: I85a781cecb7224881b827ff442376c706f1c771b
This change combines the previous puppet and docker files
into a single file that performs the docker service installation
and configuration.
Change-Id: I7b1688a12964d939ece33a7f06d2493bf13c08eb
We should support arbitrary tags in upgrade tasks, update the
validation accordingly.
Change-Id: I3ebeb06b18306a8d1de11b3519e62b90a9cd6a78
Implements: blueprint upgrades-with-os
Now that we could get rid of the puppet dedicated definitions,
we can move the docker/* rabbitmq related stuff to the final
location, and correct the paths and some nits.
Change-Id: I47ca1e303bd38642200ccb7f6823bcd06cd00255
This flattens rabbitmq and removes puppet parts. The next step will
move the flattened templates to their final location.
It's split in two steps in order to make reviews easier on that big change.
Change-Id: I30f0802770d86d64e2ec6fa93dc9a608d4b15d69
Follows up Id0060a3abbcda8edb6124eb096cb824aaea48396.
This patch updates our Popen calls to enable universal newlines for
calls that we parse or consume the output for. Without
univeral_newlines=True, the output is treated as bytes under python3
which leads to issues later where we are using it as strings.
See https://docs.python.org/3/glossary.html#term-universal-newlines
Signed-off-by: Bogdan Dobrelya <bdobreli@redhat.com>
Change-Id: I1a82c14d8c894cb6ea6c0c322c3fe5b71b34a11e
The undercloud needs the External network for the external VIP
address. It uses the _from_pool template creating a fake neutron
port.
Other networks are not required, and should be removed to optimize
the number of heat resources and plan rendering.
NOTE: Skips validation of network_data_undercloud.yaml against
network_data.yaml, as is already done to openshift and routed
networks networks data examples.
Related Bug: #1809313
Change-Id: Ib11a134df93e59947168b40bc71fb1da9172d4ac
Ignore disabled networks when rendering templates.
Add's the ctlplane network to maps to ensure we don't
end up with no keys/values in map_replace functions.
Also some Jinja cleanup:
- Reduce the number of times we iterate over networks
where we can.
- Add's indentation to make the code easier to read.
Related-Bug: #1809313
Depends-On: I2e8135bc9389d3bf1a6ef01e273515af5c488a9a
Change-Id: Ifeb2d2d1acb43c16a5bf29e95965776494d61fef
If the user specify a role name that does not exist
in the provided roles data the scipt exits with a
StopIteration error. Catch it and raise RuntimeError
with user friendly error message.
Closes-Bug: #1812530
Change-Id: I704316f66c197668a7d8e373efe00889776d2a85
Look for used parameters in parameter_groups
This patch searches for parameter use in the parameter_groups section
as well and should eliminate some false positive warnings with
our validations.
Change-Id: I67c5ad2b6e865d454489702e5eb263a9508d26d2
The ones in environments/ssl/ are preferred instead. These have been
available since pike.
Change-Id: I84a7b354ede46d6ec88964e5dcbd5678d89c8c0f
Depends-On: I5a905ec7499a6faa08cbcacfccb19a6e424e4a80
This patch searches for parameter use in conditions as well
and should eliminate a lot of false positive warnings with
our validations.
Change-Id: I33eba9d46d8c83b7a34c39fdfcd35b62f52c8752
The merge-new-params-nic-config-script.py previosly had the
'Controller' role as the default for --role-name. It is not
obvious that this parameter must be changed when merging
nic config templates.
Remove the default and make the argument required. Improves
UX since user error is less likely.
Making the mistake of using a Role with too many networks
is'nt as forgiving since we now only pass parameters for
the role.networks.
Related-Bug: #1800811
Change-Id: Iff9e364db66ad09a30ac10a7814a3c01d50caf58
Change I68e064d23ec5d43f59146d974cae604d2c5fdb52 makes
NetCidrMapValue a list of ip networks.
The designate service configures the dns backend security
to contol from wich addresses updates are allowed. We
should use the list of cidr's associated with the
DesignateApiNetwork to allow all nodes in the network to
remotely control the nameserver.
Partial: blueprint tripleo-routed-networks-templates
Change-Id: I5c5cd51c8f127e8879c5528883c3abd261f4a5b3
Change I68e064d23ec5d43f59146d974cae604d2c5fdb52 makes
NetCidrMapValue a list of ip networks.
Pass the list of cidr's from the ApacheNetwork entry in
the cidr map to 'apache::mod::remoteip::proxy_ips:'.
Partial: blueprint tripleo-routed-networks-templates
Change-Id: Ieb6aff9889136f0ccbec32e36b46140aa7826019
MongoDB support was stopped in Pike, it is not used anywhere now.
Therefore, in Stein are removing it to clean things up.
Change-Id: I4ec8f35b1dd71c25cfb41cc54105ac743ef67745
When using neutron routed networks we need to specify
either the subnet or a ip address in the fixed-ips-request
when creating neutron ports.
a) For the Vip's:
Adds VipSubnetMap and VipSubnetMapDefaults parameters in
service_net_map.yaml. The two maps are merged, so that the
operator can override the subnet where VIP port should be
hosted. For example:
parameter_defaults:
VipSubnetMap:
ctlplane: ctlplane-leaf1
InternalApi: internal_api_leaf1
Storage: storage_leaf1
redis: internal_api_leaf1
b) For overcloud node ports:
Enrich 'networks' in roles defenition to include both
network and subnet data. Changes the list to a map
instead of a list of strings. New schema:
- name: <role_name>
networks:
<network_name>
subnet: <subnet_name>
For backward compatibility a conditional is used to check
if the data is a map or not. In either case the internal
list of role networks is created as '_role_networks' in
the jinja2 templates.
When the data is a map, and the map contains the 'subnet'
key the subnet specified in roles_data.yaml is used as
the subnet in the fixed-ips-reqest when ports are created.
If subnet is not set (or role.networks is not a map) the
default will be {{network.name_lower}}_subnet.
Also, since the fixed_ips request passed to Vip ports are no
longer [] by default, the conditinal has been updated to
test for 'ip_address' entries in the request.
Partial: blueprint tripleo-routed-networks-templates
Depends-On: I773a38fd903fe287132151a4d178326a46890969
Change-Id: I77edc82723d00bfece6752b5dd2c79137db93443
This change realigns the sshd baremetal puppet service yaml config
files into a common hierachy as with the rest of this blueprint.
This change also removes container functionality, since this was a
temporary measure to proxy live-migration connections from
non-containerized to containerized compute nodes during upgrade.
Change-Id: I87e112a0f1973fa3b0e959777e00071c2bbf7c9c
Related-Blueprint: services-yaml-flattening
Since we're looking at flattening the services into a deployment/
folder, we need to update the validation script to also handle this
directory structure. Additionally this change updates the service name
validation to ensure that the service name in matches the start of the
filename itself.
Change-Id: Ibb140a38b69a8780adf69362e0f437b3426f360d
Related-Blueprint: service-yaml-flattening
It is possible to use the process_templates script to generate the
user's jinja templates based on role and network data. But the script
expects the presence of j2_excludes file. Making it as optional, allows
users to generate templates in user's template directory itself, like
$ /usr/share/openstack-tripleo-heat-templates/tools/process-templates.py \
-p ~/templates/ \
-r ~/templates/roles_data.yaml \
-n ~/templates/network_data.yaml
Closes-Bug: #1806351
Change-Id: I375cd9ff9b40bbdad34d0732ec8abd25fbdde46e
Provide a network data file with only the External, InternalApi and the
Storage networks for use with OpenShift deployments.
Take out the IPv6 addresses from the network data until OpenShift can
be deployed in an IPv6 environment.
This also disables the validation for the network_data_openshift.yaml
since it expects network_data files to only add new networks to the
existing pre-defined overcloud networks and we're doing the opposite
here -- only keeping a subset of the networks.
Change-Id: I6d8c08c12ae9002e6386f26c5a8bcf70b8eda4b7