diff --git a/ansible-role-requirements.yml b/ansible-role-requirements.yml
index 1012782abe..b2ee223d34 100644
--- a/ansible-role-requirements.yml
+++ b/ansible-role-requirements.yml
@@ -70,6 +70,10 @@
scm: git
src: https://git.openstack.org/openstack/openstack-ansible-os_cinder
version: master
+- name: os_designate
+ scm: git
+ src: https://git.openstack.org/openstack/openstack-ansible-os_designate
+ version: master
- name: os_glance
scm: git
src: https://git.openstack.org/openstack/openstack-ansible-os_glance
@@ -94,9 +98,9 @@
scm: git
src: https://git.openstack.org/openstack/openstack-ansible-os_magnum
version: master
-- name: os_trove
+- name: os_molteniron
scm: git
- src: https://git.openstack.org/openstack/openstack-ansible-os_trove
+ src: https://git.openstack.org/openstack/openstack-ansible-os_molteniron
version: master
- name: os_neutron
scm: git
@@ -106,6 +110,10 @@
scm: git
src: https://git.openstack.org/openstack/openstack-ansible-os_nova
version: master
+- name: os_octavia
+ scm: git
+ src: https://git.openstack.org/openstack/openstack-ansible-os_octavia
+ version: master
- name: os_rally
scm: git
src: https://git.openstack.org/openstack/openstack-ansible-os_rally
@@ -118,10 +126,18 @@
scm: git
src: https://git.openstack.org/openstack/openstack-ansible-os_swift
version: master
+- name: os_tacker
+ scm: git
+ src: https://git.openstack.org/openstack/openstack-ansible-os_tacker
+ version: master
- name: os_tempest
scm: git
src: https://git.openstack.org/openstack/openstack-ansible-os_tempest
version: master
+- name: os_trove
+ scm: git
+ src: https://git.openstack.org/openstack/openstack-ansible-os_trove
+ version: master
- name: plugins
scm: git
src: https://git.openstack.org/openstack/openstack-ansible-plugins
@@ -166,46 +182,34 @@
scm: git
src: https://github.com/logan2211/ansible-resolvconf
version: master
-- name: os_designate
+- name: ceph-defaults
scm: git
- src: https://git.openstack.org/openstack/openstack-ansible-os_designate
+ src: https://github.com/ceph/ansible-ceph-defaults
version: master
-- name: ceph.ceph-common
+- name: ceph-common
scm: git
src: https://github.com/ceph/ansible-ceph-common
- version: 41b7be03dec81e16502386ef17b7af96db6f0d6f
-- name: ceph.ceph-docker-common
+ version: master
+- name: ceph-config
scm: git
- src: https://github.com/ceph/ansible-ceph-docker-common
- version: ca86fd0ef6d24aa2c750a625acdcb8012c374aa0
+ src: https://github.com/ceph/ansible-ceph-config
+ version: master
- name: ceph-mon
scm: git
src: https://github.com/ceph/ansible-ceph-mon
- version: 235ea7526a2bb621317b5263f3841deef7ab49e6
+ version: master
- name: ceph-mgr
scm: git
src: https://github.com/ceph/ansible-ceph-mgr
- version: d9ddb83bae6b054549efa1c96b0a37c63073ebea
+ version: master
- name: ceph-osd
scm: git
src: https://github.com/ceph/ansible-ceph-osd
- version: 3d4fceb960fbaa0331b965d0a9a4f3511022b86b
-- name: os_octavia
- scm: git
- src: https://git.openstack.org/openstack/openstack-ansible-os_octavia
- version: master
-- name: os_molteniron
- scm: git
- src: https://git.openstack.org/openstack/openstack-ansible-os_molteniron
version: master
- name: opendaylight
scm: git
src: https://git.opendaylight.org/gerrit/p/integration/packaging/ansible-opendaylight.git
version: master
-- name: os_tacker
- scm: git
- src: https://git.openstack.org/openstack/openstack-ansible-os_tacker
- version: master
- name: haproxy_endpoints
scm: git
src: https://github.com/logan2211/ansible-haproxy-endpoints
diff --git a/doc/source/user/manual-upgrade.rst b/doc/source/user/manual-upgrade.rst
index ce4356371d..1a5fbcb9d7 100644
--- a/doc/source/user/manual-upgrade.rst
+++ b/doc/source/user/manual-upgrade.rst
@@ -112,6 +112,20 @@ For more information, see :ref:`pip-conf-removal`.
# openstack-ansible "${UPGRADE_PLAYBOOKS}/pip-conf-removal.yml"
+Clean up the ceph-ansible galaxy namespaced roles
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+The ceph-ansible common roles are no longer namespaced with a galaxy-style
+'.' (ie. ``ceph.ceph-common`` is now cloned as ``ceph-common``), due to a
+change in the way upstream meta dependencies are handled in the ceph roles.
+The roles will be cloned according to the new naming, and an upgrade
+playbook ``ceph-galaxy-removal.yml`` has been added to clean up the stale
+galaxy-named roles.
+
+.. code-block:: console
+
+ # openstack-ansible "${UPGRADE_PLAYBOOKS}/ceph-galaxy-removal.yml"
+
Upgrade hosts
~~~~~~~~~~~~~
diff --git a/doc/source/user/reference-upgrade-playbooks.rst b/doc/source/user/reference-upgrade-playbooks.rst
index 0ed901e583..07b539d527 100644
--- a/doc/source/user/reference-upgrade-playbooks.rst
+++ b/doc/source/user/reference-upgrade-playbooks.rst
@@ -48,6 +48,18 @@ packages on the repo servers. If this file exists on a repo server or a
physical node, it causes a circular dependency issue and the upgrade fails.
This playbook removes the file on all the repo servers and physical nodes.
+.. _ceph-galaxy-removal:
+
+ceph-galaxy-removal.yml
+~~~~~~~~~~~~~~~~~~~~~~~
+
+The ceph-ansible common roles are no longer namespaced with a galaxy-style
+'.' (ie. ``ceph.ceph-common`` is now cloned as ``ceph-common``), due to a
+change in the way upstream meta dependencies are handled in the ceph roles.
+The roles will be cloned according to the new naming, and an upgrade
+playbook ``ceph-galaxy-removal.yml`` has been added to clean up the stale
+galaxy-named roles.
+
.. _setup-infra-playbook:
setup-infrastructure.yml
diff --git a/group_vars/all/ceph.yml b/group_vars/all/ceph.yml
index 1be431822d..4a3dc9264c 100644
--- a/group_vars/all/ceph.yml
+++ b/group_vars/all/ceph.yml
@@ -19,7 +19,8 @@ ceph_client_package_state: "{{ package_state }}"
mon_group_name: ceph-mon
mgr_group_name: "{{ mon_group_name }}"
osd_group_name: ceph-osd
-ceph_stable: true
+ceph_origin: repository
+ceph_repository: community
# The _stable_release var is used by both the OSA ceph_client role and the
# ceph-ansible roles. It is defaulted in ceph_client but set here to keep the
# OSA/ceph-ansible integrations in sync.
diff --git a/playbooks/ceph-install.yml b/playbooks/ceph-install.yml
index e649bd2184..25eac24402 100644
--- a/playbooks/ceph-install.yml
+++ b/playbooks/ceph-install.yml
@@ -33,7 +33,8 @@
key: "{{ ceph_stable_key }}"
state: present
when:
- - ceph_stable
+ - ceph_origin == 'repository'
+ - ceph_repository == 'community'
- ansible_pkg_mgr in ['yum', 'dnf']
- name: add ceph stable repository
package:
@@ -41,7 +42,8 @@
state: present
changed_when: false
when:
- - ceph_stable
+ - ceph_origin == 'repository'
+ - ceph_repository == 'community'
- ansible_pkg_mgr in ['yum', 'dnf']
- name: Purge yum/dnf cache
command: "{{ ansible_pkg_mgr }} clean all"
@@ -84,19 +86,28 @@
when:
- ansible_pkg_mgr in ['yum', 'dnf']
roles:
- - role: "ceph-mon"
+ - role: ceph-defaults
tags:
- skip_ansible_lint
- - role: "ceph-mgr"
+ - role: ceph-common
tags:
- skip_ansible_lint
- - role: "rsyslog_client"
+ - role: ceph-config
+ tags:
+ - skip_ansible_lint
+ - role: ceph-mon
+ tags:
+ - skip_ansible_lint
+ - role: ceph-mgr
+ tags:
+ - skip_ansible_lint
+ - role: rsyslog_client
rsyslog_client_log_rotate_file: ceph_log_rotate
rsyslog_client_log_dir: "/var/log/ceph"
rsyslog_client_config_name: "99-ceph-rsyslog-client.conf"
tags:
- rsyslog
- - role: "system_crontab_coordination"
+ - role: system_crontab_coordination
tags:
- crontab
vars:
@@ -137,7 +148,8 @@
key: "{{ ceph_stable_key }}"
state: present
when:
- - ceph_stable
+ - ceph_origin == 'repository'
+ - ceph_repository == 'community'
- ansible_pkg_mgr in ['yum', 'dnf']
- name: add ceph stable repository
package:
@@ -145,7 +157,8 @@
state: present
changed_when: false
when:
- - ceph_stable
+ - ceph_origin == 'repository'
+ - ceph_repository == 'community'
- ansible_pkg_mgr in ['yum', 'dnf']
- name: Purge yum/dnf cache
command: "{{ ansible_pkg_mgr }} clean all"
@@ -163,16 +176,25 @@
when:
- ansible_pkg_mgr in ['yum', 'dnf']
roles:
- - role: "ceph-osd"
+ - role: ceph-defaults
tags:
- skip_ansible_lint
- - role: "rsyslog_client"
+ - role: ceph-common
+ tags:
+ - skip_ansible_lint
+ - role: ceph-config
+ tags:
+ - skip_ansible_lint
+ - role: ceph-osd
+ tags:
+ - skip_ansible_lint
+ - role: rsyslog_client
rsyslog_client_log_rotate_file: ceph_log_rotate
rsyslog_client_log_dir: "/var/log/ceph"
rsyslog_client_config_name: "99-ceph-rsyslog-client.conf"
tags:
- rsyslog
- - role: "system_crontab_coordination"
+ - role: system_crontab_coordination
tags:
- crontab
environment: "{{ deployment_environment_variables | default({}) }}"
diff --git a/releasenotes/notes/ceph-ansible-v3-a570cf4477c77860.yaml b/releasenotes/notes/ceph-ansible-v3-a570cf4477c77860.yaml
new file mode 100644
index 0000000000..22411ede1c
--- /dev/null
+++ b/releasenotes/notes/ceph-ansible-v3-a570cf4477c77860.yaml
@@ -0,0 +1,15 @@
+---
+upgrade:
+ - The ceph-ansible integration has been updated to support the ceph-ansible
+ v3.0 series tags. The new v3.0 series brings a significant refactoring of
+ the ceph-ansible roles and vars, so it is strongly recommended to consult
+ the upstream `ceph-ansible documentation
+ `_ to perform any required
+ vars migrations before you upgrade.
+critical:
+ - The ceph-ansible integration has been updated to support the ceph-ansible
+ v3.0 series tags. The new v3.0 series brings a significant refactoring of
+ the ceph-ansible roles and vars, so it is strongly recommended to consult
+ the upstream `ceph-ansible documentation
+ `_ to perform any required
+ vars migrations before you upgrade.
diff --git a/releasenotes/notes/ceph-galaxy-roles-1a0a13be026e45d8.yaml b/releasenotes/notes/ceph-galaxy-roles-1a0a13be026e45d8.yaml
new file mode 100644
index 0000000000..d6cee37d42
--- /dev/null
+++ b/releasenotes/notes/ceph-galaxy-roles-1a0a13be026e45d8.yaml
@@ -0,0 +1,8 @@
+---
+upgrade:
+ - The ceph-ansible common roles are no longer namespaced with a galaxy-style
+ '.' (ie. ``ceph.ceph-common`` is now cloned as ``ceph-common``), due to a
+ change in the way upstream meta dependencies are handled in the ceph roles.
+ The roles will be cloned according to the new naming, and an upgrade
+ playbook ``ceph-galaxy-removal.yml`` has been added to clean up the stale
+ galaxy-named roles.
diff --git a/scripts/run-upgrade.sh b/scripts/run-upgrade.sh
index 8822c10021..4b15495006 100755
--- a/scripts/run-upgrade.sh
+++ b/scripts/run-upgrade.sh
@@ -175,6 +175,7 @@ function main {
RUN_TASKS+=("${UPGRADE_PLAYBOOKS}/deploy-config-changes.yml")
RUN_TASKS+=("${UPGRADE_PLAYBOOKS}/user-secrets-adjustment.yml")
RUN_TASKS+=("${UPGRADE_PLAYBOOKS}/pip-conf-removal.yml")
+ RUN_TASKS+=("${UPGRADE_PLAYBOOKS}/ceph-galaxy-removal.yml")
# we don't want to trigger galera container restarts yet
RUN_TASKS+=("setup-hosts.yml --limit '!galera_all'")
# add new container config to galera containers but don't restart
diff --git a/scripts/upgrade-utilities/playbooks/ceph-galaxy-removal.yml b/scripts/upgrade-utilities/playbooks/ceph-galaxy-removal.yml
new file mode 100644
index 0000000000..92f93c032b
--- /dev/null
+++ b/scripts/upgrade-utilities/playbooks/ceph-galaxy-removal.yml
@@ -0,0 +1,31 @@
+---
+# Copyright 2017, Logan Vig
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+- name: Remove the ceph galaxy named roles
+ hosts: localhost
+ gather_facts: true
+ user: root
+ tasks:
+ # These roles used to be named using galaxy format due to the naming of the
+ # meta dependencies in ceph-ansible. Now the meta dependencies no longer
+ # exist so we are free to name them more consistently with the rest of
+ # OSA's roles.
+ - name: Remove ceph galaxy named roles if found
+ file:
+ path: "/etc/ansible/roles/{{ item }}"
+ state: "absent"
+ with_items:
+ - ceph.ceph-docker-common
+ - ceph.ceph-common
diff --git a/tests/roles/bootstrap-host/templates/user_variables_ceph.yml.j2 b/tests/roles/bootstrap-host/templates/user_variables_ceph.yml.j2
index b95dd28a39..a9cb5dfc5c 100644
--- a/tests/roles/bootstrap-host/templates/user_variables_ceph.yml.j2
+++ b/tests/roles/bootstrap-host/templates/user_variables_ceph.yml.j2
@@ -18,7 +18,7 @@ common_single_host_mode: true
monitor_interface: eth1 # Management network in the AIO
public_network: "{{ (mgmt_range ~ '.0/' ~ netmask) | ipaddr('net') }}"
journal_size: 100
-journal_collocation: true
+osd_scenario: collocated
pool_default_pg_num: 32
openstack_config: true # Ceph ansible automatically creates pools & keys
cinder_ceph_client: cinder