1+ #! /bin/bash
2+
3+ # Copyright 2025 The Kubernetes Authors All rights reserved.
4+ #
5+ # Licensed under the Apache License, Version 2.0 (the "License");
6+ # you may not use this file except in compliance with the License.
7+ # You may obtain a copy of the License at
8+ #
9+ # http://www.apache.org/licenses/LICENSE-2.0
10+ #
11+ # Unless required by applicable law or agreed to in writing, software
12+ # distributed under the License is distributed on an "AS IS" BASIS,
13+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14+ # See the License for the specific language governing permissions and
15+ # limitations under the License.
16+
17+ set -e
18+ set -x
19+
20+ # when docker is the driver, we run integration tests directly in prow cluster
21+ # by default, prow jobs run in root, so we must switch to a non-root user to run docker driver
22+ NEW_USER=" minikube"
23+ TARGET_SCRIPT=$1
24+
25+ if [ " $( whoami) " == " root" ]; then
26+ useradd -m -s /bin/bash " $NEW_USER "
27+ fi
28+ chown -R " $NEW_USER " :" $NEW_USER " .
29+ # install sudo if not present
30+ apt-get update && apt-get install -y sudo
31+ # give the new user passwordless sudo
32+ echo " $NEW_USER ALL=(ALL) NOPASSWD:ALL" > " /etc/sudoers.d/$NEW_USER "
33+ chmod 440 " /etc/sudoers.d/$NEW_USER "
34+ # add the new user to the docker group
35+ usermod -aG docker " $NEW_USER "
36+ # exec the target script as the new user
37+ su " $NEW_USER " -c " $TARGET_SCRIPT "
0 commit comments