summaryrefslogtreecommitdiff
path: root/docker/glance
diff options
context:
space:
mode:
authorZuul <zuul@review.opendev.org>2020-04-15 14:28:07 +0000
committerGerrit Code Review <review@openstack.org>2020-04-15 14:28:07 +0000
commit665b2b5ca398df2b5e6c4cded72fcdf4ed3d240b (patch)
tree077813446fe375b8dd63d9b1621e6a6a7b13a709 /docker/glance
parent2f66efdf5e2cef7cf5ca8b44759003c14a103ecf (diff)
parentd7d40d6c8695f79da5aad58c45231de7e9f738a3 (diff)
downloadkolla-665b2b5ca398df2b5e6c4cded72fcdf4ed3d240b.tar.gz
kolla-665b2b5ca398df2b5e6c4cded72fcdf4ed3d240b.zip
Merge "Fix glance-api privsep errors"
Diffstat (limited to 'docker/glance')
-rw-r--r--docker/glance/glance-base/Dockerfile.j216
-rw-r--r--docker/glance/glance-base/etc/glance/rootwrap.conf27
-rw-r--r--docker/glance/glance-base/etc/glance/rootwrap.d/glance_cinder_store.filters12
-rw-r--r--docker/glance/glance-base/glance_sudoers1
4 files changed, 54 insertions, 2 deletions
diff --git a/docker/glance/glance-base/Dockerfile.j2 b/docker/glance/glance-base/Dockerfile.j2
index b5d6d00c7..5a691473f 100644
--- a/docker/glance/glance-base/Dockerfile.j2
+++ b/docker/glance/glance-base/Dockerfile.j2
@@ -31,6 +31,11 @@ LABEL maintainer="{{ maintainer }}" name="{{ image_name }}" build-date="{{ build
{{ macros.install_packages(glance_base_packages | customizable("packages")) }}
+{% if base_package_type == 'deb' %}
+# fix up Ubuntu and Debian packaging of config (glance_store's rootwrap)
+RUN ln -s /etc/glance/glance/* /etc/glance/
+{% endif %}
+
{% elif install_type == 'source' %}
{% if base_package_type == 'rpm' %}
{% set glance_base_packages = [
@@ -53,17 +58,24 @@ ADD glance-base-archive /glance-base-source
'glance_store[cinder,vmware,swift]'
] %}
+# add missing rootwrap config present in glance_store repo
+COPY etc/glance /etc/glance
+
RUN ln -s glance-base-source/* glance \
&& {{ macros.install_pip(glance_base_pip_packages | customizable("pip_packages")) }} \
&& mkdir -p /etc/glance \
&& cp -r /glance/etc/* /etc/glance/ \
- && chown -R glance: /etc/glance
+ && chown -R glance: /etc/glance \
+ && 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/glance/rootwrap.conf
{% endif %}
+COPY glance_sudoers /etc/sudoers.d/kolla_glance_sudoers
COPY extend_start.sh /usr/local/bin/kolla_extend_start
-RUN touch /usr/local/bin/kolla_glance_extend_start \
+RUN chmod 750 /etc/sudoers.d \
+ && chmod 440 /etc/sudoers.d/kolla_glance_sudoers \
+ && touch /usr/local/bin/kolla_glance_extend_start \
&& chmod 755 /usr/local/bin/kolla_extend_start /usr/local/bin/kolla_glance_extend_start
{% block glance_base_footer %}{% endblock %}
diff --git a/docker/glance/glance-base/etc/glance/rootwrap.conf b/docker/glance/glance-base/etc/glance/rootwrap.conf
new file mode 100644
index 000000000..421dd256e
--- /dev/null
+++ b/docker/glance/glance-base/etc/glance/rootwrap.conf
@@ -0,0 +1,27 @@
+# Configuration for glance-rootwrap
+# This file should be owned by (and only-writable by) the root user
+
+[DEFAULT]
+# List of directories to load filter definitions from (separated by ',').
+# These directories MUST all be only writeable by root !
+filters_path=/etc/glance/rootwrap.d,/usr/share/glance/rootwrap
+
+# List of directories to search executables in, in case filters do not
+# explicitely specify a full path (separated by ',')
+# If not specified, defaults to system PATH environment variable.
+# These directories MUST all be only writeable by root !
+exec_dirs=/sbin,/usr/sbin,/bin,/usr/bin,/usr/local/bin,/usr/local/sbin
+
+# Enable logging to syslog
+# Default value is False
+use_syslog=False
+
+# Which syslog facility to use.
+# Valid values include auth, authpriv, syslog, local0, local1...
+# Default value is 'syslog'
+syslog_log_facility=syslog
+
+# Which messages to log.
+# INFO means log all usage
+# ERROR means only log unsuccessful attempts
+syslog_log_level=ERROR
diff --git a/docker/glance/glance-base/etc/glance/rootwrap.d/glance_cinder_store.filters b/docker/glance/glance-base/etc/glance/rootwrap.d/glance_cinder_store.filters
new file mode 100644
index 000000000..46c389b7e
--- /dev/null
+++ b/docker/glance/glance-base/etc/glance/rootwrap.d/glance_cinder_store.filters
@@ -0,0 +1,12 @@
+# glance-rootwrap command filters for glance cinder store
+# This file should be owned by (and only-writable by) the root user
+
+[Filters]
+# cinder store driver
+disk_chown: RegExpFilter, chown, root, chown, \d+, /dev/(?!.*/\.\.).*
+
+# os-brick library commands
+# os_brick.privileged.run_as_root oslo.privsep context
+# This line ties the superuser privs with the config files, context name,
+# and (implicitly) the actual python code invoked.
+privsep-rootwrap: RegExpFilter, privsep-helper, root, privsep-helper, --config-file, /etc/(?!\.\.).*, --privsep_context, os_brick.privileged.default, --privsep_sock_path, /tmp/.*
diff --git a/docker/glance/glance-base/glance_sudoers b/docker/glance/glance-base/glance_sudoers
new file mode 100644
index 000000000..9af870983
--- /dev/null
+++ b/docker/glance/glance-base/glance_sudoers
@@ -0,0 +1 @@
+glance ALL = (root) NOPASSWD: /var/lib/kolla/venv/bin/glance-rootwrap /etc/glance/rootwrap.conf *