Commit Graph

63 Commits

Author SHA1 Message Date
Robert Church da3c00ed7d Decouple armada/helm stx-openstack plugins from sysinv
Remove the stx-openstack helm and armada plugin modules from
sysinv. These will now be packaged as part of the stx-openstack
application and reside in the openstack-armada-app repository.

Change-Id: I7e1ae1d8a82ddf4c0beb94da0c4bb01328e28880
Depends-On: https://review.opendev.org/#/c/687469/
Story: 2006537
Task: 36755
Signed-off-by: Robert Church <robert.church@windriver.com>
2020-05-21 11:14:41 -04:00
Zuul 3918066c39 Merge "Add ipv6 support for novncproxy_base_url." 2020-03-30 17:00:36 +00:00
Zhipeng Liu 45c9fe2d35 Add ipv6 support for novncproxy_base_url.
For ipv6 address, we need url with below format
[ip]:port

Partial-Bug: 1859641

Change-Id: I01a5cd92deb9e88c2d31bd1e16e5bce1e849fcc7
Signed-off-by: Zhipeng Liu <zhipengs.liu@intel.com>
2020-03-26 01:58:34 +08:00
Thomas Gao 6f162c3422 Fixed address interface foreign key inconsistency
Foreign key in sysinv.object.address.Address is `interface_uuid`,
which is inconsistent with the foreign key `interface_id` defined
in the database schema. This fix corrected that.

Added a unit test to verify that addresses associated with an interface
could be deleted.

Additionally wrote a set of TODO unit tests blocked by
the bug: tested delete address for orphaned-routes case, unlocked
host state, and the case where address is allocated from pool.

Modified interface querying mechanism to look up all interfaces.
This modification is necessary because the current implementation of
add_interface_filter only looks up those of type ethernet, ae and
vlan. Attempting to get an virtual-type interface will raise an
exception, causing Jenkins installation to fail.

After a visual inspection of interface_uuid occurrences, fixed a few
other occurrences of bad address.interface_uuid that are not caught
by the unit test. Added new unit test suites in place to cover the
code paths.

Closes-Bug: 1861131

Change-Id: I6f2449bbbb69d6f2353e521bfcd138d880ce878f
Signed-off-by: Thomas Gao <Thomas.Gao@windriver.com>
2020-03-03 16:50:12 -05:00
Steven Webster 71e290f767 Introduce VF interface type
This commit introduces a new interface type: 'VF'.

A VF (virtual function) interface is a sub-interface of an existing
pci-sriov class interface.  It can have a different (less than)
number of VFs as the parent interface as well as a different
virtual function driver.  In addition, the VF interface can be
assigned to a different data network as the parent SR-IOV interface.

The purpose of the VF interface is to enable a user to split the
virtual functions of a parent device between the parent and child
so that each can be assigned a different VF driver. This may be
beneficial to a user that has a mix of (DPDK) accelerated
containers and containers that just depend on a kernel
netdevice.

An example of configuring a VF interface from the client
is as follows:

system host-if-add -c pci-sriov <host> \
  <ifname> vf <parent sriov interface> \
  -N <numvfs> --vf-driver <vfio|netdevice>

Story: 2006842
Task: 37422
Change-Id: I1c9712f511c395c532d9b36721d94e22760210af
Signed-off-by: Steven Webster <steven.webster@windriver.com>
2019-12-03 15:19:38 -06:00
Al Bailey 60110e753d Deprecate sysinv.openstack.common.log
Sysinv had partially converted to oslo_log, but
not all the files had been updated.  This completes
that conversion and completely removes
 - sysinv.openstack.common.log.py
 - sysinv.openstack.common.log_handler.py

Most of the changes in this review are:

Old Code:
  from sysinv.openstack.common import log

New Code:
  from oslo_log import log

Two main differences are:
 - verbose flag was removed from oslo_log config in 2017
 - oslo_log automatically prefixes each line with config type (sysinv)
   Old Prefix:
     2019-11-01 16:39:24.142 72561 INFO
  New Prefix:
     sysinv 2019-11-05 18:55:03.620 96275 INFO

Change-Id: I0dda384d943c6dc9277ebce87a6b295fb62500ff
Story: 2006796
Task: 37342
Signed-off-by: Al Bailey <Al.Bailey@windriver.com>
2019-11-05 15:29:20 -06:00
zhipengl f8ec30d0c6 Expose the novncproxy port
The novncproxy would be available at the OAMIP:30680.

Test pass on simplex setup.
VM console can be accessed through horizon.

Closes-bug: 1827246

Depends-on: https://review.opendev.org/#/c/680908/
Change-Id: I6c450d391a8842d8336a0085dc31f939cb8789d9
Signed-off-by: zhipengl <zhipengs.liu@intel.com>
2019-09-24 01:30:24 +00:00
Al Bailey c37290ddfc Unsuppress and cleanup pep8 whitespace errors
Unsuppressing the following pep8/flake8 errors:
 - E226 missing whitespace around arithmetic operator
 - E402 module level import not at top of file
 - E501 line too long

E402 did not require any code changes.

For line-length E501, the max line length is now set in
tox.ini to 120. This will eventually be reduced to 80,
however such a change should be done in its own task
as it will impact many files and make for a large review
changeset on its own.

Story: 2004515
Task: 36437
Change-Id: Ibe4565f725d2a8fa035eb37261d4f264a4834e21
Signed-off-by: Al Bailey <Al.Bailey@windriver.com>
2019-09-03 13:07:24 -05:00
Tyler Smith b1895200a4 Changes to stx-openstack application automatic re-apply behaviour
The stx-openstack application is no longer automatically reapplied
on node unlock. The new behaviour is handled with a reapply flag:

 - When a node is unlocked, or a runtime manifest is applied,
   overrides are regenerated and compared to
   their old values.  If there is a difference a reapply flag is raised
   along with a warning alarm
 - A check was added to the kubernetes audit in the sysinv conductor
   to check if the reapply flag has been raised and to trigger a reapply
   if the system is in a stable state (no hosts currently
   locking/unlocking/booting)
 - This check is also done when a runtime manifest reports success

Test cases:
AIO-SX, AIO-DX, and Standard:
 - When a lock/unlock is done with no changes the application is
   not reapplied
 - When a lock/unlock is done after a config change is made the
   application waits until after the unlock and then triggers a reapply
STANDARD
 - Enabled ceph-rgw chart and ensured that the application was reapplied upon
   config success (likewise for chart disable)
 - If there is a pending reapply, and the user triggers it before the
   system is stable the reapply flag and alarm are removed
 - Provisioning a new compute node and unlocking it for the
   first time triggers an application reapply after it comes online
 - App is reapplied when a node is deleted
 - Compute added without node labels and unlocked results in no reapply
 - Compute locked, labels applied, then unlocked results in a reapply
   pods launch on compute only when labels present (likewise for label removal)
 - Pending reapply flag and alarm persist over a controller swact

Change-Id: I1ae9fdc2afcdf831cf0e7d96f8af14fcb5f6b579
Closes-Bug: 1837750
Depends-On: https://review.opendev.org/677845
Signed-off-by: Tyler Smith <tyler.smith@windriver.com>
2019-08-22 15:20:30 -04:00
Zuul aed781fb9a Merge "Generate configuration option to enable numa-aware-vswitches" 2019-08-19 12:16:54 +00:00
zhangkunpeng 1a923c8474 Generate configuration option to enable numa-aware-vswitches
Generate physnets configuration option in neutron group and generate
neutron physnet configuration groups that specify the mapping of each
 physnet to colocated numa nodes on the host.

nova.conf for example:
    [neutron]
    physnets = physnet0,physnet1

    [neutron_physnet_physnet0]
    numa_nodes = 0

    [neutron_physnet_physnet1]
    numa_nodes = 0,1

    [neutron_tunneled]
    numa_nodes = 0

Change-Id: Iaa633fb19b2422cf6f0331f43c7b833200a5c159
Closes-Bug: 1837232
Signed-off-by: zhangkunpeng <zhang.kunpeng@99cloud.net>
2019-08-16 14:26:21 +08:00
Robert Church 3cd4032f55 Provide an API to control enabling/disabling application charts
Extend the helm_charts API to support an enable attribute. This
attribute is set on application upload and stored in the existing
system_overrides element of the helm_overrides table.

Changes include
- Add application metadata support for disabling charts on application
  upload.
- Add the system helm-chart-attribute-modify command to allow enabling
  and disabling charts from the command-line. This removes the current
  implementation of adding a faux label via the system host-label-assign
  command to enable and disable charts.
- Add a --long option to helm-override-list to enable easy viewing of
  what charts are enabled for a given application
- Enhance the ArmadaManifestOperator to make this a base class for
  application specific operator classes. Introduce classes for the
  stx-openstack and platform-integ-apps manifests with specific
  knowledge of the charts and chart groups within each class.
- Use stevedore to load the application specific manifest operators.
  This will allow future packaging of manifest operators with new
  application tarballs.
- Move the helm chart definition from the common/constants.py to
  helm/common.py. This limits helm/armada specific data leakage outside
  of the helm directory, which we may carve out of sysinv in the future.
- Clean up the code related to the faux labels: LABEL_IRONIC,
  LABEL_BARBICAN, and LABEL_TELEMETRY
- Rework the manifest update code in the plugins to include checks for
  if the chart for a given application has been disabled.

Change-Id: If284f622ceac48c4ffd74e7022fdd390971d0fd8
Closes-Bug: #1833746
Depends-On: I418f0fe4978946a44e512c3025817fb27216c078
Signed-off-by: Robert Church <robert.church@windriver.com>
2019-07-30 18:33:14 -04:00
zhipeng liu 916e716018 Revert "Use true for force_raw_images when using ceph image backend"
This reverts commit 82906cd3c9.
This patch blocked sanity test
Create instance from Image or from Volume fails

Closes-Bug: #1837241

Change-Id: Ic1063f3520a20e962a80300942af09f2aa9c7292
Signed-off-by: zhipengl <zhipengs.liu@intel.com>
2019-07-23 14:24:39 +00:00
Al Bailey 69c7723b9b Remove nova service parameters for pci alias
The pci_alias is meant to be overridden through helm overrides,
rather than a service parameter.

Removing the nova service parameters.
Removing runtime references to non existant nova puppet
manifests.

Change-Id: Icb6a16ae0953b58a1339a4db6835c2c02ab15c0e
Story: 2004764
Task: 30202
Signed-off-by: Al Bailey <Al.Bailey@windriver.com>
2019-07-22 07:09:19 -05:00
zhu.boxiang 82906cd3c9 Use true for force_raw_images when using ceph image backend
We need this patch for two reasons:

Nova of starlingx has not this patch[0]. We use remote storage(ceph)
as nova backend. If we set force_raw_image to False and use qcow2
format image to boot vms, the vms will fail to boot.

Nova of starlingx will have this patch[0]. If we still use False for
force_raw_images, the nova-compute service will refuse to start.

So that, we must set this force_raw_images to True at all.

[0] https://review.opendev.org/#/c/640271/

Change-Id: I76d48a4bf6846783edb4bb80724f777288bd9327
Story: 2003909
Task: 33547
Signed-off-by: zhu.boxiang <zhu.boxiang@99cloud.net>
2019-07-18 21:55:35 +08:00
zhipengl 05b7f6d445 Fix unable to create vm with GPU/Crypto passthrough devices
class_id should not be included passthrough_whitelist for helm
overrides and nova.conf

Verified both QAT and GPU passthrough VM created successfully

Closes-Bug: #1824831
Change-Id: Ie045e4dfb3ffde58dedfc99311a1073fb3b8dee3
Signed-off-by: zhipengl <zhipengs.liu@intel.com>
2019-07-09 14:51:06 +00:00
Gerry Kopec 177469ce6d Configure nova memory/hugepage reserves
Add per host overrides to nova chart to account for platform memory
reserve.  This will set nova config options:
reserved_huge_pages:  this is a multiline option per node/pagesize, e.g.
reserved_huge_pages = node:0,size:4,count:2816000
reserved_huge_pages = node:0,size:1048576,count:1
reserved_huge_pages = node:1,size:4,count:512000
reserved_huge_pages = node:1,size:1048576,count:1
- set 4K page reserve based on platform_reserved_mib
- set 2M or 1G page reserve based on vswitch hugepages
  allocation
reserved_host_memory: overall host memory reserved used by placement
service.  Includes both vswitch huge pages and platform reserved.

Story: 2003909
Task: 34262
Change-Id: I70ea22cb05e8a9ac0ba9e9d149a78d58d40f8f77
Signed-off-by: Gerry Kopec <gerry.kopec@windriver.com>
2019-06-21 00:39:26 -04:00
zhipengl 892e02ecfe Add placement chart to armada system
This change allows to deploy the placement helm
chart with armada system and remove placement deployment within
nova.

Below test pass on both AIO and multi setup
1) Openstack Application apply and reapply
2) VM creation and delete
3) Active controller switch and create vm after that

Story: 2005750
Task: 33418

Depends-On: https://review.opendev.org/662371/
Change-Id: I32dc127dcbc0319e3a20703ed66c9e8119fabcba
Signed-off-by: zhipengl <zhipengs.liu@intel.com>
2019-06-19 16:50:09 +08:00
Robert Church c69942d0d7 Enable Cinder volume backups
To properly enable Cinder volume backup, the following configuration
changes are required:
- For Cinder, enable 'CephBackupDriver' as the Cinder backup_driver and
  'cinder' as the rbd_user for each Cinder backend
- For libvirt, enable Ceph and use 'cinder-volume-rbd-keyring' for the
  Ceph client user secret. This will create a libvirt secret that will
  be used with the 'cinder' user.
- For nova, enable the rbd_secret_uuid shared with libvirt and set the
  'rbd_user' to cinder.
- Update the chart group initialization sequence, so that
  'openstack-cinder' is initialized prior to 'openstack-compute-kit'.
  This is done because 'cinder-volume-rbd-keyring' is created by Cinder
  and is required by libvirt to successfully initialize.

With these configuration changes:
- Cinder volumes were created
- Cinder volumes were backed up
- Instances were booted by volume (from Cinder)
- Instances were booted by image (from Ceph ephemeral disks)

Change-Id: I29c7d3ed118f4a6726f2ea887a165f256bc32fd5
Depends-On: https://review.opendev.org/#/c/664619/
Story: 2004520
Task: 28266
Signed-off-by: Robert Church <robert.church@windriver.com>
2019-06-13 16:18:08 -04:00
Mingyuan Qi 63ea98533d Generate ironic overrides for helm chart
Generate ironic network configurations for ironic helm chart.
Specific address pool, interface/port, datanetwork are required
before applying stx-openstack if ironic label enabled.

A network with ironic network type is required to identify the
ironic interface/port and address pool. A flat datanetwork by
default named 'ironic' will be considered as ironic tenant network.

Story: 2004760
Task: 30048

Change-Id: I4a179abc1cd64f4d574c39e3c8ff83593fc7e470
Signed-off-by: Mingyuan Qi <mingyuan.qi@intel.com>
2019-06-10 10:09:42 +08:00
Shuicheng Lin 4a88506bfd fix vm console log cannot be collected
When the vm is created by libvirt/qemu, a pty device is created
also under /dev/pts. And nova will check this device exist or not
when get console log. After openstack containerization, libvirt and
nova compute are run in container. Libvirt mounts /dev space to
container directly, so the pty device could be seen in host also.
But nova compute doesn't mount /dev space, and lead to the issue.
Solution:
mount /dev/pts space in host to nova compute container.
Test:
vm console log could be seen both in horizon and by openstack cmd.

Closes-Bug: 1817618
Change-Id: I39bdd8c50a3bbea3b7896bac258721d7e1d2ee44
Signed-off-by: Shuicheng Lin <shuicheng.lin@intel.com>
2019-05-21 15:26:48 +08:00
Robert Church a8b23796fe Remove the Ceph related charts from the stx-openstack application
This will remove the rbd-provisioner and ceph-pools-audit charts from
the stx-openstack application and enable it to use the default platform
storage provisioner.

Changes include:
 - Update the rbd-provsioner and ceph-pools-audit helm plugin to provide
   overrides for the namespace defined by
   HELM_NS_STORAGE_PROVISIONER (currently: kube-system).
 - Update the cinder, glance, gnocchi, and nova helm plugins use the
   existing ceph-pool-kube-rbd secret for Ceph client access. This
   allows removing the pvc-ceph-client-key generation from the
   rbd-provisioner chart.
 - Add functions to kube_app.py to create/delete the required Ceph user
   secret for all namespaces of a supported application. This provides
   support for PVCs within the application's namespace(s). In the case
   of stx-openstack, this covers any claims made from the 'openstack'
   namespace.
 - Add functions to kube_app.py to support creating and deleting app
   specific resources that are not handled by the application charts.
   Using this enables copying the 'ceph-etc' configmap from the
   provisioner namespace to the openstack namespace for application use.
 - Add support through the kubernetes API to copy a secret from one
   namespace to another.
 - Add support through the kubernetes API to get, create, delete, and
   copy configmaps.
 - Remove the rbd-provisioner and ceph-pools-audit stevedore plugins
   from the stx-openstack application. Also, re-number the plugins.
 - Update the RBD provisioner to support creating namespaces and Ceph
   user secrets for additional namespaces other than that which the
   provisioner is installed. Also, enable PVCs for default
   namespaces (default and kube-public) against the 'general'
   storageclass.

Change-Id: I387e315545d2c99a1b6baa90d30bdb2a4e08f315
Depends-On: I67dba3f1a3a6e7c8169719ee622ddd533c69be31
Story: 2005424
Task: 30679
Signed-off-by: Robert Church <robert.church@windriver.com>
2019-05-10 17:27:28 -04:00
Zuul 5165bc4f7c Merge "Mount OVMF path for nova-compute and libvirt to support uefi" 2019-05-03 15:09:21 +00:00
Sun Austin c4766c0fde Mount OVMF path for nova-compute and libvirt to support uefi
Override helm chart to mount OVMF path for nova-compute
and libvirt pods to support uefi boot VM creating

Closes-Bug: 1814335

Change-Id: Ib876971ff096a68fd3a65ed37a8e295a475641d8
Signed-off-by: Sun Austin <austin.sun@intel.com>
2019-05-02 23:02:43 +00:00
Daniel Badea 414558fe8c Ceph uprev v13.2.2 Mimic
* ceph: update crushmap for ceph mimic

* puppet-ceph: remove ceph jewel rest-api configuration

    ceph-rest-api is implemented in ceph-mgr on ceph mimic/v13.2.2 version.
    Remove the configuration which is for ceph-v10.2.6/ceph-rest-api

* puppet-ceph: enable mgr-restful-plugin

    ceph configuration is under puppet control. ceph-mgr/restful
    plugin is going to be started in mgr-restful-plugin script.

    output log when starting mgr-restful-plugin
    output log in puppet log to know the execute commands.

* puppet-ceph: pass osdid to ceph::osd when creating resources

    ceph::osd needs to be created with the same OSD ID that's
    already present in sysinv database.

* puppet-ceph: update ceph.conf with osd device path

* puppet-ceph: fix aio-dx unlock issue caused by ceph-mon

* puppet-ceph: ensure radosgw systemd service is not started

    Make sure radosgw service is not accidentally
    started by systemd.

* puppet-sm: provision mgr-restful-plugin

    After mgr-restful-plugin is enabled by ceph.pp, SM will
    monitor mgr-restful-plugin status and contor its status.

* sysinv-common: ceph use status instead of overall_status

    'overall_status' is deprecated in Ceph Mimic. Use 'status' instead.

* sysinv-common: ceph incorrect parsing of osd_crush_tree output

    len(body) is used to iterate osd crush tree which is not
    correct because the crush tree dictionary is stored in
    body['output']

* sysinv-common: ceph refactor crushmap_tiers_add

    Refactor crushmap_tiers_add() to always check/create missing
    ceph tiers and corresponding crush rules. This is currently
    gated by tier.status == constants.SB_TIER_STATUS_DEFINED

* sysinv-conductor: remove api/v0.1 from ceph api endpoint

    "restapi base url"(ceph.conf) is removed from ceph Mimic
    version. remove the base url now.

* sysinv-conductor: ceph convert pool quota None to zero

    On non-kubernetes setup kube_pool_gib is None which
    raises an exception when trying to do integer
    arithmetic.

* sysinv-conductor: remove unused update_ceph_services

    update_ceph_services() is triggering application of
    runtime manifests but that's no longer supported on
    stx/containers.

    Removing dead/unused code.

* helm: rbd-provisioner setup kube-rbd pool

    Ceph Mimic no longer supports "ceph osd pool set <pool-name>
    crush_rule <ruleset>" with a numeric ruleset value. Crush
    rule name should be used instead.

    Starting with Ceph Luminous pools require application tags
    to be configured with: "ceph osd pool application enable
    <pool-name> <app-name> " otherwise ceph health warning is
    reported.

    Enable "rbd" application on "kube-rbd" pool.

* sysinv-helm: remove custom ceph_config_helper_image

    Remove custom ceph config helper image needed to adapt
    upstream helm charts to using Ceph Jewel release. Because
    we're using Ceph Mimic this helper image is no longer
    needed.

* sysinv-helm: ceph use rule name instead of id

    Ceph osd pool crush_rule is set by name. (Jewel release
    used numerical value for crush ruleset)

Story: 2003605
Task: 24932

Signed-off-by: Changcheng Liu <changcheng.liu@intel.com>
Signed-off-by: Ovidiu Poncea <ovidiu.poncea@windriver.com>
Signed-off-by: Dehao Shang <dehao.shang@intel.com>
Signed-off-by: Yong Hu <yong.hu@intel.com>
Signed-off-by: Daniel Badea <daniel.badea@windriver.com>

Depends-On: Ibfbecf0a8beb38009b9d7192ca9455a841402040
Change-Id: Ia322e5468026842d86e738ece82afd803dec315c
2019-04-25 19:18:50 +00:00
Steven Webster 27573403d6 Sysinv helm: move _get_host_cpu_list to base class
This commit moves the _get_host_cpu_list method from NovaHelm to
the BaseHelm class so it can be inherited and used by other
classes.

Story: 2003909
Task: 30367

Change-Id: I928f716f4f37c95214f077f5e1d775b2e0101248
Signed-off-by: Steven Webster <steven.webster@windriver.com>
2019-04-08 11:48:45 -04:00
Angie Wang 05cc8f9d77 Move the image specification to the armada manifest
This commit updates to move the image specification from
overrides generation to armada manifest and get the download
image list from both overrides files and armada manifest.

Story: 2005350
Task: 30312
Change-Id: Iea17a516c53cce4a0baaef684aa3c6cf6b3eff28
Signed-off-by: Angie Wang <angie.wang@windriver.com>
2019-04-05 13:25:06 -04:00
Teresa Ho 2336e855bd Optional https for containerized openstack
The certificate for openstack services are installed and stored
under /etc/ssl/private/openstack. The endpoint tls parameters are
configured by the helm overrides.

Tests performed:
AIO-SX: application apply, reapply and launch instance
AIO-DX: application apply, reapply and launch instance
Standard system: application apply, reapply and launch instance
Pause and Resume instance. Ensure that no audit error is seen.

Story: 2004433
Task: 28096

Change-Id: Ib81f9541ebf116dee817e0b55f31866ed0d283f0
Signed-off-by: Teresa Ho <teresa.ho@windriver.com>
2019-03-22 12:55:36 -04:00
Alex Kozyrev 86b27b91aa Provide helm chart for containerized Barbican service
This commit introduces Barbican as an OpenStack Application.
Adding the Armada manifest for Barbican and updating the helm
plugin with correct values to bring up containerized Barbican.

Also fixing the typo in memcache_secret_key for all the services
in order to leverage authtoken cache encryption key feauture.
Removing the non-existing value for Keystone.

Change-Id: I41c85969fe0554399721abb6efa73148bdc84cd4
Story: 2003108
Task: 29969
Signed-off-by: Alex Kozyrev <alex.kozyrev@windriver.com>
2019-03-15 17:00:09 -04:00
Zuul 6b898c16e8 Merge "Configure Openstack public endpoint FQDN" 2019-03-06 13:25:51 +00:00
Zuul 57124b49dc Merge "Nova - Add ephemeral pool creation" 2019-03-05 15:03:12 +00:00
Teresa Ho ae5932ed1d Configure Openstack public endpoint FQDN
Added a service parameter to configure the public endpoint domain name
for Openstack. The Helm overrides is updated based on the configured
domain name.

Story: 2004433
Task: 29564

Change-Id: Iae1e722d31af991c051c69eebec26d3dddbf1cbd
Signed-off-by: Teresa Ho <teresa.ho@windriver.com>
2019-03-04 13:34:00 -05:00
Irina Mihai e5bac7cef0 Nova - Add ephemeral pool creation
- remove the ephemeral pool support from the rbd-provisioner helm
  chart. This was initially added to the rbd-provisioner helm chart
  to support initial integration efforts.
- remove the info for the ephemeral pool(s) from the rbd-provisioner
  overrides.
- update the nova overrides to include the necessary info for
  creating the ephemeral pool. Right now only one pool is included,
  but the nova chart supports multiple.

Change-Id: I9850663fc86c62ed759714f1297cfdaa8183183f
Story: 2005073
Task: 29647
Signed-off-by: Irina Mihai <irina.mihai@windriver.com>
2019-02-22 19:28:27 +00:00
Scott Little b09d0898b6 Merge remote-tracking branch starlingx/master into HEAD
Change-Id: Ib4e64858022a39a6143d51985363513ee6019a6d
Signed-off-by: Scott Little <scott.little@windriver.com>
2019-02-20 12:03:17 -05:00
David Sullivan 0dd4b86526 Add replica and anti-affinity settings
Add anti-affinity settings to openstack pods. Add replication to
novncproxy, aodh, panko and rbd_provisioner services.

Change-Id: I8091a54cab98ff295eba6e7dd6fa76827d149b5f
Story: 2004520
Task: 29418
Signed-off-by: David Sullivan <david.sullivan@windriver.com>
2019-02-16 17:48:47 -05:00
Scott Little 591a21d001 Merge remote-tracking branch starlingx/master into HEAD
Change-Id: I14053e8376a4e633ec7a28dd9c0f62239fe84710
Signed-off-by: Scott Little <scott.little@windriver.com>
2019-02-14 12:25:39 -05:00
Jim Gauld f12b0bc669 Update nova helm overrides for PCI alias, passthrough, and SR-IOV
This adds generation of nova.conf overrides to configure:
- global PCI aliases for QAT and GPU devices
- per-host PCI passthrough whitelist (contains both
  passthrough and SR-IOV devices)

Helm multistring dictionary is created for PCI alias, and created for
PCI passthrough whitelist. These multistring are OSLO.conf compatible
with oslo_config.MultiStringOpt() multiple input values.
Each multistring contains a list of JSON encoded strings.

The generation of these overrides assumes that all host PCI device
PFs and VFs are already provisioned, and that the resulting
pci addresses are queryable using sysinv DB methods.

Story: 2003909
Task: 29071

Change-Id: I8b96e471f7dcff6277cca107cbd0668ffd67c7b7
Signed-off-by: Jim Gauld <james.gauld@windriver.com>
2019-02-13 14:00:51 -05:00
Gerry Kopec 67bcf4d1bf Remove hugepage overrides from nova.conf
Delete hugepage config options as these were only used by stx-nova and
are not used in stein.  Additionally, the 4K pages value can change
causing unnecessary restart of nova pods during application-apply.

Closes-Bug: #1815545
Change-Id: I9326db038a85be597801f3b78a45e30b28d0dd28
Signed-off-by: Gerry Kopec <Gerry.Kopec@windriver.com>
2019-02-12 07:05:10 -05:00
Zuul 0a79f57d80 Merge "Move nova static configs to Armada manifest" 2019-02-08 21:28:32 +00:00
Kristine Bujold 812c2a17c4 Move nova static configs to Armada manifest
Move all nova static configurations from the overrides to the
Armada manifest.

Story: 2003909
Task:  29372

Change-Id: I92c787cb8f05e02c8e960e23dcb356cc8f007492
Signed-off-by: Kristine Bujold <kristine.bujold@windriver.com>
2019-02-08 14:36:15 -05:00
Chris Friesen 217b279a0a clean up duplicated code in sysinv/helm
There are some bits of code that are duplicated across almost
all the sysinv helm classes, and so it makes sense to pull
them into the parent class.

Change-Id: I3979a8e0052f751a41b1461826d492961d2bfdae
Signed-off-by: Chris Friesen <chris.friesen@windriver.com>
Story: 2003909
Task: 29412
2019-02-08 10:53:29 -06:00
Zuul 5c68addb24 Merge "Trigger application reapply on host unlock/delete" 2019-02-01 14:58:51 +00:00
Tyler Smith 5624c74062 Trigger application reapply on host unlock/delete
- Triggers an application reapply (including override
  regeneration) on node unlock to pick up a new node being added
  or configuration changes being made.
- The reapply also triggers on node delete if the host
  had a compute node label to remove any per-host overrides.
- Turned on the restriction that nodes must be locked to modify
  labels.  Added an audit task to sync any labels made before
  a node is unlocked and missing from k8s.
- Modified k8s puppet manifest to only launch kubelet on the
  initial configuration, after that the service file is
  modified to have a dependancy on the config gate.
  This is to avoid PLEG errors in kubernetes due to the node
  being overwhelmed during boot.

Change-Id: I1d9ca92f451aa322765da43ffcbb1d95f97f92f2
Story: 2004520
Task: 28826
Signed-off-by: Tyler Smith <tyler.smith@windriver.com>
2019-01-31 15:29:23 -05:00
Gerry Kopec b74a02ef66 Add remote storage label for nova local backing
To eliminate sysinv dependency, use a host label to determine if host
has remote storage backing, or if not default to local image storage
backing.  User is required to assign host label remote-storage=enabled
to trigger nova overrides to setup remote backing.

Also set ceph.enabled to True in overrides which will trigger nova helm
chart to create ceph.conf file in nova-compute container which is
required for remote storage backing.

This change also removes concurrent_disk_operations option as this is
replaced upstream in nova Stein release.

Story: 2004447
Task: 28122
Change-Id: I8c1ac0adf89dbc56e20bbd02126d25d9d64092fb
Signed-off-by: Gerry Kopec <Gerry.Kopec@windriver.com>
2019-01-30 08:45:22 -05:00
Zuul 1cb71140a3 Merge "enable replicas of most nova pods" 2019-01-29 18:39:52 +00:00
Gerry Kopec a0be71beaa Update nova helm overrides for cold migration
Adds generation of public and private rsa ssh keys in nova overrides.
These will be used by nova helm charts (see dependent commit) to fill
appropriate files in all nova-compute pods in cluster.  ssh keys are
stored in sysinv db to maintain consistency.

Also need to provide subnet used for ssh which will be cluster host
network per recent commit (If6b918665131f01bc62687fbdc7978c5c103e3b7).

Story: 2003909
Task: 28925
Depends-On: Id789ba051cec019e8b7564c713cf1b5296ecf9f6
Change-Id: I13aa90b1204e698846d4402048b3ca7f544da551
Signed-off-by: Gerry Kopec <gerry.kopec@windriver.com>
2019-01-23 00:21:38 -05:00
Bart Wensley dc471d7a30 Update nova helm chart overrides for service creation
Update nova helm chart overrides to:
- Stop enabling new services automatically.
- Periodically discover new hosts.

This will allow nova to automatically create new services and
have the VIM just enable/disable the services as necessary.
This removes the need for a nova extension to allow new
services to be created through the nova API.

Change-Id: Idb27a927de2ac91ebbb1df343a349bb14ec2f0d5
Story: 2004583
Task: 28865
Signed-off-by: Bart Wensley <barton.wensley@windriver.com>
2019-01-11 09:18:14 -06:00
Teresa Ho 949bab37d7 Kubernetes Cluster Network Configuration
The Kubernetes cluster network is introduced and configurable.
The cluster-host interface can be configured on any interface of the
host and is defaulted to the management interface if it is not
specified.
The infrastructure network is no longer used in kubernetes config.
SM and MTCE are setup to monitor the cluster-host if kubernetes is
enabled.
Nova live migration ip is set to use the cluster-host ip.

Tests Performed:
Containerized setup:
AIO-SX: mgmt and cluster-host shared loopback interface
AIO-DX: mgmt and cluster-host shared an interface
AIO-DX: mgmt and cluster-host on different interface
Standard 2+2+2: mgmt and cluster-host shared an interface
Standard 2+2+2: mgmt and cluster-host on different interface
For each of the setup, launch VM and connect to VM console

Non-containerized deployments
AIO-SX sanity
AIO-DX sanity
Standard 2+2 sanity

Story: 2004273
Task: 27826

Change-Id: If6b918665131f01bc62687fbdc7978c5c103e3b7
Signed-off-by: Teresa Ho <teresa.ho@windriver.com>
2019-01-09 12:41:25 -05:00
Angie Wang fff66fdec3 Helm chart image overrides cleanup
This commit includes:
 - Cleanup the duplicated functions for image overrides generation
 - Add missing image overrides in some charts to avoid pulling
   useless/uncessary images

Verified on AIO-SX/AIO-DX/2+2+2:
 - config_controller --kubernetes
 - system application-upload/apply/remove/delete

Story: 2004520
Task: 28730

Change-Id: Ibc4d3b5d3087547678c2786e44764e02f752c186
Signed-off-by: Angie Wang <angie.wang@windriver.com>
2019-01-04 18:04:46 -05:00
Chris Friesen 4774efeeb1 enable replicas of most nova pods
For HA and load-balancing purposes we would like to have as many
nova pods as possible replicated across the controller nodes.

The vnc proxy pod has not yet been validated with multiple pods,
the intent is to enable replicas for it too when possible.

Change-Id: If11b84174086f72c4e9ef0ef354b797922e60076
Story: 2004520
Task: 28625
Signed-off-by: Chris Friesen <chris.friesen@windriver.com>
2019-01-02 14:13:27 -06:00