Specify configmap name for external ceph configuration in cinder

Now we need to add external ceph configuration in values as yaml
format, then it is converted to ini format and added in cinder-etc
configmap.

Instead, we can just specify the pre-existing configmap name.
Configmap name takes precedence over plain configuration.

Change-Id: Ica1973798223207f6a453613a600d121db25edea
This commit is contained in:
josebb 2021-12-13 20:20:40 +02:00
parent 227eac2a77
commit b5ae94c0f7
7 changed files with 82 additions and 3 deletions

View File

@ -14,7 +14,7 @@ apiVersion: v1
appVersion: v1.0.0
description: OpenStack-Helm Cinder
name: cinder
version: 0.2.29
version: 0.2.30
home: https://docs.openstack.org/cinder/latest/
icon: https://www.openstack.org/themes/openstack/images/project-mascots/Cinder/OpenStack_Project_Cinder_vertical.png
sources:

View File

@ -158,10 +158,10 @@ data:
{{- $filePrefix := replace "_" "-" $key }}
{{ printf "%s.filters" $filePrefix }}: {{ $value.content | b64enc }}
{{- end }}
{{- if .Values.backup.external_ceph_rbd.enabled }}
{{- if and .Values.backup.external_ceph_rbd.enabled (not .Values.backup.external_ceph_rbd.configmap) }}
external-backup-ceph.conf: {{ include "helm-toolkit.utils.to_ini" .Values.backup.external_ceph_rbd.conf | b64enc }}
{{- end }}
{{- if .Values.ceph_client.enable_external_ceph_backend }}
{{- if and .Values.ceph_client.enable_external_ceph_backend (not .Values.ceph_client.external_ceph.configmap) }}
external-ceph.conf: {{ include "helm-toolkit.utils.to_oslo_conf" .Values.ceph_client.external_ceph.conf | b64enc }}
{{- end }}
{{- end }}

View File

@ -189,6 +189,11 @@ spec:
mountPath: /etc/ceph/ceph.conf
subPath: ceph.conf
readOnly: true
{{- else if .Values.backup.external_ceph_rbd.configmap }}
- name: external-backup-ceph-etc
mountPath: /etc/ceph/ceph.conf
subPath: ceph.conf
readOnly: true
{{- else }}
- name: cinder-etc
mountPath: /etc/ceph/ceph.conf
@ -207,10 +212,17 @@ spec:
readOnly: true
{{- end }}
{{- if .Values.ceph_client.enable_external_ceph_backend }}
{{- if .Values.ceph_client.external_ceph.configmap }}
- name: external-ceph-etc
mountPath: /etc/ceph/external-ceph.conf
subPath: external-ceph.conf
readOnly: true
{{- else }}
- name: cinder-etc
mountPath: /etc/ceph/external-ceph.conf
subPath: external-ceph.conf
readOnly: true
{{- end }}
{{- if .Values.ceph_client.external_ceph.rbd_user }}
- name: external-ceph-keyring
mountPath: /tmp/external-ceph-client-keyring
@ -289,10 +301,22 @@ spec:
{{ if or (contains "cinder.backup.drivers.ceph" .Values.conf.cinder.DEFAULT.backup_driver) (eq "true" (include "cinder.utils.has_ceph_backend" $envAll)) }}
- name: etcceph
emptyDir: {}
{{- if and .Values.backup.external_ceph_rbd.enabled .Values.backup.external_ceph_rbd.configmap }}
- name: external-backup-ceph-etc
configMap:
name: {{ .Values.backup.external_ceph_rbd.configmap }}
defaultMode: 0444
{{- end }}
- name: ceph-etc
configMap:
name: {{ .Values.ceph_client.configmap }}
defaultMode: 0444
{{- if and .Values.ceph_client.enable_external_ceph_backend .Values.ceph_client.external_ceph.configmap }}
- name: external-ceph-etc
configMap:
name: {{ .Values.ceph_client.external_ceph.configmap }}
defaultMode: 0444
{{- end }}
{{ end }}
{{- if (contains "cinder.backup.drivers.ceph" .Values.conf.cinder.DEFAULT.backup_driver) }}
- name: ceph-backup-keyring

View File

@ -193,10 +193,17 @@ spec:
subPath: key
readOnly: true
{{- if .Values.ceph_client.enable_external_ceph_backend }}
{{- if .Values.ceph_client.external_ceph.configmap }}
- name: external-ceph-etc
mountPath: /etc/ceph/external-ceph.conf
subPath: external-ceph.conf
readOnly: true
{{- else }}
- name: cinder-etc
mountPath: /etc/ceph/external-ceph.conf
subPath: external-ceph.conf
readOnly: true
{{- end }}
{{- if .Values.ceph_client.external_ceph.rbd_user }}
- name: external-ceph-keyring
mountPath: /tmp/external-ceph-client-keyring
@ -300,6 +307,12 @@ spec:
configMap:
name: {{ .Values.ceph_client.configmap }}
defaultMode: 0444
{{- if and .Values.ceph_client.enable_external_ceph_backend .Values.ceph_client.external_ceph.configmap }}
- name: external-ceph-etc
configMap:
name: {{ .Values.ceph_client.external_ceph.configmap }}
defaultMode: 0444
{{- end }}
- name: ceph-keyring
secret:
secretName: {{ .Values.secrets.rbd.volume | quote }}

View File

@ -425,6 +425,7 @@ ceph_client:
# secret for external ceph keyring will be created.
rbd_user: null
rbd_user_keyring: null
configmap: null
conf:
global: null
osd: null
@ -1100,6 +1101,7 @@ backup:
external_ceph_rbd:
enabled: false
admin_keyring: null
configmap: null
conf:
global: null
osd: null

View File

@ -0,0 +1,39 @@
# Note: This yaml file serves as an example for overriding the manifest
# to enable additional externally managed Ceph Cinder backend.
# Configuration of external ceph cluster is provided by a pre-existing configmap.
# For backup external ceph, backup-external-ceph configmap with ceph.conf data field.
# For 2nd tier external ceph, external-ceph configmap with external-ceph.conf data field.
---
backup:
external_ceph_rbd:
enabled: true
configmap: backup-external-ceph
ceph_client:
enable_external_ceph_backend: True
external_ceph:
rbd_user: cinder2
rbd_user_keyring: RBDUserKeyRing
configmap: external-ceph
conf:
cinder:
DEFAULT:
enabled_backends: "rbd1,rbd2"
backends:
rbd2:
volume_driver: cinder.volume.drivers.rbd.RBDDriver
volume_backend_name: rbd2
rbd_pool: cinder2.volumes
rbd_ceph_conf: "/etc/ceph/external-ceph.conf"
rbd_flatten_volume_from_snapshot: False
report_discard_supported: True
rbd_max_clone_depth: 5
rbd_store_chunk_size: 4
rados_connect_timeout: -1
rbd_user: cinder2
rbd_secret_uuid: 3f0133e4-8384-4743-9473-fecacc095c74
image_volume_cache_enabled: True
image_volume_cache_max_size_gb: 200
image_volume_cache_max_count: 50
...

View File

@ -46,4 +46,5 @@ cinder:
- 0.2.27 Support TLS endpoints
- 0.2.28 Use HTTP probe instead of TCP probe
- 0.2.29 Add SYS_ADMIN capability in cinder-volume
- 0.2.30 Specify a existing configmap name for external ceph configuration
...