openstack-armada-app/openstack-helm-infra
Daniel Bolgheroni ecd2a968dd Add support for multiple hosts in a daemonset
A daemonset overrides template generates a separate
daemonset and configuration secret for each host, even when
configurations are identical. This approach leads to unnecessary
resource consumption and complexity.

This adds support for specifying multiple hosts for a single daemonset
in conf.overrides.neutron_dhcp-agent.hosts[].name as shown below:

   overrides:
     neutron_dhcp-agent:
       hosts:
       - conf:
           plugins:
             openvswitch_agent:
               agent: {}
               ovs:
                 bridge_mappings: group0-data0:br-phy0,group0-data0b:br-phy0,group0-data1:br-phy0,group0-ext0:br-phy0,
                 datapath_type: system
                 integration_bridge: br-int
                 vhostuser_socket_dir: /var/run/openvswitch
             sriov_agent:
               agent:
                 root_helper: ''
               securitygroup:
                 firewall_driver: noop
               sriov_nic:
                 physical_device_mappings: ''
         name:
         - compute-0
         - compute-1
         - compute-2

In one of the tests, the size reduced from 383044 to 267788 bytes (~30%
less).

Before the change:

    [sysadmin@controller-0 ~(keystone_admin)]$ kubectl describe secret sh.helm.release.v1.osh-openstack-neutron.v1 -n openstack
    Name:         sh.helm.release.v1.osh-openstack-neutron.v1
    Namespace:    openstack
    Labels:       modifiedAt=1735071637
                  name=osh-openstack-neutron
                  owner=helm
                  status=deployed
                  version=1
    Annotations:  <none>Type:  helm.sh/release.v1Data
    ====
    release:  383044 byte

After the change:

    [sysadmin@controller-0 ~(keystone_admin)]$ kubectl describe secret sh.helm.release.v1.osh-openstack-neutron.v1 -n openstack
    Name:         sh.helm.release.v1.osh-openstack-neutron.v1
    Namespace:    openstack
    Labels:       modifiedAt=1735049803
                  name=osh-openstack-neutron
                  owner=helm
                  status=deployed
                  version=1
    Annotations:  <none>Type:  helm.sh/release.v1Data
    ====
    release:  267788 bytes

The reduction can be bigger as the number of hosts with the same
configurations increase.

Test Plan:
    PASS: build-pkg -c -l openstack
    PASS: build openstack tarball
    PASS: Upload and Apply openstack tarball on standard system
    PASS: Check grouping of Neutron overrides
    PASS: Check size reduction in Neutron release secret
    PASS: Launch 3x Guest instances (tis-centos-guest VMs)
    PASS: Access instances through a remote console
    PASS: Ping instances from remote console (all to all)
    PASS: Ping instances from external server in the management network

Task: 51436
Story: 2011304
Change-Id: Ib9f41d9c9578d9340299b6438309b24826fce805
Signed-off-by: Daniel Bolgheroni <Daniel.Bolgheroni@windriver.com>
2024-12-27 09:15:00 -03:00
..
debian Add support for multiple hosts in a daemonset 2024-12-27 09:15:00 -03:00
files Recreating required files for files folder 2024-02-08 13:10:02 -03:00
Readme.rst Adding openstack-helm and openstack-helm-infra to the build 2018-11-06 09:38:06 -06:00

This repo is for https://github.com/openstack/openstack-helm-infra

Changes to this repo are needed for StarlingX and those changes are not yet merged. Rather than clone and diverge the repo, the repo is extracted at a particular git SHA, and patches are applied on top.

As those patches are merged, the SHA can be updated and the local patches removed.