Commit Graph

45 Commits

Author SHA1 Message Date
Kristine Bujold a1e2d1e183 Remove wrs-configutilities SDK Module
Remove configutilities and move what is being used in other components
to controllerconfig.

Tested with a clean install on AIO-DX and running config_controller.

With the StarlingX move to supporting pure upstream OpenStack, the
majority of the SDK Modules are related to functionality no longer
supported. The remaining SDK Modules will be moved to StarlingX
documentation.

Story: 2005275
Task: 30262

Change-Id: Ie496548dfc6efee677a501c98c227c586df0a7d6
Signed-off-by: Kristine Bujold <kristine.bujold@windriver.com>
2019-04-02 11:50:23 -04:00
mid_one 1207bd850e Add mode 2 to supported LAG mode for cluster interface
LAG mode 2 should be supported because AE balanced mode
should be supported for the cluster-host interface. Thus
the supported_lag_mode for cluser network should be
[1, 2, 4].

Co-Authored-By: Huifeng Le<huifeng.le@intel.com>

Change-Id: I0b81c963705820a9fec6225dac1cee2a14bbe030
Closes-Bug: #1819738
Story: #2004273
2019-03-28 20:03:35 +08:00
Tao Liu 2c3e5963f3 Enable Distributed Cloud configuration
The following changes are required to enable system
controller and sub cloud configuration in a distributed
cloud environment:

* Remove references to os-keystone-region-name as the
openstack patches that support it, have been removed.
* Change the iptables rule for the NAT entry, to only
apply, if the selected outgoing interface is the
OAM interface.
* Configure keystone endpoints, before configuring
openrc on subclouds
* Remove all openstack services, and users from the region
config and update the tox
* Disable nova, cinder and neutron api proxy

Only tested distributed cloud configuration as multi-region
configuration is not supported in the current release.

Story: 2004766
Task: 30017

Change-Id: I5c43e2112f34225aa9e23ff777c5333ae77efcdc
Signed-off-by: Tao Liu <tao.liu@windriver.com>
2019-03-14 17:48:44 -04:00
Mingyuan Qi 611a68a96a Allow user specified registries for config_controller
Currently docker images were pulled from public registries during
config_controller. For some users, the connection to the public
docker registry may be slow such that installing the containerized
services images may timeout or the system simply does not have
access to the public internet.

This change allows users to specify alternative public/private
registries to replace k8s.gcr.io, gcr.io, quay.io and docker.io.
Insecure registry is supported if all default registries were
replaced by one unified registry. It lowers the complexity for
those who build his own registry without internet access.

Docker doesn't support ipv6 addr as registry name, instead
hostname or domain name in ipv6 network is allowed.

Test:
AIO-SX/AIO-DX/Standard(2+2):
  Alternative public registry (ipv4/domain) with proxy
    - config_controller pass
  Private registry (ipv4/ipv6/domain) without internet
    - config_controller pass
  Default registry with/without proxy
    - config_controller pass

Story: 2004711
Task: 28742

Change-Id: I4fee3f4e0637863b9b5ef4ef556082ac75f62a1d
Signed-off-by: Mingyuan Qi <mingyuan.qi@intel.com>
2019-02-23 10:10:07 +08:00
SidneyAn 41618bb3cb fix wrong format of NO_PROXY in temp configuration file
the configuration validator will switch the .ini configuration file to
a temp configuration file(/tmp/config/cgcs_config).
this patch fixed the wrong format of NO_PROXY under section DOCKER_PROXY
in the temp configuration file.

Closes-bug: 1814833

Change-Id: I347ef37a92676fa74548846c95a730b86cc25337
Signed-off-by: SidneyAn <ran1.an@intel.com>
2019-02-14 01:23:24 +00:00
Al Bailey a3c261a3aa Enable pylint zuul check for configutilities
The pylint checks that fail are being suppressed.
Those checks will be fixed and un-suppressed in later commits.

Story: 2004515
Task: 29298
Change-Id: Iacc18da64ed5e2d82ff2f3e64368c9b4a94bb1d5
Signed-off-by: Al Bailey <Al.Bailey@windriver.com>
2019-02-01 14:40:50 -06:00
Mingyuan Qi 3a30da9a88 Add docker proxy configuration for kubernetes
Current config_controller for containerization pulls kubernetes
images from public container registry. This requires controller
to access internet. If a host network is behind a proxy, there
is no chance to setup docker proxy configuration during config_
controller, therefore, kubernetes images are not accessible.

Docker proxy configuration questions were added to require users
input http/https proxy and no proxy settings. The docker proxy
configurations are added to service_parameter table in sysinv.

http-proxy.conf is the proxy info file required by docker daemon,
generated by docker puppet manifest. It consists of the user
input docker proxy configuration.

Tests:
AIO-SX: public k8s images accessible
AIO-DX: public k8s images accessible
AIO-SX without k8s config: config_controller successfully

Story: 2004710
Task: 28741

Change-Id: Ie273ad77338cdec496c5d05bf3e05baa83166626
Signed-off-by: Mingyuan Qi <mingyuan.qi@intel.com>
2019-01-30 17:23:17 +08:00
Bart Wensley d96ce5291c Allow DNS server configuration for kubernetes
In kubernetes deployments, a DNS server is required to locate
the registry servers used to download the kubernetes images.
Currently, when config_controller is run, the 8.8.8.8
nameserver is used, with no way to change it. Some users
need to specify their own name server to be used during
the execution of config_controller.

This change allows the user to specify up to three DNS
servers when running config_controller interactively or with
a config file. If using a config file, add the following
section to the config file (only one nameserver is required,
but up to three are allowed):

[DNS]
NAMESERVER_1=8.8.8.8
NAMESERVER_2=8.8.4.4
NAMESERVER_3=9.9.9.9

Change-Id: I59556138a11c6f627f45886a2da6b8a1ad9d89e1
Closes-bug: 1812449
Signed-off-by: Bart Wensley <barton.wensley@windriver.com>
2019-01-24 08:40:25 -06:00
Alex Kozyrev f44717154a Add Barbican bootstrap and runtime manifests
Barbican service is needed during bootstrap phase for StarlingX.
Implement bootstrap and runtime manifests to achieve that.

Change-Id: I6c22ebddacf8aec3a731f7f6d7a762f79f511c78
Story: 2003108
Task: 27700
Signed-off-by: Alex Kozyrev <alex.kozyrev@windriver.com>
2019-01-11 13:33:00 -05:00
Zuul 5dcff4e616 Merge "Update configutilities version" 2019-01-11 17:19:30 +00:00
Bin Qian cc6807ff8b Update configutilities version
Up the configutilities version (3.1.0) after adding pxeboot dhcp addr 
range in the config_gui.
Depends-On: https://review.openstack.org/#/c/625337/


Story: 2004584
Task:  28825

Change-Id: Iea1b2c113153df0438f8625a866e833bfca40382
Signed-off-by: Bin Qian <bin.qian@windriver.com>
2019-01-11 13:46:22 +00: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
Sun Austin c521b8c28c Fix: "import" issue for Python 2/3 compatible code
use absolute path imports to compat python3
remove H301 ignore to enable H304 flake8 check

Story: 2003433
Task: 28376

Change-Id: I3a50a0298fe34c60e3c63df23e72dcbb07c585d1
Signed-off-by: Sun Austin <austin.sun@intel.com>
2018-12-25 08:58:03 +08:00
Sun Austin 9d5675fdf6 Fix: "filter" issue for Python 2/3 compatible code
Replace filter(lambda obj: test(obj), data) with
 [obj for obj in data if test(obj)]

Story: 2003433
Task: 28380

Change-Id: I69262226bb454319be6b3d2a1c3c64bb7bb3357c
Signed-off-by: Sun Austin <austin.sun@intel.com>
2018-12-19 10:14:36 +08:00
Al Bailey 634e513d62 Properly enable hacking checks for flake8
hacking and flake8 have compatability issues.
By specifying the version of hacking to be the same
as what other openstack components are using, we
clamp the version of flake8 and allow for reliable
hacking checks.

Change-Id: I8ab1543c030439903d99fffec1a9e3a264f20a80
Story: 2004515
Task: 28571
Signed-off-by: Al Bailey <Al.Bailey@windriver.com>
2018-12-18 11:28:56 -06:00
Zuul a703e9d4c5 Merge "removing link capacity configuration during controller config" 2018-12-17 13:55:48 +00:00
SidneyAn e63b1d0de9 removing link capacity configuration during controller config
This commit related modules during controller config. It removes
a) the "link capacity" option of inputs/config file when
   config_controller run.
b) "link_speed" generation and validation in configfiletool and
   config_validator.
c) related unit test.

Tests conducted:
a) run '$sudo config_controller' and input configuration.
b) run 'python configfiletool.py' to generate config.ini in local
   run '$sudo config_controller --config-file config.ini' on
   controller.

Impact: compatibility with old *.ini configure file.

Closes-bug: 1805320

Change-Id: Ie96318357d5598be129567884ee662e991d46466
Signed-off-by: SidneyAn <ran1.an@intel.com>
2018-12-17 08:57:07 +08:00
Bin Qian 46ae58243c Add PXEBoot address range options to config GUI util
Story: 2004584
Task:  28391

Change-Id: I9c84a776db6e12a3fab9149d8dc06789d0419bc8
Signed-off-by: Bin Qian <bin.qian@windriver.com>
2018-12-14 14:55:18 -05:00
Bin Qian 5f79056bf2 Enable PXEBoot address range options in config_controller
1. Add steps to config_controller wizard for PXEBoot address
   range options
2. Add optional PXEBoot address range config to config_controller
   config file

Story: 2004584
Task:  28390

Change-Id: I2f16b08b6dbc6e19ab265d92b372e8053d1996e8
Signed-off-by: Bin Qian <bin.qian@windriver.com>
2018-12-14 08:29:29 -05:00
Sun Austin 3ee670f0c8 Fix 'print' issue for Python 2/3 compatible code.
and remove 'H233  Python 3.x incompatible use of print operator'
pep8/flake8 ignore case in cgts-client and sysinv tox setup

enable flake8 hacking and ignore some case and fix it later for
those ignore case.

Story: 2003433
Task: 24629

Change-Id: I0dfc4c17681dd9b0042a4277b7956d270eb73495
Signed-off-by: Sun Austin <austin.sun@intel.com>
2018-12-06 12:59:33 +08:00
Alex Kozyrev ebc7ac888d Barbican configuration thru Puppet and SysInv.
1. Add the new barbican DB and barbican user.
2. Support DB backup/restore and upgrades for barbican.
3. Configure barbican user and password in region config.
4. Provide Barbican configuration with appropriate data via SysInv.
5. Setup Barbican thru puppet manifests.
There are three main services that need to be configured:
- Barbican API: a RESTful API for managing secrets.
- Barbican Worker: a RPC interface for Barbican API.
- Barbican Keystone Listener: a service for Keystone changes.
Also, HA Proxy and Firewall need to be updated with Barbican port (9311)
as well as Remote Logging manifest to allow Barbican log collection.

Change-Id: I6b0b0c90456627bebde2b834b339bc968100b6f9
Story: 2003108
Task: 27700
Depends-On: I2667d56a71b7d3881c03b6a5c1e5ed61d4f0b902
Signed-off-by: Alex Kozyrev <alex.kozyrev@windriver.com>
2018-12-03 15:49:37 -05:00
Bart Wensley e37085aba5 Enable communication from nova-api-proxy to VIM
Prior to kubernetes integration, the nova-api-proxy
communicated with the VIM using port 30003 on the loopback
address. This worked fine when both the nova-api-proxy and
the VIM were running on bare metal.

When nova-api-proxy is running in a pod, it
cannot use the loopback address to communicate with the VIM,
since the loopback address is local to the pod. The
nova-api-proxy pod will instead use the floating management
address (which is present on all systems) to communicate with
the VIM. The problem is that on AIO simplex systems, the
floating management address is also in the loopback subnet.
The fix for this is to use a non-loopback address for
management on AIO simplex systems. This required changes to
configuration scripts/utilities to allow the user to
specify the management subnet on AIO simplex systems,
instead of hardcoding it to a loopback address.

Change-Id: I26c15657471f8214e628c6d43eaab07eb8e744ec
Story: 2003910
Task: 28061
Depends-on: Ib7c08bfc1c661a9fb347308e55cc806b4dd129ad
Signed-off-by: Bart Wensley <barton.wensley@windriver.com>
2018-11-23 16:16:13 +00:00
Bart Wensley 08c1f652ee Lock down flake8 version
The new flake8 version 3.6.0 introduces new warnings that cause
the check and gate jobs to fail. Locking down the flake8 version
to avoid these surprises in the future. We can later increment
the flake8 version and fix the new warnings in a controlled
manner.

Change-Id: Iced6ff91591616ade3c5cd5b0dd67f310227bdc9
Partial-Bug: 1799721
Signed-off-by: Bart Wensley <barton.wensley@windriver.com>
2018-10-24 10:00:33 -05:00
Don Penney 4095ac7005 Add hooks for python wheel generation
This update adds hooks to the spec files for the following packages
to generate wheels for the python modules:
- configutilities
- controllerconfig
- cgts-client
- sysinv

Change-Id: I340db4c6516c9bf8badbdd0ecdcf61670e168aea
Story: 2003907
Task: 27524
Signed-off-by: Don Penney <don.penney@windriver.com>
2018-10-23 10:34:33 -04:00
Teresa Ho f8b82f2dff Allow mgmt and infra network on single interface
This update allows management and infrastructure interface
to share the same interface without VLAN.
Removed the restriction that enforce a VLAN to be used.

Story: 2003087
Task: 23171

Change-Id: Ic50fa0cd388c664f3277681b4d87b63aeb0c6447
Signed-off-by: Teresa Ho <teresa.ho@windriver.com>
2018-09-17 15:20:44 -04:00
Zuul 92c6e7bfda Merge "Python 3 compatibility: convert ConfigParser to configparser." 2018-09-10 13:02:37 +00:00
Bart Wensley 1b8a492ee1 Enable zuul check and gate for unit tests
Enabling zuul check and gate for controllerconfig and
configutilities unit tests.

Story: 2003360
Task: 26216

Change-Id: I6e4807054b793937cef7d549d8bdec058ee26e1c
Signed-off-by: Bart Wensley <barton.wensley@windriver.com>
2018-09-07 14:48:08 -05:00
zhangyangyang 2a8b7f9d08 Python 3 compatibility: convert ConfigParser to configparser.
Story: 2003433
Task: 26331

Change-Id: I3a094c794861b23ccaee78aa92857ec7188a3fca
Signed-off-by: zhangyangyang <zhangyangyang@unionpay.com>
2018-09-07 11:32:48 +08:00
SidneyAn c937847c56 Fixing tox flake8 errors in configutilities component
Listed below are the errors which were fixed as well as the actions
    taken to fix them:

    " E124 closing bracket does not match visual indentation":
      --> fix from '     "FM_SERVICE_TYPE": "faultmanagement",
                    })'
              to   '     "FM_SERVICE_TYPE": "faultmanagement",
                          })'

Story: 2003360
Task: 24857
Change-Id: I4d9081a0a9f96aabf50dc792480ea46c11f10d3c
Signed-off-by: SidneyAn <ran1.an@intel.com>
2018-09-03 10:22:31 +08:00
Zuul 10f7679d65 Merge "Decouple Fault Management from stx-config" 2018-08-17 14:21:36 +00:00
Tao Liu 5421df7098 Decouple Fault Management from stx-config
List of changes:
1.Remove all fault management (FM) database tables from sysinv DB
2.Remove all FM commands from sysinv REST API service
3.Remove all FM CLI commands from cgts client
4.Add FM user to config controller to support region config
5.Update backup restore to reference the new alarm database table
6.Update controller config test files and add the new FM user
7.Add a FM puppet module in order to manage configuration data and
  database; to configure user, service and endpoint in Keystone
8.Add a FM puppet operator to populate FM and SNMP configuration data
9.Update NFV puppet to support FM endpoint configuration
10.Update haproxy manifest to support active-active FM API service

Story: 2002828

Task: 22747

Change-Id: I96d22a18d5872c2e5398f2e9e26a7056fe9b4e82
Signed-off-by: Tao Liu <tao.liu@windriver.com>
2018-08-16 17:24:19 -04:00
Boris Pruss 8ef89274c7 Update SDK configutilities to version 3.0.2
Change-Id: Ied9e44a0772f730a39669e4ccfb21fa55a7dc504
Story: 2002865
Task: 22814
Signed-off-by: David Sullivan <david.sullivan@windriver.com>
2018-08-16 15:32:57 -04:00
Tyler Smith 1cd3d9cda0 configutils wxPython install command not working for Ubuntu
Modified the configutils README to support Ubuntu installs again

Change-Id: Id3d2f2f745c42c15070a330bb5ec0b6607c8ec24
Signed-off-by: Tyler Smith <tyler.smith@windriver.com>
Task: 23080
Story: 2003044
2018-08-13 14:09:52 +00:00
Kevin Smith b13cf38786 Disallow infra network on Distributed Cloud
Disallow infra network provisioning on Distributed Cloud systemcontrollers.

Story: 2002871
Task: 22823

Change-Id: I559c8a210d692bd2cda9ebc51064691775571db0
Signed-off-by: Jack Ding <jack.ding@windriver.com>
2018-07-31 15:48:45 -04:00
Kevin Smith d2da0ddd1e Disallow use of entire mgmt subnet for Distributed Cloud
Changes to config_controller to ensure user has left some mgmt network
address space for gateway(s), with appropriate warnings.

Story: 2002870
Task: 22820

Change-Id: Ib3f08d86e015cf614457b2284fe497b04caf5585
Signed-off-by: Jack Ding <jack.ding@windriver.com>
2018-07-31 15:48:45 -04:00
Kevin Smith 17f1c84f7e Reduce minimum mgmt ip range for subcloud
For Distributed Cloud, reduce minimum mgmt ip range upon subcloud add
from 8 to 5.

Story: 2002869
Task: 22819

Change-Id: I05e8ddfbf4adfe723d75a4553905bf05ea107a07
Signed-off-by: Jack Ding <jack.ding@windriver.com>
2018-07-31 15:48:45 -04:00
Angie Wang 61ac82ee82 Integrate gnocchi for OpenStack Telemetry
This commit integrates gnocchi as metric storage backend because of the
deprecation of ceilometer metering backend.
With gnocchi integrated, ceilometer api and collector processes are
removed, ceilometer agent nofitication and polling processes
are still running to collect and normalise data from other openstack
services. Ceilometer notification agent also has the responsiblity
to send samples to gnocchi backend through its gnocchi publisher and
events to panko backend.
Two gnocchi processes are introduced, gnocchi api is REST API service
and gnocchi metricd is for metric computing and gnocchi CLI is
supported to query measures/metric from gnocchi backend. Ceilometer
service and user still need to be registered in keystone, but stop
creating endpoints. Gnocchi is a seperate user/service in keystone and
run on active controller licensing on port 8041

Changes:

- puppet changes to add gnocchi user and endpoints to keystone, gnocchi
  port to haproxy and firewall,
  remote logging as well as other necessary configurations for gnocchi
- backup restore for gnocchi postgres db (except metric and resource
  tables)
- sm changes to manage gnocchi processes through created lsb scripts
- support for multi-region setup
- distributed cloud - do not enable service and create endpoints for
  gnocchi in system controller
- add gnocchi logs in syslog
- support no reboot patching for gnocchi processes
- add gnocchiclient in remote CLI
- add NotIn validation method in python-voluptuous which needed in
  gnocchi
- collect scripts updates
- cleanup ceilometer api and collector in puppet configuration, sm,
  service parameter, syslog, remotelogging, patch-restart-processes
- remote ceilometerclient from remote CLI
- remote openstack client changes for ceilometer CLI extensions
- remove ceilometer-api and ceilometer-collector packages from iso

Story: 2002825
Task: 22871
Depends-On: https://review.openstack.org/587419

Change-Id: Ia46c67eb6543c3694dff03435dc2b00fb2b760e5
Signed-off-by: Jack Ding <jack.ding@windriver.com>
2018-07-31 15:48:44 -04:00
Patrick Bonnell 3347cd311a Set primary interface of active backup bond interface
The standby controller would potentially fail to boot while
attempting to PXE-boot when configured with a management LAG.

This commit determines the interface with the lowest slave MAC
address in an active_standby LAG configuration and assigns it
as the primary interface.

Story: 2002865
Task: 22814

Change-Id: I73f03cb9cb2fd632a1e64b4e7744e3be067318a4
Signed-off-by: Jack Ding <jack.ding@windriver.com>
2018-07-20 15:30:54 -04:00
Tyler Smith d646fa044a Upversion configutilities version to 3.0.1
Change-Id: I997ed661fe7791d1ac4a26a846ae5c58853b2520
Signed-off-by: Jack Ding <jack.ding@windriver.com>
2018-07-20 15:30:54 -04:00
Tyler Smith 6bc915d90a Add python-pip to config_gui tool install instructions
Story: 2002837
Task: 22756

Change-Id: Iff6168dde7e3327cd3968e0a49d1bb6860f08379
Signed-off-by: Jack Ding <jack.ding@windriver.com>
2018-07-18 17:32:44 -04:00
Tyler Smith b51f5a4b05 Fix branding typo in config file utility
Story: 2002836
Task: 22755

Change-Id: I6d222ebdd64c2701ae3ae82c0cd7f7a89c6d80a7
Signed-off-by: Jack Ding <jack.ding@windriver.com>
2018-07-18 17:29:05 -04:00
Robert Church 686d83b25b Remove Ceph Cache Tiering support
Ceph Cache Tiering feature is not supported anymore. This commit removes
all the code changes associated with the no longer supported Ceph Cache
Tiering. This implies: a. cache tiering cannot be configured on system
b. no ceph-caching host could be added c. no ceph-backing host could be
added d. ceph-caching/ceph-backing personality sub-type won't show up
when 'system host-show'/system host-add command is issued e.
ceph-caching/ceph-backing personality sub-type won't show up when host
is added/listed from horizon

Change-Id: Idd9daf0a258fe4deaf51d174414240cb0a359dde
2018-06-29 13:44:43 -04:00
Bart Wensley 4b2873a312 Allow large IP address ranges
Fix inefficient IP address validation code in config_controller so
large IP address ranges can be used. Also fix INI file validation
to prevent the configuration of an IPv6 management network without
a separate PXEBOOT network.

Change-Id: I87e1801092a35d74354b666e8ecd76cbf4d1e14c
Signed-off-by: Bart Wensley <barton.wensley@windriver.com>
2018-06-25 09:13:41 -05:00
Matt Peters 9fafe08b65 Open vSwitch integration with host and configuration framework
Integrates the latest Open vSwitch with DPDK into the host management
and configuration framework and configures the default system
vswitch type to be ovs-dpdk.

Change-Id: If7ef2975e4b90ce84d170051f332f778a867a873
Signed-off-by: Matt Peters <matt.peters@windriver.com>
2018-06-14 16:03:52 -05:00
Dean Troyer 9b95aa0a35 StarlingX open source release updates
Signed-off-by: Dean Troyer <dtroyer@gmail.com>
2018-05-31 07:35:52 -07:00