Skip to content
Snippets Groups Projects
  1. Sep 22, 2020
    • Mark Goddard's avatar
      Fix common role when using external mariadb · 68820133
      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
      68820133
  2. Sep 18, 2020
  3. Aug 28, 2020
  4. Aug 19, 2020
    • Rafael Weingärtner's avatar
      Standardize use and construction of endpoint URLs · f425c067
      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: default avatarRafael Weingärtner <rafael@apache.org>
      f425c067
  5. Aug 10, 2020
    • Mark Goddard's avatar
      Mount /etc/timezone based on host OS · 146b00ef
      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
      146b00ef
  6. Aug 06, 2020
  7. Jul 28, 2020
    • Mark Goddard's avatar
      Performance: use a single config file for fluentd · 56a07702
      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
      56a07702
    • Mark Goddard's avatar
      Performance: use a single config file for logrotate · f329af7d
      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
      f329af7d
    • Mark Goddard's avatar
      Performance: use import_tasks for check-containers.yml · 9702d4c3
      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
      9702d4c3
  8. Jul 27, 2020
    • Michal Nasiadka's avatar
      fluentd: log to a file instead of stdout · 696533f2
      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
      696533f2
  9. Jul 21, 2020
    • Pierre Riteau's avatar
      Fix fluentd warnings caused by "type copy" · 5b057812
      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
      5b057812
  10. Jul 07, 2020
    • Mark Goddard's avatar
      Performance: Run common role in a separate play · 56ae2db7
      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
      56ae2db7
  11. Jul 02, 2020
  12. Jul 01, 2020
  13. Jun 25, 2020
    • Mark Goddard's avatar
      Support CA certificate for fluentd & Elasticsearch · 31f3f848
      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
      31f3f848
  14. Jun 20, 2020
  15. Jun 19, 2020
  16. Jun 16, 2020
  17. May 23, 2020
    • Doug Szumski's avatar
      Switch to Monasca API for logs · b39a0f80
      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
      b39a0f80
  18. May 20, 2020
  19. May 15, 2020
  20. Apr 30, 2020
  21. Apr 17, 2020
    • Q.hongtao's avatar
      Add vitrage-persistor service · d0b06f67
      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
      d0b06f67
  22. Apr 14, 2020
    • James Kirsch's avatar
      Refactor copy certificates task · 4d155d69
      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
      4d155d69
  23. Apr 10, 2020
  24. Apr 09, 2020
    • Dincer Celik's avatar
      Introduce /etc/timezone to Debian/Ubuntu containers · 4b5df0d8
      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
      4b5df0d8
  25. Mar 26, 2020
    • LinPeiWen's avatar
      kolla-toolbox container name variable · 8721ca35
      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
      8721ca35
  26. Mar 23, 2020
    • Mark Goddard's avatar
      Fix kolla-ansible stop with heterogeneous hosts · 89df07e8
      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
      89df07e8
  27. Mar 18, 2020
  28. Mar 17, 2020
    • Doug Szumski's avatar
      Make Fluentd config folders readable · c92378d7
      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
      c92378d7
  29. Mar 15, 2020
  30. Mar 10, 2020
    • Will Szumski's avatar
      Use macro to avoid repetition · a1c51b73
      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
      a1c51b73
    • yj.bai's avatar
      Add notify restart container when cert changed · d3cc2f67
      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: default avataryj.bai <bai.yongjun@99cloud.net>
      d3cc2f67
    • Will Szumski's avatar
      Delete stale fluent config on restart · e7870e9d
      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
      e7870e9d
  31. Mar 02, 2020
  32. Feb 28, 2020
    • Mark Goddard's avatar
      Add Ansible group check to prechecks · 49fb55f1
      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
      49fb55f1
  33. Feb 11, 2020
Loading