diff --git a/playbooks/roles/ceph_client/defaults/main.yml b/playbooks/roles/ceph_client/defaults/main.yml index 2e95e8bb83..6a6a20b8db 100644 --- a/playbooks/roles/ceph_client/defaults/main.yml +++ b/playbooks/roles/ceph_client/defaults/main.yml @@ -14,6 +14,10 @@ # See the License for the specific language governing permissions and # limitations under the License. +# Set the package install state for distribution packages +# Options are 'present' and 'latest' +ceph_client_package_state: "latest" + # to use Ceph in OSA, you need to # - have the needed pools and a client user (for glance, cinder and/or nova) # pre-provisioned in your ceph cluster; OSA assumes to have root access to diff --git a/playbooks/roles/ceph_client/tasks/ceph_install_apt.yml b/playbooks/roles/ceph_client/tasks/ceph_install_apt.yml index 5983fba7e3..3fadbb985f 100644 --- a/playbooks/roles/ceph_client/tasks/ceph_install_apt.yml +++ b/playbooks/roles/ceph_client/tasks/ceph_install_apt.yml @@ -33,7 +33,7 @@ - name: Install ceph packages apt: name: '{{ item.1 }}' - state: latest + state: "{{ ceph_client_package_state }}" register: install_packages until: install_packages|success retries: 5 diff --git a/playbooks/roles/ceph_client/tasks/ceph_preinstall_apt.yml b/playbooks/roles/ceph_client/tasks/ceph_preinstall_apt.yml index 1647b71e3b..03408c9e65 100644 --- a/playbooks/roles/ceph_client/tasks/ceph_preinstall_apt.yml +++ b/playbooks/roles/ceph_client/tasks/ceph_preinstall_apt.yml @@ -61,6 +61,7 @@ - name: add ubuntu cloud archive key package apt: pkg: ubuntu-cloud-keyring + state: "{{ ceph_client_package_state }}" register: add_keys when: ceph_pkg_source == 'uca' tags: diff --git a/releasenotes/notes/package-state-1d27f4c7f8618cef.yaml b/releasenotes/notes/package-state-1d27f4c7f8618cef.yaml new file mode 100644 index 0000000000..197bcfdfee --- /dev/null +++ b/releasenotes/notes/package-state-1d27f4c7f8618cef.yaml @@ -0,0 +1,13 @@ +--- +features: + - The ceph_client role now supports the ability to configure whether + apt/yum tasks install the latest available package, or just ensure + that the package is present. The default action is to ensure that + the latest package is present. The action taken may be changed to + only ensure that the package is present by setting + ``ceph_client_package_state`` to ``present``. +upgrade: + - The ceph_client role always checks whether the latest package is + installed when executed. If a deployer wishes to change the check to + only validate the presence of the package, the option + ``ceph_client_package_state`` should be set to ``present``.