From 0adbbb268e4f4c0c422fd6ac069dd202c1fefd05 Mon Sep 17 00:00:00 2001 From: Alexis Deberg Date: Fri, 20 Sep 2019 11:46:36 -0400 Subject: [PATCH] Swift: add swift_extra_ring_files variable to handle multi-policies deployment The current tasks only use a hardcoded list deploying only the required files. When using multiple custom policies, additionnal object-*.builder and object*.gz files are to be deployed as well. This adds a new default-empty variable that can be overridden when needed Change-Id: I29c8e349c7cc83e3a2e01ff702d235a0cd97340e Closes-Bug: #1844752 --- ansible/roles/swift/defaults/main.yml | 2 ++ ansible/roles/swift/tasks/config.yml | 1 + ansible/roles/swift/tasks/precheck.yml | 1 + doc/source/reference/storage/swift-guide.rst | 10 ++++++++++ .../notes/swift-multi-policies-28bc322b54a82bf9.yaml | 6 ++++++ 5 files changed, 20 insertions(+) create mode 100644 releasenotes/notes/swift-multi-policies-28bc322b54a82bf9.yaml diff --git a/ansible/roles/swift/defaults/main.yml b/ansible/roles/swift/defaults/main.yml index 96ab2093e5..1533670648 100644 --- a/ansible/roles/swift/defaults/main.yml +++ b/ansible/roles/swift/defaults/main.yml @@ -78,6 +78,8 @@ syslog_swift_facility: "local0" swift_enable_rolling_upgrade: "yes" +swift_extra_ring_files: [] + #################### # Keystone #################### diff --git a/ansible/roles/swift/tasks/config.yml b/ansible/roles/swift/tasks/config.yml index 21ef7aa67b..1fd6981fc5 100644 --- a/ansible/roles/swift/tasks/config.yml +++ b/ansible/roles/swift/tasks/config.yml @@ -190,6 +190,7 @@ - "container.ring.gz" - "object.builder" - "object.ring.gz" + - "{{ swift_extra_ring_files }}" - name: Check if policies shall be overwritten local_action: stat path="{{ node_custom_config }}/swift/policy.json" diff --git a/ansible/roles/swift/tasks/precheck.yml b/ansible/roles/swift/tasks/precheck.yml index 297b65be0b..6b6767972e 100644 --- a/ansible/roles/swift/tasks/precheck.yml +++ b/ansible/roles/swift/tasks/precheck.yml @@ -108,6 +108,7 @@ - "container.ring.gz" - "object.builder" - "object.ring.gz" + - "{{ swift_extra_ring_files }}" - name: Fail if ring files don't exist run_once: True diff --git a/doc/source/reference/storage/swift-guide.rst b/doc/source/reference/storage/swift-guide.rst index 0742f84bd4..022b8a814c 100644 --- a/doc/source/reference/storage/swift-guide.rst +++ b/doc/source/reference/storage/swift-guide.rst @@ -215,6 +215,16 @@ Enable Swift in ``/etc/kolla/globals.yml``: enable_swift : "yes" +If you are to deploy multiple policies, override the variable +``swift_extra_ring_files`` with the list of your custom ring files, .builder +and .ring.gz all together. This will append them to the list of default rings. + +.. code-block:: yaml + + swift_extra_ring_files: + - object-1.builder + - object-1.ring.gz + Once the rings are in place, deploying Swift is the same as any other Kolla Ansible service: diff --git a/releasenotes/notes/swift-multi-policies-28bc322b54a82bf9.yaml b/releasenotes/notes/swift-multi-policies-28bc322b54a82bf9.yaml new file mode 100644 index 0000000000..5e33122837 --- /dev/null +++ b/releasenotes/notes/swift-multi-policies-28bc322b54a82bf9.yaml @@ -0,0 +1,6 @@ +--- +features: + - | + Add a new variable to be used by the swift role, ``swift_extra_ring_files``. + It allows to pass additional ring files to be deployed in the context of + a multi-policy setup.