From 58eee09c15dea81ec51bb366af23681de70ceaa1 Mon Sep 17 00:00:00 2001 From: Sam Yaple Date: Sun, 18 Dec 2016 19:11:47 +0000 Subject: use static uid/gid in images This centralizes all user and group creation into a single source. This will fix any current and furture uid/gid mismatches (such as with nova-libvirt). In the process, we also unify users between the distros in a standard way. The users in the following containers change from thier defaults: Ubuntu: _chrony user is now chrony Ubuntu: memcache user is now memcached All: qemu user is used for ownership and socket permissions All uid and gid numbers are customizable via kolla-build.conf Co-Authored-By: Kris Lindgren Change-Id: I120f26ab0683dc87d69727c3df8d4707e52a4543 Partially-Implements: blueprint static-uid-gid --- docker/nova/nova-libvirt/Dockerfile.j2 | 19 +++++-------------- docker/nova/nova-libvirt/extend_start.sh | 2 +- 2 files changed, 6 insertions(+), 15 deletions(-) (limited to 'docker/nova/nova-libvirt') diff --git a/docker/nova/nova-libvirt/Dockerfile.j2 b/docker/nova/nova-libvirt/Dockerfile.j2 index 7fa39f819..4b2a58944 100644 --- a/docker/nova/nova-libvirt/Dockerfile.j2 +++ b/docker/nova/nova-libvirt/Dockerfile.j2 @@ -1,10 +1,12 @@ -FROM {{ namespace }}/{{ image_prefix }}nova-base:{{ tag }} +FROM {{ namespace }}/{{ image_prefix }}base:{{ tag }} MAINTAINER {{ maintainer }} {% block nova_libvirt_header %}{% endblock %} {% import "macros.j2" as macros with context %} +{{ macros.configure_user(name='nova', groups='qemu') }} + {% if base_distro in ['centos', 'oraclelinux', 'rhel'] %} {% set nova_libvirt_packages = [ @@ -30,8 +32,6 @@ MAINTAINER {{ maintainer }} 'xen-utils-4.6' ] %} - {% set libvirt_group = 'libvirtd' %} - {% elif base_distro == 'debian' %} {% set nova_libvirt_packages = [ @@ -46,22 +46,13 @@ MAINTAINER {{ maintainer }} 'usermode' ] %} - {% set libvirt_group = 'libvirt' %} - {% endif %} {{ macros.install_packages(nova_libvirt_packages | customizable("packages")) }} -{% if base_distro in ['centos', 'oraclelinux', 'rhel'] %} - -RUN usermod -a -G qemu nova - -{% elif base_distro in ['ubuntu', 'debian'] %} +{% if base_distro in ['ubuntu', 'debian'] %} -RUN mkdir -p /etc/ceph \ - && rm -f /etc/libvirt/qemu/networks/default.xml \ - /etc/libvirt/qemu/networks/autostart/default.xml \ - && usermod -a -G {{ libvirt_group }} nova +RUN rm -f /etc/libvirt/qemu/networks/default.xml /etc/libvirt/qemu/networks/autostart/default.xml {% endif %} diff --git a/docker/nova/nova-libvirt/extend_start.sh b/docker/nova/nova-libvirt/extend_start.sh index e04d95265..a0ccf18de 100644 --- a/docker/nova/nova-libvirt/extend_start.sh +++ b/docker/nova/nova-libvirt/extend_start.sh @@ -5,7 +5,7 @@ # Do not remove unless CentOS has been validated if [[ -c /dev/kvm ]]; then chmod 660 /dev/kvm - chown root:kvm /dev/kvm + chown root:qemu /dev/kvm fi # Mount xenfs for libxl to work -- cgit v1.2.3