31 Commits

Author SHA1 Message Date
Zuul
8f70bc22d6 Merge "Add extra volumes support for services that were not previously supported" 2019-08-05 09:02:04 +00:00
Mark Goddard
de00bf491d Simplify handler conditionals
Currently, we have a lot of logic for checking if a handler should run,
depending on whether config files have changed and whether the
container configuration has changed. As rm_work pointed out during
the recent haproxy refactor, these conditionals are typically
unnecessary - we can rely on Ansible's handler notification system
to only trigger handlers when they need to run. This removes a lot
of error prone code.

This patch removes conditional handler logic for all services. It is
important to ensure that we no longer trigger handlers when unnecessary,
because without these checks in place it will trigger a restart of the
containers.

Implements: blueprint simplify-handlers

Change-Id: I4f1aa03e9a9faaf8aecd556dfeafdb834042e4cd
2019-06-27 15:57:19 +00:00
ZijianGuo
e610a73e98 Add extra volumes support for services that were not previously supported
We don't add extra volumes support for all services in patch [1].
In order to unify the management of the volume, so we need add extra volumes
support for these services.

[1] 12ff28a693

Change-Id: Ie148accdd8e6c60df6b521d55bda12b850c0d255
Partially-Implements: blueprint support-extra-volumes
Signed-off-by: ZijianGuo <guozijn@gmail.com>
2019-06-27 18:32:15 +08:00
Mark Goddard
b123bf6621 Use become for all docker tasks
Many tasks that use Docker have become specified already, but
not all. This change ensures all tasks that use the following
modules have become:

* kolla_docker
* kolla_ceph_keyring
* kolla_toolbox
* kolla_container_facts

It also adds become for 'command' tasks that use docker CLI.

Change-Id: I4a5ebcedaccb9261dbc958ec67e8077d7980e496
2019-06-06 19:04:58 +01:00
Eduardo Gonzalez
1a682fab28 Support stop specific containers
With this change, an operator may be able to stop a
service container without stopping all services in a host.
This change is the starting point to start
fast-forward upgrades support.
In next changes new flags will be introducced to disable
stop dataplane services during upgrades.

Change-Id: Ifde7a39d7d8596ef0d7405ecf1ac1d49a459d9ef
Implements: blueprint support-stop-containers
2018-11-26 08:07:01 +00:00
Mark Goddard
ee7a29cf00 Remove compute hosts from etcd group
Since I701d495675178c3ed8ec1f00b31d09f198b38a6f merged, etcd only runs
on the control hosts, not the compute hosts. We therefore no longer
require the etcd group to include the compute hosts.

Since the group mapping is now static, we can remove the use of
host_in_groups from the etcd service, in favour of the simpler method of
specifying the group.

Change-Id: Id8f888d7321a30a85ff95e742f7e6c8e2b9c696f
Related-Bug: #1790415
2018-09-04 19:23:18 +01:00
Hongbin Lu
d29ecbd64c Run etcd on controller node only
In before, etcd container is launched in compute node if kuryr is
enabled. This logic breaks the all-in-one setup in which the etcd
cluster is configured with two members (controller and compute)
but it actually has one member only.

However, even if kuryr is enabled, running etcd in compute node
is not the common practice and kuryr has changed its devstack
plugin to run etcd on controller only [1].

[1] https://review.openstack.org/#/c/514815/

Closes-Bug: #1790415
Change-Id: I701d495675178c3ed8ec1f00b31d09f198b38a6f
2018-09-02 22:30:50 +00:00
Mark Goddard
b9208cd178 Fix etcd when Kuryr is disabled
This is because the environment variable ETCD_INITIAL_CLUSTER contains
compute nodes, which are not running etcd.

Compute nodes are in the etcd group to allow for kuryr, which needs etcd
to be running on compute nodes (why???). When kuryr is disabled, etcd is
not deployed on these hosts (using host_in_groups). However, the
ETCD_INITIAL_CLUSTER environment variable always includes all hosts in
the etcd group.

This change sets ETCD_INITIAL_CLUSTER correctly in both cases.

Change-Id: I11f812d3fdacf0eeb8236f9a39d673aaa480dd26
Closes-Bug: #1783963
2018-07-27 09:28:42 +01:00
Zuul
3e45b2cbec Merge "Use include_tasks instead of include" 2018-07-27 08:16:08 +00:00
Lakshmi Prasanna Goutham Pratapa
76210a2d85 Apply Resource Constraints to Openstack Services
This commit is to apply resource-constraints only to few OpenStack services.
Commit to apply constraints to other services will be made in coming commits.

Partially-Implements: blueprint resource-constraints

Change-Id: Icafa54baca24d2de64238222a5677b9d8b90e2aa
2018-07-25 17:05:04 +01:00
Jeffrey Zhang
b51eeed89e Use include_tasks instead of include
include is marked as deprecated since ansible 2.4[0]

[0] https://docs.ansible.com/ansible/2.4/include_module.html#deprecated

Co-Authored-By: confi-surya <singh.surya64mnnit@gmail.com>
Change-Id: Ic9d71e1865d1c728890625aeddf424a5734c0a8a
2018-07-25 23:57:22 +08:00
Ha Manh Dong
30be04ea91 Specify 'become' for all tasks that use kolla_docker module
Add become to all tasks that use the module "kolla_docker"

Change-Id: I4309c4011687b88ec31d739fd8f834fe2326ff10
Partial-Implements: blueprint ansible-specific-task-become
2018-06-08 12:39:24 +00:00
Jeffrey Zhang
c567055176 Fix ansible warning
- rename action and serial to kolla_ansible and kolla_serial
- use become instead of "sudo <command>" in shell
- Remove quota for failed_when and changed_when in rabbitmq tasks

Change-Id: I78cb60168aaa40bb6439198283546b7faf33917c
Implements: blueprint migrate-to-ansible-2-2-0
2018-05-11 02:54:02 +00:00
Simon Piette
fdb325aba6 add the environment attribute to etcd deploy
In ansible/roles/etcd/tasks/config.yml, the kolla_docker
compare_container action doesn't check environment.

Once a container is created, it won't get recreated if only the
environment change. This commit add the environment attribute to the
kolla_docker action in etcd role

Change-Id: I8fb71cc945867e06acc67f6d1256bf62f4276206
Closes-Bug: #1765517
2018-05-04 14:37:59 -04:00
caoyuan
fb41199790 Fix etcd container check failed
mode is unsupported parameters for (kolla_docker) module[0].

[0]: https://github.com/openstack/kolla-ansible/blob/master/ansible/library/kolla_docker.py#L726

Co-Authored-By: wu.chunyang <wu.chunyang@99cloud.net>
Closes-Bug: #1766170

Change-Id: I06077e09773f6b263e11b0579a74aaf8f73c1110
2018-04-23 14:23:43 +08:00
Duong Ha-Quang
9965cc46ff Specify 'become' for only neccesary tasks (all other roles)
Add become to only neccesary tasks in roles:

- aodh
- barbican
- bifrost
- ceilometer
- ceph
- chrony
- cinder
- cloudkitty
- collectd
- congress
- designate
- elasticsearch
- etcd
- freezer
- gnocchi
- grafana
- influxdb
- ironic
- iscsi
- karbor
- kibana
- kuryr
- magnum
- manila
- mistral
- mongodb
- multipathd
- murano
- octavia
- panko
- qdrouterd
- rally
- sahara
- searchlight
- senlin
- skydive
- solum
- swift
- swift
- tacker
- telegraf
- tempest
- trove
- vmtp
- watcher
- zun

Change-Id: I6e32d94d4172dd96d09d8609e8a5221ab5586a31
Partial-Implements: blueprint ansible-specific-task-become
2018-03-12 09:37:43 +07:00
Eduardo Gonzalez
3958a68fb1 Deploy etcd in compute nodes when kuryr
Kuryr need etcd on each compute node to store
network data.
Etcd is only deployed in controller nodes at this moment.

Also this change remove and useless bootstrap tasks.

Depends-On: I9c6c876773288c2f951966498db0ff8af090ac20
Change-Id: I8a84334e831fb15f6cbdd3bc34d2159638df6b85
Closes-Bug: #1697699
2017-06-14 13:45:30 +00:00
Bertrand Lallau
afdd11b9a2 Generalize api_interface_address variable usage
Useful api_interface_address variable has been define here:
https://github.com/openstack/kolla-ansible/blob/master/ansible/group_vars/all.yml#L57
In order to simplify codebase we must use it as much as possible.

Change-Id: I18fec19bf69e05a22a4142a9cd1165eccd022455
2017-05-23 08:35:15 +00:00
Jeffrey Zhang
b1f015616c Add timeout parameter for precheck tasks
wait_for module waits 300 seconds for the port started or stopped.  This
is meaningless and useless in precheck. This patch change timeout to 1
seconds.

Change-Id: I9b251ec4ba17ce446655917e8ef5e152ef947298
Closes-Bug: #1688152
2017-05-04 09:02:25 +08:00
Jenkins
9d0daa015a Merge "Enable sanity checks from kolla-ansible" 2017-03-09 17:31:51 +00:00
Paul Bourke
5418ada148 Enable sanity checks from kolla-ansible
Add a new subcommand 'check' to kolla-ansible, used to run the
smoke/sanity checks.

Add stub files to all services that don't currently have checks.

Change-Id: I9f661c5fc51fd5b9b266f23f6c524884613dee48
Partially-implements: blueprint sanity-check-container
2017-03-09 10:37:06 +00:00
Charlie Kang
099a1ea17d Etcd fails to start - missing environment parameter
add environment parameter to handlers restart etcd container as
there are env parameters in default

Closes-Bug: #1669089

Change-Id: I99266e7a367cb54c77b3d3da35ba5055acd98f62
2017-03-01 15:58:01 -08:00
Mauricio Lima
b155ad5d96 Optimize reconfiguration for etcd
Co-Authored-By: caoyuan <cao.yuan@99cloud.net>
Change-Id: I1cd494afd3a76e832272e70e9e1e5a41a522a31e
Partially-implements: blueprint better-reconfigure
2017-02-06 23:01:09 +08:00
caoyuan
fb90ae70a0 Move etcd precheck into its own role
Change-Id: Ic1b1dcb535dd6dc67bcf165d74c0046c5d12c4c1
Partially-implements: blueprint condition-pre-check
2017-01-11 16:38:38 +08:00
Vladislav Belogrudov
073cfb2a33 Some tasks fail if NIC names differ
During configuration file generation one uses local variable
api_interface that reference remote host. Instead we should
use hostvars to find out correct interface name for each host
mentioned in configuration.

Change-Id: I9f64fdf2cd18bcc0bbf1c4193349186d9a7658bc
Closes-Bug: #1650195
2016-12-15 13:58:30 +00:00
Jeffrey Zhang
fa45801946 Move precheck into its own role
* Merge prechecks.yml and site.yml playbook
* Create empty precheck.yml into all roles.

Change-Id: I8a138558a26c0a2a66c5fd48ed37be657c99c1dd
Implements: blueprint condition-pre-check
2016-11-03 14:48:58 +08:00
Jenkins
45b0f2cf63 Merge "Remove do_reconfigure.yml file for all roles" 2016-10-13 16:20:30 +00:00
Jeffrey Zhang
16a1f9f006 Mount host localtime for containers
Add /etc/localtime:/etc/localtime:ro to volume for aodh, barbican, etcd,
gnocchi, kuryr and sahara.
All the containers are added in Netwon cycle, so no need to backport

Closes-Bug: #1633049
Change-Id: I9cdba54cf730af44fb1a9ff6f2c936d23dadbe9a
2016-10-13 11:35:03 +00:00
Jeffrey Zhang
fa856556d5 Remove do_reconfigure.yml file for all roles
do_reconfigure.yml is introduced to use serial directive. But we use
it in wrong. Now serial has moved to playbook file. So it is time to
remove the do_reconfigure.yml file

Closes-Bug: #1628152
Change-Id: I8d42d27e6bc302a0e575b0353956eaef9b2ca9fd
2016-09-27 15:04:00 +00:00
zhubingbing
f13b267c88 add etcd reconfigure content and do_reconfigure file
Closes-bug: #1624881

Change-Id: I1901089b09a7c0e519243f9f6399566a5f5d0d31
2016-09-22 04:07:09 +00:00
Hui Kang
a5b53f3a70 Add etcd ansible role
Change-Id: If8351ab3000006323a05924e907f1e3745768304
Co-Authored-By: zhubingbing <zhubingbing10@gmail.com>>
Partially-implements: bp kuryr-docker-plugin
2016-09-15 03:33:57 +00:00