Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
85 commits
Select commit Hold shift + click to select a range
e3c20a2
Migrate Skaffold presubmits to new Kokoro instance
menahyouyeah Jan 16, 2026
78401b7
gemini fixes
menahyouyeah Jan 20, 2026
87e7bde
remove docker namespace
menahyouyeah Jan 22, 2026
1cccda3
remove docker namespace
menahyouyeah Jan 22, 2026
577f71e
remove GKE_REGION
menahyouyeah Jan 27, 2026
c4fdbb0
fix tab
menahyouyeah Jan 28, 2026
552e556
fix typo
menahyouyeah Jan 28, 2026
3a2d5ee
pull from google's mirror
menahyouyeah Jan 28, 2026
e379cc8
fix typo
menahyouyeah Jan 28, 2026
07526b1
more fixes
menahyouyeah Jan 29, 2026
fe4e128
test comment
menahyouyeah Feb 4, 2026
2e93229
update Makefile for docker auth
menahyouyeah Feb 4, 2026
e15e05e
add more mirroring
menahyouyeah Feb 4, 2026
161cd90
fix flaky tests
menahyouyeah Feb 5, 2026
7c97cb8
more mirror updates
menahyouyeah Feb 5, 2026
2658f26
linter fix
menahyouyeah Feb 5, 2026
a865acf
upgrade to 1.23 for verify example test
menahyouyeah Feb 5, 2026
2ac9fa6
fix go mod issue for grpc test
menahyouyeah Feb 5, 2026
eaf4d5d
more mirroring and added a log line in failed tests
menahyouyeah Feb 6, 2026
c68c567
update cluster names used in tests
menahyouyeah Feb 6, 2026
0716e37
update cluster names used in tests
menahyouyeah Feb 6, 2026
69d6c19
add jib environment variables to Makefile
menahyouyeah Feb 6, 2026
fd3b6d3
remove unused import
menahyouyeah Feb 6, 2026
8885a87
update Makefile
menahyouyeah Feb 6, 2026
cb4a492
update Makefile
menahyouyeah Feb 6, 2026
6e84083
update Makefile
menahyouyeah Feb 6, 2026
5e071ee
update command in integration-in-docker and fix repo path
menahyouyeah Feb 9, 2026
0588108
update Makefile
menahyouyeah Feb 10, 2026
30cc8ef
Makefile updates
menahyouyeah Feb 10, 2026
6d5c55a
Makefile comment
menahyouyeah Feb 10, 2026
0072ab6
Revert Dockerfiles to match synced fork
menahyouyeah Feb 10, 2026
de4d187
merging in the dockerfiles updates
menahyouyeah Feb 10, 2026
5245dd4
more updates
menahyouyeah Feb 10, 2026
af9928c
update all projet names to skaffold-ci-cd
menahyouyeah Feb 11, 2026
180ba73
Makefile fixes
menahyouyeah Feb 11, 2026
fe2df70
fix tests and added comments to Makefile
menahyouyeah Feb 11, 2026
747db64
fix tests and Makefile
menahyouyeah Feb 11, 2026
786bdb6
Makefile typo
menahyouyeah Feb 11, 2026
8049952
helm test fix
menahyouyeah Feb 11, 2026
848f6e9
More fixes
menahyouyeah Feb 11, 2026
a0192ec
More fixes
menahyouyeah Feb 11, 2026
d97335a
fixing docker errors in Makefile
menahyouyeah Feb 12, 2026
c581ee7
fixing docker errors in Makefile
menahyouyeah Feb 12, 2026
43d54c9
AR syntax updates
menahyouyeah Feb 12, 2026
555ea6a
more fixes
menahyouyeah Feb 12, 2026
9b8f70a
more fixes
menahyouyeah Feb 12, 2026
3fbfab6
remove push command
menahyouyeah Feb 12, 2026
71c9419
more Makefile updates
menahyouyeah Feb 12, 2026
7671708
more fixes
menahyouyeah Feb 12, 2026
69a9aa2
more Makefile fixes
menahyouyeah Feb 13, 2026
79c3905
Makefile
menahyouyeah Feb 13, 2026
0638e7c
test fixes
menahyouyeah Feb 13, 2026
5b2d2f2
more fixes
menahyouyeah Feb 13, 2026
552d25a
more fixes
menahyouyeah Feb 13, 2026
5e12734
Makefile syntax
menahyouyeah Feb 13, 2026
83958d6
Makefile syntax
menahyouyeah Feb 13, 2026
feed083
add bootstrap flag
menahyouyeah Feb 13, 2026
ffa08c9
fix helm deployment.yaml
menahyouyeah Feb 13, 2026
a09dae7
fix helm deployment.yaml
menahyouyeah Feb 14, 2026
ea30ca9
update Makefile and helm deployment.yaml
menahyouyeah Feb 17, 2026
82daa3b
more fixes
menahyouyeah Feb 17, 2026
b2658a5
quote error
menahyouyeah Feb 17, 2026
7124682
more fixes
menahyouyeah Feb 17, 2026
e505086
more fixes
menahyouyeah Feb 17, 2026
c5837cb
more fixes
menahyouyeah Feb 18, 2026
2cca858
more fixes
menahyouyeah Feb 18, 2026
22a4ccf
more fixes
menahyouyeah Feb 18, 2026
f6d92ce
more fixes
menahyouyeah Feb 18, 2026
adf43ab
more fixes
menahyouyeah Feb 18, 2026
69bfe97
use mirror
menahyouyeah Feb 18, 2026
7e33799
use mirror
menahyouyeah Feb 18, 2026
4e15239
fix yaml error
menahyouyeah Feb 18, 2026
8bcc664
docker CLI adds
menahyouyeah Feb 19, 2026
f47b439
Makefile updates
menahyouyeah Feb 19, 2026
5a04cfc
skipping one test
menahyouyeah Feb 19, 2026
10f0711
Makefile typo
menahyouyeah Feb 19, 2026
a7a6abd
add back tests also space was in Makefile
menahyouyeah Feb 19, 2026
980e700
fix imports
menahyouyeah Feb 19, 2026
76a78f8
fix imports
menahyouyeah Feb 19, 2026
3487536
more fixes
menahyouyeah Feb 19, 2026
db93f2c
more fixes
menahyouyeah Feb 19, 2026
4d82cf3
more fixes
menahyouyeah Feb 23, 2026
7655332
more fixes
menahyouyeah Feb 23, 2026
7e4817c
more fixes
menahyouyeah Feb 23, 2026
9fe82bd
more fixes
menahyouyeah Feb 24, 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
150 changes: 122 additions & 28 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,39 @@ GCP_ONLY ?= false
GCP_PROJECT ?= k8s-skaffold
GKE_CLUSTER_NAME ?= integration-tests
GKE_ZONE ?= us-central1-a
GKE_REGION=us-central1
AR_REGION ?= us-central1

# Set registry/auth/cluster location based on GCP_PROJECT
ifeq ($(GCP_PROJECT),skaffold-ci-cd)
# Presubmit environment: skaffold-ci-cd project with Artifact Registry
Comment on lines +40 to +41
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

high

The new logic for GCP_PROJECT=skaffold-ci-cd relies on AR_REGION and GKE_REGION variables. However, these variables are not defined with default values, nor are there any checks to ensure they are set. If they are not provided in the environment, they will be empty, leading to malformed values for IMAGE_REPO_BASE and GKE_LOCATION_FLAG, which can cause silent failures or hard-to-debug issues. It's safer to add checks to ensure these required variables are set.

ifeq ($(GCP_PROJECT),skaffold-ci-cd)
  ifndef AR_REGION
    $(error AR_REGION must be set when GCP_PROJECT is skaffold-ci-cd)
  endif
  ifndef GKE_REGION
    $(error GKE_REGION must be set when GCP_PROJECT is skaffold-ci-cd)
  endif
  # Presubmit environment: skaffold-ci-cd project with Artifact Registry

IMAGE_REPO_BASE := $(AR_REGION)-docker.pkg.dev/$(GCP_PROJECT)

# Define full paths including the 4th segment (Image Name) for AR
SKAFFOLD_IMAGE := $(IMAGE_REPO_BASE)/skaffold/skaffold
# Artifact registry does not allow _ in the repo name (with GCR this was
# build_deps).
SKAFFOLD_DEPS_IMAGE := $(IMAGE_REPO_BASE)/builddeps/skaffold-deps
SKAFFOLD_BUILDER_IMAGE := $(IMAGE_REPO_BASE)/skaffold-builder/skaffold-builder

# For Integration Tests: Export a 4-segment default repo
export SKAFFOLD_DEFAULT_REPO := $(IMAGE_REPO_BASE)/testing
GCLOUD_AUTH_CONFIG := $(AR_REGION)-docker.pkg.dev
GKE_LOCATION_FLAG := --region $(GKE_REGION)
$(info Using Artifact Registry config for project: $(GCP_PROJECT))
else
# k8s-skaffold project with GCR
IMAGE_REPO_BASE := gcr.io/$(GCP_PROJECT)

# Define full paths using the 3 segments GCR expects
SKAFFOLD_IMAGE := $(IMAGE_REPO_BASE)/skaffold
SKAFFOLD_DEPS_IMAGE := $(IMAGE_REPO_BASE)/build_deps
SKAFFOLD_BUILDER_IMAGE := $(IMAGE_REPO_BASE)/skaffold-builder

GCLOUD_AUTH_CONFIG := gcr.io
GKE_LOCATION_FLAG := --zone $(GKE_ZONE)
$(info Using GCR config for project: $(GCP_PROJECT))
endif

SUPPORTED_PLATFORMS = linux-amd64 darwin-amd64 windows-amd64.exe linux-arm64 darwin-arm64
BUILD_PACKAGE = $(REPOPATH)/v2/cmd/skaffold
Expand Down Expand Up @@ -142,9 +175,16 @@ integration-tests:
ifeq ($(GCP_ONLY),true)
gcloud container clusters get-credentials \
$(GKE_CLUSTER_NAME) \
--zone $(GKE_ZONE) \
$(GKE_LOCATION_FLAG) \
--project $(GCP_PROJECT)
gcloud auth configure-docker us-central1-docker.pkg.dev

# Conditional Docker authentication: ONLY when GCR is used
ifneq ($(GCP_PROJECT),skaffold-ci-cd)
@echo "Configuring Docker for GCR: $(GCLOUD_AUTH_CONFIG)"
gcloud auth configure-docker $(GCLOUD_AUTH_CONFIG) -q
else
@echo "Docker auth is handled in the build script for skaffold-ci-cd"
endif
endif
@ GCP_ONLY=$(GCP_ONLY) GKE_CLUSTER_NAME=$(GKE_CLUSTER_NAME) ./hack/gotest.sh -v $(REPOPATH)/v2/integration -timeout 50m $(INTEGRATION_TEST_ARGS)

Expand All @@ -155,74 +195,102 @@ integration: install integration-tests
release: $(BUILD_DIR)/VERSION
docker build \
--build-arg VERSION=$(VERSION) \
--build-arg BASE_IMAGE=$(SKAFFOLD_DEPS_IMAGE):latest \
-f deploy/skaffold/Dockerfile \
--target release \
-t gcr.io/$(GCP_PROJECT)/skaffold:$(VERSION) \
-t gcr.io/$(GCP_PROJECT)/skaffold:latest \
-t $(SKAFFOLD_IMAGE):$(VERSION) \
-t $(SKAFFOLD_IMAGE):latest \
.

.PHONY: release-build
release-build:
docker build \
-f deploy/skaffold/Dockerfile \
--build-arg BASE_IMAGE=$(SKAFFOLD_DEPS_IMAGE):latest \
--target release \
-t gcr.io/$(GCP_PROJECT)/skaffold:edge \
-t gcr.io/$(GCP_PROJECT)/skaffold:$(COMMIT) \
-t $(SKAFFOLD_IMAGE):edge \
-t $(SKAFFOLD_IMAGE):$(COMMIT) \
.

.PHONY: release-lts
release-lts: $(BUILD_DIR)/VERSION
docker build \
--build-arg VERSION=$(VERSION) \
--build-arg BASE_IMAGE=$(SKAFFOLD_DEPS_IMAGE):latest \
-f deploy/skaffold/Dockerfile.lts \
--target release \
-t gcr.io/$(GCP_PROJECT)/skaffold:lts \
-t gcr.io/$(GCP_PROJECT)/skaffold:$(VERSION)-lts \
-t gcr.io/$(GCP_PROJECT)/skaffold:$(SCANNING_MARKER)-lts \
-t $(SKAFFOLD_IMAGE):lts \
-t $(SKAFFOLD_IMAGE):$(VERSION)-lts \
-t $(SKAFFOLD_IMAGE):$(SCANNING_MARKER)-lts \
.

.PHONY: release-lts-build
release-lts-build:
docker build \
-f deploy/skaffold/Dockerfile.lts \
--build-arg BASE_IMAGE=$(SKAFFOLD_DEPS_IMAGE):latest \
--target release \
-t gcr.io/$(GCP_PROJECT)/skaffold:edge-lts \
-t gcr.io/$(GCP_PROJECT)/skaffold:$(COMMIT)-lts \
-t $(SKAFFOLD_IMAGE):edge-lts \
-t $(SKAFFOLD_IMAGE):$(COMMIT)-lts \
.

.PHONY: clean
clean:
rm -rf $(BUILD_DIR) hack/bin $(EMBEDDED_FILES_CHECK) fs/assets/schemas_generated/

# Runs a script to calculate a hash/digest of the build dependencies. Store it
# in DEPS_DIGEST. Then push the dependency image to GCR/AR.
.PHONY: build_deps
build_deps:
$(eval DEPS_DIGEST := $(shell ./hack/skaffold-deps-sha1.sh))
docker build \
-f deploy/skaffold/Dockerfile.deps \
-t gcr.io/$(GCP_PROJECT)/build_deps:$(DEPS_DIGEST) \
-t $(SKAFFOLD_DEPS_IMAGE):$(DEPS_DIGEST) \
-t $(SKAFFOLD_DEPS_IMAGE):latest \
deploy/skaffold
docker push gcr.io/$(GCP_PROJECT)/build_deps:$(DEPS_DIGEST)

# Prepares the Docker images needed to run integration tests.
# First part builds the base image containing all build-time dependencies and pushes to AR.
# Second part builds the actual image used for running the integration tests,
# using the 'builddeps' image as a base. It build only up to the 'builder' stage
# in the Dockerfile.
#
# The push flag is needed to tell Buildx to build the image and push it directly to AR.
# AR supports multi-architecture images and manifest lists so this will pass for hybrid tests.
# Note: --provenance=false and --sbom=false are required because modern Buildx
# attempts to push attestation manifests that are currently rejected by
# GCP Artifact Registry with a '400 Bad Request' error.
# --cache-from $(IMAGE_REPO_BASE)/$(BUILD_DEPS_REPO_NAME)
skaffold-builder-ci:
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

critical

The skaffold-builder-ci target uses the DEPS_DIGEST variable in a --cache-from flag, but DEPS_DIGEST is not defined within this target's scope. This will result in DEPS_DIGEST being empty, causing the cache to be missed or pointing to an incorrect image tag. You should define DEPS_DIGEST within the skaffold-builder-ci target.

skaffold-builder-ci:
	$(eval DEPS_DIGEST := $(shell ./hack/skaffold-deps-sha1.sh))

docker build \
--cache-from gcr.io/$(GCP_PROJECT)/build_deps \
docker system prune -a -f
docker buildx build \
--provenance=false \
--sbom=false \
--push \
-f deploy/skaffold/Dockerfile.deps \
-t gcr.io/$(GCP_PROJECT)/build_deps \
-t $(SKAFFOLD_DEPS_IMAGE):latest \
.
time docker build \

time docker buildx build \
--provenance=false \
--sbom=false \
--push \
-f deploy/skaffold/Dockerfile \
--target builder \
-t gcr.io/$(GCP_PROJECT)/skaffold-builder \
-t $(SKAFFOLD_BUILDER_IMAGE):latest \
.

.PHONY: skaffold-builder
skaffold-builder:
time docker build \
time docker buildx build \
--provenance=false --sbom=false --push \
-f deploy/skaffold/Dockerfile \
--build-arg BASE_IMAGE=$(SKAFFOLD_DEPS_IMAGE):latest \
--target builder \
-t gcr.io/$(GCP_PROJECT)/skaffold-builder \
-t $(SKAFFOLD_BUILDER_IMAGE):latest \
.

# Run integration tests within a local kind (Kubernetes IN Docker) cluster.
.PHONY: integration-in-kind
integration-in-kind: skaffold-builder
echo '{}' > /tmp/docker-config
Expand All @@ -232,12 +300,11 @@ integration-in-kind: skaffold-builder
-v $(HOME)/.gradle:/root/.gradle \
-v $(HOME)/.cache:/root/.cache \
-v /tmp/docker-config:/root/.docker/config.json \
-v $(CURDIR)/hack/maven/settings.xml:/root/.m2/settings.xml \
-e KUBECONFIG=/tmp/kind-config \
-e INTEGRATION_TEST_ARGS=$(INTEGRATION_TEST_ARGS) \
-e IT_PARTITION=$(IT_PARTITION) \
--network kind \
gcr.io/$(GCP_PROJECT)/skaffold-builder \
$(SKAFFOLD_BUILDER_IMAGE) \
sh -eu -c ' \
if ! kind get clusters | grep -q kind; then \
trap "kind delete cluster" 0 1 2 15; \
Expand All @@ -262,7 +329,7 @@ integration-in-k3d: skaffold-builder
-v $(CURDIR)/hack/maven/settings.xml:/root/.m2/settings.xml \
-e INTEGRATION_TEST_ARGS=$(INTEGRATION_TEST_ARGS) \
-e IT_PARTITION=$(IT_PARTITION) \
gcr.io/$(GCP_PROJECT)/skaffold-builder \
$(SKAFFOLD_BUILDER_IMAGE) \
sh -eu -c ' \
if ! k3d cluster list | grep -q k3s-default; then \
trap "k3d cluster delete" 0 1 2 15; \
Expand All @@ -276,27 +343,54 @@ integration-in-k3d: skaffold-builder
make integration \
'

# The `gcloud auth configure-docker` below is needed this starts a separate
# container (us-central1-docker.pkg.dev/skaffold-ci-cd/skaffold-builder) to run
# the tests. This inner container doesn't inherit the Docker configuration from
# the host.
# On these new Kokoro instances, the standard Docker driver doesn't support the
# multi-platform manifest lists that Skaffold builds for its hybrid tests.
.PHONY: integration-in-docker
integration-in-docker: skaffold-builder-ci
docker run --privileged --rm mirror.gcr.io/tonistiigi/binfmt --install all
docker run --rm \
-v /var/run/docker.sock:/var/run/docker.sock \
-v $(HOME)/.config/gcloud:/root/.config/gcloud \
-v $(GOOGLE_APPLICATION_CREDENTIALS):$(GOOGLE_APPLICATION_CREDENTIALS) \
-v $(CURDIR)/hack/maven/settings.xml:/root/.m2/settings.xml \
-v $(HOME)/.docker:/root/.docker \
-e GCP_ONLY=$(GCP_ONLY) \
-e GCP_PROJECT=$(GCP_PROJECT) \
-e AR_REGION=$(AR_REGION) \
-e GKE_CLUSTER_NAME=$(GKE_CLUSTER_NAME) \
-e GKE_ZONE=$(GKE_ZONE) \
-e DOCKER_CONFIG=/root/.docker \
-e GOOGLE_APPLICATION_CREDENTIALS=$(GOOGLE_APPLICATION_CREDENTIALS) \
-e DOCKER_BUILDKIT=1 \
-e INTEGRATION_TEST_ARGS=$(INTEGRATION_TEST_ARGS) \
-e IT_PARTITION=$(IT_PARTITION) \
gcr.io/$(GCP_PROJECT)/skaffold-builder \
make integration-tests
-e MAVEN_OPTS \
-e GRADLE_USER_HOME \
$(SKAFFOLD_BUILDER_IMAGE) \
sh -c "gcloud auth configure-docker us-central1-docker.pkg.dev -q && \
if [ \"\$${GKE_CLUSTER_NAME}\" = \"presubmit-hybrid\" ]; then \
echo 'Using docker-container driver for hybrid tests'; \
docker buildx rm skaffold-builder || true; \
docker buildx create --use --name skaffold-builder --driver docker-container --driver-opt network=host --platform linux/amd64,linux/arm64 --bootstrap; \
BUILDER=skaffold-builder; \
else \
echo 'Using default driver for standard tests'; \
docker buildx use default; \
BUILDER=default; \
fi && \
export BUILDX_BUILDER=\$$BUILDER && \
echo 'DEBUG: Current buildx builder:'; docker buildx ls && \
echo \"DEBUG: BUILDX_BUILDER variable is set to: \$$BUILDX_BUILDER\" && \
echo 'DEBUG: Active gcloud account:'; gcloud auth list && \
BUILDX_BUILDER=\$$BUILDER make integration-tests"



.PHONY: submit-build-trigger
submit-build-trigger:
gcloud builds submit . \
--project=$(GCP_PROJECT) \
--config=deploy/cloudbuild.yaml \
--substitutions="_RELEASE_BUCKET=$(RELEASE_BUCKET),COMMIT_SHA=$(COMMIT)"

Expand Down
3 changes: 2 additions & 1 deletion deploy/skaffold/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -12,8 +12,9 @@
# See the License for the specific language governing permissions and
# limitations under the License.

ARG BASE_IMAGE=gcr.io/k8s-skaffold/build_deps:latest
# This base image is built using docker from cache every single time as build step.
FROM gcr.io/k8s-skaffold/build_deps:latest as build
FROM ${BASE_IMAGE} as build
WORKDIR /skaffold

FROM build as builder
Expand Down
2 changes: 1 addition & 1 deletion deploy/skaffold/Dockerfile.deps
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ ARG BASE_PREFIX=mirror.gcr.io/library/
ARG ARCH=amd64

FROM ${BASE_PREFIX}docker:28.1.1 as docker-source
FROM docker/buildx-bin:0.23.0 as buildx-source
FROM docker/buildx-bin:0.31.1 as buildx-source
FROM ${BASE_PREFIX}golang:1.25.5 as golang-source

# Download kubectl
Expand Down
4 changes: 2 additions & 2 deletions examples/cross-platform-builds/Dockerfile
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
ARG BASE_PREFIX=mirror.gcr.io/library/
FROM ${BASE_PREFIX}golang:1.18 as builder
FROM ${BASE_PREFIX}golang:1.23 as builder
WORKDIR /code
COPY main.go .
COPY go.mod .
# `skaffold debug` sets SKAFFOLD_GO_GCFLAGS to disable compiler optimizations
ARG SKAFFOLD_GO_GCFLAGS
RUN go build -gcflags="${SKAFFOLD_GO_GCFLAGS}" -trimpath -o /app main.go

FROM ${BASE_PREFIX}alpine:3
FROM ${BASE_PREFIX}alpine:3.20
# Define GOTRACEBACK to mark this container as using the Go language runtime
# for `skaffold debug` (https://skaffold.dev/docs/workflows/debug/).
ENV GOTRACEBACK=single
Expand Down
14 changes: 13 additions & 1 deletion examples/cross-platform-builds/k8s-pod.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,18 @@ kind: Pod
metadata:
name: getting-started
spec:
tolerations:
- operator: "Exists"
affinity:
nodeAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
nodeSelectorTerms:
- matchExpressions:
- key: kubernetes.io/arch
operator: In
values:
- amd64
- arm64
containers:
- name: getting-started
image: skaffold-example
image: skaffold-example
1 change: 1 addition & 0 deletions examples/cross-platform-builds/skaffold.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ build:
gitCommit: {}
local:
concurrency: 1
useDockerCLI: true
manifests:
rawYaml:
- k8s-*
Expand Down
2 changes: 2 additions & 0 deletions examples/helm-deployment/charts/templates/deployment.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,8 @@ spec:
labels:
app: {{ .Chart.Name }}
spec:
tolerations:
- operator: "Exists"
containers:
- name: {{ .Chart.Name }}
image: {{ .Values.image }}
2 changes: 1 addition & 1 deletion examples/nodejs/backend/Dockerfile
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
ARG BASE_PREFIX=mirror.gcr.io/library/
FROM node:14.9-alpine
FROM ${BASE_PREFIX}node:14.9-alpine

USER node
RUN mkdir /home/node/app
Expand Down
14 changes: 10 additions & 4 deletions hack/kokoro/presubmit.sh
Original file line number Diff line number Diff line change
Expand Up @@ -14,10 +14,16 @@
# See the License for the specific language governing permissions and
# limitations under the License.

export DOCKER_NAMESPACE=gcr.io/k8s-skaffold
source $KOKORO_GFILE_DIR/common.sh

# Changes the current directory to where Kokoro has checked out the GitHub repository.
pushd $KOKORO_ARTIFACTS_DIR/github/skaffold >/dev/null
GCP_ONLY=true make integration-in-docker
# Prevent Jib (Maven/Gradle) from crashing on Kokoro.
# Kokoro is a "clean" environment and doesn't have a Maven settings file (~/.m2/settings.xml).
# When Skaffold tries to sync that non-existent file into a Docker container, Docker
# mistakenly creates a FOLDER named 'settings.xml' instead. Jib then crashes because
# it can't read a folder as a configuration file.
# Pointing home to /tmp avoids this file-vs-folder conflict.
export MAVEN_OPTS="-Duser.home=/tmp"
export GRADLE_USER_HOME="/tmp/.gradle"
GCP_ONLY=true GCP_PROJECT=skaffold-ci-cd AR_REGION=us-central1 GKE_REGION=us-central1 make integration-in-docker
popd

2 changes: 2 additions & 0 deletions hack/tests/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,8 @@ func main() {
}

func goTest(testArgs []string) error {
fmt.Printf("DEBUG: hack/tests/main.go - BUILDX_BUILDER=\"%s\"\n", os.Getenv("BUILDX_BUILDER"))

args := append([]string{"test", "-json"}, testArgs...)
verbose := isVerbose(testArgs)

Expand Down
Loading
Loading