Commit Graph

3000 Commits (e751b2960a1401b0c0066eda45c78daeac559182)

Author SHA1 Message Date
Dmitriy Rabotyagov e751b2960a Don't try to set devices fact when osd_auto_discovery was skipped
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)
2024-10-28 22:22:28 +00:00
Seena Fallah 5f85f320c9 devices: test devices before collecting on auto discovery
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)
2024-08-13 18:10:44 +02:00
Seena Fallah 9737947dde ceph-handler: use haproxy maintenance for rgw restarts
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)
2024-06-27 14:41:39 +02:00
Guillaume Abrioux 438da91b32 Revert "nfs-ganesha support removal"
This reverts commit 675667e1d6.

Signed-off-by: Guillaume Abrioux <gabrioux@ibm.com>
(cherry picked from commit 59198f5bcd)
2024-06-20 14:22:40 +02:00
Seena Fallah 2485f9f7d5 ceph-container: use ceph user and group
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)
2024-05-17 13:16:50 +02:00
Seena Fallah 5c0b69af98 ceph-container: keep run dir permission consistent
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)
2024-05-17 13:16:50 +02:00
Seena Fallah faae48d75b ceph-rgw: introduce rgw zone to the name schema
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)
2024-05-17 00:42:49 +02:00
Guillaume Abrioux bbf055d015 ceph-mon: move the ceph_config call to ceph-mon role
ba7eb62a1b broke deployments where
mgrs are not collocated with mons.

Signed-off-by: Guillaume Abrioux <gabrioux@ibm.com>
(cherry picked from commit 4f6641fe5c)
2024-04-11 19:03:09 +02:00
Guillaume Abrioux d1ad661102 ceph-config: move `ceph_config` module call to ceph-config role
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)
2024-04-11 16:40:45 +02:00
Guillaume Abrioux 6e877afec6 ceph-mon: fix admin keyring creation task
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)
2024-04-04 14:23:06 +02:00
Guillaume Abrioux ae24dbc863 common: install python3-packaging on centos el8
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)
2024-04-04 14:23:06 +02:00
Seena Fallah 312e824f63 ceph-handler: allow 405 as a success restart for rgw
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)
2024-04-04 12:21:35 +02:00
Guillaume Abrioux fecc615d02 handlers: move tmpdir removal
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)
2024-03-22 17:32:50 +01:00
Guillaume Abrioux ecea562d1c nfs-ganesha support removal
nfs-ganesha support will be implemented in a separate playbook.

Signed-off-by: Guillaume Abrioux <gabrioux@ibm.com>
(cherry picked from commit 675667e1d6)
2024-03-22 17:32:50 +01:00
Guillaume Abrioux d465af8d21 remove legacy task
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)
2024-03-22 17:32:50 +01:00
Guillaume Abrioux 6d772cb969 common: configure epel repository (rockylinux)
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)
2024-03-20 13:42:52 +01:00
Guillaume Abrioux c1c7c62379 container-engine: enforce docker for Ubuntu os family
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)
2024-03-20 10:40:07 +01:00
Seena Fallah 1b58c3ebac ceph-osd: introduce ec profile creation
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)
2024-03-17 00:44:45 +01:00
Seena Fallah fb76ea3cca ceph-config: check for set_radosgw_address before importing task
Signed-off-by: Seena Fallah <seenafallah@gmail.com>
(cherry picked from commit 49ec2479ea)
2024-03-16 22:52:19 +01:00
Seena Fallah 891dd55bc6 ceph-handler: accept 404 as a success status for rgw restart
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)
2024-03-16 22:00:46 +01:00
Guillaume Abrioux 67ce11f6ad validate: check for reef repository
stable-8.0 is reef so this must check the right value for ceph_stable_release

Signed-off-by: Guillaume Abrioux <gabrioux@ibm.com>
2024-03-16 00:51:52 +01:00
Guillaume Abrioux 6becd71bfb osd: drop openstack related tasks
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)
2024-03-16 00:51:52 +01:00
Seena Fallah 3959f325e9 ceph-mon: add missing no_log for admin keyring tasks
Signed-off-by: Seena Fallah <seenafallah@gmail.com>
2024-03-16 00:51:52 +01:00
Guillaume Abrioux 82478091d9 simplify monitor address setting
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>
2024-03-16 00:51:52 +01:00
Guillaume Abrioux f221efde41 fix upgrade
Signed-off-by: Guillaume Abrioux <gabrioux@ibm.com>
2024-03-16 00:51:52 +01:00
Seena Fallah 2bb96c50b1 ceph-exporter: add installation role
Signed-off-by: Seena Fallah <seenafallah@gmail.com>
2024-03-07 21:03:33 +01:00
Seena Fallah b5691f2ec3 mons: use hostname for initial members
Signed-off-by: Seena Fallah <seenafallah@gmail.com>
2024-03-07 21:03:33 +01:00
Seena Fallah e284a062a0 systemd: export params as a varaible
This can help to have extra params or modify the existing ones via group vars.

Signed-off-by: Seena Fallah <seenafallah@gmail.com>
2024-03-07 21:03:33 +01:00
Seena Fallah d197bcdc2d ceph-volume: disable dmcrypt by default
regression by dcdb1710cbaf7946cf8161b4395697d4898680d3

Signed-off-by: Seena Fallah <seenafallah@gmail.com>
2024-03-07 21:03:33 +01:00
Seena Fallah 9a7d2a624a ceph-facts: make set_radosgw_address optional
This can help to define custom rgw_instances with custom names and ports and addresses.

Signed-off-by: Seena Fallah <seenafallah@gmail.com>
2024-03-07 21:03:33 +01:00
Seena Fallah 71c5e6a816 container: cleanup container systemd units
* 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>
2024-03-07 21:03:33 +01:00
Seena Fallah d81b633c7a refactor: remove multisite leftovers
Signed-off-by: Seena Fallah <seenafallah@gmail.com>
2024-03-07 21:03:33 +01:00
Seena Fallah 7cbe837cb4 ceph-handler: restart existed rgw daemons
This is needed for new instances are the restart might trigger before the deployment

Signed-off-by: Seena Fallah <seenafallah@gmail.com>
2024-03-07 21:03:33 +01:00
Seena Fallah 29b64ec974 ceph-handler: remove tempdir when all handlers are done
Signed-off-by: Seena Fallah <seenafallah@gmail.com>
2024-03-07 21:03:33 +01:00
Seena Fallah 3f137f3b22 ceph-config: make rgw config to be in file
Signed-off-by: Seena Fallah <seenafallah@gmail.com>
2024-03-07 21:03:33 +01:00
Seena Fallah a7b08fa146 ceph-config: introduce dedicated cluster config flow
Signed-off-by: Seena Fallah <seenafallah@gmail.com>
2024-03-07 21:03:33 +01:00
Guillaume Abrioux 39bb3714c0 drop rhcs references
RHCS moved away from ceph-ansible. All RHCS references should be
removed.

Signed-off-by: Guillaume Abrioux <gabrioux@ibm.com>
2024-03-07 21:03:33 +01:00
Guillaume Abrioux dc75923367 drop iscsigw support
This service is no longer maintained.
Let's drop its support within ceph-ansible.

Signed-off-by: Guillaume Abrioux <gabrioux@ibm.com>
2024-03-07 21:03:33 +01:00
Guillaume Abrioux 05c4d17d9a address Ansible linter errors
This addresses all errors reported by the Ansible linter.

Signed-off-by: Guillaume Abrioux <gabrioux@ibm.com>
2024-03-07 21:03:32 +01:00
Guillaume Abrioux 80ed44c2cb drop rgw multisite deployment support
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>
2024-03-07 21:02:35 +01:00
Guillaume Abrioux b2273ef4b8 facts: remove legacy tasks
these tasks were there only for backward compatibility concerns.
It's time to drop them.

Signed-off-by: Guillaume Abrioux <gabrioux@ibm.com>
2024-02-14 09:54:13 +01:00
Teoman ONAY bba9955bf7 bump ansible-core to 2.16
- Remove python3 shebangs
- command module warn parameter is deprecated since 2.11 and removed
  from 2.14

Signed-off-by: Teoman ONAY <tonay@ibm.com>
2024-02-14 09:54:13 +01:00
Guillaume Abrioux 32c2a18f8c common: enable crb repository on mgr hosts
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>
2024-02-14 09:54:13 +01:00
Guillaume Abrioux 1a97696d9b container-common: drop image fetching logic
wip

Signed-off-by: Guillaume Abrioux <gabrioux@ibm.com>
2024-02-14 09:54:13 +01:00
Guillaume Abrioux ae2ec3d275 library: add ceph_config module
This adds the module `ceph_config`

Signed-off-by: Guillaume Abrioux <gabrioux@ibm.com>
2024-02-14 09:54:13 +01:00
Guillaume Abrioux e6f1e51588 monitor bootstrap refactor
major mon bootstrap refactor so we don't need to rely on
the ceph.conf for this operation.

Signed-off-by: Guillaume Abrioux <gabrioux@ibm.com>
2024-02-14 09:54:13 +01:00
Guillaume Abrioux 14b4abf7c0 migrate from ceph.conf to ceph config
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>
2024-02-14 09:54:13 +01:00
Guillaume Abrioux e433d2b955 library/ceph_crush_rule: module refactor
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>
2024-02-14 09:54:13 +01:00
Guillaume Abrioux 7909778d0e add CentOS stream 9 support
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>
2024-02-14 09:54:13 +01:00
Dmitriy Rabotyagov b610297554 Do not pass NoneType as argument to ceph_crush_rule
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>
2023-12-06 19:13:39 +01:00