diff options
Diffstat (limited to 'kolla/docker/cinder')
| -rw-r--r-- | kolla/docker/cinder/cinder-api/Dockerfile.j2 | 22 | ||||
| -rw-r--r-- | kolla/docker/cinder/cinder-api/extend_start.sh | 14 | ||||
| -rw-r--r-- | kolla/docker/cinder/cinder-backup/Dockerfile.j2 | 33 | ||||
| -rw-r--r-- | kolla/docker/cinder/cinder-base/Dockerfile.j2 | 60 | ||||
| -rw-r--r-- | kolla/docker/cinder/cinder-base/cinder_sudoers | 1 | ||||
| -rw-r--r-- | kolla/docker/cinder/cinder-base/extend_start.sh | 13 | ||||
| -rw-r--r-- | kolla/docker/cinder/cinder-scheduler/Dockerfile.j2 | 15 | ||||
| -rw-r--r-- | kolla/docker/cinder/cinder-volume/Dockerfile.j2 | 58 | ||||
| -rw-r--r-- | kolla/docker/cinder/cinder-volume/cinder_sudoers | 5 | ||||
| -rw-r--r-- | kolla/docker/cinder/cinder-volume/extend_start.sh | 14 |
10 files changed, 235 insertions, 0 deletions
diff --git a/kolla/docker/cinder/cinder-api/Dockerfile.j2 b/kolla/docker/cinder/cinder-api/Dockerfile.j2 new file mode 100644 index 000000000..b82fba6d3 --- /dev/null +++ b/kolla/docker/cinder/cinder-api/Dockerfile.j2 @@ -0,0 +1,22 @@ +FROM {{ namespace }}/{{ image_prefix }}cinder-base:{{ tag }} +{% block labels %} +LABEL maintainer="{{ maintainer }}" name="{{ image_name }}" +{% endblock %} + +{% block cinder_api_header %}{% endblock %} + +{% import "macros.j2" as macros with context %} + +{% set cinder_api_packages = [ +] %} + +{{ macros.install_packages(cinder_api_packages | customizable("packages")) }} + +COPY extend_start.sh /usr/local/bin/kolla_cinder_extend_start + +RUN chmod 644 /usr/local/bin/kolla_cinder_extend_start + +{{ macros.kolla_patch_sources() }} + +{% block cinder_api_footer %}{% endblock %} +{% block footer %}{% endblock %} diff --git a/kolla/docker/cinder/cinder-api/extend_start.sh b/kolla/docker/cinder/cinder-api/extend_start.sh new file mode 100644 index 000000000..94b0fe875 --- /dev/null +++ b/kolla/docker/cinder/cinder-api/extend_start.sh @@ -0,0 +1,14 @@ +#!/bin/bash +set -o errexit + +# Bootstrap and exit if KOLLA_BOOTSTRAP variable is set. This catches all cases +# of the KOLLA_BOOTSTRAP variable being set, including empty. +if [[ "${!KOLLA_BOOTSTRAP[@]}" ]]; then + cinder-manage db sync + exit 0 +fi + +if [[ "${!KOLLA_OSM[@]}" ]]; then + cinder-manage db online_data_migrations + exit 0 +fi diff --git a/kolla/docker/cinder/cinder-backup/Dockerfile.j2 b/kolla/docker/cinder/cinder-backup/Dockerfile.j2 new file mode 100644 index 000000000..15be355dd --- /dev/null +++ b/kolla/docker/cinder/cinder-backup/Dockerfile.j2 @@ -0,0 +1,33 @@ +FROM {{ namespace }}/{{ image_prefix }}cinder-base:{{ tag }} +{% block labels %} +LABEL maintainer="{{ maintainer }}" name="{{ image_name }}" +{% endblock %} + +{% block cinder_backup_header %}{% endblock %} + +{% import "macros.j2" as macros with context %} + +{% if base_package_type == 'rpm' %} + {% set cinder_backup_packages = [ + 'device-mapper-multipath', + 'lsscsi', + 'nfs-utils', + 'sysfsutils' + ] %} +{% elif base_package_type == 'deb' %} + {% set cinder_backup_packages = [ + 'lsscsi', + 'multipath-tools', + 'nfs-common', + 'sysfsutils' + ] %} +{% endif %} + +{{ macros.install_packages(cinder_backup_packages | customizable("packages")) }} + +{{ macros.kolla_patch_sources() }} + +{% block cinder_backup_footer %}{% endblock %} +{% block footer %}{% endblock %} + +USER cinder diff --git a/kolla/docker/cinder/cinder-base/Dockerfile.j2 b/kolla/docker/cinder/cinder-base/Dockerfile.j2 new file mode 100644 index 000000000..bd25d9b18 --- /dev/null +++ b/kolla/docker/cinder/cinder-base/Dockerfile.j2 @@ -0,0 +1,60 @@ +FROM {{ namespace }}/{{ image_prefix }}openstack-base:{{ tag }} +{% block labels %} +LABEL maintainer="{{ maintainer }}" name="{{ image_name }}" +{% endblock %} + +{% block cinder_base_header %}{% endblock %} + +{% import "macros.j2" as macros with context %} + +{{ macros.configure_user(name='cinder') }} + +{% if base_package_type == 'rpm' %} + +{{ macros.enable_extra_repos(['ceph', 'epel']) }} + + {% set cinder_base_packages = [ + 'ceph-common', + 'cryptsetup', + 'lvm2', + 'nvme-cli', + 'qemu-img', + 'systemd-udev' + ] %} +{% elif base_package_type == 'deb' %} + {% set cinder_base_packages = [ + 'ceph-common', + 'cryptsetup', + 'lvm2', + 'nvme-cli', + 'python3-cephfs', + 'python3-rados', + 'python3-rbd', + 'qemu-utils' + ] %} +{% endif %} +{{ macros.install_packages(cinder_base_packages | customizable("packages")) }} + +{% set cinder_base_pip_packages = [ + '/cinder' +] %} + +ADD cinder-base-archive /cinder-base-source + +COPY cinder_sudoers /etc/sudoers.d/kolla_cinder_sudoers +COPY extend_start.sh /usr/local/bin/kolla_extend_start + +RUN ln -s cinder-base-source/* cinder \ + && {{ macros.install_pip(cinder_base_pip_packages | customizable("pip_packages")) }} \ + && mkdir -p /etc/cinder \ + && cp -r /cinder/etc/cinder/* /etc/cinder/ \ + && cp /var/lib/kolla/venv/etc/pycadf/cinder_api_audit_map.conf /etc/cinder/ \ + && sed -i 's|^exec_dirs.*|exec_dirs=/var/lib/kolla/venv/bin,/sbin,/usr/sbin,/bin,/usr/bin,/usr/local/bin,/usr/local/sbin|g' /etc/cinder/rootwrap.conf \ + && chmod 750 /etc/sudoers.d \ + && chmod 440 /etc/sudoers.d/kolla_cinder_sudoers \ + && touch /usr/local/bin/kolla_cinder_extend_start \ + && chmod 644 /usr/local/bin/kolla_extend_start /usr/local/bin/kolla_cinder_extend_start + +{{ macros.kolla_patch_sources() }} + +{% block cinder_base_footer %}{% endblock %} diff --git a/kolla/docker/cinder/cinder-base/cinder_sudoers b/kolla/docker/cinder/cinder-base/cinder_sudoers new file mode 100644 index 000000000..3750f31a0 --- /dev/null +++ b/kolla/docker/cinder/cinder-base/cinder_sudoers @@ -0,0 +1 @@ +cinder ALL = (root) NOPASSWD: /var/lib/kolla/venv/bin/cinder-rootwrap /etc/cinder/rootwrap.conf * diff --git a/kolla/docker/cinder/cinder-base/extend_start.sh b/kolla/docker/cinder/cinder-base/extend_start.sh new file mode 100644 index 000000000..ddf1469c9 --- /dev/null +++ b/kolla/docker/cinder/cinder-base/extend_start.sh @@ -0,0 +1,13 @@ +#!/bin/bash + +if [[ ! -d "/var/log/kolla/cinder" ]]; then + mkdir -p /var/log/kolla/cinder +fi +if [[ $(stat -c %U:%G /var/log/kolla/cinder) != "cinder:kolla" ]]; then + chown -R cinder:kolla /var/log/kolla/cinder +fi +if [[ $(stat -c %a /var/log/kolla/cinder) != "755" ]]; then + chmod 755 /var/log/kolla/cinder +fi + +. /usr/local/bin/kolla_cinder_extend_start diff --git a/kolla/docker/cinder/cinder-scheduler/Dockerfile.j2 b/kolla/docker/cinder/cinder-scheduler/Dockerfile.j2 new file mode 100644 index 000000000..c43792dcc --- /dev/null +++ b/kolla/docker/cinder/cinder-scheduler/Dockerfile.j2 @@ -0,0 +1,15 @@ +FROM {{ namespace }}/{{ image_prefix }}cinder-base:{{ tag }} +{% block labels %} +LABEL maintainer="{{ maintainer }}" name="{{ image_name }}" +{% endblock %} + +{% block cinder_scheduler_header %}{% endblock %} + +{% import "macros.j2" as macros with context %} + +{{ macros.kolla_patch_sources() }} + +{% block cinder_scheduler_footer %}{% endblock %} +{% block footer %}{% endblock %} + +USER cinder diff --git a/kolla/docker/cinder/cinder-volume/Dockerfile.j2 b/kolla/docker/cinder/cinder-volume/Dockerfile.j2 new file mode 100644 index 000000000..0e4f38a6e --- /dev/null +++ b/kolla/docker/cinder/cinder-volume/Dockerfile.j2 @@ -0,0 +1,58 @@ +FROM {{ namespace }}/{{ image_prefix }}cinder-base:{{ tag }} +{% block labels %} +LABEL maintainer="{{ maintainer }}" name="{{ image_name }}" +{% endblock %} + +{% block cinder_volume_header %}{% endblock %} + +{% import "macros.j2" as macros with context %} + +{% if base_package_type == 'rpm' %} + {% set cinder_volume_packages = [ + 'lsscsi', + 'device-mapper-multipath', + 'nfs-utils', + 'nvmetcli', + 'sysfsutils', + 'targetcli' + ] %} +{% elif base_package_type == 'deb' %} + {% set cinder_volume_packages = [ + 'lsscsi', + 'multipath-tools', + 'nfs-common', + 'sysfsutils', + 'targetcli-fb', + 'thin-provisioning-tools', + 'tgt' + ] %} +{% endif %} + +{{ macros.install_packages(cinder_volume_packages | customizable("packages")) }} + +{% if base_package_type == 'rpm' %} + +{% block cinder_volume_redhat_setup %} +{% endblock %} + +{% elif base_package_type == 'deb' %} + +{% block cinder_volume_ubuntu_setup %} +RUN sed -i '1 i include /var/lib/cinder/volumes/*' /etc/tgt/targets.conf +{% endblock %} + +{% endif %} + +COPY cinder_sudoers /etc/sudoers.d/kolla_cinder_volume_sudoers +COPY extend_start.sh /usr/local/bin/kolla_cinder_extend_start + +RUN chmod 750 /etc/sudoers.d \ + && chmod 440 /etc/sudoers.d/kolla_cinder_volume_sudoers \ + && chmod 644 /usr/local/bin/kolla_cinder_extend_start + +{{ macros.kolla_patch_sources() }} + +{% block cinder_volume_footer %}{% endblock %} +{% block footer %}{% endblock %} + +USER cinder diff --git a/kolla/docker/cinder/cinder-volume/cinder_sudoers b/kolla/docker/cinder/cinder-volume/cinder_sudoers new file mode 100644 index 000000000..f3bec8b13 --- /dev/null +++ b/kolla/docker/cinder/cinder-volume/cinder_sudoers @@ -0,0 +1,5 @@ +cinder ALL = (root) NOPASSWD: /var/lib/kolla/venv/bin/cinder-rootwrap /etc/cinder/rootwrap.conf * +%kolla ALL=(root) NOPASSWD: /bin/chown -R cinder\:kolla /var/lib/cinder, /usr/bin/chown -R cinder\:kolla /var/lib/cinder +%kolla ALL=(root) NOPASSWD: /bin/chmod 2775 /var/lib/cinder, /usr/bin/chmod 2775 /var/lib/cinder +%kolla ALL=(root) NOPASSWD: /bin/chown -R cinder\:kolla /etc/iscsi, /usr/bin/chown -R cinder\:kolla /etc/iscsi +%kolla ALL=(root) NOPASSWD: /bin/chmod 2775 /etc/iscsi, /usr/bin/chmod 2775 /etc/iscsi diff --git a/kolla/docker/cinder/cinder-volume/extend_start.sh b/kolla/docker/cinder/cinder-volume/extend_start.sh new file mode 100644 index 000000000..67e866143 --- /dev/null +++ b/kolla/docker/cinder/cinder-volume/extend_start.sh @@ -0,0 +1,14 @@ +#!/bin/bash + +if [[ $(stat -c %U:%G /var/lib/cinder) != "cinder:kolla" ]]; then + sudo chown -R cinder:kolla /var/lib/cinder +fi +if [[ $(stat -c %a /var/lib/cinder) != "2775" ]]; then + sudo chmod 2775 /var/lib/cinder +fi +if [[ $(stat -c %U:%G /etc/iscsi) != "cinder:kolla" ]]; then + sudo chown -R cinder:kolla /etc/iscsi +fi +if [[ $(stat -c %a /etc/iscsi) != "2775" ]]; then + sudo chmod 2775 /etc/iscsi +fi |
