| Age | Commit message (Collapse) | Author | Files | Lines |
|
This makes things more consistent. I'm hoping to rely on this in kayobe
to make the --kolla-playbook work when we make multiple calls to
kolla-ansible in the same command invocation.
Change-Id: Ieac1f4c7cf1cba19d08ac872bba60794af029110
Signed-off-by: Will Szumski <will@stackhpc.com>
(cherry picked from commit f699a60283e5b1b4ac247b0759c862d59e1c3150)
|
|
|
|
Change-Id: I2babda3d1388f1ee825fa79a1d85d3113b5ecbd4
Signed-off-by: Michal Nasiadka <mnasiadka@gmail.com>
|
|
|
|
Adds support for deploying multiple instances of the Nova
Compute Ironic service on the same host. This is useful
in large baremetal deployments, where the sharding and/or
conductor group feature is used to scale out the service.
A further patch to support deploying multiple Ironic
conductor instances will follow.
Co-Authored-By: Bartosz Bezak <bartosz@stackhpc.com>
Co-Authored-By: Bertrand Lanson <bertrand.lanson@protonmail.com>
Change-Id: Ibbddfd87e831a3775c3ed66c80b18e5070cedc90
Signed-off-by: Doug Szumski <doug@stackhpc.com>
|
|
|
|
Change-Id: I1c0312aa7bdfb78fedef6c98463f25e6460f4587
Co-Authored-By: Pierre Riteau <pierre@stackhpc.com>
Signed-off-by: Michal Nasiadka <mnasiadka@gmail.com>
|
|
|
|
When migrating from Redis to Valkey, 'valkey_master_password' is
introduced as a new requirement. During an upgrade, 'kolla-mergepwd'
previously left the newly generated random password for Valkey,
ignoring the existing Redis password.
This caused critical authentication failures. Specifically, for users
utilizing custom Keystone caching solutions, starting Valkey with a new
password would seriously damage the entire cluster. Furthermore, in
standard upgrades, Octavia stops working due to the password change,
leaving the service unstable until the upgrade is complete.
This patch updates 'mergepwd.py' to detect when 'valkey_master_password'
is a new entry and automatically assigns it the value of the existing
'redis_master_password'. This ensures a seamless transition and
maintains cloud stability during the Redis-to-Valkey migration.
Closes-Bug: #2138461
Change-Id: Id0eb88e739c44016a0bd118793f81ff66a624655
Signed-off-by: Piotr Milewski <vurmil@gmail.com>
|
|
This commit addresses and corrects the inconsistency in naming
across multiple files within the project. Specifically, the terms
mariadb_recovery and mariadb_backup have been replaced with
mariadb-recovery and mariadb-backup respectively to adhere to the
project's naming conventions and improve clarity.
Change-Id: I47b80eaa0dc0487f506b47ca065951b5140e0d62
Signed-off-by: Piotr Milewski <vurmil@gmail.com>
|
|
Glance is removing their warning around running in WSGI [1],
so let's switch.
[1]: https://review.opendev.org/c/openstack/glance/+/963294
Change-Id: Iae2c5ef5251d6695daf3262ed208c4bd914d7fb3
Signed-off-by: Michal Nasiadka <mnasiadka@gmail.com>
|
|
kolla_address does not check if the returned ip address is a loopback
for ipv4 addresses, this change checks, and always try to return the
first non loopback address, defaulting to the primary in case only
loopbacks are available.
Closes-Bug: #2085699
Change-Id: Ie8a8b6156e6db025aba94e80a4b3aa2bf72d73ef
Signed-off-by: Bertrand Lanson <bertrand.lanson@protonmail.com>
|
|
Change-Id: I305bb756eb2fd8f582bbef5b2674f8b09b141ab8
|
|
This patch ensures that the system Python interpreter is always used
during the `bootstrap-servers` phase by setting
`ansible_python_interpreter=auto_silent` via `extra_vars`, while the
`octavia-certificates` command now explicitly uses the same Python
interpreter that was used to invoke the `kolla-ansible` CLI, ensuring
compatibility with the local environment.
Summary:
- The `ansible_python_interpreter` is now dynamically defined in
`group_vars/all.yml`, falling back to the system interpreter if
no virtualenv is configured.
- CLI commands now detect and respect user-specified
`ansible_python_interpreter` values via `-e`, and avoid overriding them.
- The `bootstrap-servers` command always uses the system Python interpreter
by setting `ansible_python_interpreter=auto_silent`, ensuring a clean
environment for virtualenv creation.
- The `octavia-certificates` command uses the Python interpreter
that invoked the `kolla-ansible` CLI, ensuring compatibility with
locally installed packages (e.g. cryptography).
This improves interpreter handling across commands, especially in environments
with custom Python setups or virtual environments.
Depends-On: https://review.opendev.org/c/openstack/ansible-collection-kolla/+/949767
Change-Id: I7dc6cf8eda3b1fd48d2000f18b4670a4ef4ce1b4
|
|
|
|
Closes-Bug: #2106540
Change-Id: I143e3267622b106fa65bc952d62412ffcaeeae7c
Signed-off-by: Michael Klippberg <klippo@deny.se>
|
|
The kolla docker/podman workers already have support for ignoring when
containers are missing. This patch just exposes that to the CLI with the
flag ``--ignore-missing``.
Change-Id: Ie74ea3ea66380063cf67f2e0edb2a0e160d89cd7
|
|
Add "migrate-container-engine" action to kolla-ansible which
changes the container engine on which the Openstack is deployed on.
For example Docker to Podman and vice versa.
Depends-on: https://review.opendev.org/c/openstack/ansible-collection-kolla/+/925083
Signed-off-by: Konstantin Yarovoy <konstantin.yarovoy@tietoevry.com>
Signed-off-by: Martin Hiner <m.hiner@partner.samsung.com>
Signed-off-by: Roman Krček <roman.krcek@tietoevry.com>
Change-Id: Icd709cb042d44e063c5da64ab0695b0b6ba6d48b
|
|
In many cases we use the kolla_address filter to look up the IP address
of the current host or another host on a particular network interface.
This filter uses the host's facts to determine the IP, meaning that we
must have gathered facts for the host, even if it is outside of a
requested --limit. This is a limitation, since it requires that all
hosts must be reachable, even if we are not directly configuring them.
Most instances of this cross-host fact referencing involve a controller,
since they host clustered services. The only instance found to affect
compute nodes is in the prometheus role, where Prometheus server needs
to know the IP address of all targets in its scrape configs.
If we are able to specify the address of the scrape targets as a static
variable such as a host variable, then facts would not be required for
compute nodes outside of the --limit.
Removing the requirement to have facts for all compute nodes has
benefits for performance (gathering facts for all hosts can take a long
time) and fault tolerance (we can operate when some compute hosts are
unreachable).
This change modifies the kolla_address filter to accept an optional
override_var argument which can be used to specify the name of a host
variable that may override the returned IP address. This is used in the
Prometheus server configuration to allow specifying the IP address used
by Prometheus server when collecting metrics from exporter using
a 'prometheus_target_address' host variable. If specified, this takes
precedence over the API interface address currently used. This makes it
possible to statically override prometheus_target_address and avoid the
cross-host fact reference.
This is not a complete solution because it is not yet possible to skip
the cross-host fact gathering step.
Partial-Bug: #2041860
Change-Id: I207ca56362de00d8ec578333eab9e1a72e7bcd19
|
|
This allows operators quickly diagnose all containers across
all hosts by running kolla-ansible check. It returns a list
of containers that are missing, not running or in unhealthy
state for each OpenStack service.
Change-Id: I36119ccdeb264aa3de928ec2254d6ff4cc955bfb
Implements: blueprint check-containers
Co-Authored-By: Roman Krček <roman.krcek@tietoevry.com>
|
|
Change-Id: Ic0e33c4f2939c36ed80caa3ec1015cf53a4d93e2
|
|
From [1]:
If check is true, and the process exits with a non-zero
exit code, a CalledProcessError exception will be raised.
Attributes of that exception hold the arguments, the exit
code, and stdout and stderr if they were captured.
[1]: https://docs.python.org/3/library/subprocess.html
Closes-Bug: #2089173
Change-Id: I8cf38c2f7db1493e7303e94c212251fbeafaced3
|
|
I have no clue how it worked previously in CI, but now
it's using default path to the inventory - which does
not exist.
In addition to that, type=int in cliff will default to
None, so the check had to be rewritten - because we
always did cert expiry check instead of generating them.
Change-Id: I84d71558c2666ba2cfa47054f782d25ff0c1f691
|
|
When installing kolla-ansible with `pip install ./kolla-ansible`, pip
always creates a direct_url.json file, even when not using an editable
installation.
We see this behaviour with Python 3.12, while direct_url.json is only
created for editable installations on Python 3.9, which was used when
this code was initially developed for Kayobe.
When using a regular (non-editable) installation, this would make
kolla-ansible invoke site.yml from the source directory instead of the
virtualenv installation, causing a failure to load Ansible collections:
Invalid plugin FQCN (ansible.utils.ipaddr): unable to locate collection ansible.utils
Fix by returning the source URL only if dir_info.editable is True.
Change-Id: Icdc2cedaa6a6e3a6b4351b1f4369e2e8b3a2dc97
|
|
Change-Id: Ic15b8cb334c207a6923aa8d1908f98ecf8710c1e
|
|
Moving the CLI to python allows for easier
maintenance and larger feature-set.
This patch introduces a few breaking changes!
The changes stem the nature of the cliff package.
- the order of parameters must be
kolla-ansible <action> <arguments>
- mariadb_backup and mariadb_recovery now are
mariadb-backup and mariadb-recovery
Closes-bug: #1589020
Signed-off-by: Roman Krček <roman.krcek@tietoevry.com>
Change-Id: I9749b320d4f5eeec601a055b597dfa7d8fb97ce2
|
|
wrong use of a f-string when no variable is templated
Signed-off-by: Sven Kieske <kieske@osism.tech>
Change-Id: I4ef5147eacef32ed93c21d44bf23b664adf1eb91
|
|
Ansible passes port as a string - therefore matching does not work
and we get https://nova_url:443/v2.1
Closes-Bug: #2063434
Change-Id: I76cce7f491c77b6b788d29c8644e87055f5cfff0
|
|
When kolla VIP address is changed the cell0 database connection is
now updated to the new address.
Closes-bug: #1915302
Change-Id: I35be54efb5aaa230702d0cebaae04f1e64c3bca3
Signed-off-by: Roman Krček <roman.krcek@tietoevry.com>
|
|
Implements: Kolla Ansible
Closes-Bug: #2043554
Change-Id: I5648a79b4aa1960f1984a5179e3dfc3f0982c709
|
|
This avoids the need to use a proxy, or some other means, to connect to
Prometheus. This is disabled by default and can be enabled by setting
enable_prometheus_server_external to true.
Change-Id: Ia0af044ff436c2a204b357750a16ff49fcdfec45
|
|
Add support for automatic provisioning and renewal of HTTPS
certificates via LetsEncrypt.
Spec is available at:
https://etherpad.opendev.org/p/kolla-ansible-letsencrypt-https
Depends-On: https://review.opendev.org/c/openstack/kolla/+/887347
Co-Authored-By: Michal Arbet <michal.arbet@ultimum.io>
Implements: blueprint letsencrypt-https
Change-Id: I35317ea0343f0db74ddc0e587862e95408e9e106
|
|
Unlike other methods such as resolve(), get() does not return an Undefined object, but None.
This removes 4 ansible-lint warnings in various files calling kolla_address.
Closes-Bug: #2038281
Change-Id: I591a50512a954210f951c40a350ed4b9e1fc48ae
|
|
Use case: exposing single external https frontend and
load balancing services using FQDNs.
Support different ports for internal and external endpoints.
Introduced kolla_url filter to normalize urls like:
- https://magnum.external:443/v1
- http://magnum.external:80/v1
Change-Id: I9fb03fe1cebce5c7198d523e015280c69f139cd0
Co-Authored-By: Jakub Darmach <jakub@stackhpc.com>
|
|
The kolla-genpwd, kolla-mergepwd, kolla-readpwd and kolla-writepwd
commands now creates or updates passwords.yml with correct
permissions. Also they display warning message about incorrect
permissions.
Closes-Bug: #2018338
Change-Id: I4b50053ced9150499d1d09fd4a0ec2e243cf938b
Signed-off-by: Maksim Malchuk <maksim.malchuk@gmail.com>
|
|
Moves Hashi Vault client login to use `auth.approle.login` as
current method is being deprecated in the next release.
```
DeprecationWarning: Call to deprecated function 'auth_approle'.
This method will be removed in version '0.12.0' Please use
the 'login' method on the 'hvac.api.auth_methods.approle'
class moving forward.
client.auth_approle(vault_role_id, vault_secret_id)
```
Change-Id: Ie5c1ebe99c8508336cc10944fdaa742ad7d1d85e
|
|
This patch adds loadbalancer-config role
which is "wrapper" around haproxy-config
and proxysql-config role which will be added
in follow-up patches.
Change-Id: I64d41507317081e1860a94b9481a85c8d400797d
|
|
Kolla environment currently uses haproxy
to fullfill HA in mariadb. This patch
is switching haproxy to proxysql if enabled.
This patch is also replacing mariadb's user
'haproxy' with user 'monitor'. This replacement
has two reasons:
- Use better name to "monitor" galera claster
as there are two services using this user
(HAProxy, ProxySQL)
- Set password for monitor user as it's
always better to use password then not use.
Previous haproxy user didn't use password
as it was historically not possible with
haproxy and mariadb-clustercheck wasn't
implemented.
Depends-On: https://review.opendev.org/c/openstack/kolla/+/769385
Depends-On: https://review.opendev.org/c/openstack/kolla/+/765781
Depends-On: https://review.opendev.org/c/openstack/kolla/+/850656
Change-Id: I0edae33d982c2e3f3b5f34b3d5ad07a431162844
|
|
This change introduces automated configuration of firewalld and adds
a new filter for extracting services from the project_services dict.
the filter selects any enabled services and their haproxy element
and returns them so they can be iterated over.
This commit also enables automated configuration of firewalld from enabled
openstack services and adds them to the defined zone and reloads the
system firewall.
Change-Id: Iea3680142711873984efff2b701347b6a56dd355
|
|
From:
(kolla) 13:11 (s) marcin@puchatek:kolla-ansible$ kolla-genpwd
Traceback (most recent call last):
File "/home/marcin/.virtualenvs/kolla/bin/kolla-genpwd", line 8, in <module>
sys.exit(main())
File "/home/marcin/.virtualenvs/kolla/lib/python3.10/site-packages/kolla_ansible/cmd/genpwd.py", line 135, in main
genpwd(passwords_file, length, uuid_keys, ssh_keys, blank_keys,
File "/home/marcin/.virtualenvs/kolla/lib/python3.10/site-packages/kolla_ansible/cmd/genpwd.py", line 59, in genpwd
with open(passwords_file, 'r') as f:
FileNotFoundError: [Errno 2] No such file or directory: '/etc/kolla/passwords.yml'
To:
(kolla) 13:17 (s) marcin@puchatek:kolla-ansible$ kolla-genpwd
ERROR: Passwords file "/etc/kolla/passwords.yml" is missing
Change-Id: I18a9559daeb3d124a03dcb735ebb01a2cf24f617
|
|
|
|
This key can be used by users in networking-generic-switch
scenario instead of adding cleartext password in ml2_conf.ini.
Change-Id: I10003e6526a55a97f22678ab81c411e4645c5157
|
|
|
|
this adds back the ability to configure
the rabbitmq/erlang kernel network interface
which was removed in https://review.opendev.org/#/c/584427/
seemingly by accident.
Closes-Bug: 1900160
Change-Id: I6f00396495853e117429c17fadfafe809e322a31
|
|
The contextfilter decorator was deprecated in jinja2 3.0.0, and has been
dropped in 3.1.0. This results in the following warning, and failed
attempts to use filters:
[WARNING]: Skipping plugin (filters.py) as it seems to be invalid:
module 'jinja2' has no attribute 'contextfilter'
This change switches to use the pass_context decorator. The minimum
version of Jinja2 is raised to 3 to ensure pass_context is present.
Change-Id: I649dd6211d3ae72b9539bc44652ef8cf5d579777
|
|
The assertRaisesRegexp method has been deprecated since it was renamed
to assertRaisesRegex in Python 3.2.
https://docs.python.org/3/library/unittest.html#deprecated-aliases
Change-Id: I38ed4bebee3617267463d13d8f12bc083ab74ac2
|
|
|
|
This commit adds two new cli commands to allow an operator
to read and write passwords into a configured Hashicorp Vault
KV.
Change-Id: Icf0eaf7544fcbdf7b83f697cc711446f47118a4d
|
|
By default, Ansible injects a variable for every fact, prefixed with
ansible_. This can result in a large number of variables for each host,
which at scale can incur a performance penalty. Ansible provides a
configuration option [0] that can be set to False to prevent this
injection of facts. In this case, facts should be referenced via
ansible_facts.<fact>.
This change updates all references to Ansible facts within Kolla Ansible
from using individual fact variables to using the items in the
ansible_facts dictionary. This allows users to disable fact variable
injection in their Ansible configuration, which may provide some
performance improvement.
This change disables fact variable injection in the ansible
configuration used in CI, to catch any attempts to use the injected
variables.
[0] https://docs.ansible.com/ansible/latest/reference_appendices/config.html#inject-facts-as-vars
Change-Id: I7e9d5c9b8b9164d4aee3abb4e37c8f28d98ff5d1
Partially-Implements: blueprint performance-improvements
|
|
As announced on the openstack-discuss ML[1], Karbor is retiring
this cycle (Wallaby).
Needed-By: https://review.opendev.org/c/openstack/karbor/+/767032
[1] http://lists.openstack.org/pipermail/openstack-discuss/2020-November/018643.html
Change-Id: I222cf302e507f6a9de0347c79ec536aa7be22bb6
|