From d51783c0522a034bae8d20bf2e8d19c1fce5b9d8 Mon Sep 17 00:00:00 2001 From: Frank Schreiner Date: Fri, 17 Jul 2020 06:12:35 +0000 Subject: [PATCH] [backend] user/pass for obs services called in docker This patch adds the possibilty to specify a user/password combination in BSConfig.pm and export to ENV in the container to use for basic auth at the API server (specified in api_url). This is required e.g. for kiwi_import. Without this patch the service fails with '401 - Unauthorized' when using e.g. 'https://build.opensuse.org' as api url. --- src/backend/BSConfig.pm.template | 6 ++++++ src/backend/call-service-in-docker.sh | 4 ++++ 2 files changed, 10 insertions(+) diff --git a/src/backend/BSConfig.pm.template b/src/backend/BSConfig.pm.template index f53ed142c8e..d83a8bbec9a 100644 --- a/src/backend/BSConfig.pm.template +++ b/src/backend/BSConfig.pm.template @@ -308,4 +308,10 @@ our $local_registry_signatures_extension = 1; # public cloud uploader configuration # our $cloudupload_pubkey = "/etc/obs/cloudupload/_pubkey"; # default setting +# user/password to be used by services which needs to authenticate at +# OBS (e.g. kiwi_import) + +# our $obs_service_user = ""; +# our $obs_service_pass = ""; + 1; diff --git a/src/backend/call-service-in-docker.sh b/src/backend/call-service-in-docker.sh index ba262712d48..c7a18158724 100755 --- a/src/backend/call-service-in-docker.sh +++ b/src/backend/call-service-in-docker.sh @@ -21,6 +21,8 @@ DOCKER_IMAGE=`obs_admin --query-config docker_image` DOCKER_CUSTOM_OPT=`obs_admin --query-config docker_custom_opt` SERVICES_DIR=`obs_admin --query-config servicetempdir` OBS_SERVICE_BUNDLE_GEMS_MIRROR_URL=`obs_admin --query-config gems_mirror` +OBS_SERVICE_USER=`obs_admin --query-config obs_service_user` +OBS_SERVICE_PASS=`obs_admin --query-config obs_service_pass` SCM_COMMAND=0 WITH_NET=0 COMMAND="$1" @@ -119,6 +121,8 @@ echo "#!/bin/bash" echo "export OBS_SERVICE_APIURL=\"$OBS_SERVICE_APIURL\"" >> "$MOUNTDIR/$INNERSCRIPT" echo "export OBS_SERVICE_BUNDLE_GEMS_MIRROR_URL=\"$OBS_SERVICE_BUNDLE_GEMS_MIRROR_URL\"" >> "$MOUNTDIR/$INNERSCRIPT" echo "export OBS_SERVICE_DAEMON=\"$OBS_SERVICE_DAEMON\"" >> "$MOUNTDIR/$INNERSCRIPT" +echo "export OBS_SERVICE_USER=\"$OBS_SERVICE_USER\"" >> "$MOUNTDIR/$INNERSCRIPT" +echo "export OBS_SERVICE_PASS=\"$OBS_SERVICE_PASS\"" >> "$MOUNTDIR/$INNERSCRIPT" echo "cd $INNERSRCDIR" >> "$MOUNTDIR/$INNERSCRIPT" echo -n "${INNERSCRIPT}.command" >> "$MOUNTDIR/$INNERSCRIPT"