forked from llm-d-incubation/llm-d-fast-model-actuation
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathMakefile
More file actions
152 lines (119 loc) · 5.51 KB
/
Makefile
File metadata and controls
152 lines (119 loc) · 5.51 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
CONTAINER_IMG_REG ?= my-registry/my-namespace
LAUNCHER_IMG_REPO ?= launcher
LAUNCHER_IMG_TAG ?= $(shell git rev-parse --short HEAD)
LAUNCHER_IMAGE := $(CONTAINER_IMG_REG)/$(LAUNCHER_IMG_REPO):$(LAUNCHER_IMG_TAG)
REQUESTER_IMG_REPO ?= requester
REQUESTER_IMG_TAG ?= latest
REQUESTER_IMAGE := $(CONTAINER_IMG_REG)/$(REQUESTER_IMG_REPO):$(REQUESTER_IMG_TAG)
IMAGE_TAG ?= $(shell git rev-parse --short HEAD)
CONTROLLER_IMG ?= $(CONTAINER_IMG_REG)/dual-pods-controller:$(IMAGE_TAG)
TEST_REQUESTER_IMG ?= $(CONTAINER_IMG_REG)/test-requester:$(IMAGE_TAG)
TEST_SERVER_IMG ?= $(CONTAINER_IMG_REG)/test-server:$(IMAGE_TAG)
TEST_LAUNCHER_IMG ?= $(CONTAINER_IMG_REG)/test-launcher:$(IMAGE_TAG)
POPULATOR_IMG ?= $(CONTAINER_IMG_REG)/launcher-populator:$(IMAGE_TAG)
TARGETARCH ?= $(shell go env GOARCH)
CLUSTER_NAME ?= fmatest
.PHONY: build-launcher
build-launcher:
docker build -t $(LAUNCHER_IMAGE) -f dockerfiles/Dockerfile.launcher.benchmark . --progress=plain --platform linux/amd64
.PHONY: push-launcher
push-launcher:
docker push $(LAUNCHER_IMAGE)
.PHONY: build-and-push-launcher
build-and-push-launcher:
docker buildx build --push -t $(LAUNCHER_IMAGE) -f dockerfiles/Dockerfile.launcher.benchmark . --progress=plain --platform linux/amd64
.PHONY: build-requester
build-requester:
docker build -t $(REQUESTER_IMAGE) -f dockerfiles/Dockerfile.requester . --progress=plain --platform=linux/$(TARGETARCH)
.PHONY: push-requester
push-requester:
docker push $(REQUESTER_IMAGE)
.PHONY: build--and-push-requester ## multi-platform
build-and-push-requester:
docker buildx build --push -t $(REQUESTER_IMAGE) -f dockerfiles/Dockerfile.requester . --progress=plain --platform linux/amd64,linux/arm64
.PHONY: build-controller-local
build-controller-local:
KO_DOCKER_REPO=ko.local ko build -B ./cmd/dual-pods-controller -t ${IMAGE_TAG} --platform linux/$(shell go env GOARCH)
docker tag ko.local/dual-pods-controller:${IMAGE_TAG} ${CONTROLLER_IMG}
.PHONY: load-controller-local
load-controller-local:
kind load docker-image ${CONTROLLER_IMG} --name ${CLUSTER_NAME}
.PHONY: build-controller
build-controller:
KO_DOCKER_REPO=$(CONTAINER_IMG_REG) ko build -B ./cmd/dual-pods-controller -t ${IMAGE_TAG} --platform all
.PHONY: build-test-requester-local
build-test-requester-local:
KO_DOCKER_REPO=ko.local ko build -B ./cmd/test-requester -t ${IMAGE_TAG} --platform linux/$(shell go env GOARCH)
docker tag ko.local/test-requester:${IMAGE_TAG} ${TEST_REQUESTER_IMG}
.PHONY: load-test-requester-local
load-test-requester-local:
kind load docker-image ${TEST_REQUESTER_IMG} --name ${CLUSTER_NAME}
.PHONY: build-test-server-local
build-test-server-local:
KO_DOCKER_REPO=ko.local ko build -B ./cmd/test-server -t ${IMAGE_TAG} --platform linux/$(shell go env GOARCH)
docker tag ko.local/test-server:${IMAGE_TAG} ${TEST_SERVER_IMG}
.PHONY: load-test-server-local
load-test-server-local:
kind load docker-image ${TEST_SERVER_IMG} --name ${CLUSTER_NAME}
.PHONY: build-test-launcher-local
build-test-launcher-local:
docker build -t ${TEST_LAUNCHER_IMG} -f dockerfiles/Dockerfile.launcher.cpu . --progress=plain --platform linux/$(shell go env GOARCH)
.PHONY: load-test-launcher-local
load-test-launcher-local:
kind load docker-image ${TEST_LAUNCHER_IMG} --name ${CLUSTER_NAME}
.PHONY: build-populator-local
build-populator-local:
KO_DOCKER_REPO=ko.local ko build -B ./cmd/launcher-populator -t ${IMAGE_TAG} --platform linux/$(shell go env GOARCH)
docker tag ko.local/launcher-populator:${IMAGE_TAG} ${POPULATOR_IMG}
.PHONY: load-populator-local
load-populator-local:
kind load docker-image ${POPULATOR_IMG} --name ${CLUSTER_NAME}
.PHONY: build-populator
build-populator:
KO_DOCKER_REPO=$(CONTAINER_IMG_REG) ko build -B ./cmd/launcher-populator -t ${IMAGE_TAG} --platform all
.PHONY: echo-var
echo-var:
@echo "$($(VAR))"
## Location to install dependencies to
TOOLDIR ?= $(shell pwd)/hack/tools
TOOLBIN ?= $(TOOLDIR)/bin
$(TOOLBIN):
mkdir -p $(TOOLBIN)
## Tools
CONTROLLER_GEN ?= $(TOOLBIN)/controller-gen
CONTROLLER_TOOLS_VERSION ?= v0.19.0
CONTROLLER_GEN_VERSION ?= $(CONTROLLER_GEN)-$(CONTROLLER_TOOLS_VERSION)
CODE_GEN_VERSION ?= v0.34.6
KUBE_CODEGEN_TAG := release-1.34
CODE_GEN_DIR ?= $(TOOLDIR)/code-generator-$(CODE_GEN_VERSION)
export CODE_GEN_DIR KUBE_CODEGEN_TAG
$(CONTROLLER_GEN_VERSION): $(TOOLBIN)
$(call go-install-tool,$(CONTROLLER_GEN),sigs.k8s.io/controller-tools/cmd/controller-gen,$(CONTROLLER_TOOLS_VERSION))
$(CODE_GEN_DIR):
mkdir -p $(TOOLDIR)
git clone -b $(CODE_GEN_VERSION) --depth 1 https://github.com/kubernetes/code-generator.git $(CODE_GEN_DIR)
.PHONY: manifests
manifests: $(CONTROLLER_GEN_VERSION) ## Generate WebhookConfiguration, ClusterRole and CustomResourceDefinition objects.
$(CONTROLLER_GEN_VERSION) crd paths=./api/...
.PHONY: generate
generate: $(CONTROLLER_GEN_VERSION) ## Generate code containing DeepCopy, DeepCopyInto, and DeepCopyObject method implementations.
$(CONTROLLER_GEN_VERSION) object:headerFile="hack/boilerplate.go.txt" paths="./api/..."
.PHONY: generate_client
generate_client: $(CODE_GEN_DIR) ## (Re-)generate generated files
./hack/generate-client.sh
# go-install-tool will 'go install' any package with custom target and name of binary, if it doesn't exist
# $1 - target path with name of binary
# $2 - package url which can be installed
# $3 - specific version of package
define go-install-tool
set -e; \
if [ -z "$(1)" ]; then \
echo "Error: Target path is empty but must not be"; \
exit 1; \
fi; \
package=$(2)@$(3) ;\
echo "Downloading $${package}" ;\
rm -f $(1) || true ;\
GOBIN=$(TOOLBIN) go install $${package} ;\
mv $(1) $(1)-$(3)
endef