chore: move into rook_ceph operator role
diff --git a/playbooks/openstack.yml b/playbooks/openstack.yml
index 005beb0..8bec7c2 100644
--- a/playbooks/openstack.yml
+++ b/playbooks/openstack.yml
@@ -75,6 +75,11 @@
       tags:
         - barbican
 
+    - role: rook_ceph
+      when: atmosphere_ceph_enabled | default(true)
+      tags:
+        - rook-ceph
+
     - role: ceph_provisioners
       when: atmosphere_ceph_enabled | default(true)
       tags:
diff --git a/roles/rook_ceph/README.md b/roles/rook_ceph/README.md
index be5590a..0003713 100644
--- a/roles/rook_ceph/README.md
+++ b/roles/rook_ceph/README.md
@@ -1 +1 @@
-# `coredns`
+# `rook_ceph`
diff --git a/roles/rook_ceph/defaults/main.yml b/roles/rook_ceph/defaults/main.yml
index 802909f..13010e3 100644
--- a/roles/rook_ceph/defaults/main.yml
+++ b/roles/rook_ceph/defaults/main.yml
@@ -18,6 +18,3 @@
 
 rook_ceph_helm_release_namespace: rook-ceph
 rook_ceph_helm_values: {}
-
-# List of annotations to apply to the Ingress
-rook_ceph_rgw_ingress_annotations: {}
diff --git a/roles/rook_ceph/meta/main.yml b/roles/rook_ceph/meta/main.yml
index a2b7b55..7995233 100644
--- a/roles/rook_ceph/meta/main.yml
+++ b/roles/rook_ceph/meta/main.yml
@@ -1,4 +1,4 @@
-# Copyright (c) 2022 VEXXHOST, Inc.
+# Copyright (c) 2023 VEXXHOST, Inc.
 #
 # Licensed under the Apache License, Version 2.0 (the "License"); you may
 # not use this file except in compliance with the License. You may obtain
diff --git a/roles/rook_ceph/tasks/main.yml b/roles/rook_ceph/tasks/main.yml
index f710042..f389411 100644
--- a/roles/rook_ceph/tasks/main.yml
+++ b/roles/rook_ceph/tasks/main.yml
@@ -1,4 +1,4 @@
-# Copyright (c) 2022 VEXXHOST, Inc.
+# Copyright (c) 2023 VEXXHOST, Inc.
 #
 # Licensed under the Apache License, Version 2.0 (the "License"); you may
 # not use this file except in compliance with the License. You may obtain
@@ -12,171 +12,6 @@
 # License for the specific language governing permissions and limitations
 # under the License.
 
-- name: Uninstall the legacy HelmRelease
-  run_once: true
-  block:
-    - name: Suspend the existing HelmRelease
-      kubernetes.core.k8s:
-        state: patched
-        api_version: helm.toolkit.fluxcd.io/v2beta1
-        kind: HelmRelease
-        name: "{{ rook_ceph_helm_release_name }}"
-        namespace: "{{ rook_ceph_helm_release_namespace }}"
-        definition:
-          spec:
-            suspend: true
-
-    - name: Remove the existing HelmRelease
-      kubernetes.core.k8s:
-        state: absent
-        api_version: helm.toolkit.fluxcd.io/v2beta1
-        kind: HelmRelease
-        name: "{{ rook_ceph_helm_release_name }}"
-        namespace: "{{ rook_ceph_helm_release_namespace }}"
-
-- name: Retrieve keyring for client.admin
-  run_once: true
-  vexxhost.atmosphere.ceph_key:
-    name: client.admin
-    state: info
-    output_format: json
-  register: _ceph_key
-
-- name: Store keyring inside fact for client.admin
-  ansible.builtin.set_fact:
-    _atmosphere_rook_client_admin_key: "{{ (_ceph_key.stdout | from_json | first).key }}"
-
-- name: Retrieve keyring for monitors
-  run_once: true
-  vexxhost.atmosphere.ceph_key:
-    name: mon.
-    state: info
-    output_format: json
-  register: _ceph_key
-
-- name: Store keyring inside fact for monitors
-  ansible.builtin.set_fact:
-    _atmosphere_rook_mon_key: "{{ (_ceph_key.stdout | from_json | first).key }}"
-
-- name: Collect "ceph mon dump" output from a monitor
-  run_once: true
-  ansible.builtin.command: ceph mon dump -f json
-  changed_when: false
-  register: _ceph_mon_dump
-
-- name: Generate fact with list of Ceph monitors
-  run_once: true
-  ansible.builtin.set_fact:
-    _atmosphere_ceph_monitors: "{{ _ceph_mon_dump.stdout | from_json | community.general.json_query('mons[*].{name: name, address: addr}') }}"
-
-- name: Set ceph_mon list
-  ansible.builtin.set_fact:
-    _ceph_mon_list: "{{ (_ceph_mon_list | d([]) + [item.name + '=' + item.address]) | unique }}"
-  loop: "{{ _atmosphere_ceph_monitors }}"
-
-- name: Create rook configuration
-  kubernetes.core.k8s:
-    state: present
-    definition:
-      - apiVersion: v1
-        kind: Secret
-        metadata:
-          name: rook-ceph-mon
-          namespace: "{{ rook_ceph_helm_release_namespace }}"
-        data:
-          cluster-name: ceph
-          fsid: "{{ ceph_mon_fsid }}"
-          admin-secret: "{{ _atmosphere_rook_client_admin_key }}"
-          mon-secret: "{{ _atmosphere_rook_mon_key }}"
-
-      - apiVersion: v1
-        kind: ConfigMap
-        metadata:
-          name: rook-ceph-mon-endpoints
-          namespace: "{{ rook_ceph_helm_release_namespace }}"
-        data:
-          data: "{{ _ceph_mon_list | sort | join(',') }}"
-          mapping: "{}"
-          maxMonId: "2"
-
-      - apiVersion: v1
-        kind: ConfigMap
-        metadata:
-          name: rook-config-override
-          namespace: "{{ rook_ceph_helm_release_namespace }}"
-        data:
-          config: |
-            [client]
-            rgw keystone api version = 3
-            rgw keystone url =  http://keystone-api.openstack.svc.cluster.local:5000
-            rgw keystone admin user = rgw-{{ openstack_helm_endpoints_rgw_region_name }}
-            rgw keystone admin password = {{ openstack_helm_endpoints_rgw_keystone_password }}
-            rgw_keystone admin domain = service
-            rgw_keystone admin project = service
-            rgw keystone implicit tenants = true
-            rgw keystone accepted roles = member,admin
-            rgw_keystone accepted admin roles = admin
-            rgw keystone token cache size = 0
-            rgw s3 auth use keystone = true
-            rgw swift account in url = true
-            rgw swift versioning enabled = true
-
-- name: Create ceph cluster
-  kubernetes.core.k8s:
-    state: present
-    definition:
-      - apiVersion: ceph.rook.io/v1
-        kind: CephCluster
-        metadata:
-          name: rook-ceph
-          namespace: rook-ceph
-        spec:
-          dataDirHostPath: /var/lib/rook
-          cephVersion:
-            image: quay.io/ceph/ceph:v16.2.10
-          external:
-            enable: true
-
-- name: Create ceph object store
-  kubernetes.core.k8s:
-    state: present
-    definition:
-      - apiVersion: ceph.rook.io/v1
-        kind: CephObjectStore
-        metadata:
-          name: rook-ceph
-          namespace: rook-ceph
-        spec:
-          metadataPool:
-            failureDomain: host
-            replicated:
-              size: 3
-          dataPool:
-            failureDomain: host
-            replicated:
-              size: 3
-          preservePoolsOnDelete: true
-          gateway:
-            port: 80
-            instances: 3
-            placement:
-              nodeAffinity:
-                requiredDuringSchedulingIgnoredDuringExecution:
-                  nodeSelectorTerms:
-                    - matchExpressions:
-                        - key: openstack-control-plane
-                          operator: In
-                          values: ["enabled"]
-
-- name: Create Ingress
-  ansible.builtin.include_role:
-    name: openstack_helm_ingress
-  vars:
-    openstack_helm_ingress_endpoint: ceph_object_store
-    openstack_helm_ingress_service_name: rook-ceph-rgw-rook-ceph
-    openstack_helm_ingress_service_port: 80
-    openstack_helm_ingress_annotations: "{{ rook_ceph_rgw_ingress_annotations }}"
-
 - name: Deploy Helm chart
   run_once: true
   kubernetes.core.helm:
diff --git a/roles/rook_ceph/vars/main.yml b/roles/rook_ceph/vars/main.yml
index 241f184..7adbfd1 100644
--- a/roles/rook_ceph/vars/main.yml
+++ b/roles/rook_ceph/vars/main.yml
@@ -1,4 +1,4 @@
-# Copyright (c) 2022 VEXXHOST, Inc.
+# Copyright (c) 2023 VEXXHOST, Inc.
 #
 # Licensed under the Apache License, Version 2.0 (the "License"); you may
 # not use this file except in compliance with the License. You may obtain