aboutsummaryrefslogtreecommitdiff
path: root/kolla/docker/cinder
diff options
context:
space:
mode:
Diffstat (limited to 'kolla/docker/cinder')
-rw-r--r--kolla/docker/cinder/cinder-api/Dockerfile.j222
-rw-r--r--kolla/docker/cinder/cinder-api/extend_start.sh14
-rw-r--r--kolla/docker/cinder/cinder-backup/Dockerfile.j233
-rw-r--r--kolla/docker/cinder/cinder-base/Dockerfile.j260
-rw-r--r--kolla/docker/cinder/cinder-base/cinder_sudoers1
-rw-r--r--kolla/docker/cinder/cinder-base/extend_start.sh13
-rw-r--r--kolla/docker/cinder/cinder-scheduler/Dockerfile.j215
-rw-r--r--kolla/docker/cinder/cinder-volume/Dockerfile.j258
-rw-r--r--kolla/docker/cinder/cinder-volume/cinder_sudoers5
-rw-r--r--kolla/docker/cinder/cinder-volume/extend_start.sh14
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