Skip to content

Commit f8442b1

Browse files
Maxim Savamaximsava12
authored andcommitted
cifmw_ceph_client: Discover Ceph RGW and create Glance secrets
This patch enhances the cifmw_ceph_client role to: - Automatically discover Ceph RGW (RADOS Gateway) endpoint and credentials - Create Glance secrets using the discovered RGW settings This integration allows Glance to leverage Ceph RGW for secret storage when object store backends are enabled in the environment. Changes: - Add RGW discovery tasks to the role - Add logic to create Glance secrets with RGW config
1 parent 3cef05f commit f8442b1

File tree

3 files changed

+46
-0
lines changed

3 files changed

+46
-0
lines changed

roles/cifmw_ceph_client/defaults/main.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,3 +35,5 @@ cifmw_ceph_client_k8s_secret_name: ceph-conf-files
3535
cifmw_ceph_client_k8s_namespace: openstack
3636
cifmw_ceph_client_values_post_ceph_path_dst: "{{ cifmw_ceph_client_fetch_dir }}/edpm_values_post_ceph.yaml"
3737
cifmw_ceph_client_service_values_post_ceph_path_dst: "{{ cifmw_ceph_client_fetch_dir }}/edpm_service_values_post_ceph.yaml"
38+
cifmw_ceph_client_rgw_bucket_name: "ceph-s3-bucket"
39+
cifmw_ceph_client_rgw_store_cacert: "/etc/pki/tls/certs/ca-bundle.crt"

roles/cifmw_ceph_client/tasks/main.yml

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -78,6 +78,36 @@
7878
mode: "0600"
7979
force: true
8080

81+
- name: Get ceph RGW endpoint API endpoint
82+
ansible.builtin.shell:
83+
cmd: |
84+
set -xe -o pipefail
85+
oc rsh -n openstack openstackclient openstack endpoint list --interface internal --service swift -c URL -f value | cut -d "/" -f 1,2,3
86+
register: reg_ceph_rgw_s3_endpoint
87+
changed_when: "'stdout' in reg_ceph_rgw_s3_endpoint"
88+
failed_when: (reg_ceph_rgw_s3_endpoint.rc | int) >= 1
89+
90+
- name: Discover ceph RGW settings
91+
ansible.builtin.set_fact:
92+
ceph_s3_access_key: "{{ lookup('ansible.builtin.password', '/dev/null', chars=['ascii_letters','digits'], length=32) }}"
93+
ceph_s3_secret_key: "{{ lookup('ansible.builtin.password', '/dev/null', chars=['ascii_letters','digits'], length=32) }}"
94+
ceph_s3_bucket: "{{ cifmw_ceph_client_rgw_bucket_name }}"
95+
ceph_s3_endpoint: "{{ reg_ceph_rgw_s3_endpoint }}"
96+
97+
- name: Create glance secrets for ceph S3 backend
98+
ansible.builtin.template:
99+
src: templates/k8s_ceph_rgw_glance_secret.j2
100+
dest: "{{ cifmw_ceph_client_fetch_dir }}/k8s_ceph_rgw_glance_secret.yaml"
101+
mode: "0600"
102+
force: true
103+
104+
- name: Create glance secrets for ceph S3 backend
105+
ansible.builtin.template:
106+
src: templates/k8s_ceph_rgw_secret.j2
107+
dest: "{{ cifmw_ceph_client_fetch_dir }}/k8s_ceph_rgw_glance_secret.yaml"
108+
mode: "0600"
109+
force: true
110+
81111
- name: Create edpm-values-post-ceph ConfigMap if sample path provided
82112
ansible.builtin.include_tasks: edpm_values_post_ceph.yml
83113
when:
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
---
2+
# Glance secrets used to configure glance with ceph S3 backend
3+
apiVersion: v1
4+
kind: Secret
5+
metadata:
6+
name: s3glance
7+
stringData:
8+
s3secret.conf : |
9+
[default_backend]
10+
s3_store_host = {{ ceph_s3_endpoint }}
11+
s3_store_access_key = {{ ceph_s3_access_key }}
12+
s3_store_secret_key = {{ ceph_s3_secret_key }}
13+
s3_store_bucket = {{ ceph_s3_bucket }}
14+
s3_store_cacert = {{ cifmw_ceph_client_rgw_store_cacert }}

0 commit comments

Comments
 (0)