From 65684250175117b47d41e29d1bc3f9116c0084b5 Mon Sep 17 00:00:00 2001 From: Marcin Juszkiewicz Date: Wed, 28 Jul 2021 09:25:45 +0200 Subject: [PATCH] Config: allow to set group for user According to recent IRC discussions is could be useful for haclient. Partial-Bug: #1934753 Change-Id: I670fa84476e35e55cbed2d22e48836ed5e28495f --- docker/base/Dockerfile.j2 | 2 +- kolla/common/config.py | 9 +++++++-- kolla/image/build.py | 1 + .../notes/set-group-for-user-aa9b3eae69d8f6a0.yaml | 3 +++ 4 files changed, 12 insertions(+), 3 deletions(-) create mode 100644 releasenotes/notes/set-group-for-user-aa9b3eae69d8f6a0.yaml diff --git a/docker/base/Dockerfile.j2 b/docker/base/Dockerfile.j2 index 9430f2d13a..7c771dd500 100644 --- a/docker/base/Dockerfile.j2 +++ b/docker/base/Dockerfile.j2 @@ -21,7 +21,7 @@ ENV LANG en_US.UTF-8 {# Specifics required such as homedir or shell are configured within the service specific image #} {%- for name, user in users | dictsort() %} {% if loop.first -%}RUN {% else %} && {% endif -%} - groupadd --force --gid {{ user.gid }} {{ name }} \ + groupadd --force --gid {{ user.gid }} {{ user.group }} \ && useradd -l -M --shell /usr/sbin/nologin --uid {{ user.uid }} --gid {{ user.gid }} {{ name }} {%- if not loop.last %} \{% endif -%} {%- endfor %} diff --git a/kolla/common/config.py b/kolla/common/config.py index e475303979..f0b8f2df4f 100755 --- a/kolla/common/config.py +++ b/kolla/common/config.py @@ -954,10 +954,11 @@ def get_source_opts(type_=None, location=None, reference=None): 'or branch name'))] -def get_user_opts(uid, gid): +def get_user_opts(uid, gid, group): return [ cfg.IntOpt('uid', default=uid, help='The user id'), cfg.IntOpt('gid', default=gid, help='The group id'), + cfg.StrOpt('group', default=group, help='The group name'), ] @@ -965,7 +966,11 @@ def gen_all_user_opts(): for name, params in USERS.items(): uid = params['uid'] gid = params['gid'] - yield name, get_user_opts(uid, gid) + try: + group = params['group'] + except KeyError: + group = name[:-5] + yield name, get_user_opts(uid, gid, group) def gen_all_source_opts(): diff --git a/kolla/image/build.py b/kolla/image/build.py index fc897bdd28..f643a90b48 100755 --- a/kolla/image/build.py +++ b/kolla/image/build.py @@ -852,6 +852,7 @@ class KollaWorker(object): ret[match.group(0)[:-5]] = { 'uid': user.uid, 'gid': user.gid, + 'group': user.group, } return ret diff --git a/releasenotes/notes/set-group-for-user-aa9b3eae69d8f6a0.yaml b/releasenotes/notes/set-group-for-user-aa9b3eae69d8f6a0.yaml new file mode 100644 index 0000000000..da0b7a3ff4 --- /dev/null +++ b/releasenotes/notes/set-group-for-user-aa9b3eae69d8f6a0.yaml @@ -0,0 +1,3 @@ +--- +features: + - Allow to set group for user.