341 Commits

Author SHA1 Message Date
Mark Goddard
1216fec5e3 Use the singleplatform-eng.users role to create the kayobe ansible user 2017-09-11 10:29:13 +00:00
Mark Goddard
287acd1f92 Support configuration of user accounts
User accounts are configured during the following commands:

kayobe seed hypervisor host configure
kayobe seed host configure
kayobe overcloud host configure

The users are defined by the following variables:

seed_hypervisor_users
seed_users
controller_users
monitoring_users

The format required is described in the singleplatform-eng.users role
on Galaxy.

Any additional control plane hosts not in the controllers or monitoring
groups should define a 'users' variable.
2017-09-11 10:29:13 +00:00
Mark Goddard
b0e199c1fc Support the netmiko_juniper driver for Junipers in genericswitch 2017-09-11 10:29:13 +00:00
Mark Goddard
3e460676b3 Use hosts in the network group for default NGS trunk ports
Neutron network services are now mapped to hosts in the network group,
so it is these hosts that should be added as trunk ports to VLAN networks
by the networking-generic-switch neutron ML2 mechanism driver, rather
than the controllers.
2017-09-11 10:29:13 +00:00
Mark Goddard
b6dc893b0d Use controller sysctl parameters as the defaults for monitoring hosts 2017-09-11 10:29:13 +00:00
Mark Goddard
b153fa1c4e Advertise internal ironic API to nodes during provisioning
Previously a URL based on the provisioning network IP was being advertised to
nodes during provisioning. The issue here is that the API server might not be
listening on the provisioning network. Instead we advertise the internal network
endpoint and assume that if any routes are required to enable this then they
have been created elsewhere.
2017-09-11 10:29:13 +00:00
Mark Goddard
c60c07b191 Merge pull request #12 from stackhpc/dev-static-eth1
Add static configuration of eth1 in development environment
2017-09-07 18:32:05 +01:00
Mark Goddard
05fd950c1c Add TravisCI status badge to README 2017-09-05 17:04:33 +01:00
Mark Goddard
bbbc55e4a2 Add static configuration of eth1 in development environment
This is required in order to allow kayobe to reach the controller prior to
running the network configuration plays.
2017-09-04 15:47:05 +00:00
Mark Goddard
d367b16236 Merge pull request #11 from weknowsoftware/disable-vagrant-autoconfig
Disabled vagrant auto-configure of interface
2017-09-04 14:53:25 +01:00
Mark Goddard
8644c13c38 Merge pull request #10 from stackhpc/travis
Setup Travis CI
2017-09-04 14:36:35 +01:00
simon.guerrero
4fbf0dd50f Disabled vagrant auto-configure of interface 2017-09-04 13:36:50 +01:00
Stig Telfer
6221cb2daf Merge pull request #9 from oneswig/glance-extended-config
Add support for a free-form configuration directory for glance
2017-09-04 11:21:11 +01:00
Mark Goddard
a1f7068ee8 Add release notes to index TOC 2017-09-04 11:01:41 +01:00
Mark Goddard
cc2906e2e9 Add Travis CI config
Currently we run the following:

* Python and documentation style checks
* Documentation build
* Python unit tests
2017-09-04 11:01:02 +01:00
Mark Goddard
ee09ae8f4a Add sphinx8, a thin wrapper around doc8 that supports sphinx 2017-09-04 11:01:02 +01:00
Stig Telfer
2e98f97207 Add support for a free-form configuration directory for glance 2017-09-02 22:13:14 +01:00
Mark Goddard
5c6d85adfa Add network configuration for gateways in provisioning and inspection networks
These allow us to use different gateways for compute nodes on the inspection
and provisioning networks than on the control plane hosts also accessing these
networks.
2017-09-01 18:22:42 +00:00
Mark Goddard
5304c0a489 Add a data store for ironic inspector introspection data
In environments without Swift we are currently unable to store hardware
introspection data. The inspection_store container runs an nginx server
that supports a restricted Swift-like HTTP API using WebDAV that supports
upload and retrieval of introspection data.
2017-09-01 18:21:10 +00:00
Mark Goddard
00b6d7e7f0 Support KAYOBE_BASE_PATH in kayobe python module
This allows us to infer the kolla-ansible virtualenv as
$KAYOBE_BASE_PATH/venvs/kolla when $KOLLA_VENV isn't set.

Further work on the distinction between local and remote paths is still required.
2017-09-01 15:04:38 +00:00
Mark Goddard
316d16c0ec Add support for configuration of sysctl parameters
These are group-specific, and configured via the following variables:

controller_sysctl_parameters
monitoring_sysctl_parameters
seed_sysctl_parameters
seed_hypervisor_parameters
2017-08-31 17:43:18 +00:00
Mark Goddard
fa69ee2775 Send default gateway DHCP option during workload inspection
This allows us to access an inspector API that is not on the provisioning network.
2017-08-30 16:48:30 +00:00
Mark Goddard
61ffac59e5 Use provisioning network to access TFTP server during workload inspection 2017-08-30 16:47:20 +00:00
Mark Goddard
c2f42af651 Add release notes to documentation, with notes for 1.0.0 and 1.1.0 2017-08-30 11:09:23 +00:00
Mark Goddard
5cf205502d Decompose overcloud inventory file into top level, components, and services
This allows a deployer to customise their inventory at various levels, by
providing a custom inventory template for one or more of the sections of the
inventory.

* Top level groups define the roles of hosts, e.g. controller or compute.
* Components define groups of services, e.g. nova or ironic.
* Services define single containers, e.g. nova-compute or ironic-api.
2017-08-30 11:02:33 +00:00
Mark Goddard
7b02fe89d8 Determine overcloud_groups variable more intelligently
We can use the keys of overcloud_group_hosts_map and overcloud_group_default to
make a reasonable estimate of the overcloud groups.
2017-08-30 10:01:14 +00:00
Mark Goddard
3466fd78b4 Add network group, move neutron and load balancing services to it
In many cases network services will be provided by controllers, but
this allows these services to be separated.
2017-08-29 13:41:15 +00:00
Mark Goddard
f0b409e484 Add <type>_network_interfaces for controllers, monitoring, seed, seed-hypervisor
This allows for the full set of interfaces to be overridden by setting one
of these variables, rather than simply extending the default list via
<type>_extra_network_interfaces.
2017-08-29 13:41:15 +00:00
Mark Goddard
4544e67bd0 Add ansible_host and ansible_user definitions for seed-hypervisor
These are required for SSH access to the seed-hypervisor.
2017-08-29 13:41:15 +00:00
Mark Goddard
a423e446d4 Add -kl/--kolla-limit argument to limit kolla-ansible target hosts 2017-08-29 13:12:47 +00:00
Mark Goddard
10de93dc61 Fix pep8 errors 2017-08-29 13:12:47 +00:00
Mark Goddard
6580c08140 Changes to MichaelRigart.interfaces role now merged upstream 2017-08-29 13:12:47 +00:00
Mark Goddard
1d9e8fc976 Separate the external network into external and public
Previously, the external network carried both public API traffic and
neutron external network traffic. In some cases is it useful to separate
these networks. The public network now carries the public API traffic,
leaving the external network to carry neutron external network traffic
alone. For backwards compatibility, the public network defaults to the
external network.
2017-08-29 13:12:47 +00:00
Mark Goddard
e5cec6aed3 Add support for setting bmc_type=intel for Intel BMCs 2017-08-29 13:12:47 +00:00
John Garbutt
ae6b804e07 Merge pull request #7 from JohnGarbutt/tidy-ups
stability improvements, plus selinux reboot avoidance
2017-08-29 13:31:05 +01:00
John Garbutt
c5a4e46f4b Disable selinux during provision
To avoid a reboot when running the kayobe scripts, we disable selinux
before running the scripts. We do this using the provision reload plugin
that allows us to do a vagrant reload while provisioning the VM.
2017-08-29 11:58:48 +01:00
John Garbutt
42605939a4 Sync /vagrant folder using virtualbox shared folder
When doing vagrant halt then vagrant up we want the system to keep
working. The easiest way to do this is to use a virtual box plugin to
install the tools, then use the tools to sync the /vagrant directory,
rather than falling back to rsync on every boot of the VM. The rsync
looses all the writes since the last boot, forcing a full reprovision.
2017-08-29 11:50:58 +01:00
John Garbutt
d05b1265df We don't need to set the gateway for aio network
Removing this seemed to stop us getting duplicate network gateways.
2017-08-29 11:42:45 +01:00
John Garbutt
0d8a100a61 Merge pull request #6 from JohnGarbutt/print-cmd-when-verbose
Print cmd when verbose
2017-08-24 12:37:16 +01:00
Mark Goddard
bd4c76aaf0 Fix incorrect ansible module in overcloud-ipa-images.yml 2017-08-23 16:48:18 +01:00
Mark Goddard
4d25311f97 Update development guide to include pulling container images
This is an alternative to building them locally.
2017-08-23 16:06:57 +01:00
Mark Goddard
1c1d92b4db Add command to save overcloud introspection data
The CLI command is:

kayobe overcloud introspection data save [--output-dir <dir>] [--output-format <format>]

This command will save introspection data collected by the seed host's ironic
inspector service to the control host for analysis.
2017-08-22 18:35:47 +00:00
Mark Goddard
4cdf792032 Perform all host network configuration in a single pass
The MichaelRigart.interfaces role has now been updated to support more complex
network topologies, including VLAN subinterfaces of bridges, and bridges with
a bonded interface as a port.
2017-08-22 18:35:47 +00:00
Mark Goddard
b24db07b35 Explicitly set IP=0.0.0.0 on interfaces with no IP address
This will remove any existing IP address from the interface.
2017-08-22 15:12:06 +00:00
Mark Goddard
112e36a7fd Fix serialisation of ip-allocation role
This keyword should be applied to the play, not the role, otherwise it doesn't
work.
2017-08-22 15:12:05 +00:00
Mark Goddard
7d7dc486a4 Fix destroy of opensm and docker-registry containers
Now also removes docker volumes
2017-08-22 15:12:05 +00:00
Mark Goddard
e5f889baaa Don't pull opensm or docker-registry images when disabled or destroying 2017-08-22 15:12:05 +00:00
Mark Goddard
f17f82a0fc Improve configuration of IPA collectors and benchmarks
Rather than specifying kernel command line arguments directly, configuration of
IPA introspection data collectors and benchmarks is now possible by extending
lists of collector (ipa_collect_extra) and benchmark (ipa_benchmark_extra)
names.  LLDP collection is now controlled via a flag, ipa_collect_lldp.
Additional kernel arguments may be passed via ipa_kernel_options_extra.
2017-08-22 15:12:05 +00:00
Mark Goddard
5d6658b353 Improve ironic deployment image build for overcloud
Overcloud deployment images can now be built via:

kayobe overcloud deployment image build

This should be done prior to running kayobe overcloud service deploy.
In order to build IPA images, the ipa_build_images variable should be
set to True. In this case, these images will be used by the overcloud's
ironic inspector service during hardware inspection, and by ironic
during provisioning.
2017-08-22 15:12:05 +00:00
Mark Goddard
ebb81e49f1 Add command to build IPA deployment images for the seed
The CLI command is:

kayobe seed deployment image build

This command will build Ironic Python Agent (IPA) kernel and ramdisk images
using the Diskimage Builder (DIB) ironic-agent element. The built images will
be copied to the appropriate location in the bifrost_deploy container on the
seed.

This allows us to build a customised image with site- or hardware- specific
extensions.
2017-08-22 15:12:05 +00:00