397 Commits

Author SHA1 Message Date
Lee Yarwood
63c4518693 nova: Remove the NovaPlacement service
Deprecated by Ic904aba7c19eda0a0a22dd2d13b9d4182b4595c4 the service can
now be removed in Train.

Change-Id: Ic1d59f93f930f093164ac294730a5cbb08a5bded
2019-04-26 17:33:09 +02:00
Lee Yarwood
555178160b placement: Introduce an extracted PlacementAPI service
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
2019-04-18 17:34:06 +02:00
Zuul
2cee65b397 Merge "Handle any network name in ServiceNetMap" 2019-04-17 16:25:33 +00:00
Zuul
c6a9945a9c Merge "Fix the bond-with-vlans NIC config DPDK route indentation" 2019-04-16 12:32:21 +00:00
James Slagle
da5b57c7bb Handle any network name in ServiceNetMap
In commit, I737d5656b113f7e2238fe7bb555cc2d4cb13877c, support was added
to have the services fall back to the ctlplane network if the default
service network wasn't enabled.

The commit only worked for the hardcoded default network names though
(ItnernalApi, Storage, etc). Given that any network names can be used,
and that our spine/leaf examples show using non-default network names
(IternalApi0, Storage0, etc), the code needs to work for any network
name.

This commit updates the jinja2 logic to work for any network name. It
also handles service_net_map_replace in the jinja2 logic instead of
Heat, so that services can be correctly defaulted when the default
networks don't exist at all.

Change-Id: Icd8d49c0cf8c8ac43348813c502861fb0aa7091f
implements: blueprint split-controlplane-templates
Closes-Bug: #1824025
2019-04-15 17:46:22 -04:00
Dan Sneddon
0da9644b0b Fix the bond-with-vlans NIC config DPDK route indentation
This patch fixes an indentation error in the DPDK config for
the network/config/bond-with-vlans/role.role.j2.yaml NIC
config. The DPDK config had the routes at the wrong indentation
level.

Change-Id: Idc1ae952a9f88e10f7dbac11a9f267c159a8ff47
2019-04-15 12:33:19 -07:00
Dan Sneddon
ed51c04bf9 Fix typo in 2-linux-bonds-vlans NIC config templates
The network/config/2-linux-bonds-vlans/role.role.j2.yaml contains
a typo in the ControlPlane interface. Instead of
ControlPlaneStaticRoutes, the template contains ControlPlaneRoutes,
which doesn't exist. This patch fixes the get_param.

Change-Id: I331a06339611d423433bea243b10e4c0df8800a3
2019-04-15 12:11:45 -07:00
Zuul
b27b96c851 Merge "Jinja automation for %network%NetworkVlanId" 2019-04-08 21:10:15 +00:00
Zuul
c0956431f2 Merge "Backup /etc/os-net-config/config.json when os-net-config runs" 2019-04-03 11:06:56 +00:00
Harald Jensås
59c5e23c54 Jinja automation for %network%NetworkVlanId
Per-subnet vlan id parameters are already rendered in
network-environment.yaml. This change uses networks data
and roles data so that per-subnet vlan id param is used
when passing the relevant NetworkVlanId data to nic-config
templates.

By using the generic %network%NetworkVlanId (no subnet suffix)
in nic-config templates instead of %network%NetworkVlanId_%subnet%,
this allow homogeneous computes in multiple sites to use the
same nic-config template.

Also use type: number for all vlan parameters.

Closes-Bug: #1821043
Change-Id: Id8e76ae7c41a562f5c47d911c42aa18001c11be1
2019-04-03 00:36:49 +02:00
Dan Sneddon
5e5c5cdd71 Backup /etc/os-net-config/config.json when os-net-config runs
Currently os-net-config is called by TripleO with either the
config.json or element_config.json configuration, and then
the configuration file is deleted after os-net-config runs.
This makes it more difficult to troubleshoot a deployment,
since there is no reference file for the network config
which was applied. This change renames the file and
appends the date_time to the file name to preserve the file
for troubleshooting.

Closes-bug: 1816920
Change-Id: I79a6c5428958c1508eb16f91096cb96d7ddc03f6
2019-04-02 19:24:02 +00:00
Zuul
bb89de950f Merge "Add external_resource_vip_id property to network_data.yaml" 2019-03-26 03:46:56 +00:00
Zuul
be5fd8f48e Merge "Add external_resource_id properties to network_data.yaml" 2019-03-26 03:46:52 +00:00
Zuul
64be0987b3 Merge "Only add VlanID parameters to multiple-nics examples if using vlans" 2019-03-26 03:35:22 +00:00
James Slagle
c7a97ce997 Add external_resource_vip_id property to network_data.yaml
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
2019-03-25 10:48:40 -04:00
James Slagle
c4eb9688d7 Add external_resource_id properties to network_data.yaml
Adds the ability to set external_resource_id for the network,
external_resource_subnet_id for the subnet(s), and
external_resource_segment_id for the segment(s) to network_data.yaml.

When setting these properties, the external_id attribute will be set on
the corresponding Heat resources. This causes Heat to not re-create
these resources and instead adopt them from outside the stack.

When using network isolation with multiple stacks (e.g.,
split-controlplane), this allows for re-using some of the same
networks and resources from the non-control plane stacks.

Change-Id: I6652ef8a5105843f4b2cdec54062bd25a57809a0
2019-03-25 10:48:40 -04:00
James Slagle
12fe2e1cd8 Only add VlanID parameters to multiple-nics examples if using vlans
Updates the multiple-nics example nic config template to only add the
<<network-name>>NetworkVlanID parameter if the network does indeed use
vlans. If it does not, no parameter would be added.

Change-Id: I67d4f4eebcaeef682df2956cf18821ee267c20f4
2019-03-25 10:48:40 -04:00
Harald Jensås
ce9a83c8cd Use get_attr to set %network%InterfaceDefaultRoute
For networks in role.default_route_networks use get_attr
to fetch the gateway_ip of the port's subnet and pass
it to the nic-config template.

Changes the default in nic-config templates to ''.

Closes-Bug: #1821046
Change-Id: Ic07a3166fafba3aa307a9e1953b3e3be2594a6f5
2019-03-21 00:26:26 +01:00
Zuul
458080d44d Merge "Deploy Sahara with unversioned endpoints" 2019-03-12 13:46:14 +00:00
Emilien Macchi
f3b85e4ba5 Remove Congress
Congress doesn't seem to be used anywhere, we never had a bug report or
any sign of somebody out there actually using it.

Let's remove its support in TripleO, to reduce the codebase.

Change-Id: Idca6b12f1c0ca3bc15bedf6469d4063a4dac31fa
2019-02-28 16:29:03 -05:00
Martin Schuppert
37e1122f8c Add OvnDbInternal to EndpointMap and use it for ovn_db_host
OVN controller/metadata use ovn_dbs_vip hiera key to configure
the central ovn DB. This key is not available on split control
plane or multi cell setup and therefore installation fails.

With this change a new entry gets created in the EndpointMap
named OvnDbInternal. This can then be exported for an overcloud
stack and can be used as an input for the cell stack.

The information from the EndpointMap is used for ovn-metadata
and ovn-controller as the ovn_db_host information in puppet-tripleo

Change-Id: I0d9eb663405d1113ea84e3c12651a3f0dbdfc75d
Closes-Bug: #1817524
2019-02-25 10:14:19 +01:00
Oliver Walsh
dc9a76aa23 cell_v2 multi-cell
- uses split-control-plane
- adds a new CellController role
  - nova-conductor, message rpc (not notifications) and db
- move nova dbsync from nova-api to nova-conductor
  - nova db is more tightly coupled to conductor/computes
  - we don't have a nova-api services on a CellController
  - super-conductor on Controller will sync cell0 db
- new 'magic' MysqlCellInternal endpoint
  - always refers the to local MysqlInternal endpoint
  - identical to MysqlInternal for regular deployment
  - but doesn't get overridden when inheriting EndpointMap from parent
    control-plane stack
- duplicate service node name hiera for transport_urls on cell stack
  - nova -> cell oslo messaging rpc nodes
  - neutron agent -> global messaging rpc nodes
- run cell host discovery only on default cell, for additional cells
the cell needs to be created first

bp tripleo-multicell-basic

Co-Authored-By: Martin Schuppert <mschuppert@redhat.com>

Change-Id: Ife9bf12d3a6011906fa8d9f97f7524b51aef906a
Depends-On: I79c1080605611c5c7748a28d2afcc9c7275a2e5d
2019-02-15 12:16:48 +01:00
Michele Baldessari
080b22c8b2 Add PacemakerNetwork definition
This gives us the 'pacemaker_node_ips' hiera key on all nodes, which
will be needed because pcs 0.10 needs to specify the ip addresses of the
cluster when setting up a pcmk2.0 cluster based on knet-corosync.

Change-Id: I2e92bb2424f9d674ba888a8c287a26b69f7d9dff
2019-01-28 19:23:32 +01:00
Luigi Toscano
bb4f86fc00 Deploy Sahara with unversioned endpoints
Sahara supports unversioned endpoint also for the current API v1.1,
and deploying with unversioned endpoints is a better setting
if people want to use both API v1.1 and the (soon-stable) API v2
at the same time.
See https://review.openstack.org/#/c/582285/ for more details.

Closes-Bug: #1782147
Change-Id: Iec6cda460d1e3ed6ec4efa28c52a263876facbc1
2019-01-25 22:48:28 +01:00
Harald Jensås
53027484ae Skip templating disabled networks
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
2019-01-21 19:35:37 +01:00
Harald Jensås
3df5f8db1e Fall back service_net_map to ctlplane
Render the service_net_map to fall back to the ctlplane network when
networks are disabled (or not defined) in network_data.yaml.

Also use startswith for Ceph roles which should all have 'storage'
as the HostnameResolveNetwork.

Closes-Bug: #1809313
Change-Id: I737d5656b113f7e2238fe7bb555cc2d4cb13877c
2019-01-11 03:06:03 +01:00
Zuul
8f4a2607d8 Merge "Make NetCidrMapValue contain list of cidrs in each net" 2019-01-09 20:02:14 +00:00
Harald Jensås
cf333d3a07 Add default to network.mtu in j2 in nic configs
Previously all networks was rendered for all roles, and
thus the default set in network/network.j2#L83 would
propgate to the nic config for any role. Since we now
only include properties for network's in role.networks
when passing parameters puppet/role.role.j2.yaml this
default may not propagate to the nic config and can
cause problems if merge-new-params-nic-config-script.py
was used to add new parameters with a role missmatch.

(i.e Updating the Compute roles NIC config file while
specifying the Controller role in  merge-new-params
tool would add the parameter with no default which
causes Property {{network.name}}Mtu not assigned
error when deploying.

Change-Id: I3031977a0daabb093cb8f61bcfc22b68e8e35bed
2019-01-07 22:09:27 +01:00
Zuul
845bc3e845 Merge "Remove MongoDB" 2019-01-07 18:39:49 +00:00
Harald Jensås
8665a0d97b Make NetCidrMapValue contain list of cidrs in each net
Prior to routed networks we only had one subnet per network.
With routed networks each network can have multiple subnets.
The NetCidrMapValue should contain a list storing the cidr
of each subnet for each network.

Ceph:
  list_join is used to make a comma separated list of
  cidrs for public_network, monitor_address_block,
  cluster_network and radosgw_address_block.

Partial: blueprint tripleo-routed-networks-templates
Depends-On: Ia8e219b30d4f8b199b882e95fe2834252a92c15a
Depends-On: I1ace0a02e6aa2610559fee0d8576e6f1bc98d699
Change-Id: I68e064d23ec5d43f59146d974cae604d2c5fdb52
2019-01-06 18:20:27 +01:00
Emilien Macchi
be07f991b6 Remove MongoDB
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
2019-01-04 15:17:00 +00:00
Harald Jensås
2f2d8183e6 L3 routed networks - subnet fixed_ips (3/3)
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
2019-01-03 19:07:20 +01:00
Harald Jensås
2c44fe081b L3 routed networks - network.j2 (2/3)
Add parameters for the subnets of each network in network_data
yaml. Associates the base subnet of each network with the first
segment of the network. (All networks have an implicit first
network segment when they are created.)

Additional segments and subnets defined in the ``subnets`` key
of each composable network is created with subnet to segment
association.

Partial: blueprint tripleo-routed-networks-templates
Change-Id: I53559ed1445f66fa50508ac9898cbec07914b3fc
2018-12-30 19:25:46 +01:00
Harald Jensås
e644e3dda9 Add MTU to neutron networks and nic-config templates
Neutron has support[1] to set the guaranteed MTU for
networks and network segments so that this is exposed
to plug-ins. In interest of supporting the use of
plug-ins to configure network devices in the future
this change adds MTU property on neutron networks.

The new (optional) property 'mtu' in the network
defenitions in 'network_data.yaml' is used to control
the MTU settings. By default the mtu is '1500'.

We already configure the MTU on the ctlplane neutron
networks, this adds the MTU to composable networks.

Also update the nic-config sample templates to include
mtu settings. A heat value resource is added to
nic-config templates to get the required minimum
viable MTU value for bridges, bonds and member
interfaces to ensure the MTU is large enough to allow
the largest configured MTU to traverse the path.

Closes-Bug: #1790537
Change-Id: I11e38f82eb9040f77412fe8ad200fcc48031e2f8
2018-12-22 17:03:09 +01:00
Zuul
1c8bb23a99 Merge "Remove unused params in jinja rendered network config templates" 2018-12-21 15:41:45 +00:00
Zuul
1ea14520a8 Merge "Add a dual-bond example NIC config template" 2018-12-15 14:54:59 +00:00
Harald Jensås
2f84e6e951 Remove unused params in jinja rendered network config templates
Since change I07822ec0cba7eed352c0010eb893b5e5a522e95c removed the
noop resources only parameters for networks used by the role is
passed to the network config templates.

Add a conditional when iterating over networks in jinja templates
so that only parameters for networks used by the role is included.

Change-Id: I8b6c7d247d719a7c8559c4be5e35c478a0f189f7
Related-Bug: #1800811
2018-12-14 10:08:21 +01:00
Dan Sneddon
c57948012c Add a dual-bond example NIC config template
This change adds a 2-bonds-with-vlans example template which
demonstrates the use of two Linux bonds. This template will
place the 'Tenant*' networks on a bond with an OVS bridge.
Other networks will be placed as VLANs on the Linux bond
without a bridge. There is special handling for the Tenant
network on DPDK-enabled Compute nodes.

Change-Id: I9277c0e6a1267392943214eb5fe55509f7956fbc
2018-12-12 02:19:38 -08:00
Zuul
2485978bee Merge "Add SERVICE_bootstrap_node_ip values to allNodesConfig" 2018-12-06 11:49:36 +00:00
Steven Hardy
a77d045663 Add SERVICE_bootstrap_node_ip values to allNodesConfig
This can be used to replace the per-role bootstrap_nodeid_ip,
and the redis-base template is updated to use the new hiera
key.

The old bootstrap_nodeid_ip appears to only be used for redis,
so the old key is removed, with an upgrade release note added
should any out-of-tree services reference this value.

Partial-Bug: #1792613
Change-Id: I830d5b9bae3e9d65c2c393e3dcdf70bffdb1ac7b
2018-11-26 17:01:24 +00:00
Harald Jensås
055e252872 Add ctlplane interface routes
For the isolated networks we use the subnets host_routes
to set and get the routes for overcloud node interfaces.

This change add's this to the ctlplane interface.

Partial: blueprint tripleo-routed-networks-templates
Change-Id: Id4cf0cc17bc331ae27f8d0ef8f285050330b7be0
2018-11-26 17:49:31 +01:00
Harald Jensås
dc2bec100f Fix multiple-nic sample template
Routes where only added to the External and Tenant interface.
This adds the routes also in the section setting up the nets
that are not External or Tenant

Closes-Bug: #1801916
Change-Id: Iec55e0c4ba27dc9a0003693850301804355433cc
2018-11-06 11:20:00 +00:00
Ben Nemec
f0b415d2f9 Add /v2 suffix to Designate uris
Neutron integration requires the versioned endpoint.  The Keystone
catalog value still needs to be unversioned though or Tempest
explodes.

Change-Id: I705208e3ef8a9e2e86b82b721bc87a45b6f4e36d
2018-10-11 15:15:16 +00:00
Zuul
1f1c0f3dec Merge "Fix list concatenation of routes in bond-with-vlan" 2018-10-10 16:30:35 +00:00
Zuul
5d2b9a420e Merge "Configure haproxy for openshift infra" 2018-10-06 12:46:01 +00:00
Martin André
b2bcc10d5a Configure haproxy for openshift infra
Openshift Routers are located on the infra node and need to be highly
available on ports 80 and 443.

Depends-On: I5de14152904d06c49e9d5b2df6e3f09a35f23d92
Change-Id: Iee088e1279bff2cdb7a3601288804f626bff29a3
2018-09-25 16:35:48 +02:00
Harald Jensås
6deb54c5a1 Fix list concatenation of routes in bond-with-vlan
We are passing a list of routes to concatenate. This list
was nested in another list, causing an invalid configuration.

Closes-Bug: #1793838
Change-Id: I7a8bc5d2171905237fe36d5ccad853f838c9bffc
2018-09-23 19:23:52 +02:00
Harald Jensås
e68da67c0d Remove parameter reference to non-exisingt parameter
The ControlPlaneRoutes parameter referenced in
network/config/bond-with-vlans/role.role.j2.yaml does
not exist.

Closes-Bug: #1793833
Change-Id: I6cc562cfb9617348f8f9128e700af481481be232
2018-09-21 23:47:21 +02:00
Zuul
3932355a8c Merge "Add host_routes to port_from_pool.j2" 2018-09-21 12:37:25 +00:00
Zuul
733c12d46a Merge "Remove External network from DVR related configuration" 2018-09-19 07:54:23 +00:00