With net_config_override set, undercloud heat installer should noop OS::TripleO::Undercloud::Net::SoftwareConfig

Bug #1781577 reported by Bogdan Dobrelya
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
tripleo
Fix Released
High
Bogdan Dobrelya

Bug Description

The configuration to deploy containerized UC

undercloud.conf:

[DEFAULT]
...
net_config_override = net-config-override.json
...

$cat net-config-override.json:
"network_config": [
  {
   "type": "ovs_bridge",
   "name": "br-ctlplane",
   "ovs_extra": [
    "br-set-external-id br-ctlplane bridge-id br-ctlplane"
   ],
   "addresses": [
     {
       "ip_netmask": "{{PUBLIC_INTERFACE_IP}}"
     }
   ],
   "mtu": {{LOCAL_MTU}}
}
]

The command:

openstack undercloud intall --use-heat

it is expanded into:

sudo openstack tripleo deploy --standalone --standalone-role Undercloud --stack undercloud \
  --local-domain=localdomain --local-ip=192.168.24.1/24 \
  --templates=/usr/share/openstack-tripleo-heat-templates --heat-native \
  -e /usr/share/openstack-tripleo-heat-templates/environments/docker.yaml \
  -e /usr/share/openstack-tripleo-heat-templates/environments/undercloud.yaml \
  -e /home/zuul/containers-prepare-parameter.yaml \
  -e /usr/share/openstack-tripleo-heat-templates/environments/services/masquerade-networks.yaml \
  -e /usr/share/openstack-tripleo-heat-templates/environments/services/ironic.yaml \
  -e /usr/share/openstack-tripleo-heat-templates/environments/services/ironic-inspector.yaml \
  -e /usr/share/openstack-tripleo-heat-templates/environments/services/mistral.yaml \
  -e /usr/share/openstack-tripleo-heat-templates/environments/services/zaqar.yaml \
  -e /usr/share/openstack-tripleo-heat-templates/environments/services/tripleo-ui.yaml \
  -e /usr/share/openstack-tripleo-heat-templates/environments/services/tempest.yaml \
  -e /usr/share/openstack-tripleo-heat-templates/environments/public-tls-undercloud.yaml \
  --public-virtual-ip 192.168.24.2 --control-virtual-ip 192.168.24.3 \
  -e /usr/share/openstack-tripleo-heat-templates/environments/ssl/tls-endpoints-public-ip.yaml \
  -e /usr/share/openstack-tripleo-heat-templates/environments/use-dns-for-vips.yaml \
  -e /usr/share/openstack-tripleo-heat-templates/environments/services/undercloud-haproxy.yaml \
  -e /usr/share/openstack-tripleo-heat-templates/environments/services/undercloud-keepalived.yaml
  --deployment-user zuul --output-dir=/home/zuul \

  -e /home/zuul/tripleo-config-generated-env-files/undercloud_parameters.yaml \

  --hieradata-override=/home/zuul/./hieradata-overrides-t-h-t-undercloud.yaml \
  -e /usr/share/openstack-tripleo-heat-templates/environments/tripleo-validations.yaml \

  -e /home/zuul/undercloud-parameter-defaults.yaml \

  --log-file=install-undercloud.log \
  -e /usr/share/openstack-tripleo-heat-templates/undercloud-stack-vstate-dropin.yaml

__

As expected, it creates the wanted os-net-config data in the tripleo-config-generated-env-files/undercloud_parameters.yaml:

UndercloudNetConfigOverride:
  network_config:
  - addresses:
    - ip_netmask: 192.168.24.2
    mtu: 1350
    name: br-ctlplane
    ovs_extra:
    - br-set-external-id br-ctlplane bridge-id br-ctlplane
    type: ovs_bridge

but the NetworkDeployment tasks creates os-net-config overrided with the default data:
$cat /etc/os-net-config/config.json | jq '.'
{
  "network_config": [
 {
   "addresses": [
  {
    "ip_netmask": "192.168.24.1/24"
  }
   ],
   "name": "br-ctlplane",
   "ovs_extra": [
  "br-set-external-id br-ctlplane bridge-id br-ctlplane"
   ],
   "type": "ovs_bridge",
   "use_dhcp": false
 }
  ]
}

This is prolly cuz of OS::TripleO::Undercloud::Net::SoftwareConfig override:

$cat undercloud-parameter-defaults.yaml
{
 "parameter_defaults": {
  "ControlPlaneSubnetCidr": 24,
  "UndercloudDhcpRangeEnd": "192.168.24.30",
  "UndercloudDhcpRangeStart": "192.168.24.5",
  "UndercloudNameserver": "38.145.32.79",
  "UndercloudNetworkCidr": "192.168.24.0/24",
  "UndercloudNetworkGateway": "192.168.24.1"
 },
 "resource_registry": {
  "OS::TripleO::Undercloud::Net::SoftwareConfig": "/usr/share/openstack-tripleo-heat-templates/ci/common/net-config-simple-bridge.yaml"
 }
}

When we define net_config_override, we should noop OS::TripleO::Undercloud::Net::SoftwareConfig it seems

Changed in tripleo:
importance: Undecided → High
milestone: none → rocky-3
status: New → Triaged
description: updated
tags: added: networking
tags: added: quickstart
Revision history for this message
Bogdan Dobrelya (bogdando) wrote :

That undercloud-parameter-defaults.yaml is created with quickstart, so resource_registry should be created there based on the undercloud_net_config_override setting

Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix proposed to tripleo-quickstart-extras (master)

Fix proposed to branch: master
Review: https://review.openstack.org/582508

Changed in tripleo:
assignee: nobody → Bogdan Dobrelya (bogdando)
status: Triaged → In Progress
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix proposed to python-tripleoclient (master)

Fix proposed to branch: master
Review: https://review.openstack.org/582529

Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix merged to python-tripleoclient (master)

Reviewed: https://review.openstack.org/582529
Committed: https://git.openstack.org/cgit/openstack/python-tripleoclient/commit/?id=cf6fc69e55734475142c7e7e7d2999007e7bec77
Submitter: Zuul
Branch: master

commit cf6fc69e55734475142c7e7e7d2999007e7bec77
Author: Bogdan Dobrelya <email address hidden>
Date: Fri Jul 13 15:19:34 2018 +0300

    Fix populate templates dir for mixed UC/OC cases

    If source templates dir does not exist, create it and populate from
    the t-h-t system directory (installed from RPM).

    Then retain the undercloud and overcloud --templates directories
    separated to prevent versions collisions.

    This may be the case for mixed UC/OC deployments or upgrades, which
    require different versions of t-h-t either initially, or the versions
    may diverge in the process of serial UC then OC update/upgrade.

    Change-Id: I4cdc54662f6ec18d605c00a2c588c5bb1a56d14e
    Partial-Bug: #1781577
    Signed-off-by: Bogdan Dobrelya <email address hidden>

Changed in tripleo:
assignee: Bogdan Dobrelya (bogdando) → Emilien Macchi (emilienm)
Revision history for this message
Bogdan Dobrelya (bogdando) wrote :

Note, the patch https://review.openstack.org/582529 is not related, it has a wrong bug ref

Changed in tripleo:
assignee: Emilien Macchi (emilienm) → Bogdan Dobrelya (bogdando)
Changed in tripleo:
assignee: Bogdan Dobrelya (bogdando) → Sagi (Sergey) Shnaidman (sshnaidm)
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix merged to tripleo-quickstart-extras (master)

Reviewed: https://review.openstack.org/582508
Committed: https://git.openstack.org/cgit/openstack/tripleo-quickstart-extras/commit/?id=615ff5944fef945228bfdb758ee5366492562128
Submitter: Zuul
Branch: master

commit 615ff5944fef945228bfdb758ee5366492562128
Author: Bogdan Dobrelya <email address hidden>
Date: Fri Jul 13 14:26:53 2018 +0300

    Fix network config conflicts for containerized UC

    Make net_config_override and undercloud_resource_registry_args
    mutually exclusive. When net_config_override is defined, we do
    not want resource_registry for the network config in tht, as
    they might happen to be in the direct conflict.

    Closes-bug: #1781577

    Change-Id: I802b525d477fd29a2ad746256a342acb364b0d1d
    Signed-off-by: Bogdan Dobrelya <email address hidden>

Changed in tripleo:
status: In Progress → Fix Released
Changed in tripleo:
assignee: Sagi (Sergey) Shnaidman (sshnaidm) → Bogdan Dobrelya (bogdando)
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix included in openstack/tripleo-quickstart-extras 2.1.1

This issue was fixed in the openstack/tripleo-quickstart-extras 2.1.1 release.

To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.