Skip to content

Commit daa4528

Browse files
committed
Use ko to build images in Makefile
1 parent 818bf72 commit daa4528

File tree

2 files changed

+14
-8
lines changed

2 files changed

+14
-8
lines changed

webhosting-operator/Makefile

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,9 @@ PROJECT_DIR := $(shell dirname $(abspath $(lastword $(MAKEFILE_LIST))))
22

33
# Image URL to use all building/pushing image targets
44
TAG ?= latest
5-
CONTROLLER_IMG ?= ghcr.io/timebertt/kubernetes-controller-sharding/webhosting-operator:$(TAG)
5+
GHCR_REPO ?= ghcr.io/timebertt/kubernetes-controller-sharding
6+
OPERATOR_IMG ?= $(GHCR_REPO)/webhosting-operator:$(TAG)
7+
68
# ENVTEST_K8S_VERSION refers to the version of kubebuilder assets to be downloaded by envtest binary.
79
ENVTEST_K8S_VERSION = 1.24
810
# set OVERLAY to shoot to configure ingress-nginx with public dns and a TLS certificate
@@ -101,13 +103,12 @@ build: generate fmt vet ## Build manager binary.
101103
run: manifests generate fmt vet ## Run the webhosting-operator from your host.
102104
go run ./cmd/webhosting-operator
103105

104-
.PHONY: docker-build
105-
docker-build: test ## Build docker image with the manager.
106-
docker build -t $(CONTROLLER_IMG) --target webhosting-operator .
106+
PUSH ?= false
107+
images: export KO_DOCKER_REPO = $(GHCR_REPO)
107108

108-
.PHONY: docker-push
109-
docker-push: ## Push docker image with the manager.
110-
docker push $(CONTROLLER_IMG)
109+
.PHONY: images
110+
images: $(KO) ## Build and push container images using ko.
111+
$(KO) build --push=$(PUSH) --sbom none --base-import-paths -t $(TAG) --platform linux/amd64,linux/arm64 ./cmd/webhosting-operator
111112

112113
##@ Deployment
113114

@@ -136,7 +137,7 @@ up dev down: export SKAFFOLD_LABEL = skaffold.dev/run-id=webhosting-operator
136137

137138
.PHONY: deploy
138139
deploy: $(SKAFFOLD) ## Build all images and deploy everything to K8s cluster specified in $KUBECONFIG.
139-
$(SKAFFOLD) deploy --port-forward=user --tail -i $(CONTROLLER_IMG)
140+
$(SKAFFOLD) deploy --port-forward=user --tail -i $(OPERATOR_IMG)
140141

141142
.PHONY: up
142143
up: $(SKAFFOLD) ## Build all images, deploy everything to K8s cluster specified in $KUBECONFIG, start port-forward and tail logs.

webhosting-operator/tools.mk

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,11 @@ $(KIND): $(call tool_version_file,$(KIND),$(KIND_VERSION))
2828
curl -L -o $(KIND) https://kind.sigs.k8s.io/dl/$(KIND_VERSION)/kind-$(shell uname -s | tr '[:upper:]' '[:lower:]')-$(shell uname -m | sed 's/x86_64/amd64/;s/aarch64/arm64/')
2929
chmod +x $(KIND)
3030

31+
KO := $(TOOLS_BIN_DIR)/ko
32+
KO_VERSION ?= v0.14.1
33+
$(KO): $(call tool_version_file,$(KO),$(KO_VERSION))
34+
GOBIN=$(abspath $(TOOLS_BIN_DIR)) go install github.com/google/ko@$(KO_VERSION)
35+
3136
KUBECTL := $(TOOLS_BIN_DIR)/kubectl
3237
KUBECTL_VERSION ?= v1.27.3
3338
$(KUBECTL): $(call tool_version_file,$(KUBECTL),$(KUBECTL_VERSION))

0 commit comments

Comments
 (0)