- Oct 05, 2020
-
-
Michal Nasiadka authored
This change enables the use of Docker healthchecks for core OpenStack services. Also check-failures.sh has been updated to treat containers with unhealthy status as failed. Implements: blueprint container-health-check Change-Id: I79c6b11511ce8af70f77e2f6a490b59b477fefbb
-
- 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 25, 2020
-
-
wu.chunyang authored
when use multiple regions, those tasks always get a wrong endpoint. Change-Id: Ie164687b2ffd80cedf8a00e7f705b73fccd416e2
-
- Aug 24, 2020
-
-
Michal Nasiadka authored
As per post-merge comments in [0] - following up. [0]: https://review.opendev.org/#/c/698710 Change-Id: I92b3de7fb792f1fffe298ffaf6bbafab8e640742
-
- Aug 13, 2020
-
-
Mark Goddard authored
Steps to reproduce: * Deploy a cloud * Add another controller to the inventory * Deploy to the new controller using --limit: kolla-ansible deploy --limit new-controller Expected results: The new controller uses the cluster's existing fernet keys. Actual results: New fernet keys are generated on the new controller, and pushed out to the existing controllers. This invalidates tokens created from those keys. This change prevents the above scenario from happening, by failing the deployment if there are no hosts with existing Ferney keys to distribute, and not all Keystone hosts are in the target host list. Closes-Bug: #1891364 Change-Id: If0c0e038b77fc010a3a017f9841a674d53b16457
-
- Jul 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. 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
-
- Jun 07, 2020
-
-
wu.chunyang authored
non-root user has no permission to create directory under /opt directory. use "become: true" to resolve it. Change-Id: I155efc4b1e0691da0aaf6ef19ca709e9dc2d9168
-
- May 15, 2020
-
-
Will Szumski authored
The pre-check was broken, see bug report for details. Change-Id: I089f1e288bae6c093be66181c81a4373a6ef3de4 Closes-Bug: #1856021
-
- Apr 16, 2020
-
-
Michal Nasiadka authored
Change-Id: I500cc8800c412bc0e95edb15babad5c1189e6ee4
-
- Apr 09, 2020
-
-
James Kirsch authored
This patch introduces an optional backend encryption for Keystone service. When used in conjunction with enabling TLS for service API endpoints, network communcation will be encrypted end to end, from client through HAProxy to the Keystone service. Change-Id: I6351147ddaff8b2ae629179a9bc3bae2ebac9519 Partially-Implements: blueprint add-ssl-internal-network
-
- Mar 27, 2020
-
-
linpeiwen authored
keystone and keystone_fernet container name variable is fixed in some places, but in the defaults directory, keystone and keystone_fernet container_name variable is variable. If the keystone and keystone_fernet container_name variable is changed during deployment, it will not be assigned to keystone and keystone_fernet, but a fixed 'keystone' and 'keystone_fernet' name. Change-Id: Ifc8ac69e6abc4586f0e4fd820b9022aea9f76396
-
- Mar 10, 2020
-
-
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>
-
- Mar 02, 2020
-
-
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 03, 2020
-
-
Michal Nasiadka authored
There are cases when a multinode deployment ends up in unusable keystone public wsgi on some nodes. The root cause is that keystone public wsgi doesn't find fernet keys on startup - and then persists on sending 500 errors to any requests - due to a race condition between fernet_setup/fernet-push.sh and keystone startup. Depends-On: https://review.opendev.org/703742/ Change-Id: I63709c2e3f6a893db82a05640da78f492bf8440f Closes-Bug: #1846789
-
- Jan 28, 2020
-
-
James Kirsch authored
When kolla_copy_ca_into_containers is set to "yes", the Certificate Authority in /etc/kolla/certificates will be copied into service containers to enable trust for that CA. This is especially useful when the CA is self signed, and would not be trusted by default. Partially-Implements: blueprint custom-cacerts Change-Id: I4368f8994147580460ebe7533850cf63a419d0b4
-
- Dec 09, 2019
-
-
Mark Goddard authored
We generate the keystone cron schedule via a python script on localhost. Currently this always uses 'python', however this may not be available on some systems. This change switches to use the same python interpreter as used by ansible-playbook. Partially-Implements: blueprint python-3 Change-Id: I6007f8d6880f418a503766cec21a330c44e5b80f
-
- Nov 22, 2019
-
-
Michal Nasiadka authored
As part of the effort to implement Ansible code linting in CI (using ansible-lint) - we need to implement recommendations from ansible-lint output [1]. One of them is to stop using local_action in favor of delegate_to - to increase readability and and match the style of typical ansible tasks. [1]: https://review.opendev.org/694779/ Partially implements: blueprint ansible-lint Change-Id: I46c259ddad5a6aaf9c7301e6c44cd8a1d5c457d3
-
- Sep 26, 2019
-
-
Kris Lindgren authored
Sometimes as cloud admins, we want to only update code that is running in a cloud. But we dont need to do anything else. Make an action in kolla-ansible that allows us to do that. Change-Id: I904f595c69f7276e71692696471e32fd1f88e6e8 Implements: blueprint deploy-containers-action
-
- Sep 17, 2019
-
-
Mark Goddard authored
Use upstream Ansible modules for registration of services, endpoints, users, projects, roles, and role grants. Change-Id: I7c9138d422cc91c177fd8992347176bb54156b5a
-
- Aug 16, 2019
-
-
Scott Solkhon authored
This commit adds the functionality for an operator to specify their own trusted CA certificate file for interacting with the Keystone API. Implements: blueprint support-trusted-ca-certificate-file Change-Id: I84f9897cc8e107658701fb309ec318c0f805883b
-
- Jul 18, 2019
-
-
Radosław Piliszek authored
Docker has no restart policy named 'never'. It has 'no'. This has bitten us already (see [1]) and might bite us again whenever we want to change the restart policy to 'no'. This patch makes our docker integration honor all valid restart policies and only valid restart policies. All relevant docker restart policy usages are patched as well. I added some FIXMEs around which are relevant to kolla-ansible docker integration. They are not fixed in here to not alter behavior. [1] https://review.opendev.org/667363 Change-Id: I1c9764fb9bbda08a71186091aced67433ad4e3d6 Signed-off-by:
Radosław Piliszek <radoslaw.piliszek@gmail.com>
-
- Jul 12, 2019
-
-
Mark Goddard authored
A common class of problems goes like this: * kolla-ansible deploy * Hit a problem, often in ansible/roles/*/tasks/bootstrap.yml * Re-run kolla-ansible deploy * Service fails to start This happens because the DB is created during the first run, but for some reason we fail before performing the DB sync. This means that on the second run we don't include ansible/roles/*/tasks/bootstrap_service.yml because the DB already exists, and therefore still don't perform the DB sync. However this time, the command may complete without apparent error. We should be less careful about when we perform the DB sync, and do it whenever it is necessary. There is an argument for not doing the sync during a 'reconfigure' command, although we will not change that here. This change only always performs the DB sync during 'deploy' and 'reconfigure' commands. Change-Id: I82d30f3fcf325a3fdff3c59f19a1f88055b566cc Closes-Bug: #1823766 Closes-Bug: #1797814
-
- Jun 27, 2019
-
-
Mark Goddard authored
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
-
Mark Goddard authored
When running deploy or reconfigure for Keystone, ansible/roles/keystone/tasks/deploy.yml calls init_fernet.yml, which runs /usr/bin/fernet-rotate.sh, which calls keystone-manage fernet_rotate. This means that a token can become invalid if the operator runs deploy or reconfigure too often. This change splits out fernet-push.sh from the fernet-rotate.sh script, then calls fernet-push.sh after the fernet bootstrap performed in deploy. Change-Id: I824857ddfb1dd026f93994a4ac8db8f80e64072e Closes-Bug: #1833729
-
- Jun 17, 2019
-
-
Radosław Piliszek authored
The task does not change any state but is used to set a fact from parsed output. Also adjust task name. Change-Id: I5fe322546d82a373522645485be18fe7bfc57999 Signed-off-by:
Radosław Piliszek <radoslaw.piliszek@gmail.com>
-
- Jun 14, 2019
-
-
Radosław Piliszek authored
The task was duplicated below (and this other one is conditional). Additionally fix related tasks names. Change-Id: I76a6dd84e78277f87b04951eb4e75bbdfc1c38bf Signed-off-by:
Radosław Piliszek <radoslaw.piliszek@gmail.com>
-
- Jun 06, 2019
-
-
Mark Goddard authored
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
-
- May 17, 2019
-
-
Mark Goddard authored
Right now every controller rotates fernet keys. This is nice because should any controller die, we know the remaining ones will rotate the keys. However, we are currently over-rotating the keys. When we over rotate keys, we get logs like this: This is not a recognized Fernet token <token> TokenNotFound Most clients can recover and get a new token, but some clients (like Nova passing tokens to other services) can't do that because it doesn't have the password to regenerate a new token. With three controllers, in crontab in keystone-fernet we see the once a day correctly staggered across the three controllers: ssh ctrl1 sudo cat /etc/kolla/keystone-fernet/crontab 0 0 * * * /usr/bin/fernet-rotate.sh ssh ctrl2 sudo cat /etc/kolla/keystone-fernet/crontab 0 8 * * * /usr/bin/fernet-rotate.sh ssh ctrl3 sudo cat /etc/kolla/keystone-fernet/crontab 0 16 * * * /usr/bin/fernet-rotate.sh Currently with three controllers we have this keystone config: [token] expiration = 86400 (although, keystone default is one hour) allow_expired_window = 172800 (this is the keystone default) [fernet_tokens] max_active_keys = 4 Currently, kolla-ansible configures key rotation according to the following: rotation_interval = token_expiration / num_hosts This means we rotate keys more quickly the more hosts we have, which doesn't make much sense. Keystone docs state: max_active_keys = ((token_expiration + allow_expired_window) / rotation_interval) + 2 For details see: https://docs.openstack.org/keystone/stein/admin/fernet-token-faq.html Rotation is based on pushing out a staging key, so should any server start using that key, other servers will consider that valid. Then each server in turn starts using the staging key, each in term demoting the existing primary key to a secondary key. Eventually you prune the secondary keys when there is no token in the wild that would need to be decrypted using that key. So this all makes sense. This change adds new variables for fernet_token_allow_expired_window and fernet_key_rotation_interval, so that we can correctly calculate the correct number of active keys. We now set the default rotation interval so as to minimise the number of active keys to 3 - one primary, one secondary, one buffer. This change also fixes the fernet cron job generator, which was broken in the following cases: * requesting an interval of more than 1 day resulted in no jobs * requesting an interval of more than 60 minutes, unless an exact multiple of 60 minutes, resulted in no jobs It should now be possible to request any interval up to a week divided by the number of hosts. Change-Id: I10c82dc5f83653beb60ddb86d558c5602153341a Closes-Bug: #1809469
-
- May 02, 2019
-
-
Raimund Hook authored
Since Ansible 2.5, the use of jinja tests as filters has been deprecated. I've run the script provided by the ansible team to 'fix' the jinja filters to conform to the newer syntax. This fixes the deprecation warnings. Change-Id: I844ecb7bec94e561afb09580f58b1bf83a6d00bd Closes-bug: #1827370
-
- Apr 02, 2019
-
-
Mark Goddard authored
Several config file permissions are incorrect on the host. In general, files should be 0660, and directories and executables 0770. Change-Id: Id276ac1864f280554e98b937f2845bb424d521de Closes-Bug: #1821579
-
- Feb 08, 2019
-
-
Jim Rollenhagen authored
This allows keystone service endpoints to use custom hostnames, and adds the following variables: * keystone_internal_fqdn * keystone_external_fqdn These default to the old values of kolla_internal_fqdn or kolla_external_fqdn. This also adds the following variables: * keystone_admin_listen_port * keystone_public_listen_port These default to keystone_admin_port and keystone_public_port, respectively, for backward compatibility. These options allow the user to differentiate between the port the service listens on, and the port the service is reachable on. This is useful for external load balancers which live on the same host as the service itself. Change-Id: I50c46c674134f9958ee4357f0f4eed5483af2214 Implements: blueprint service-hostnames
-
- Nov 26, 2018
-
-
Eduardo Gonzalez authored
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
-
- Nov 19, 2018
-
-
caoyuan authored
The variable {{ node_config_directory }} is used for the configuration directory on the remote hosts, and should not be used for paths on the deploy host (localhost). This changes the default value of the TLS certificate and CA file to reference {{ CONFIG_DIR }}, in line with the directory used for admin-openrc.sh (as of I0709482ead4b7a67e82796e17f85bde151e71bc0). This change also introduces a variable, {{ node_config }}, that references {{ CONFIG_DIR | default('/etc/kolla') }}, to remove duplication. Change-Id: Ibd82ac78630ebfff5824c329d7399e1e900c0ee0 Closes-Bug: #1804025
-
- Nov 03, 2018
-
-
Jeffrey Zhang authored
Change-Id: Ia4ec794bb2b18aca2592b62a35066c237192a0f3
-
- Sep 26, 2018
-
-
Adam Harwell authored
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
-
- Aug 14, 2018
-
-
MinSun authored
Now kolla dev mode only support clone master branch from git, add version tag to support clone dedicated branch. Change-Id: I88de238e5dc7461ba0662a3ecea9a2d80fd0db60
-
- Aug 13, 2018
-
-
caoyuan authored
With the more recent versions of ansible, we should now use "is" instead of the "|" This should update it. Change-Id: I6fba56fca182349972e8b0ee5452b37aa4090e0c
-
- Jul 26, 2018
-
-
Lakshmi Prasanna Goutham Pratapa authored
This commit is to apply resource-constraints to a few more OpenStack services. Commit to apply constraints to the last set of services will be made in the upcoming commit. Depends-on: Icafa54baca24d2de64238222a5677b9d8b90e2aa Change-Id: I39004f54281f97d53dfa4b1dbcf248650ad6f186
-
- Jul 25, 2018
-
-
Jeffrey Zhang authored
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
-