Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
44 commits
Select commit Hold shift + click to select a range
93fa8bd
pure test
ComradeProgrammer Dec 12, 2025
387f296
tmp
ComradeProgrammer Dec 13, 2025
fa30b57
tmp
ComradeProgrammer Dec 13, 2025
d7c9a26
tmp
ComradeProgrammer Dec 13, 2025
8c64f80
tmp
ComradeProgrammer Dec 13, 2025
6a93219
work
ComradeProgrammer Dec 13, 2025
bc380b7
tmp
ComradeProgrammer Dec 13, 2025
516f8c0
tmp
ComradeProgrammer Dec 14, 2025
b5a6586
try vfkit test
ComradeProgrammer Dec 20, 2025
2938500
work
ComradeProgrammer Dec 20, 2025
b48d900
work
ComradeProgrammer Dec 20, 2025
d20801b
work
ComradeProgrammer Dec 20, 2025
4a615b1
work
ComradeProgrammer Dec 20, 2025
4f17383
work
ComradeProgrammer Dec 20, 2025
a693495
tmp
ComradeProgrammer Dec 20, 2025
daa993a
tmp
ComradeProgrammer Dec 20, 2025
20f0c58
tmp
ComradeProgrammer Dec 26, 2025
5160424
rebase
ComradeProgrammer Dec 26, 2025
9869b3d
fix
ComradeProgrammer Dec 28, 2025
85bce0b
work
ComradeProgrammer Dec 28, 2025
cbf2036
tmp
ComradeProgrammer Dec 29, 2025
0ade387
tmp
ComradeProgrammer Dec 29, 2025
820afa4
work
ComradeProgrammer Jan 3, 2026
39aa86a
work
ComradeProgrammer Jan 3, 2026
7c6a7ea
work
ComradeProgrammer Jan 4, 2026
8c355d6
tmp
ComradeProgrammer Jan 4, 2026
5049a7a
tmp
ComradeProgrammer Jan 4, 2026
e315dd2
work
ComradeProgrammer Jan 4, 2026
dee11c4
tmp
ComradeProgrammer Jan 4, 2026
1a18bf2
tmp
ComradeProgrammer Jan 4, 2026
a61b2c0
tmp
ComradeProgrammer Jan 5, 2026
01786f0
work
ComradeProgrammer Jan 6, 2026
8372c84
test release
ComradeProgrammer Jan 6, 2026
38cc3a3
tmp
ComradeProgrammer Jan 6, 2026
07bc994
tmp
ComradeProgrammer Jan 6, 2026
3f7260d
tmp
ComradeProgrammer Jan 6, 2026
417acfb
tmp
ComradeProgrammer Jan 6, 2026
e96f793
test release
ComradeProgrammer Jan 6, 2026
25bdf98
tmp
ComradeProgrammer Jan 6, 2026
21218e5
test
ComradeProgrammer Jan 6, 2026
2b95577
test
ComradeProgrammer Jan 6, 2026
9b4c618
tmp
ComradeProgrammer Jan 6, 2026
9f69208
tmp
ComradeProgrammer Jan 6, 2026
04c375c
tmp
ComradeProgrammer Jan 6, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions hack/prow/boskos-cfg-macos.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
{
"BoskosAcquireTimeoutSeconds": 180,
"BoskosHeartbeatIntervalSeconds": 10,
"BoskosLocation": "http://boskos.test-pods.svc.cluster.local"
}
64 changes: 44 additions & 20 deletions hack/prow/common.sh
Original file line number Diff line number Diff line change
Expand Up @@ -65,52 +65,76 @@ function install_dependencies() {
if [ "$(uname)" != "Darwin" ]; then
sudo apt-get -y install lsof psmisc dnsutils
else
brew install pstree coreutils pidof
# install brew if not present
if ! command -v brew >/dev/null 2>&1; then
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
echo >> /Users/ec2-user/.zprofile
echo 'eval "$(/opt/homebrew/bin/brew shellenv)"' >> /Users/ec2-user/.zprofile
eval "$(/opt/homebrew/bin/brew shellenv)"
fi
# install docker cli
brew install docker


# install vfkit
brew update
brew install vfkit pstree coreutils pidof
ln -s /usr/local/bin/gtimeout /usr/local/bin/timeout || true
# install vmnet shared on macos in non-interactive mode
curl -fsSL https://github.com/minikube-machine/vmnet-helper/releases/latest/download/install.sh | sudo VMNET_INTERACTIVE=0 bash

# ensure go dirs are owned by current user so that go install can write
sudo chown -R $(whoami) $HOME/go
sudo chown -R $(whoami) $HOME/Library/Caches/go-build
fi
# do NOT change manually - only using make update-golang-version
GOLANG_VERSION_TO_INSTALL=1.25.5
# install golang if not present
sudo -E hack/prow/installer/check_install_golang.sh /usr/local $GOLANG_VERSION_TO_INSTALL || true
hack/prow/installer/check_install_golang.sh /usr/local $GOLANG_VERSION_TO_INSTALL || true
# install gotestsum if not present
GOROOT="/usr/local/go" hack/prow/installer/check_install_gotestsum.sh || true
hack/prow/installer/check_install_gotestsum.sh || true
# install gopogh
hack/prow/installer/check_install_gopogh.sh || true

# install jq
if ! type "jq" >/dev/null; then
echo ">> Installing jq"
if [ "${ARCH}" == "arm64" && "${OS}" == "linux" ]; then
# linux arm64
sudo apt-get install jq -y
elif [ "${ARCH}" == "arm64" ]; then
echo "Unable to install 'jq' automatically for arm64 on Darwin, please install 'jq' manually."
exit 5
elif [ "${OS}" != "darwin" ]; then
elif [ "${ARCH}" == "arm64" && "${OS}" == "darwin"]; then
# macos arm64
brew install jq
elif [ "${OS}" == "linux" ]; then
# linux x86
curl -LO https://github.com/stedolan/jq/releases/download/jq-1.6/jq-linux64 && sudo install jq-linux64 /usr/local/bin/jq
else
# macos ax86
curl -LO https://github.com/stedolan/jq/releases/download/jq-1.6/jq-osx-amd64 && sudo install jq-osx-amd64 /usr/local/bin/jq
fi
fi

}

function docker_setup() {

# clean all docker artifacts up
docker system prune -a --volumes -f || true
docker system df || true
docker rm -f -v $(docker ps -aq) >/dev/null 2>&1 || true

# read only token, never expires
#todo: do we need this token
# docker login -u minikubebot -p "$DOCKERHUB_READONLY_TOKEN"
if [ "$(uname)" != "Darwin" ]; then
# clean all docker artifacts up
docker system prune -a --volumes -f || true
docker system df || true
docker rm -f -v $(docker ps -aq) >/dev/null 2>&1 || true

# read only token, never expires
#todo: do we need this token
# docker login -u minikubebot -p "$DOCKERHUB_READONLY_TOKEN"
fi
}

function gvisor_image_build() {
# Build the gvisor image so that we can integration test changes to pkg/gvisor
chmod +x testdata/gvisor-addon

# skipping gvisor mac because ofg https://github.com/kubernetes/minikube/issues/5137
if [ "$(uname)" != "Darwin" ]; then
# Build the gvisor image so that we can integration test changes to pkg/gvisor
chmod +x testdata/gvisor-addon
# Should match GVISOR_IMAGE_VERSION in Makefile
docker build -t gcr.io/k8s-minikube/gvisor-addon:2 -f testdata/gvisor-addon-Dockerfile ./testdata
fi
Expand All @@ -125,8 +149,8 @@ function run_gopogh() {

# this is where the script starts
readonly OS_ARCH="${OS}-${ARCH}"
readonly TEST_ROOT="${HOME}/minikube-integration"
readonly TEST_HOME="${TEST_ROOT}/${MINIKUBE_LOCATION}-$$"
readonly TEST_ROOT="${PWD}/minikube-integration"
readonly TEST_HOME="$(pwd)/${MINIKUBE_LOCATION}-$$"

export GOPATH="$HOME/go"
export KUBECONFIG="${TEST_HOME}/kubeconfig"
Expand Down
7 changes: 3 additions & 4 deletions hack/prow/installer/check_install_containerd.sh
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,8 @@

set -eux -o pipefail

ARCH=${ARCH:=amd64}
OS=$1
ARCH=$2

echo "Installing containerd"
# Install docker's internal containerd if we can, or just install containerd from apt if available,
Expand Down Expand Up @@ -48,6 +49,4 @@ sudo sed -i 's/SystemdCgroup = false/SystemdCgroup = true/' /etc/containerd/conf

sudo systemctl restart containerd

echo "Installing latest kubectl"
curl -LO "https://dl.k8s.io/release/$(curl -sL https://dl.k8s.io/release/stable.txt)/bin/linux/${ARCH}/kubectl"
sudo install ./kubectl /usr/local/bin/kubectl
./hack/prow/installer/check_install_kubectl.sh ${OS} ${ARCH}
7 changes: 3 additions & 4 deletions hack/prow/installer/check_install_docker.sh
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,8 @@

set -eux -o pipefail

ARCH=${ARCH:=amd64}
OS=$1
ARCH=$2


echo "Installing latest docker"
Expand All @@ -26,6 +27,4 @@ rm get-docker.sh

sudo usermod -aG docker minitest || true

echo "Installing latest kubectl"
curl -LO "https://dl.k8s.io/release/$(curl -sL https://dl.k8s.io/release/stable.txt)/bin/linux/${ARCH}/kubectl"
sudo install ./kubectl /usr/local/bin/kubectl
./hack/prow/installer/check_install_kubectl.sh ${OS} ${ARCH}
20 changes: 1 addition & 19 deletions hack/prow/installer/check_install_golang.sh
Original file line number Diff line number Diff line change
Expand Up @@ -50,27 +50,9 @@ ARCH=${ARCH:=$(current_arch)}

# installs or updates golang if right version doesn't exists
function check_and_install_golang() {
if ! go version &>/dev/null; then
echo "WARNING: No golang installation found in your environment."
# always reinstall the requested version to avoid permission issues
install_golang "$VERSION_TO_INSTALL" "$INSTALL_PATH"
return
fi

sudo chown -R $USER:$USER "$INSTALL_PATH"/go

# golang has been installed and check its version
if [[ $(go version | cut -d' ' -f 3) =~ go(([0-9]+)\.([0-9]+).([0-9]+)*) ]]; then
HOST_VERSION=${BASH_REMATCH[1]}
if [ $HOST_VERSION == $VERSION_TO_INSTALL ]; then
echo "go version on the host looks good : $HOST_VERSION"
else
echo "WARNING: expected go version to be $VERSION_TO_INSTALL but got $HOST_VERSION"
install_golang "$VERSION_TO_INSTALL" "$INSTALL_PATH"
fi
else
echo "ERROR: Failed to parse golang version: $(go version)"
return
fi
}

# install_golang takes two parameters version and path to install.
Expand Down
2 changes: 1 addition & 1 deletion hack/prow/installer/check_install_gotestsum.sh
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ set -eux -o pipefail

function install_gotestsum() {
rm -f $(which gotestsum)
sudo env "GOBIN=$GOROOT/bin" "PATH=$PATH" go install gotest.tools/gotestsum@v1.13.0
go install gotest.tools/gotestsum@v1.13.0
}
echo "Installing gotestsum"
which gotestsum || install_gotestsum
25 changes: 25 additions & 0 deletions hack/prow/installer/check_install_kubectl.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
#!/bin/bash

# Copyright 2025 The Kubernetes Authors All rights reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

set -eux -o pipefail

OS=$1
ARCH=$2


echo "Installing latest kubectl for ${ARCH}"
curl -LO "https://dl.k8s.io/release/$(curl -sL https://dl.k8s.io/release/stable.txt)/bin/${OS}/${ARCH}/kubectl"
sudo install ./kubectl /usr/local/bin/kubectl
4 changes: 2 additions & 2 deletions hack/prow/integration_pre_install.sh
Original file line number Diff line number Diff line change
Expand Up @@ -28,11 +28,11 @@ EXTRA_TEST_ARGS=""

# install runtime if not present
if [ "${CONTAINER_RUNTIME}" == "containerd" ]; then
ARCH="$ARCH" hack/prow/installer/check_install_containerd.sh || true
ARCH="$ARCH" hack/prow/installer/check_install_containerd.sh ${OS} ${ARCH} || true
fi

# instsll docker for all of them
ARCH="$ARCH" hack/prow/installer/check_install_docker.sh || true
ARCH="$ARCH" hack/prow/installer/check_install_docker.sh ${OS} ${ARCH} || true
sudo adduser $(whoami) docker || true


Expand Down
40 changes: 40 additions & 0 deletions hack/prow/integration_vfkit_docker_macos_arm64.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
#!/bin/bash

# Copyright 2025 The Kubernetes Authors All rights reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

set -e
set -x

OS="darwin"
ARCH="arm64"
DRIVER="vfkit"
CONTAINER_RUNTIME="docker"
# in prow, if you want libvirtd to be run, you have to start a privileged container as root
EXTRA_START_ARGS="--network=vmnet-shared"
EXTRA_TEST_ARGS="-test.run TestFunctional -binary=out/minikube"
JOB_NAME="KVM_Containerd_Linux_x86"
# marking all directories ('*') as trusted, since .git belongs to root, not minikube user
git config --global --add safe.directory '*'

# aws macos instance doesn't have kubectl pre-installed
./hack/prow/installer/check_install_kubectl.sh ${OS} ${ARCH}

# vmnet-helper breaks when the logfile name is too long(>125 chars), so we use short commit hash here
COMMIT=$(git rev-parse HEAD | cut -c1-8)
MINIKUBE_LOCATION=$COMMIT
echo "running test in $(pwd)"

set -e
source ./hack/prow/common.sh
16 changes: 9 additions & 7 deletions hack/prow/minikube_cross_build.sh
Original file line number Diff line number Diff line change
Expand Up @@ -40,15 +40,17 @@ export MINIKUBE_BIN="out/minikube-${OS_ARCH}"
export E2E_BIN="out/e2e-${OS_ARCH}"
chmod +x "${MINIKUBE_BIN}" "${E2E_BIN}"

BUILT_VERSION=$("out/minikube-$(go env GOOS)-$(go env GOARCH)" version)
echo ${BUILT_VERSION}
if [ "${OS}" != "darwin" ]; then

COMMIT=$(echo ${BUILT_VERSION} | grep 'commit:' | awk '{print $2}')
if (echo ${COMMIT} | grep -q dirty); then
echo "'minikube version' reports dirty commit: ${COMMIT}"
exit 1
fi
BUILT_VERSION=$("out/minikube-${OS_ARCH}" version)
echo ${BUILT_VERSION}

COMMIT=$(echo ${BUILT_VERSION} | grep 'commit:' | awk '{print $2}')
if (echo ${COMMIT} | grep -q dirty); then
echo "'minikube version' reports dirty commit: ${COMMIT}"
exit 1
fi
fi
if [[ "${failed}" -ne 0 ]]; then
echo "build failed"
exit "${failed}"
Expand Down
8 changes: 4 additions & 4 deletions hack/prow/minitest/deployer/boskos_config.go
Original file line number Diff line number Diff line change
Expand Up @@ -17,10 +17,10 @@ limitations under the License.
package deployer

type MiniTestBoskosConfig struct {
GCPZone string
InstanceImage string
InstanceType string
DiskGiB int
GCPZone string `json:"GCPZone,omitempty"`
InstanceImage string `json:"InstanceImage,omitempty"`
InstanceType string `json:"InstanceType,omitempty"`
DiskGiB int `json:"DiskGiB,omitempty"`
// Boskos flags correspond to https://github.com/kubernetes-sigs/kubetest2/blob/71238a9645df6fbd7eaac9a36f635c22f1566168/kubetest2-gce/deployer/deployer.go
BoskosAcquireTimeoutSeconds int
BoskosHeartbeatIntervalSeconds int
Expand Down
Loading
Loading