hs-test: remove non-root user build enforcement 92/43392/2
authorAdrian Villin <[email protected]>
Wed, 13 Aug 2025 15:44:07 +0000 (17:44 +0200)
committerFlorin Coras <[email protected]>
Fri, 15 Aug 2025 04:17:10 +0000 (04:17 +0000)
Type: improvement

Change-Id: I2e85eeea0d65c7a369a0ca7be3e5508d3a2cf90a
Signed-off-by: Adrian Villin <[email protected]>
extras/hs-test/Makefile
extras/hs-test/hs_test.sh
extras/hs-test/infra/common/suite_common.go
extras/hs-test/infra/kind/suite_kind.go
extras/hs-test/script/build_hst.sh

index c88d5a3..bc52c22 100644 (file)
@@ -86,7 +86,6 @@ DOCKER_TTY := -it
 endif
 
 FORCE_BUILD?=true
-BUILD_AS:=$(strip $(shell echo $${SUDO_USER:-$${USER:-root}}))
 
 # privileged is needed for "ip netns" otherwise we are not able to create namespace
 DOCKER_CAPABILITIES:=--privileged
@@ -149,26 +148,17 @@ list-tests:
        @go run github.com/onsi/ginkgo/v2/ginkgo --dry-run -v --no-color --seed=2 | head -n -1 | grep 'test.go' | \
                sed 's/^/* /; s/\(Suite\) /\1\//g'
 
-.PHONY: build-msg
-build-msg:
-       @echo "Building VPP as '$(BUILD_AS)'"
-       @echo "****************************************************************"
-       @echo "If you wish to build VPP as root, use 'make ... BUILD_AS=root'"
-       @echo "or"
-       @echo "'[sudo] SUDO_USER=root make ...'"
-       @echo "****************************************************************"
-
 .PHONY: build-vpp-release
-build-vpp-release: build-msg
-       @sudo -u $(BUILD_AS) $(MAKE) -C ../.. build-release
+build-vpp-release:
+       @$(MAKE) -C ../.. build-release
 
 .PHONY: build-vpp-debug
-build-vpp-debug: build-msg
-       @sudo -u $(BUILD_AS) $(MAKE) -C ../.. build
+build-vpp-debug:
+       @$(MAKE) -C ../.. build
 
 .PHONY: build-vpp-gcov
-build-vpp-gcov: build-msg
-       @sudo -u $(BUILD_AS) $(MAKE) -C ../.. build-gcov
+build-vpp-gcov:
+       @$(MAKE) -C ../.. build-gcov
 
 .build.ok: build
        @touch .build.ok
@@ -260,19 +250,19 @@ build-go:
 .PHONY: build
 build: .deps.ok build-vpp-release
        @rm -f .build.ok
-       bash ./script/build_hst.sh release $(FORCE_BUILD) $(BUILD_AS)
+       bash ./script/build_hst.sh release $(FORCE_BUILD)
        @touch .build.ok
 
 .PHONY: build-cov
 build-cov: .deps.ok build-vpp-gcov
        @rm -f .build.cov.ok
-       bash ./script/build_hst.sh gcov $(FORCE_BUILD) $(BUILD_AS)
+       bash ./script/build_hst.sh gcov $(FORCE_BUILD)
        @touch .build.cov.ok
 
 .PHONY: build-debug
 build-debug: .deps.ok build-vpp-debug
        @rm -f .build.ok
-       bash ./script/build_hst.sh debug $(FORCE_BUILD) $(BUILD_AS)
+       bash ./script/build_hst.sh debug $(FORCE_BUILD)
        @touch .build.ok
 
 .deps.ok:
index c30a759..ac6b407 100755 (executable)
@@ -171,8 +171,7 @@ if [ $focused_test -eq 0 ] && [ $debug_set -eq 1 ]; then
     exit 2
 fi
 
-sudo_user="${SUDO_USER:-${USER:-root}}"
-args="$args -sudo_user $sudo_user"
+args="$args -whoami $(whoami)"
 
 if [ $leak_check_set -eq 1 ]; then
   if [ $focused_test -eq 0 ]; then
index 97dd691..2b7560d 100644 (file)
@@ -18,7 +18,7 @@ import (
 var IsCoverage = flag.Bool("coverage", false, "use coverage run config")
 var IsPersistent = flag.Bool("persist", false, "persists topology config")
 var IsVerbose = flag.Bool("verbose", false, "verbose test output")
-var SudoUser = flag.String("sudo_user", "root", "what user ran hs-test with sudo")
+var WhoAmI = flag.String("whoami", "root", "what user ran hs-test")
 var ParallelTotal = flag.Lookup("ginkgo.parallel.total")
 var IsVppDebug = flag.Bool("debug", false, "attach gdb to vpp")
 var DryRun = flag.Bool("dryrun", false, "set up containers but don't run tests")
index ecbbe1d..1faedc7 100644 (file)
@@ -77,12 +77,12 @@ func (s *KindSuite) SetupSuite() {
        s.initPods()
        s.loadDockerImages()
        var err error
-       if *SudoUser == "root" {
+       if *WhoAmI == "root" {
                s.KubeconfigPath = "/.kube/config"
        } else {
-               s.KubeconfigPath = "/home/" + *SudoUser + "/.kube/config"
+               s.KubeconfigPath = "/home/" + *WhoAmI + "/.kube/config"
        }
-       s.Log("User: '%s'", *SudoUser)
+       s.Log("User: '%s'", *WhoAmI)
        s.Log("Config path: '%s'", s.KubeconfigPath)
 
        s.Config, err = clientcmd.BuildConfigFromFlags("", s.KubeconfigPath)
index f0ad9ae..955e143 100755 (executable)
@@ -1,7 +1,5 @@
 #!/usr/bin/env bash
 
-BUILD_AS=$3
-
 if [ "$(lsb_release -is)" != Ubuntu ]; then
        echo "Host stack test framework is supported only on Ubuntu"
        exit 1
@@ -74,9 +72,9 @@ rm -rf vpp-data/bin/* || true
 rm -rf vpp-data/lib/* || true
 
 declare -i res=0
-sudo -u $BUILD_AS cp ${VPP_BUILD_ROOT}/bin/* ${bin}
+cp ${VPP_BUILD_ROOT}/bin/* ${bin}
 res+=$?
-sudo -u $BUILD_AS cp -r ${VPP_BUILD_ROOT}/lib/"${OS_ARCH}"-linux-gnu/* ${lib}
+cp -r ${VPP_BUILD_ROOT}/lib/"${OS_ARCH}"-linux-gnu/* ${lib}
 res+=$?
 if [ "$res" -ne 0 ]; then
        echo "Failed to copy VPP files. Is VPP built? Try running 'make build' in VPP directory."