46 Commits

Author SHA1 Message Date
Mark Goddard
cc555c4196 Add <project>_install_type for all projects
This allows the install type for the project to be different than
kolla_install_type

This can be used to avoid hitting bug 1786238, since kuryr only supports
the source type.

Change-Id: I2b6fc85bac092b1614bccfd22bee48442c55dda4
Closes-Bug: #1786238
2019-09-23 10:23:54 +00:00
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
Serhat Demircan
adb02958e7 Retry perform a synced flush task while upgrading elasticsearch
The synced flush fails due to concurrent indexing operations.
The HTTP status code in that case will be 409 CONFLICT. We can
retry this task until returns success.

Change-Id: I57f9a009b12715eed8dfcf829a71f418d2ce437b
2019-03-27 18:14:07 +03:00
Christian Berendt
3a5ef38f3b Add elasticsearch_datadir_volume
Change-Id: Id8276448c6e779b2b4a0aafee45d953c4f009fc1
2019-02-25 19:30:33 +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
Christian Berendt
6df1b20618 Add missing project_name variables
Change-Id: I0cbc51eedb218f6b2f7d5c50372ad7a8be9bdcc0
2018-10-24 13:52:07 +02:00
Adam Harwell
f1c8136556 Refactor haproxy config (split by service) V2.0
Having all services in one giant haproxy file makes altering
configuration for a service both painful and dangerous. Each service
should be configured with a simple set of variables and rendered with a
single unified template.

Available are two new templates:

* haproxy_single_service_listen.cfg.j2: close to the original style, but
only one service per file
* haproxy_single_service_split.cfg.j2: using the newer haproxy syntax
for separated frontend and backend

For now the default will be the single listen block, for ease of
transition.

Change-Id: I6e237438fbc0aa3c89a3c8bd706a53b74e71904b
2018-09-26 03:30:38 -07:00
Zuul
3848ad8c1f Merge "Add elasticsearch port" 2018-08-07 09:49:54 +00:00
Kevin Tibi
c408afbae7 Update elasticsearch and kibana version to 5.x
Change the path for kibana binary and add upgrade tasks for
elasticsearch [1].

[1] https://www.elastic.co/guide/en/elasticsearch/reference/5.0/restart-upgrade.html

Depends-On: I8ed60eab2c15ae966960bcbeadb7aa25fece83a5
Change-Id: I9f566c0cb808c905736cc4090539672863260ad5
Implements: bp-elasticsearch-upgrade
2018-08-03 12:50:16 +01:00
caoyuan
adc55af3cb Add elasticsearch port
and ps to make the port configurable

Change-Id: I919767469087b9579e3d2f0965df835e7b71c327
2018-08-03 08:38:49 +00: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
Zuul
74d239bb88 Merge "[kibana] enforce index creation for ELK > 5 (debian)" 2018-06-06 15:49:52 +00:00
Jorge Niedbalski
317a107988 [kibana] enforce index creation for ELK > 5 (debian)
The default index isn't created automatically when using
ELK > 5.x. This commit adds a new task into the post-deploy
taskset to force the creation of the default index.

This patch also enforces the kibana config to set index
as defaultIndex without the need for the defaultIndex property
to already exists , preventing the error exposed on the public bug.

Also added a new option named kibana_default_index_options, with
a default index.mapper.dynamic set to true, this option
can be extended by the operator and they will be applied to the index.

Change-Id: Ica63a5fb30947f7ebae6cf8c80500a7dd0907211
Closes-Bug: #1772687
Signed-off-by: Jorge Niedbalski <jorge.niedbalski@linaro.org>
2018-05-23 09:53:14 -04:00
Jorge Niedbalski
a9693b85ac [elasticsearch] Change ES_HEAP_SIZE to ES_JAVA_OPTS.
After enabling the elasticsearch debian/ubuntu
images the container doesn't starts with ELK 5.4.1
as ES_HEAP_SIZE has been deprecated.

We should use ES_JAVA_OPTS with the -Xms/Xmx options instead.

Closes-Bug: #1772482

Change-Id: I9b368468d41421d679a9c4ad6fdf595863de7a1a
Signed-off-by: Jorge Niedbalski <jorge.niedbalski@linaro.org>
2018-05-21 15:39:53 -04: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
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
Mathieu Rohon
fc593d531b missing permissions when running as non root
some tasks miss permissions to be run as a normal user

Change-Id: Ic53308adb7fa3a10a7b1f1caa27ca7dd67037cdd
2017-12-12 16:51:36 +01:00
Christian Berendt
83bda89600 Increase vm.max_map_count on elasticsearch nodes
When using newer Elasticsearch versions you will receive the following error
when trying to start: elasticsearch | max virtual memory areas
vm.max_map_count [65530] likely too low, increase to at least [262144]

This could be solved by increasing the vm.max_map_count value via sysctl.

Reference: https://www.elastic.co/guide/en/elasticsearch/reference/current/vm-max-map-count.html

Change-Id: I9fa7b0222104d68bdfc838637acf5e36c479e6b2
Closes-bug: #1719528
2017-09-26 09:52:48 +02:00
Jeffrey Zhang
cacf08f0a6 Remove all kolla-kubernetes configurations
kolla-kubernetes is using its own configuration generation[0], so it is
time for kolla-ansible to remove the related code to simplify the
logical.

[0] https://github.com/openstack/kolla-kubernetes/tree/master/ansible

Change-Id: I7bb0b7fe3b8eea906613e936d5e9d19f4f2e80bb
Implements: blueprint clean-k8s-config
2017-07-18 22:00:58 +08:00
zhubingbing
f5fba5d442 Fix field data is too large
Change-Id: Id3ceaa27687fda3b773873501208dacbfa3536ab
Closes-bug: #1699680
2017-07-05 11:07:05 +08: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
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
caoyuan
1c3c611f40 Add the missing condition for config.yml
- add "item.value.enabled | bool"
- add "| bool" to keystone
- add group check for searchlight

Change-Id: Id4555a0a96ea1670e99c88a1da9d3e07bf253497
2017-02-14 11:19:26 +08:00
Mauricio Lima
ef81297e09 Optimize reconfiguration for elasticsearch
Co-Authored-By: caoyuan <cao.yuan@99cloud.net>
Change-Id: Ica989c7f70810d2cf98c0920ec264a311473e5b1
Partially-implements: blueprint better-reconfigure
2017-01-25 15:48:33 +08:00
Mauricio Lima
90917100f2 Move some prechecks into its own role
To avoid many merge conflicts and re-works
* Solum
* iscsi
* Keystone
* elasticsearch

Change-Id: Ibaecda35597cf39c602919b4990579f7cfc75c22
Co-Authored-By: caoyuan <cao.yuan@99cloud.net>
Co-Authored-By: qiankun.zhang <zhangqiankun@sgitg.sgcc.com.cn>
Partially-implements: blueprint condition-pre-check
2017-01-17 08:54:35 -03: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
Christian Berendt
4223fdfbeb Fix log directory of Elasticsearch
Logs should be stored in /var/log/kolla/elasticsearch.

Change-Id: If3ba4ec6ce2dbe9859ca604f0ee2df7fc4d15bd9
Closes-bug: #1634046
2016-10-17 11:34:31 +02:00
zhubingbing
250d7bc106 Fix elasticsearch upgrade permission issue
Change-Id: I113912e492c719385700da89307c7af4538207f9
Partial-Bug: #1631503
2016-10-15 12:02:50 +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
Serguei Bezverkhi
911dfe4ef7 ES and Kibana config modification for Kube
This PS modifies Elasticsearch and Kibana configuration templates
so genconfig can genarate Kubernetes compatible config for these
services.

TrivialFix

Change-Id: I6886307a163a9ca27a29e6dbdac4f9080948e4b5
2016-09-23 11:58:28 -04:00
Mick Thompson
4c1482b999 Added serial option to site.yml.
Useful for upgrade etc., which is preferablly done serially.

Example usage: tools/kolla-ansible deploy OR tools/kolla-ansible upgrade

Closes-Bug: #1576708

DocImpact

Change-Id: I34b2e16f8ce53e472a4682a4738c4ac0f5abf00c
2016-09-13 09:26:51 +00:00
Duong Ha-Quang
1d56fcb4f0 Fix bug in Elasticsearch role
Add Ansbile reconfigure playbook to Elasticsearch role.
Add run condition to start playbook in Elasticsearch role.

Change-Id: I7862089cae55d392eb2d922f89a382d392cf8b97
Closes-Bug: #1616005
2016-08-24 20:12:47 +07:00
Jeffrey Zhang
0fcee87549 map the host localtime to the container
Closes-Bug: #1577148
Change-Id: I636cefc63cf532434a41af3898b63dffa711e280
2016-05-03 09:27:51 +08:00
Jeffrey Zhang
7bcf58cf78 Upgrade elasticsearch
Change-Id: I24d17f98013d82f2e6f46548cac80c0303d6e171
Implements: blueprint upgrade-elasticsearch
2016-03-24 18:19:52 +08:00
Éric Lemoine
491aff0b88 Make Heka send logs to Elasticsearch
This patch includes changes relative to integrating Heka with
Elasticsearch and Kibana.

The main change is the addition of an Heka ElasticSearchOutput plugin
to make Heka send the logs it collects to Elasticsearch.

Since Logstash is not used the enable_elk deploy variable is renamed
to enable_central_logging.

If enable_central_logging is false then Elasticsearch and Kibana are
not started, and Heka won't attempt to send logs to Elasticsearch.

By default enable_central_logging is set to false. If
enable_central_logging is set to true after deployment then the Heka
container needs to be recreated (for Heka to get the new
configuration).

The Kibana configuration used property names that are deprecated in
Kibana 4.2. This is changed to use non-deprecated property names.

Previously logs read from files and from Syslog had a different Type
in Heka. This is changed to always use "log" for the Type. In this
way just one index instead of two is used in Elasticsearch, making
things easier to the user on the visualization side.

The HAProxy configuration is changed to add entries for Kibana.
Kibana server is now accessible via the internal VIP, and also via
the external VIP if there's one configured.

The HAProxy configuration is changed to add an entry for
Elasticsearch. So Elasticsearch is now accessible via the internal
VIP. Heka uses that channel for communicating with Elasticsearch.

Note that currently the Heka logs include "Plugin
elasticsearch_output" errors when Heka starts. This occurs when Heka
starts processing logs while Elasticsearch is not yet started. These
are transient errors that go away when Elasticsearch is ready. And
with buffering enabled on the ElasticSearchOuput plugin logs will be
buffered and then retransmitted when Elasticsearch is ready.

Change-Id: I6ff7a4f0ad04c4c666e174693a35ff49914280bb
Implements: blueprint central-logging-service
2016-03-05 11:51:49 +01:00
SamYaple
d3cfb2052a Change kolla_internal_address variable
Due to poor planning on our variable names we have a situation where
we have "internal_address" which must be a VIP, but "external_address"
which should be a DNS name. Now with two vips "external_vip_address"
is a new variable.

This corrects that issue by deprecating kolla_internal_address and
replacing it with 4 nicely named variables.

kolla_internal_vip_address
kolla_internal_fqdn
kolla_external_vip_address
kolla_external_fqdn

The default behaviour will remain the same, and the way the variable
inheritance is setup the kolla_internal_address variable can still be
set in globals.yml and propogate out to these 4 new variables like it
normally would, but all reference to kolla_internal_address has been
completely removed.

Change-Id: I4556dcdbf4d91a8d2751981ef9c64bad44a719e5
Partially-Implements: blueprint ssl-kolla
2016-02-26 20:00:09 +00:00
Jeffrey Zhang
d26c259754 Add the default empty reconfigure.yml file to all roles
DocImpact

Partially-implements: bp kolla-reconfig
Change-Id: I9738e80960bcfbef18d1ef1b7942f81c45684e85
2016-02-25 09:32:53 +08:00
Michal (inc0) Jastrzebski
70268a1658 Upgrade stub for elasticsearch
This should be later replaced with actual upgrade logic

Change-Id: I1c386a7f3bc0d15ebe4a47d2628833172a15f89b
Partially-implements: blueprint upgrade-kolla
Partially-implements: blueprint upgrade-elasticseatch
2016-02-22 19:42:32 +00:00
akwasniewska
792666dd79 Added Elasticearch and its deployment.
Part of ELK stack. Includes Dockerfiles for both Centos and Ubuntu.

Change-Id: I9f76adf084cd4f68e29326112b76ffd02b5adada
Partially-implements: blueprint central-logging-service
2016-02-13 07:53:24 +00:00