- Sep 22, 2020
-
-
Mark Goddard authored
If the common role is executed against a set of hosts that are not all in the fluentd group, the run_once tasks that find customisations may be skipped. This causes a later failure when accessing the registered variables for those tasks. This issue was raised on the mailing list: http://lists.openstack.org/pipermail/openstack-discuss/2020-September/016932.html This issue only affects the master branch, due to addition of groups for the common role in I6a4676bf6efeebc61383ec7a406db07c7a868b2a. This change fixes the issue by always running the find tasks, if fluentd is enabled. Change-Id: I559c4b94d18c7f36d43e1d88629ed44668abf859
-
- Sep 18, 2020
-
-
Michal Nasiadka authored
Change-Id: Iabc0115d3476a626df134cc70cb473bf6e72487e Closes-Bug: #1890439
-
- Aug 28, 2020
-
-
Mark Goddard authored
Including tasks has a performance penalty when compared with importing tasks. If the include has a condition associated with it, then the overhead of the include may be lower than the overhead of skipping all imported tasks. For unconditionally included tasks, switching to import_tasks provides a clear benefit. Benchmarking of include vs. import is available at [1]. This change switches from include_tasks to import_tasks where there is no condition applied to the include. [1] https://github.com/stackhpc/ansible-scaling/blob/master/doc/include-and-import.md#task-include-and-import Partially-Implements: blueprint performance-improvements Change-Id: Ia45af4a198e422773d9f009c7f7b2e32ce9e3b97
-
- Aug 19, 2020
-
-
Rafael Weingärtner authored
The goal for this push request is to normalize the construction and use of internal, external, and admin URLs. While extending Kolla-ansible to enable a more flexible method to manage external URLs, we noticed that the same URL was constructed multiple times in different parts of the code. This can make it difficult for people that want to work with these URLs and create inconsistencies in a large code base with time. Therefore, we are proposing here the use of "single Kolla-ansible variable" per endpoint URL, which facilitates for people that are interested in overriding/extending these URLs. As an example, we extended Kolla-ansible to facilitate the "override" of public (external) URLs with the following standard "<component/serviceName>.<companyBaseUrl>". Therefore, the "NAT/redirect" in the SSL termination system (HAproxy, HTTPD or some other) is done via the service name, and not by the port. This allows operators to easily and automatically create more friendly URL names. To develop this feature, we first applied this patch that we are sending now to the community. We did that to reduce the surface of changes in Kolla-ansible. Another example is the integration of Kolla-ansible and Consul, which we also implemented internally, and also requires URLs changes. Therefore, this PR is essential to reduce code duplicity, and to facility users/developers to work/customize the services URLs. Change-Id: I73d483e01476e779a5155b2e18dd5ea25f514e93 Signed-off-by:
Rafael Weingärtner <rafael@apache.org>
-
- Aug 10, 2020
-
-
Mark Goddard authored
Previously we mounted /etc/timezone if the kolla_base_distro is debian or ubuntu. This would fail prechecks if debian or ubuntu images were deployed on CentOS. While this is not a supported combination, for correctness we should fix the condition to reference the host OS rather than the container OS, since that is where the /etc/timezone file is located. Change-Id: Ifc252ae793e6974356fcdca810b373f362d24ba5 Closes-Bug: #1882553
-
- Aug 06, 2020
-
-
Kien Nguyen authored
Change-Id: Ib08544a265fe1e0d599a6243cb9d38ed9a7769e1
-
- Jul 28, 2020
-
-
Mark Goddard authored
Currently we generate multiple fluentd configuration files for inputs, filters, formatters and outputs. These are then included from the main td-agent.conf configuration file. With a large number of hosts, this can take a long time to template. Benchmarking of templating is available at [1]. This change switches to a single fluentd configuration file, with the include done locally. For the default template files included with Kolla Ansible we use Jinja includes, but this does not work with templates in a different directory. We therefore use the Ansible template lookup plugin, which has a slightly higher overhead than a jinja include, but far lower than generating multiple templates. This should drastically improve the performance of this task. [1] https://github.com/stackhpc/ansible-scaling/blob/master/doc/template.md Partially-Implements: blueprint performance-improvements Change-Id: Ia8623be0aa861fea3e54d2c9e1c971dfd8e3afa9
-
Mark Goddard authored
Currently we generate a logrotate configuration file for each enabled service. These are then included from a logrotate.d directory. With a large number of hosts, this can take a long time to template. Benchmarking of templating is available at [1]. This change switches to a single logrotate configuration file for all services, with the include done locally using jinja. This should drastically improve the performance of this task. [1] https://github.com/stackhpc/ansible-scaling/blob/master/doc/template.md Partially-Implements: blueprint performance-improvements Change-Id: I39cfa70bef6560f615cad516c43aaef6a523b964
-
Mark Goddard authored
Including tasks has a performance penalty when compared with importing tasks. If the include has a condition associated with it, then the overhead of the include may be lower than the overhead of skipping all imported tasks. In the case of the check-containers.yml include, the included file only has a single task, so the overhead of skipping this task will not be greater than the overhead of the task import. It therefore makes sense to switch to use import_tasks there. Partially-Implements: blueprint performance-improvements Change-Id: I65d911670649960708b9f6a4c110d1a7df1ad8f7
-
- Jul 27, 2020
-
-
Michal Nasiadka authored
fluentd logs currently to stdout, which is known to produce big docker logs in /var/lib/docker. This change makes fluentd to log to /var/log/kolla/fluentd. Closes-Bug: #1888852 Change-Id: I8fe0e54cb764a26d26c6196cef68aadc6fd57b90
-
- Jul 21, 2020
-
-
Pierre Riteau authored
A "@type copy" statement is already present at the beginning of each match element, so extra "type copy" are not needed. They are causing the following warnings in fluentd logs: [warn]: parameter 'type' in <match syslog.local0.**> [warn]: parameter 'type' in <match syslog.local1.**> This commit also harmonizes indentation of the Monasca config block. Change-Id: I779c2b942d007acbdd43d999f2fc0cdc131d431f Related-Bug: #1885873
-
- Jul 07, 2020
-
-
Mark Goddard authored
The common role was previously added as a dependency to all other roles. It would set a fact after running on a host to avoid running twice. This had the nice effect that deploying any service would automatically pull in the common services for that host. When using tags, any services with matching tags would also run the common role. This could be both surprising and sometimes useful. When using Ansible at large scale, there is a penalty associated with executing a task against a large number of hosts, even if it is skipped. The common role introduces some overhead, just in determining that it has already run. This change extracts the common role into a separate play, and removes the dependency on it from all other roles. New groups have been added for cron, fluentd, and kolla-toolbox, similar to other services. This changes the behaviour in the following ways: * The common role is now run for all hosts at the beginning, rather than prior to their first enabled service * Hosts must be in the necessary group for each of the common services in order to have that service deployed. This is mostly to avoid deploying on localhost or the deployment host * If tags are specified for another service e.g. nova, the common role will *not* automatically run for matching hosts. The common tag must be specified explicitly The last of these is probably the largest behaviour change. While it would be possible to determine which hosts should automatically run the common role, it would be quite complex, and would introduce some overhead that would probably negate the benefit of splitting out the common role. Partially-Implements: blueprint performance-improvements Change-Id: I6a4676bf6efeebc61383ec7a406db07c7a868b2a
-
- Jul 02, 2020
-
-
Justinas Balciunas authored
Time format in Ruby Time.strptime is not accepting padding flags, therefore we need to remove them for the Fluentd to be able to parse MariaDB xinetd logs properly. Change-Id: Iabfa9afdcad505106a5580eb2d058273ee5f7c1f Closes-Bug: #1886002
-
Stig Telfer authored
In Fluentd v0.12, both the in memory and file buffer chunk size default to 8MB. In v1.0 the file buffer defaults to 256MB. This can exceed the Monasca Log or Unified API maximum chunk size which is set to 10MB. This can result in logs being rejected and filling the local buffer on disk. Change-Id: I9c495773db726a3c5cd94b819dff4141737a1d6e Closes-Bug: #1885885 Co-Authored-By:
Sebastian Luna Valero <sebastian.luna.valero@gmail.com>
-
- Jul 01, 2020
-
-
Stig Telfer authored
Resolve trivial syntax error in Fluentd output config for Monasca. Change-Id: I20b37bb83a76bfabb1126925a1b4f1f59767b7a3 Co-Authored-By:
Sebastian Luna Valero <sebastian.luna.valero@gmail.com> Closes-Bug: #1885873
-
- Jun 25, 2020
-
-
Mark Goddard authored
Currently there is no way to configure a CA certificate bundle file for fluentd to Elasticsearch communication. This change adds a new variable, 'fluentd_elasticsearch_cacert' with a default value set to the value of 'openstack_cacert. Closes-Bug: #1885109 Change-Id: I5bbf55a4dd4ccce9fa2635cee720139c088268e3
-
- Jun 20, 2020
-
-
gugug authored
more info: https://review.opendev.org/#/c/721733/ Depends-On: I561ead226f714d98c8e06e6027715a64c3a8e47e Depends-On: I21c9ab9820f78cf76adf11c5f0591c60f76372a8 Change-Id: Ic740d090211ee331b374a6dac69dfde466df7200 Co-Authored-By:
jacky06 <zhang.min@99cloud.net>
-
- Jun 19, 2020
-
-
gugug authored
more info: https://opendev.org/openstack/kolla-ansible/commit/a6c97d7284c7de437ebfc9f8ee289244f29e65d7 Change-Id: I778d472cc7f6ca19852482a3e309d793973d75a6 Co-Authored-By:
jacky06 <zhang.min@99cloud.net>
-
- Jun 16, 2020
-
-
James Kirsch authored
Replaced "kolla_external_fqdn_cacert" and "kolla_internal_fqdn_cacert" with "kolla_admin_openrc_cacert". OS_CACERT is now set to the value of "kolla_admin_openrc_cacert" in the generated admin-openrc.sh file. Change-Id: If195d5402579cee9a14b91f63f5fde84eb84cccf Partially-Implements: blueprint add-ssl-internal-network Depends-On: https://review.opendev.org/#/c/731344/
-
- May 23, 2020
-
-
Doug Szumski authored
The Monasca Log API has been removed and in this change we switch to using the unified API. If dedicated log APIs are required then this can be supported through configuration. Out of the box the Monasca API is used for both logs and metrics which is envisaged to work for most use cases. In order to use the unified API for logs, we need to disable the legacy Kafka client. We also rename the Monasca API config file to remove a warning about using the old style name. Depends-On: https://review.opendev.org/#/c/728638 Change-Id: I9b6bf5b6690f4b4b3445e7d15a40e45dd42d2e84
-
- May 20, 2020
-
-
Michal Nasiadka authored
Depends-On: https://review.opendev.org/710217/ Change-Id: I85652f23e487c40192106d23f2cdd45a3077deca
-
- May 15, 2020
-
-
Michal Nasiadka authored
Change-Id: I812665059783617d581d748e619b29426f89b353
-
- Apr 30, 2020
-
-
James Kirsch authored
Add TLS support for Glance api using HAProxy to perform TLS termination. Change-Id: I77051baaeb5d3f7dd9002262534e7d35f3926809 Partially-Implements: blueprint add-ssl-internal-network
-
Hongbin Lu authored
Zun has a new component "zun-cni-daemon" which should be deployed in every compute nodes. It is basically an implementation of CNI (Container Network Interface) that performs the neutron port binding. If users is using the capsule (pod) API, the recommended deployment option is using "cri" as capsule driver. This is basically to use a CRI runtime (i.e. CRI plugin for containerd) for supporting capsules (pods). A CRI runtime needs a CNI plugin which is what the "zun-cni-daemon" provides. The configuration is based on the Zun installation guide [1]. It consits of the following steps: * Configure the containerd daemon in the host. The "zun-compute" container will use grpc to communicate with this service. * Install the "zun-cni" binary at host. The containerd process will invoke this binary to call the CNI plugin. * Run a "zun-cni-daemon" container. The "zun-cni" binary will communicate with this container via HTTP. Relevant patches: Blueprint: https://blueprints.launchpad.net/zun/+spec/add-support-cri-runtime Install guide: https://review.opendev.org/#/c/707948/ Devstack plugin: https://review.opendev.org/#/c/705338/ Kolla image: https://review.opendev.org/#/c/708273/ [1] https://docs.openstack.org/zun/latest/install/index.html Depends-On: https://review.opendev.org/#/c/721044/ Change-Id: I9c361a99b355af27907cf80f5c88d97191193495
-
- Apr 17, 2020
-
-
Q.hongtao authored
Kolla Ansible was missing vitrage-persistor service required by Vitrage for data storage. Depends on fixing availability of Kolla image. Change-Id: I8158ba66b8b624f6bcb89da9c990a30a68b7187b Depends-On: Id5e143636f9a81e7294b775f3d8b9134bee58054 Closes-Bug: #1869319
-
- Apr 14, 2020
-
-
James Kirsch authored
Refactor service configuration to use the copy certificates task. This reduces code duplication and simplifies implementing encrypting backend HAProxy traffic for individual services. Change-Id: I0474324b60a5f792ef5210ab336639edf7a8cd9e
-
- Apr 10, 2020
-
-
Xing Zhang authored
mistralclient osc plugin does not support cacert and insecure [1] mistralclient interface support fixed in [2] [1] https://bugs.launchpad.net/python-mistralclient/+bug/1715091 [2] https://review.opendev.org/#/q/topic:bug/1854339 Change-Id: I44726b12358bc3c5898ba952371fb838693aca2c
-
- Apr 09, 2020
-
-
Dincer Celik authored
Some services look for /etc/timezone on Debian/Ubuntu, so we should introduce it to the containers. In addition, added prechecks for /etc/localtime and /etc/timezone. Closes-Bug: #1821592 Change-Id: I9fef14643d1bcc7eee9547eb87fa1fb436d8a6b3
-
- Mar 26, 2020
-
-
LinPeiWen authored
kolla-toolbox container name variable is fixed in some places, but in the defaults directory, kolla-toolbox container_name variable is variable. If the kolla-toolbox container_name variable is changed during deployment, it will not be assigned to kolla-toolbox, but a fixed 'kolla-toolbox' name. Change-Id: I9579017761ff47477dba597282be9ae6fab4242a
-
- Mar 23, 2020
-
-
Mark Goddard authored
The 'kolla-ansible stop' command can be used to stop the services running on hosts. However, if you run this command in an environment with heterogeneous nodes (most real world scenarios have at least control/compute), then it fails. This is because it only checks whether a container is enabled, and not whether the host is in the correct group. For example, it fails with nova-libvirt: No such container: nova_libvirt to stop. This change fixes the issue by only attempting to stop containers on hosts to which they are mapped. Change-Id: Ibecac60d1417269bbe25a280996ca9de6e6d018f Closes-Bug: #1868596
-
- Mar 18, 2020
-
-
Radosław Piliszek authored
Fluentd cannot accept empty 'path' parameter. I refactored the service list following the general pattern we have. Change-Id: I83d820efcc7e86bac9f8bda26a8f8bece72159e6 Closes-bug: #1867953
-
- Mar 17, 2020
-
-
Doug Szumski authored
Currently, config folders lack the execute bit so Fluentd cannot read the config and just does nothing when it starts up. This change explicitly sets the execute bit on folders which need it, rather than doing it in a more generic way which is more risky from a security perspective. Change-Id: Ia840f4b67043df4eaa654f47673dcdc973f13d9c Closes-Bug: #1867754
-
- Mar 15, 2020
-
-
Jeffrey Zhang authored
Fix elasticsearch schema in fluentd when kolla_enable_tls_internal is true. Change-Id: I51286d2def7a762d569740c1abc5b924b682ad9d Closes-Bug: #1867481
-
- Mar 10, 2020
-
-
Will Szumski authored
I didn't use a for loop as the logic for omitting the comma for the final element dirties the logic. Change-Id: Id29d5deebcc5126d69a1bd8395e0df989f2081f0
-
yj.bai authored
When change the cert file in /etc/kolla/certificate/. The certificate in the container has not changed. So I think can use kolla-ansible deploy when certificate is changed. restart <container> Partially-Implements: blueprint custom-cacerts Change-Id: Iaac6f37e85ffdc0352e8062ae5049cc9a6b3db26 Signed-off-by:
yj.bai <bai.yongjun@99cloud.net>
-
Will Szumski authored
We already only include .conf files in fluent.conf: (fluentd)[fluentd@cpu-e-1041 /etc/fluentd]$ cat fluent.conf @include input/*.conf @include filter/*.conf @include format/*.conf @include output/*.conf so this change should not cause ill effect. This works because of the merge option in config files: merge: merges the source directory into the target directory instead of replacing it. Boolean, defaults to false. see https://docs.openstack.org/kolla/latest/admin/kolla_api.html#kolla-api-external-config Change-Id: I28f63ec81f1ea5bc4a213d053bfb2c04388d5925 Closes-Bug: #1862211
-
- Mar 02, 2020
-
-
Zhuo Zhen authored
The logrotate rotation interval and count are not configurable. Currently, the configuration is a "default" that keeps 6 weeks of logs. Change-Id: I4f55ee2a98f7861cb8de2724f5edc32da6d2f9ee
-
Radosław Piliszek authored
Both include_role and import_role expect role's name to be given via "name" param instead of "role". This worked but caused errors with ansible-lint. See: https://review.opendev.org/694779 Change-Id: I388d4ae27111e430d38df1abcb6c6127d90a06e0
-
- Feb 28, 2020
-
-
Mark Goddard authored
We assume that all groups are present in the inventory, and quite obtuse errors can result if any are not. This change adds a precheck that checks for the presence of all expected groups in the inventory for each service. It also introduces a common service-precheck role that we can use for other common prechecks. Change-Id: Ia0af1e7df4fff7f07cd6530e5b017db8fba530b3 Partially-Implements: blueprint improve-prechecks
-
- Feb 11, 2020
-
-
Michal Nasiadka authored
Kolla-Ansible Ceph deployment mechanism has been deprecated in Train [1]. This change removes the Ansible code and associated CI jobs. [1]: https://review.opendev.org/669214 Change-Id: Ie2167f02ad2f525d3b0f553e2c047516acf55bc2
-