From 5b1f9aaf4ffed712e12dc2a1698a28184420f214 Mon Sep 17 00:00:00 2001 From: Redouane Kachach Date: Mon, 9 Sep 2024 16:29:43 +0200 Subject: [PATCH] mgr/cephadm: changing the nginx upstream image used by mgmt-gateway pointing mgmt-gateway nginx image to a different upstream repository Fixes: https://tracker.ceph.com/issues/67939 Signed-off-by: Redouane Kachach --- src/cephadm/cephadmlib/constants.py | 2 +- .../cephadmlib/daemons/mgmt_gateway.py | 24 ++++++++++++++++--- src/pybind/mgr/cephadm/module.py | 2 +- 3 files changed, 23 insertions(+), 5 deletions(-) diff --git a/src/cephadm/cephadmlib/constants.py b/src/cephadm/cephadmlib/constants.py index 1d064329fd1fe..f26cd361b58e7 100644 --- a/src/cephadm/cephadmlib/constants.py +++ b/src/cephadm/cephadmlib/constants.py @@ -20,7 +20,7 @@ DEFAULT_JAEGER_AGENT_IMAGE = 'quay.io/jaegertracing/jaeger-agent:1.29' DEFAULT_JAEGER_QUERY_IMAGE = 'quay.io/jaegertracing/jaeger-query:1.29' DEFAULT_SMB_IMAGE = 'quay.io/samba.org/samba-server:devbuilds-centos-amd64' DEFAULT_SMBMETRICS_IMAGE = 'quay.io/samba.org/samba-metrics:latest' -DEFAULT_NGINX_IMAGE = 'quay.io/ceph/nginx:1.26.1' +DEFAULT_NGINX_IMAGE = 'quay.io/ceph/nginx:sclorg-nginx-126' DEFAULT_OAUTH2_PROXY_IMAGE = 'quay.io/oauth2-proxy/oauth2-proxy:v7.6.0' DEFAULT_REGISTRY = 'docker.io' # normalize unqualified digests to this # ------------------------------------------------------------------------------ diff --git a/src/cephadm/cephadmlib/daemons/mgmt_gateway.py b/src/cephadm/cephadmlib/daemons/mgmt_gateway.py index b0a6f0579d2f3..01c68a83ba85a 100644 --- a/src/cephadm/cephadmlib/daemons/mgmt_gateway.py +++ b/src/cephadm/cephadmlib/daemons/mgmt_gateway.py @@ -5,13 +5,13 @@ import re from ..call_wrappers import call, CallVerbosity from ..container_daemon_form import ContainerDaemonForm, daemon_to_container -from ..container_types import CephContainer +from ..container_types import CephContainer, extract_uid_gid from ..context import CephadmContext from ..context_getters import fetch_configs from ..daemon_form import register as register_daemon_form from ..daemon_identity import DaemonIdentity from ..deployment_utils import to_deployment_container -from ..constants import DEFAULT_NGINX_IMAGE, UID_NOBODY, GID_NOGROUP +from ..constants import DEFAULT_NGINX_IMAGE from ..data_utils import dict_get, is_fsid from ..file_utils import populate_files, makedirs, recursive_chown from ..exceptions import Error @@ -90,7 +90,7 @@ class MgmtGateway(ContainerDaemonForm): return to_deployment_container(ctx, ctr) def uid_gid(self, ctx: CephadmContext) -> Tuple[int, int]: - return UID_NOBODY, GID_NOGROUP + return extract_uid_gid(ctx, file_path='/etc/nginx/') def get_daemon_args(self) -> List[str]: return [] @@ -150,6 +150,24 @@ class MgmtGateway(ContainerDaemonForm): version = match.group(1) return version + def customize_container_args( + self, ctx: CephadmContext, args: List[str] + ) -> None: + uid, _ = self.uid_gid(ctx) + extra_args = [ + '--user', + str(uid), + ] + args.extend(extra_args) + + def customize_process_args( + self, ctx: CephadmContext, args: List[str] + ) -> None: + # The following noqa comment is intentional to suppress warnings about using double quotes + # instead of single quotes. We use double quotes here to ensure that single quotes are + # used in the final parsed output: nginx -g 'daemon off;' + args.extend(['nginx', '-g', "daemon off;"]) # noqa + def customize_container_mounts( self, ctx: CephadmContext, mounts: Dict[str, str] ) -> None: diff --git a/src/pybind/mgr/cephadm/module.py b/src/pybind/mgr/cephadm/module.py index 1a9a10862180e..ac91d2e18627d 100644 --- a/src/pybind/mgr/cephadm/module.py +++ b/src/pybind/mgr/cephadm/module.py @@ -144,7 +144,7 @@ DEFAULT_SNMP_GATEWAY_IMAGE = 'docker.io/maxwo/snmp-notifier:v1.2.1' DEFAULT_ELASTICSEARCH_IMAGE = 'quay.io/omrizeneva/elasticsearch:6.8.23' DEFAULT_JAEGER_COLLECTOR_IMAGE = 'quay.io/jaegertracing/jaeger-collector:1.29' DEFAULT_JAEGER_AGENT_IMAGE = 'quay.io/jaegertracing/jaeger-agent:1.29' -DEFAULT_NGINX_IMAGE = 'quay.io/ceph/nginx:1.26.1' +DEFAULT_NGINX_IMAGE = 'quay.io/ceph/nginx:sclorg-nginx-126' DEFAULT_OAUTH2_PROXY = 'quay.io/oauth2-proxy/oauth2-proxy:v7.6.0' DEFAULT_JAEGER_QUERY_IMAGE = 'quay.io/jaegertracing/jaeger-query:1.29' DEFAULT_SAMBA_IMAGE = 'quay.io/samba.org/samba-server:devbuilds-centos-amd64' -- 2.39.5