Right now, under certain OS and Ansible versions, ie Rocky Linux and
ansible-core 2.17, `devices_check` variable is getting defined even if
task was skipped.
That results in set_fact to fail, as resulting variable has no `results`
key in it.
Structure of such variable looks like that:
```
"devices_check": {
"changed": false,
"false_condition": "osd_auto_discovery | default(False) | bool",
"skip_reason": "Conditional result was False",
"skipped": true
}
```
Checking for task not being skipped solves such issues.
Signed-off-by: Dmitriy Rabotyagov <noonedeadpunk@gmail.com>
(cherry picked from commit 9405558d03)
In some scenarios with NVMe, a device might be identified by
Ansible but could actually be a multipath device rather than an
actual device. We need to exclude these as Ceph cannot create
OSDs on them.
Signed-off-by: Seena Fallah <seenafallah@gmail.com>
(cherry picked from commit be9b458524)
RGW currently restarts without waiting for existing connections to
close. By adjusting the HAProxy weight before the restart, we can
ensure that no active connections are disrupted during the restart
process.
Signed-off-by: Seena Fallah <seenafallah@gmail.com>
(cherry picked from commit 4fa9057a3e)
Use --setuser and --setgroup to ceph to run daemons with ceph user.
Signed-off-by: Seena Fallah <seenafallah@gmail.com>
(cherry picked from commit 7016c6df3c)
Make it the same as "Create ceph initial directories" task
and make owner and group 167 for containers so they can write
with ceph user.
Signed-off-by: Seena Fallah <seenafallah@gmail.com>
(cherry picked from commit 65c84a3583)
This is needed by ceph-exporter as it is parsing the socket by the number of dots.
Although the rgw_zone variable is only using for constructing the client name
and has nothing to do with multisiting.
Signed-off-by: Seena Fallah <seenafallah@gmail.com>
(cherry picked from commit 1121e6d98a)
ba7eb62a1b broke deployments where
mgrs are not collocated with mons.
Signed-off-by: Guillaume Abrioux <gabrioux@ibm.com>
(cherry picked from commit 4f6641fe5c)
so you don't have to implement a similar play on your own
if not using main (sample) playbooks.
Signed-off-by: Guillaume Abrioux <gabrioux@ibm.com>
(cherry picked from commit ba7eb62a1b)
Although custom cluster name support was dropped, it breaks ceph-volume
functional testing as it uses "test" as cluster name.
The plan is to make ceph-volume use "ceph" but for now it's easier to
address the issue in this task.
Signed-off-by: Guillaume Abrioux <gabrioux@ibm.com>
(cherry picked from commit c4b3520730)
ceph-volume has a dependency on `python3-packaging` which is available
in PowerTools repo.
Signed-off-by: Guillaume Abrioux <gabrioux@ibm.com>
(cherry picked from commit 8ebff2124d)
If rgw is configured to only operate admin api - this is the status code it will return for GET on no path.
Signed-off-by: Seena Fallah <seenafallah@gmail.com>
(cherry picked from commit 9f9b32e9e6)
This moves the tmpdir removal tasks to main playbook.
The handlers in Ansible are too restrictive and doesn't work
quite well for our use case.
Signed-off-by: Guillaume Abrioux <gabrioux@ibm.com>
(cherry picked from commit bab034024c)
nfs-ganesha support will be implemented in a separate playbook.
Signed-off-by: Guillaume Abrioux <gabrioux@ibm.com>
(cherry picked from commit 675667e1d6)
this was for backward compatibility concerns, it's time to drop this
task.
Signed-off-by: Guillaume Abrioux <gabrioux@ibm.com>
(cherry picked from commit d9e2de1d1d)
this is needed in order to make some libraries available when
running on RockyLinux
Signed-off-by: Guillaume Abrioux <gabrioux@ibm.com>
(cherry picked from commit 867be7c35c)
This enforces docker.io and docker respectively for
`container_package_name` and `container_service_name` by default
for Ubuntu distribution.
Fixes: #7496
Signed-off-by: Guillaume Abrioux <gabrioux@ibm.com>
(cherry picked from commit ef5a09d0e0)
RGW Pools can now use the existing ec profiles and rules created by ceph-osd role.
Signed-off-by: Seena Fallah <seenafallah@gmail.com>
(cherry picked from commit bbc1ba5c05)
404 is the status code returned by rgw when it is serving website api. This needs to be consider as a healthy status for rgw.
Signed-off-by: Seena Fallah <seenafallah@gmail.com>
(cherry picked from commit f96c0441e3)
All of this should be addressed in custom separate playbooks if needed.
Signed-off-by: Guillaume Abrioux <gabrioux@ibm.com>
(cherry picked from commit 9c467e41b3)
this drops the following parameters:
- monitor_address_block
- monitor_interface
- monitor_address
The monitor address will be automatically set from `public_network` parameter.
Signed-off-by: Guillaume Abrioux <gabrioux@ibm.com>
* Make common params of container args in a var to avoid duplication
* The /var/lib/ceph/crash mount was missing after 637ca81c9c
* Add CEPH_USE_RANDOM_NONCE as it's needed when running inside container (can be removed for squid later)
* Add NODE_NAME as some part of ceph code relies on this var
* add default logging opts for
Signed-off-by: Seena Fallah <seenafallah@gmail.com>
The current approach is extremely complex and introduced a lot
of spaghetti code. This doesn't offer a good user experience at all.
It's time to think to another approach (dedicated playbook) and drop
the current implementation in order to clean up the code.
Signed-off-by: Guillaume Abrioux <gabrioux@ibm.com>
This is needed in order to install `ceph-mgr-dashboard`
as it has a dependency on `python3-grpcio-tools` which comes from
crb repo.
Signed-off-by: Guillaume Abrioux <gabrioux@ibm.com>
keep the ceph.conf very simple.
manage the common options such as `public_network` with `ceph_config`
module.
Signed-off-by: Guillaume Abrioux <gabrioux@ibm.com>
This refactor makes the 'name' argument not mandatory because when
'state' is 'info' we shouldn't need to pass it.
The second change is just a duplicate code removal.
Signed-off-by: Guillaume Abrioux <gabrioux@ibm.com>
This adds the resquired changes in order to support
CentOS stream 9.
Also, this bumps the Ansible version support to 2.15
Signed-off-by: Guillaume Abrioux <gabrioux@ibm.com>
With ansible-core 2.15 it is not possible to pass argument of unexpected
type, as otherwise module will fail with:
`'None' is not a string and conversion is not allowed`
With that we want to only get all existing crush rules, so we can simply
supply an empty string as a name argument, which would satisfy
requirements and have same behaviour for previous ansible versions.
Alternative approach would be to stop making `name` as a required
argument to the module and use empty string as default value
when info state is used.
Signed-off-by: Dmitriy Rabotyagov <noonedeadpunk@gmail.com>