[ceph-rgw] Add placement target delete support to RGW
A new "delete" value has been added to the ceph-rgw placement target spec to allow existing placement targets to be deleted in a brownfield deployment. For deployments where a deleted placement target does not exist, the placement target will be created and deleted in a single step. Change-Id: I34e6d97543b63848b267332556b62d50d1865f49
This commit is contained in:
parent
5b2e007d7a
commit
948e07e151
@ -15,6 +15,6 @@ apiVersion: v1
|
|||||||
appVersion: v1.0.0
|
appVersion: v1.0.0
|
||||||
description: OpenStack-Helm Ceph RadosGW
|
description: OpenStack-Helm Ceph RadosGW
|
||||||
name: ceph-rgw
|
name: ceph-rgw
|
||||||
version: 0.1.7
|
version: 0.1.8
|
||||||
home: https://github.com/ceph/ceph
|
home: https://github.com/ceph/ceph
|
||||||
...
|
...
|
||||||
|
@ -23,6 +23,11 @@ function create_rgw_placement_target () {
|
|||||||
--placement-id "$2"
|
--placement-id "$2"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function delete_rgw_placement_target () {
|
||||||
|
echo "Deleting rgw placement target $1"
|
||||||
|
radosgw-admin zonegroup placement rm $1
|
||||||
|
}
|
||||||
|
|
||||||
function add_rgw_zone_placement () {
|
function add_rgw_zone_placement () {
|
||||||
echo "Adding rgw zone placement for placement target $2 data pool $3"
|
echo "Adding rgw zone placement for placement target $2 data pool $3"
|
||||||
radosgw-admin zone placement add \
|
radosgw-admin zone placement add \
|
||||||
@ -33,6 +38,11 @@ function add_rgw_zone_placement () {
|
|||||||
--data-extra-pool "$5"
|
--data-extra-pool "$5"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function rm_rgw_zone_placement () {
|
||||||
|
echo "Removing rgw zone placement for placement target $1"
|
||||||
|
radosgw-admin zone placement rm $1
|
||||||
|
}
|
||||||
|
|
||||||
{{- range $i, $placement_target := .Values.conf.rgw_placement_targets }}
|
{{- range $i, $placement_target := .Values.conf.rgw_placement_targets }}
|
||||||
RGW_PLACEMENT_TARGET={{ $placement_target.name | quote }}
|
RGW_PLACEMENT_TARGET={{ $placement_target.name | quote }}
|
||||||
RGW_PLACEMENT_TARGET_DATA_POOL={{ $placement_target.data_pool | quote }}
|
RGW_PLACEMENT_TARGET_DATA_POOL={{ $placement_target.data_pool | quote }}
|
||||||
@ -40,9 +50,15 @@ RGW_PLACEMENT_TARGET_INDEX_POOL={{ $placement_target.index_pool | default "defau
|
|||||||
RGW_PLACEMENT_TARGET_DATA_EXTRA_POOL={{ $placement_target.data_extra_pool | default "default.rgw.buckets.non-ec" | quote }}
|
RGW_PLACEMENT_TARGET_DATA_EXTRA_POOL={{ $placement_target.data_extra_pool | default "default.rgw.buckets.non-ec" | quote }}
|
||||||
RGW_ZONEGROUP={{ $placement_target.zonegroup | default "default" | quote }}
|
RGW_ZONEGROUP={{ $placement_target.zonegroup | default "default" | quote }}
|
||||||
RGW_ZONE={{ $placement_target.zone | default "default" | quote }}
|
RGW_ZONE={{ $placement_target.zone | default "default" | quote }}
|
||||||
|
RGW_DELETE_PLACEMENT_TARGET={{ $placement_target.delete | default "false" | quote }}
|
||||||
RGW_PLACEMENT_TARGET_EXISTS=$(radosgw-admin zonegroup placement get --placement-id "$RGW_PLACEMENT_TARGET" 2>/dev/null || true)
|
RGW_PLACEMENT_TARGET_EXISTS=$(radosgw-admin zonegroup placement get --placement-id "$RGW_PLACEMENT_TARGET" 2>/dev/null || true)
|
||||||
if [[ -z "$RGW_PLACEMENT_TARGET_EXISTS" ]]; then
|
if [[ -z "$RGW_PLACEMENT_TARGET_EXISTS" ]]; then
|
||||||
create_rgw_placement_target "$RGW_ZONEGROUP" "$RGW_PLACEMENT_TARGET"
|
create_rgw_placement_target "$RGW_ZONEGROUP" "$RGW_PLACEMENT_TARGET"
|
||||||
add_rgw_zone_placement "$RGW_ZONE" "$RGW_PLACEMENT_TARGET" "$RGW_PLACEMENT_TARGET_DATA_POOL" "$RGW_PLACEMENT_TARGET_INDEX_POOL" "$RGW_PLACEMENT_TARGET_DATA_EXTRA_POOL"
|
add_rgw_zone_placement "$RGW_ZONE" "$RGW_PLACEMENT_TARGET" "$RGW_PLACEMENT_TARGET_DATA_POOL" "$RGW_PLACEMENT_TARGET_INDEX_POOL" "$RGW_PLACEMENT_TARGET_DATA_EXTRA_POOL"
|
||||||
fi
|
fi
|
||||||
|
if [[ -n "$RGW_PLACEMENT_TARGET_EXISTS" ]] &&
|
||||||
|
[[ "true" == "$RGW_DELETE_PLACEMENT_TARGET" ]]; then
|
||||||
|
rm_rgw_zone_placement "$RGW_PLACEMENT_TARGET"
|
||||||
|
delete_rgw_placement_target "$RGW_PLACEMENT_TARGET"
|
||||||
|
fi
|
||||||
{{- end }}
|
{{- end }}
|
||||||
|
@ -405,6 +405,10 @@ conf:
|
|||||||
rgw_placement_targets:
|
rgw_placement_targets:
|
||||||
- name: default-placement
|
- name: default-placement
|
||||||
data_pool: default.rgw.buckets.data
|
data_pool: default.rgw.buckets.data
|
||||||
|
# Set 'delete' to true to delete an existing placement target. A
|
||||||
|
# non-existent placement target will be created and deleted in a single
|
||||||
|
# step.
|
||||||
|
# delete: true
|
||||||
rgw:
|
rgw:
|
||||||
config:
|
config:
|
||||||
# NOTE (portdirect): See http://tracker.ceph.com/issues/21226
|
# NOTE (portdirect): See http://tracker.ceph.com/issues/21226
|
||||||
|
@ -8,4 +8,5 @@ ceph-rgw:
|
|||||||
- 0.1.5 Add tls support
|
- 0.1.5 Add tls support
|
||||||
- 0.1.6 Update tls override options
|
- 0.1.6 Update tls override options
|
||||||
- 0.1.7 Use ca cert for helm tests
|
- 0.1.7 Use ca cert for helm tests
|
||||||
|
- 0.1.8 Add placement target delete support to RGW
|
||||||
...
|
...
|
||||||
|
Loading…
Reference in New Issue
Block a user