4157 Commits

Author SHA1 Message Date
Jesse Pretorius (odyssey4me)
dcddeb3b91 Make UpgradeLeappDevelSkip per-role
When specific roles are deployed, for example CephStorage,
then the parameters for UpgradeLeappDevelSkip are different
to all other roles.

This change makes UpgradeLeappDevelSkip a per-role parameter.

Included in this is the appropriate tagging for the other
parameters which had the same work done in:

- https://review.opendev.org/779522
- https://review.opendev.org/774537

Release notes are included for all of the above too.

Related-Bug: rhbz#1962365

Change-Id: I522951cc7ec6034bb6287dd144a9fc433c0090e0
2021-06-13 22:48:01 +01:00
Harald Jensås
659cc55277 Add neutron port tag hint for role name
Adds a tag tripleo_role=$ROLE to neutron ports
created by heat.

Related: blueprint network-data-v2-ports
Change-Id: I238572444e2931546d44864b2de497dd2825c2dc
2021-05-14 21:31:50 +02:00
Harald Jensås
a120ada72e Refactor OVN bridge MAC addresses
Moving the network and port management for OVN
bridge MAC addresses to ansible.

Removes the heat resources, and adds an external
deploy task at step 0 in the ovn controller service
templates which uses the 'tripleo_ovn_mac_addresses'
ansible module to create/remove OVN mac address ports.

Adds parameter role_specific OVNStaticBridgeMacMappings,
parameter that can be used to set static bridge mac
mappings. When this is set no neutron resources will be
created by the tripleo_ovn_mac_addresses ansible module.
OVNStaticBridgeMacMappings must be used for standalone
deployments.

Implements: blueprint network-data-v2-port
Depends-On: https://review.opendev.org/782891
Depends-On: https://review.opendev.org/783137
Change-Id: I6ce29d2908e76044c55eb96d0d3779fe67ba9169
2021-05-04 11:49:50 +05:30
Zuul
b2b29b8013 Merge "Add a boolean to allow disk overrides through NodeDataLookup" 2021-04-27 16:50:11 +00:00
Zuul
bdd379cfdd Merge "Add neutron port tag hint for default_route_network" 2021-04-09 10:30:02 +00:00
David Hill
57add501a4 Add a boolean to allow disk overrides through NodeDataLookup
Add a boolean to allow disk overrides through NodeDataLookup and use
the following hiera data parameters to use device persistent naming for swift:

NodeDataLookup:
  "UUID": {
          "swift::storage::disks::args": {
          "scsi-331402ec012ad6a72": { "base_dir": "/dev/disk/by-id/" },
          "scsi-331402ec012ad6a73": { "base_dir": "/dev/disk/by-id/" }
          },
          "tripleo::profile::base::swift::ringbuilder::raw_disks": [
          ":%PORT%/scsi-331402ec012ad6a72",
          ":%PORT%/scsi-331402ec012ad6a73" ]
          }
Change-Id: I0afa3283ed8c45f1ee0f44eb9bf9e4050d747a6b
2021-04-06 13:44:55 -04:00
ramishra
c9991c2e31 Use 'wallaby' heat_template_version
With I57047682cfa82ba6ca4affff54fab5216e9ba51c Heat has added
a new template version for wallaby. This would allow us to use
2-argument variant of the ``if`` function that would allow for
 e.g. conditional definition of resource properties and help
cleanup templates. If only two arguments are passed to ``if``
function, the entire enclosing item is removed when the condition
is false.

Change-Id: I25f981b60c6a66b39919adc38c02a051b6c51269
2021-03-31 17:35:12 +05:30
Harald Jensås
cea78ad4fd Add neutron port tag hint for default_route_network
Adds a tag tripleo_default_route=$BOOL to neutron ports
created by heat indicating if the ports interface is
used for the default route.

The value is controlled by the 'default_route_networks'
in roles data.

With network-data-v2 the same tag will be used to
set up ansible vars appropriately. Having the heat driven
process add the tag can be useful for upgrade/migration
automation.

Related: blueprint network-data-v2-ports
Change-Id: I20d48b3a29193dbcb70ec5cb13daf153bb0aeff2
2021-03-30 13:14:13 +02:00
Zuul
aa98408f28 Merge "Restore PreNetworkConfig resources" 2021-03-01 20:42:08 +00:00
David Vallee Delisle
a68149f247 per_node is not parsing generated json
Hieradata for individual nodes leads to json decoding error.

Related: https://bugzilla.redhat.com/1924952
Change-Id: I1cea09bfd2595ce3ae6c2b39adbb40044a4e0b0b
2021-02-11 09:06:39 +00:00
Takashi Kajinami
e7894c0b23 Restore PreNetworkConfig resources
This change restores the PreNetworkConfig resources, so that we migrate
back ExtraCnfigPre and NodeExtraConfig from pre network configurations
to post network configurations, to be consistent with older version
depending on Heat software deployments instead of config download.

Depends-on: https://review.opendev.org/772303
Closes-Bug: #1907214
Change-Id: I96e7e4c570839cfba6011788464d8e93925b2f01
2021-02-01 05:56:59 +00:00
Rabi Mishra
6d39c90a22 Use RootStackName parameter instead for consistency
We don't need another parameter for the root stack and
also not required to pass it around.

This was added earlier with [1].

[1] https://review.opendev.org/openstack/tripleo-heat-templates/761845

Change-Id: I5dee09ab6c15c1887394b0dbda6866e94231f3a5
2020-12-14 12:38:54 +05:30
Harald Jensås
28f2a70912 Add hostname and stack_name tags to ports
Set tag's with the stack name and the hostname
on composable network node ports. The tags will
be used by network-data-v2 with port management
handled outside of heat.

Change-Id: I23c600c1754d463028259a7dc2c6e5538c512ca4
2020-11-14 00:39:29 +00:00
Harald Jensås
ff30e794d1 Create NetworkConfig per-role in overcloud.yaml
For each role create a network config resource
{role.name}}NetworkConfig. Remove per node
NetworkConfig resource from puppet/role.role.j2.yaml.

NOTE: CI nic config templates was updated with using
      tools/merge-new-params-nic-config-script.py

Depends-On: https://review.opendev.org/753930
Change-Id: Iff4bf742947a5a8170938372a8075519850b6f63
2020-09-29 14:13:51 +02:00
Zuul
c29082b28a Merge "Use ansible for undercloud/standalone network config" 2020-09-29 07:44:19 +00:00
Rabi Mishra
02f80c05d0 Use ansible for undercloud/standalone network config
This patch changes undercloud and standalone roles to
generate network config with only ansible and
not depend on downloaded network config from
heat stack.

Depends-On: https://review.opendev.org/#/c/753958/
Change-Id: Ibcb0f0a65cfd04d677a4b861d9f647af13611b24
2020-09-26 13:34:01 +05:30
Zuul
3961826dd0 Merge "Remove overcloud_common.pp" 2020-09-24 17:27:45 +00:00
Emilien Macchi
7ffa24c8ac Remove overcloud_common.pp
This has not been useful for a while, cleaning this up.

Change-Id: I3612f760fb0dd2e69fdcd1327b6915a502f1cab7
2020-09-22 10:08:20 -04:00
Rabi Mishra
a4622f1382 Use OS::Heat::Value for NetworkConfig
This removes the run-os-net-config.sh script and uses
OS::Heat::Value for the NetworkConfig resources.

Depends-On: https://review.opendev.org/#/c/751713/
Change-Id: Ic3a0234d36525cdd6f415c77733d05a39bbeb3c2
2020-09-22 08:18:22 +05:30
Zuul
87a4674d6e Merge "Get the CIDR of the neutron port for NetworkConfig" 2020-09-22 02:32:26 +00:00
Zuul
ba50a97f9f Merge "Switch to ansible for deploying artifacts" 2020-09-21 07:14:03 +00:00
Harald Jensås
cd53ae79c7 Get the CIDR of the neutron port for NetworkConfig
Since GroupVars moved to overcloud.j2.yaml in
https://review.opendev.org/677218 the CIDR set in
'{{network.name_lower}}_cidr' in groupvars is limited
to one of the subnets on the network.

When a network have multiple subnets with different
subnet prefixes, this becomes a problem as nodes are
configured with the from subnet mask.

This change moves them to AnsibleHostVars.

Closes-Bug: #1895899
Change-Id: I4e4e5b1195d17f59c825a3f7df73920921e1f86e
2020-09-17 08:02:48 +05:30
Alex Schultz
738857c7c3 Switch to ansible for deploying artifacts
We've long supported the ability to deploy rpms or tar.gz to a system
during deployment. It currently is a shell script so let's convert it to
an ansible module.

Change-Id: Id30f89cf261b356f25a93e5df5550e9dfb08f808
Depends-On: https://review.opendev.org/#/c/748757/
2020-09-04 15:28:17 -06:00
Harald Jensås
c90bbe188e OVNChassisMacPorts for distributed VLAN
For distributed vlan in ovn we need to add support of
creating mac addresses per compute and seting them in
external_ids:ovn-chassis-mac-mappings.

This change passes the ovn::controller::ovn_bridge_mappings
to the role node configuration so that ports for each
bridge mapping can be created. The map of physnet/mac_address
pairs is placed in the role output, and in RoleGroupVars.

Related-Bug: #1881593
Change-Id: If24653b629e39b6dd7ec6d09ae0ef32d7842c48f
2020-08-28 18:24:13 +02:00
Rabi Mishra
d573f4e878 Simplify host entries generation
This removes a resource and the the unnecessary yaql function.
Also replaces json data types with lists to reduce memory
footprint.

Change-Id: I04a6114ca3d2703ca2891d6807d49b78ffee0f97
Related-Bug: #1886203
2020-07-13 12:25:06 +05:30
Giulio Fidente
a046de852e Make per_node.yaml py3 safe
Use of python print() should work with both py2 and py3 but
without it script execution fails on py3

Change-Id: Ifdf4426bf27ffa82f4c2096d2a1670b996b1f53c
Closes-Bug: 1877378
2020-05-07 15:58:42 +02:00
Harald Jensås
679ecaada0 Set dns_name propery on ports and networks
Neutron's dns_assignments field includes a nice pice of
structured data. This is a prerequirement for Designate
usage. (No plan's to use that, but being a bit ready
does'nt hurt.)

  {"hostname": "my-vm",
   "ip_address": "192.0.2.16",
   "fqdn": "my-vm.example.org."}

Enable for the undercloud:
 - dns_domain_ports ml2 extension driver

Change-Id: I46eb9a24dd66821b27524fe4d1fdab617b6fa948
2020-04-03 08:57:38 +02:00
Bogdan Dobrelya
3b8e6f78e1 Use lists for storing host entries in Heat
This simplifies all the split/join transformations and improves the
memory footprint to a reduced list of unique entries for
HostsEntryValue (originally required for storing the ultimate data for
hosts entries in a form of a quite long single-line string value).

That improves the hosts entries processing for large scale deployments
and removes possible limitations to the sizes of strings.

Closes-bug: #1869375
Change-Id: I5ac498621e9e3c49def565744a7b521cb2cc5c25
Signed-off-by: Bogdan Dobrelya <bdobreli@redhat.com>
2020-03-27 15:20:49 +01:00
Saravanan KR
9305d1efe9 Remove PreNetworkConfig resource
PreNetworkConfig resource was required to support host changes
before network deployment (for OvS-DPDK). As the required steps
has been migrated to ansible deploy_steps with 'step: 0', this
resources is no longer required.

Change-Id: I11a8ec280b4f5c33b6061a96cb546b4760a45b3a
2020-01-02 15:04:56 +05:30
James Slagle
597cdb6796 Use ansible for hosts entries
This patch updates the templates to use the new ansible role,
tripleo-hosts-entries, for managing the entries in /etc/hosts instead of
the values from the Heat stack.

Change-Id: I606e0f27f9f9ae9d85bc0fc653f8985eb734d004
Depends-On: Ia02ca1263590e2b579f2534e99119d7b1cd4b39a
2019-11-14 11:29:51 -05:00
Rabi Mishra
070945f278 Move GroupVars to overcloud.j2.yaml
These are role specific. There is no point of creating it
for every node nested stack of a role.

Change-Id: I5104154fc4c952c46caf42289531b9c4abd9ff6c
2019-08-23 08:38:46 +05:30
Zuul
e6b598fa23 Merge "Remove glance and nova custom constraints" 2019-08-22 17:03:55 +00:00
Martin Schuppert
6745f86f2a Fix vlan id assignment with additional subnets
_role_net_subnet contains the name of the subnet, so
_role_net_subnet.vlan will not return the correct configured
vlan id. This change uses network.subnets[_role_net_subnet].vlan
to get the configured vlan id.

Change-Id: Ifef98f45a57af508d7302584aa52eedd45316edd
Closes-Bug: #1840054
2019-08-13 17:26:58 +02:00
Steve Baker
fe266d120d Remove glance and nova custom constraints
These endpoints won't exist on the undercloud in the U cycle, and this
sort of check overlaps with tripleo-validations anyway. This change
also removes the disable_constraints roles data attribute as there is
no longer anything to disable.

Possibly this means deployed-server/deployed-server-roles-data.yaml is
no longer required because it only exists to set
disable_constraints:true (although it lags roles_data.yaml by quite a
lot now)

It looks like tripleo-validations has checks for flavor and image
already, but not keypair. It is unlikely users stray from the
'default' keypair so it is probably fine to not have a validation of
this for the Train release.

Change-Id: Id6146bfdc124e6e3e64ee7caea3ddeb2552bfa71
Blueprint: nova-less-deploy
2019-08-07 21:30:24 +00:00
Zuul
fb420a32d3 Merge "Remove DeploymentSwiftDataMap parameter" 2019-07-30 21:08:49 +00:00
Zuul
c098eed3d4 Merge "Use ansible vars nic config" 2019-07-30 01:01:54 +00:00
Zuul
53ad86b486 Merge "Add var for {{network.name_lower}}_cidr" 2019-07-30 00:58:07 +00:00
Rabi Mishra
dad706daf3 Move ConfigDatafiles to overcloud.j2.yaml
It seems we unnecessarily create resources in every nested stack.

Change-Id: I8b90b64cda5c27ff6b889337c116e9644372163c
2019-07-29 15:31:30 +05:30
Rabi Mishra
1d710a3ac9 Fix {{server_resource_name}}ConfigDatafiles properties
Looks like an Inadvertent error in https://review.opendev.org/#/c/662472/.

Change-Id: Ifcec357da66af0c7841b9c0f4b4167b9c4cf5e29
2019-07-29 10:01:47 +05:30
James Slagle
f732a8390a Use ansible vars nic config
Migrates the NetworkConfig resource to use ansible vars as the values
for Heat parameters for the IP and subnet cidr. This makes it so that
the nic config template value coming out of Heat is generic per role.
The same nic config can then be used for any node of that role type by
Ansible, and the Ansible vars will be resolved at config-download
runtime.

Change-Id: I7e85dabd42ccb348ea27825d03c08157222956a1
2019-07-23 13:25:23 -04:00
James Slagle
7816fa0cf7 Add var for {{network.name_lower}}_cidr
Adds a group var for {{network.name_lower}}_cidr for each role. Using
the lowecase name will make it more consistent with the lowercase
network names for the IP addresses.

Also removes the {{network.name}}_cidr output from role.role.j2.yaml as
those values have already been included the group vars.

Change-Id: Ib660c2dd25e2207f51439ec6b9c59b6e88eb23f8
2019-07-23 13:20:56 -04:00
Rabi Mishra
7c1599a413 Remove DeploymentSwiftDataMap parameter
Now that we do all node configurations using config-download,
this interface is not useful anymore.

Change-Id: Ifffaff6f044e334491b8f00cc6c6c8779d7bf7e5
2019-07-23 11:00:16 +05:30
Emilien Macchi
81211c114c Remove support for Cisco N1KV
Cisco N1KV has announced EOL & EOS. So we are removing its support in
TripleO.

Change-Id: Icd56f6cba30ea2a0377ccbc9e830cd981a00e478
2019-07-21 18:58:53 -04:00
Zuul
bdfc3caad9 Merge "Remove support for Midonet plugin" 2019-07-21 03:22:19 +00:00
Zuul
b8de91a534 Merge "Set HieradataVars as group vars instead" 2019-07-19 07:32:15 +00:00
Emilien Macchi
91d2875393 Remove support for Midonet plugin
The plugin isn't well maintained and we have zero feedback on how it is
working, therefore we are removing it from the tree; and a composable
service can be added out of tree later if needed.

Change-Id: Ibbcf0316aebd6c1ca87f510f5aa4c4b44941ed88
2019-07-18 19:12:36 +00:00
Emilien Macchi
2ccd776390 Remove support for Cisco UCSM plugin
The plugin doesn't have maintainers nor testing in recent releases,
let's remove it from the tree; and a composable service can be added
later if needed, out of tree.

Change-Id: I7edc7d1c817c5577a11effc6732fb3797574ebac
2019-07-15 10:42:41 -04:00
James Slagle
5c53029232 Set HieradataVars as group vars instead
Instead of writing a set of vars to hieradata_vars.yaml and then passing
that into tasks with vars_files, just set the data as group vars.

This makes for a simpler interface without having to remember to pass in
the data with vars_files on any task/play that might require them.

Change-Id: I851d9404861d55791bde1346c58bc1c94f591569
2019-07-13 11:50:30 +00:00
James Slagle
2f6f519149 Use Ansible for ssh known hosts config
Migrate to using the template mode of the tripleo-ssh-known-hosts role.

Detailed Changes:
common/deploy-steps.j2:
  Remove ssh_known_hosts_hostnames parameter
  Remove ssh_known_hosts variable in config-download output
  Set tripleo_ssh_known_hosts_use_template var to true when including
    the tripleo-ssh-known-hosts role to activate template mode.
extraconfig/tasks/ssh/host_public_key.yaml:
  Template removed as it was deprecated and is no longer used.
extraconfig/tasks/ssh/known_hosts_config.yaml:
  Template removed as it was deprecated and is no longer used.
overcloud-resource-registry-puppet.j2.yaml:
  Mappings for Ssh known hosts resources removed
overcloud.j2.yaml:
  Resources removed: SshKnownHostsConfig, SshKnownHostsHostnames,
    {{role.name}}SshKnownHostsDeployment
  Removed passing in ssh_known_hosts_hostnames parameter to
    common/deploy-steps.j2
puppet/role.role.j2.yaml:
  Removed SshHostPubKey and SshKnownHostsHostnames resources
  Removed known_hosts_entry and known_hosts_hostnames stack outputs
  Add role_networks to set Ansible group vars which is a list of enabled
    networks for the role

Change-Id: I10d0de42acc0b88b7947b464e976b5d0b9067ca2
2019-07-13 11:50:01 +00:00
Emilien Macchi
55ad225844 Remove service_names hieradata file
The service_names isn't useful anymore:

- hiera('service_names') has been replaced by hiera('enabled_services')
- sensu::subscriptions moved under the {{role.name.lower()}}_extraconfig
  hieradata file.

This is part of the effort which aims to reduce the number of hieradata
files.

Depends-On: I457f2c81a2cf6cc2f42dc4585b41b0d91dacc059
Change-Id: I22081888541e059cd9f258d15990f58df78c38d2
Closes-Bug: #1835551
2019-07-12 03:55:01 +00:00