373 Commits

Author SHA1 Message Date
Mark Goddard
de32048646 Add commands to generate and save overcloud service configuration
Adds these commands:

kayobe overcloud service configuration generate
kayobe overcloud service configuration save

The former generates configuration for kolla-ansible, the latter copies
kolla-ansible configuration from the overcloud hosts to the ansible control
host.
2017-09-18 21:41:48 +01:00
Mark Goddard
b83bb6ed09 Upgrade docker SDK for python during overcloud host upgrade
Kolla-ansible requires use of the docker python package, which is
incompatible with the legacy docker-py python package. We install the
former and remove the latter.
2017-09-18 21:41:48 +01:00
Mark Goddard
f047fbd4a9 Add workaround for ansible issue #21188 to inspection store
The restart handler task fails unless the image argument is passed to
the docker_container module. This shouldn't be necessary, as it should be
possible to identify the container by name alone.
2017-09-18 21:41:47 +01:00
Mark Goddard
4b197daeaf Add a note to requirements.txt about Ansible dell network module bug 30350 2017-09-18 21:41:47 +01:00
Mark Goddard
c2312561dd Relax requirements.txt to allow ansible 2.3
Kayobe has a dependency on ansible, which is currently capped to 2.2. Docker has
decided to rename the docker-py python module to docker, and made some backwards
incompatible API changes to go along with it. Kolla-ansible requires us to use
docker (not docker-py) on the target hosts, but this is not supported for the
docker_container and docker_image ansible modules that kayobe uses with ansible
2.2. Upgrading to ansible 2.3 allows us to support the new docker python package.
2017-09-18 21:41:47 +01:00
Mark Goddard
a8f95c9e8a Move two neutron options from custom neutron.conf to globals.yml
Support was added in kolla-ansible for neutron_type_drivers and
neutron_tenant_network_types.
2017-09-18 21:41:47 +01:00
Mark Goddard
f008b6a675 Update software dependencies to pike releases
For kolla, kolla-ansible and bifrost, we are now using a stackhpc/<release> branch
naming scheme rather than referencing tags in forked repos. It is recommended to
override these branches to specific tags for repeatable builds.

The Ironic Python Agent source version and tarball URLs have also been updated to
point to the pike release artifacts.

Finally, the kolla_openstack_release has been set to 5.0.0, following the
kolla-ansible second pike release candidate on which the stackhpc/pike branches
are currently based.
2017-09-18 21:41:47 +01:00
John Garbutt
444801af0e Update to use pike requirements 2017-09-18 21:41:47 +01:00
Mark Goddard
ab57a13a1f Add kolla_enable_ flags for new services added in Pike 2017-09-18 21:41:47 +01:00
Mark Goddard
7c7bbc064a Kayobe 2.0.0 release
Update python module version to 2.0.0, edit release notes.
2017-09-18 21:40:01 +01:00
Mark Goddard
a0f49cbd5c Stop using KOLLA_BASE_PATH to set base_path
This is part of an effort to use environment variables for configuration of
paths on the local ansible control host, and ansible variables for
configuration of paths on remote hosts (seed, seed-hypervisor, overcloud). The
base_path variable is used to set sensible defaults for image_cache_path,
source_checkout_path and virtualenv_path.
2017-09-18 21:40:01 +01:00
Mark Goddard
4acbf52867 Untangle configuration of kolla and kolla-ansible
Kolla (container images) and kolla-ansible (container deployment) are
separate concerns, and should be treated as such. Configuration
variables have been added for kolla-ansible which were previously shared
between the two projects:

kolla_venv -> kolla_ansible_venv
kolla_ctl_install_type -> kolla_ansible_ctl_install_type

Also, we introduce specific variables for the source code repository
checkout paths, which were previously both based on
source_checkout_path:

kolla_source_path
kolla_ansible_source_path

These changes help us to cleanly separate the configuration of paths on
the local (Ansible control) host, from those on the managed (target)
hosts. This is important because the local paths may be specific to the
environment in which the user is running kayobe, but the remote paths
are relatively fixed and specific to the cluster.
2017-09-18 14:21:52 +01:00
Mark Goddard
02aca93440 Separate network configuration from high level kayobe configuration 2017-09-18 14:21:51 +01:00
Mark Goddard
0c03d18626 Add kayobe overcloud host upgrade
This command performs necessary changes on the host to prepare the control
plane for an upgrade.

Currently this performs a workaround for issue #14, RabbitMQ upgrade failure.

We clear stale entries from /etc/hosts on the overcloud hosts and from the
rabbitmq containers, which allows the upgrade to complete successfully. The
source of the stale entries is currently unknown.
2017-09-18 13:04:27 +01:00
Mark Goddard
610d388b9c Add a workaround for ansible bug 8743 for users.yml 2017-09-14 19:24:13 +01:00
Mark Goddard
2e21ee018b Fix singleplatform-eng.users role entry in requirements.yml 2017-09-14 19:24:13 +01:00
Mark Goddard
c7197f9f36 Use vars: to pass variables to roles included via an include_role task
Passing variables inline with the role name appears not to work.
2017-09-14 14:43:42 +01:00
Mark Goddard
e7e4344509 Fix galaxy role upgrade
It is necessary to pass the --force flag to ansible-galaxy to ensure roles are
upgraded during kayobe control host upgrade.
2017-09-14 14:43:42 +01:00
Mark Goddard
cb4e45b971 Add release notes for implemented but unreleased features 2017-09-14 14:43:42 +01:00
Mark Goddard
2529d207ed Fix some 'issues' raised by ansible-lint 2017-09-14 14:43:42 +01:00
Mark Goddard
188e58bc94 Allow kolla-ansible prechecks to be skipped
This is done by passing --skip-prechecks, and applies to the following commands:

kayobe overcloud service deploy
kayobe overcloud service reconfigure
kayobe overcloud service upgrade
2017-09-14 14:42:40 +01:00
John Garbutt
c4e75cc5b0 Add ability to run ansible-lint
Hopefully it will help debug ansible 2.3 related issues.
2017-09-14 14:42:40 +01:00
Mark Goddard
2b59ef4f9c Merge pull request #13 from stackhpc/ubuntu
Add support for Ubuntu control hosts
2017-09-12 16:57:34 +01:00
Mark Goddard
b788737d15 Remove recurse argument from source_checkout_path creation
This should not be necessary, as all subdirectories are created by the
same user.
2017-09-12 11:33:32 +00:00
Mark Goddard
1fc6e2788b Simplify installation instructions with multiple platforms 2017-09-11 11:44:53 +01:00
Mark Goddard
dcdb9f7e96 Use become when creating image cache directory for seed VM 2017-09-11 10:29:13 +00:00
Mark Goddard
a62ad6b0d3 Allow switch ports to be excluded from NGS trunk port list
Currently we use the switch interface descriptions in the
switch_interface_config variable with the
kolla_neutron_ml2_generic_switch_trunk_port_hosts variable to generate a list
of ports for each switch that should be added as trunk ports to all networks.

This change allows switch interfaces to be given an 'ngs_trunk_port' boolean
field which can be used to exclude matching interfaces from the list. This
may be useful in cases where a host has multiple interfaces but only some
should be added as trunk ports.
2017-09-11 10:29:13 +00:00
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
fda941bcbf Add configuration of inspection allocation pool for dev environment
This allows the ironic_dnsmasq container to start successfully.
2017-09-07 20:50:08 +01:00
Mark Goddard
a27e0740fa Pass though host variables from kayobe to kolla-ansible inventory
By default this includes:

* ansible_host
* ansible_port
* ansible_ssh_private_key_file
2017-09-07 20:44:05 +01:00
Mark Goddard
c576e4d486 Add support for Ubuntu control hosts
This enables the user to use an Ubuntu machine to manage the cloud. The
remote cloud hosts must still run CentOS.
2017-09-07 19:42:43 +01:00
Mark Goddard
7b50904441 Fix check for SELinux status in kolla-ansible role
When SELinux python module is not installed on the host (in this
instance the control host), ansible sets the ansible_selinux fact to
False. Also, the item to check is status rather than mode.
2017-09-07 19:42:43 +01:00
Mark Goddard
8d544221bb Use . instead of source
On some platforms, including Ubuntu, sh is the default shell rather than bash. sh only
supports . for sourcing files, not the source keyword.
2017-09-07 18:38:08 +01: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