Skip to content

Commit 389b8a1

Browse files
authored
Merge branch 'master' into YUNIKORN-3204
2 parents 3f91134 + d4babeb commit 389b8a1

25 files changed

Lines changed: 368 additions & 1356 deletions

File tree

.github/workflows/weekly-e2e.yml

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,6 @@ jobs:
2424
v1.25.16,
2525
v1.24.17,
2626
]
27-
plugin: ["", "--plugin"]
2827
steps:
2928
- name: Checkout source code
3029
uses: actions/checkout@v4
@@ -49,13 +48,12 @@ jobs:
4948
key: ${{ runner.os }}-e2e-${{ hashFiles('Makefile') }}
5049
restore-keys: |
5150
${{ runner.os }}-e2e-
52-
- run: ./scripts/run-e2e-tests.sh -a "test" -n "yk8s" -v "kindest/node:${KIND_NODE_IMAGE}" ${KIND_EXTRA_ARGS}
51+
- run: ./scripts/run-e2e-tests.sh -a "test" -n "yk8s" -v "kindest/node:${KIND_NODE_IMAGE}"
5352
env:
5453
KIND_NODE_IMAGE: ${{ matrix.k8s }}
55-
KIND_EXTRA_ARGS: ${{ matrix.plugin }}
5654
- name: Upload artifacts
5755
uses: actions/upload-artifact@v6
5856
if: ${{ failure() }}
5957
with:
60-
name: ${{ github.job }} stdout (${{ matrix.k8s }}${{ matrix.plugin == '--plugin' && format(', {0}', matrix.plugin) || matrix.plugin }})
58+
name: ${{ github.job }} stdout (${{ matrix.k8s }})
6159
path: build/e2e

Makefile

Lines changed: 8 additions & 147 deletions
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,6 @@ COVERAGE_DIR=${OUTPUT}/instrumented
5454

5555
# Binary names
5656
SCHEDULER_BINARY=yunikorn-scheduler
57-
PLUGIN_BINARY=yunikorn-scheduler-plugin
5857
ADMISSION_CONTROLLER_BINARY=yunikorn-admission-controller
5958
TEST_SERVER_BINARY=web-test-server
6059

@@ -76,11 +75,6 @@ endif
7675
ifeq ($(CLUSTER_NAME),)
7776
CLUSTER_NAME := yk8s
7877
endif
79-
ifeq ($(PLUGIN),1)
80-
PLUGIN_OPTS := --plugin
81-
else
82-
PLUGIN_OPTS :=
83-
endif
8478

8579
# Reproducible builds mode
8680
GO_REPRO_VERSION := $(shell cat .go_repro_version)
@@ -234,26 +228,14 @@ export GO111MODULE
234228
ifeq ($(SCHEDULER_TAG),)
235229
SCHEDULER_TAG := $(REGISTRY)/yunikorn:scheduler-$(DOCKER_ARCH)-$(VERSION)
236230
endif
237-
ifeq ($(PLUGIN_TAG),)
238-
PLUGIN_TAG := $(REGISTRY)/yunikorn:scheduler-plugin-$(DOCKER_ARCH)-$(VERSION)
239-
endif
240231
ifeq ($(ADMISSION_TAG),)
241232
ADMISSION_TAG := $(REGISTRY)/yunikorn:admission-$(DOCKER_ARCH)-$(VERSION)
242233
endif
243234

244235
SCHEDULER_INSTRUMENTED_TAG := $(SCHEDULER_TAG)-instrumented
245-
PLUGIN_INSTRUMENTED_TAG := $(PLUGIN_TAG)-instrumented
246236

247237
all:
248-
$(MAKE) -C $(dir $(BASE_DIR)) init build build_plugin
249-
250-
# Ensure generated files are present
251-
.PHONY: init
252-
init: conf/scheduler-config-local.yaml
253-
254-
# Generate local scheduler config
255-
conf/scheduler-config-local.yaml: conf/scheduler-config.yaml
256-
./scripts/plugin-conf-gen.sh $(KUBECONFIG) "conf/scheduler-config.yaml" "conf/scheduler-config-local.yaml"
238+
$(MAKE) -C $(dir $(BASE_DIR)) build
257239

258240
# Print tools version
259241
.PHONY: print_kubectl_version
@@ -406,16 +388,6 @@ run: build
406388
cd ${DEV_BIN_DIR} && \
407389
KUBECONFIG="$(KUBECONFIG)" ./${SCHEDULER_BINARY}
408390

409-
.PHONY: run_plugin
410-
run_plugin: build_plugin
411-
@echo "running scheduler plugin locally"
412-
cd ${DEV_BIN_DIR} && \
413-
KUBECONFIG="$(KUBECONFIG)" \
414-
./${PLUGIN_BINARY} \
415-
--bind-address=0.0.0.0 \
416-
--config=../../conf/scheduler-config-local.yaml \
417-
-v=2
418-
419391
# Build scheduler binary for dev and test
420392
.PHONY: build
421393
build: $(DEV_BIN_DIR)/$(SCHEDULER_BINARY)
@@ -426,21 +398,9 @@ $(DEV_BIN_DIR)/$(SCHEDULER_BINARY): go.mod go.sum $(shell find pkg)
426398
"$(GO)" build \
427399
-o=${DEV_BIN_DIR}/${SCHEDULER_BINARY} \
428400
-race \
429-
-ldflags '-buildid= -X ${FLAG_PREFIX}.buildVersion=${VERSION} -X ${FLAG_PREFIX}.buildDate=${DATE} -X ${FLAG_PREFIX}.isPluginVersion=false -X ${FLAG_PREFIX}.goVersion=${GO_VERSION} -X ${FLAG_PREFIX}.arch=${EXEC_ARCH} -X ${FLAG_PREFIX}.coreSHA=${CORE_SHA} -X ${FLAG_PREFIX}.siSHA=${SI_SHA} -X ${FLAG_PREFIX}.shimSHA=${SHIM_SHA}' \
401+
-ldflags '-buildid= -X ${FLAG_PREFIX}.buildVersion=${VERSION} -X ${FLAG_PREFIX}.buildDate=${DATE} -X ${FLAG_PREFIX}.goVersion=${GO_VERSION} -X ${FLAG_PREFIX}.arch=${EXEC_ARCH} -X ${FLAG_PREFIX}.coreSHA=${CORE_SHA} -X ${FLAG_PREFIX}.siSHA=${SI_SHA} -X ${FLAG_PREFIX}.shimSHA=${SHIM_SHA}' \
430402
./pkg/cmd/shim/
431403

432-
.PHONY: build_plugin
433-
build_plugin: $(DEV_BIN_DIR)/$(PLUGIN_BINARY)
434-
435-
$(DEV_BIN_DIR)/$(PLUGIN_BINARY): go.mod go.sum $(shell find pkg)
436-
@echo "building scheduler plugin binary"
437-
@mkdir -p "$(DEV_BIN_DIR)"
438-
"$(GO)" build \
439-
-o=${DEV_BIN_DIR}/${PLUGIN_BINARY} \
440-
-race \
441-
-ldflags '-buildid= -X ${FLAG_PREFIX}.buildVersion=${VERSION} -X ${FLAG_PREFIX}.buildDate=${DATE} -X ${FLAG_PREFIX}.isPluginVersion=true -X ${FLAG_PREFIX}.goVersion=${GO_VERSION} -X ${FLAG_PREFIX}.arch=${EXEC_ARCH} -X ${FLAG_PREFIX}.coreSHA=${CORE_SHA} -X ${FLAG_PREFIX}.siSHA=${SI_SHA} -X ${FLAG_PREFIX}.shimSHA=${SHIM_SHA}' \
442-
./pkg/cmd/schedulerplugin/
443-
444404
# Build scheduler binary in a production ready version
445405
.PHONY: scheduler
446406
scheduler: $(RELEASE_BIN_DIR)/$(SCHEDULER_BINARY)
@@ -454,15 +414,15 @@ ifeq ($(REPRO),1)
454414
-a \
455415
-o=${RELEASE_BIN_DIR}/${SCHEDULER_BINARY} \
456416
-trimpath \
457-
-ldflags '-buildid= -extldflags \"-static\" -X ${FLAG_PREFIX}.buildVersion=${VERSION} -X ${FLAG_PREFIX}.buildDate=${DATE} -X ${FLAG_PREFIX}.isPluginVersion=false -X ${FLAG_PREFIX}.goVersion=${GO_REPRO_VERSION} -X ${FLAG_PREFIX}.arch=${EXEC_ARCH} -X ${FLAG_PREFIX}.coreSHA=${CORE_SHA} -X ${FLAG_PREFIX}.siSHA=${SI_SHA} -X ${FLAG_PREFIX}.shimSHA=${SHIM_SHA}' \
417+
-ldflags '-buildid= -extldflags \"-static\" -X ${FLAG_PREFIX}.buildVersion=${VERSION} -X ${FLAG_PREFIX}.buildDate=${DATE} -X ${FLAG_PREFIX}.goVersion=${GO_REPRO_VERSION} -X ${FLAG_PREFIX}.arch=${EXEC_ARCH} -X ${FLAG_PREFIX}.coreSHA=${CORE_SHA} -X ${FLAG_PREFIX}.siSHA=${SI_SHA} -X ${FLAG_PREFIX}.shimSHA=${SHIM_SHA}' \
458418
-tags netgo \
459419
./pkg/cmd/shim/"
460420
else
461421
CGO_ENABLED=0 GOOS=linux GOARCH="${EXEC_ARCH}" "$(GO)" build \
462422
-a \
463423
-o=${RELEASE_BIN_DIR}/${SCHEDULER_BINARY} \
464424
-trimpath \
465-
-ldflags '-buildid= -extldflags "-static" -X ${FLAG_PREFIX}.buildVersion=${VERSION} -X ${FLAG_PREFIX}.buildDate=${DATE} -X ${FLAG_PREFIX}.isPluginVersion=false -X ${FLAG_PREFIX}.goVersion=${GO_VERSION} -X ${FLAG_PREFIX}.arch=${EXEC_ARCH} -X ${FLAG_PREFIX}.coreSHA=${CORE_SHA} -X ${FLAG_PREFIX}.siSHA=${SI_SHA} -X ${FLAG_PREFIX}.shimSHA=${SHIM_SHA}' \
425+
-ldflags '-buildid= -extldflags "-static" -X ${FLAG_PREFIX}.buildVersion=${VERSION} -X ${FLAG_PREFIX}.buildDate=${DATE} -X ${FLAG_PREFIX}.goVersion=${GO_VERSION} -X ${FLAG_PREFIX}.arch=${EXEC_ARCH} -X ${FLAG_PREFIX}.coreSHA=${CORE_SHA} -X ${FLAG_PREFIX}.siSHA=${SI_SHA} -X ${FLAG_PREFIX}.shimSHA=${SHIM_SHA}' \
466426
-tags netgo \
467427
./pkg/cmd/shim/
468428
endif
@@ -477,50 +437,10 @@ $(COVERAGE_DIR)/$(SCHEDULER_BINARY): go.mod go.sum $(shell find pkg)
477437
-a \
478438
-o=${COVERAGE_DIR}/${SCHEDULER_BINARY} \
479439
-trimpath \
480-
-ldflags '-buildid= -extldflags "-static" -X ${FLAG_PREFIX}.buildVersion=${VERSION} -X ${FLAG_PREFIX}.buildDate=${DATE} -X ${FLAG_PREFIX}.isPluginVersion=false -X ${FLAG_PREFIX}.goVersion=${GO_VERSION} -X ${FLAG_PREFIX}.arch=${EXEC_ARCH} -X ${FLAG_PREFIX}.coreSHA=${CORE_SHA} -X ${FLAG_PREFIX}.siSHA=${SI_SHA} -X ${FLAG_PREFIX}.shimSHA=${SHIM_SHA}' \
440+
-ldflags '-buildid= -extldflags "-static" -X ${FLAG_PREFIX}.buildVersion=${VERSION} -X ${FLAG_PREFIX}.buildDate=${DATE} -X ${FLAG_PREFIX}.goVersion=${GO_VERSION} -X ${FLAG_PREFIX}.arch=${EXEC_ARCH} -X ${FLAG_PREFIX}.coreSHA=${CORE_SHA} -X ${FLAG_PREFIX}.siSHA=${SI_SHA} -X ${FLAG_PREFIX}.shimSHA=${SHIM_SHA}' \
481441
-tags netgo \
482442
./pkg/cmd/shim/
483443

484-
# Build plugin binary in a production ready version
485-
.PHONY: plugin
486-
plugin: $(RELEASE_BIN_DIR)/$(PLUGIN_BINARY)
487-
488-
$(RELEASE_BIN_DIR)/$(PLUGIN_BINARY): go.mod go.sum $(shell find pkg)
489-
@echo "building binary for plugin docker image"
490-
@mkdir -p "$(RELEASE_BIN_DIR)"
491-
ifeq ($(REPRO),1)
492-
docker run -t --rm=true --volume "$(DOCKER_BUILDROOT):/buildroot" "golang:$(GO_REPRO_VERSION)" sh -c "cd $(DOCKER_SRCROOT) && \
493-
CGO_ENABLED=0 GOOS=linux GOARCH=\"${EXEC_ARCH}\" go build \
494-
-a \
495-
-o=${RELEASE_BIN_DIR}/${PLUGIN_BINARY} \
496-
-trimpath \
497-
-ldflags '-buildid= -extldflags \"-static\" -X ${FLAG_PREFIX}.buildVersion=${VERSION} -X ${FLAG_PREFIX}.buildDate=${DATE} -X ${FLAG_PREFIX}.isPluginVersion=true -X ${FLAG_PREFIX}.goVersion=${GO_REPRO_VERSION} -X ${FLAG_PREFIX}.arch=${EXEC_ARCH} -X ${FLAG_PREFIX}.coreSHA=${CORE_SHA} -X ${FLAG_PREFIX}.siSHA=${SI_SHA} -X ${FLAG_PREFIX}.shimSHA=${SHIM_SHA}' \
498-
-tags netgo \
499-
./pkg/cmd/schedulerplugin/"
500-
else
501-
CGO_ENABLED=0 GOOS=linux GOARCH="${EXEC_ARCH}" "$(GO)" build \
502-
-a \
503-
-o=${RELEASE_BIN_DIR}/${PLUGIN_BINARY} \
504-
-trimpath \
505-
-ldflags '-buildid= -extldflags "-static" -X ${FLAG_PREFIX}.buildVersion=${VERSION} -X ${FLAG_PREFIX}.buildDate=${DATE} -X ${FLAG_PREFIX}.isPluginVersion=true -X ${FLAG_PREFIX}.goVersion=${GO_VERSION} -X ${FLAG_PREFIX}.arch=${EXEC_ARCH} -X ${FLAG_PREFIX}.coreSHA=${CORE_SHA} -X ${FLAG_PREFIX}.siSHA=${SI_SHA} -X ${FLAG_PREFIX}.shimSHA=${SHIM_SHA}' \
506-
-tags netgo \
507-
./pkg/cmd/schedulerplugin/
508-
endif
509-
510-
.PHONY: plugin_instrumented
511-
plugin_instrumented: $(COVERAGE_DIR)/$(PLUGIN_BINARY)
512-
513-
$(COVERAGE_DIR)/$(PLUGIN_BINARY): go.mod go.sum $(shell find pkg)
514-
@echo "building instrumented binary for plugin docker image"
515-
@mkdir -p "$(RELEASE_BIN_DIR)"
516-
CGO_ENABLED=0 GOOS=linux GOARCH="${EXEC_ARCH}" "$(GO)" build -cover \
517-
-a \
518-
-o=${COVERAGE_DIR}/${PLUGIN_BINARY} \
519-
-trimpath \
520-
-ldflags '-buildid= -extldflags "-static" -X ${FLAG_PREFIX}.buildVersion=${VERSION} -X ${FLAG_PREFIX}.buildDate=${DATE} -X ${FLAG_PREFIX}.isPluginVersion=true -X ${FLAG_PREFIX}.goVersion=${GO_VERSION} -X ${FLAG_PREFIX}.arch=${EXEC_ARCH} -X ${FLAG_PREFIX}.coreSHA=${CORE_SHA} -X ${FLAG_PREFIX}.siSHA=${SI_SHA} -X ${FLAG_PREFIX}.shimSHA=${SHIM_SHA}' \
521-
-tags netgo \
522-
./pkg/cmd/schedulerplugin/
523-
524444
# Build a scheduler image based on the production ready version
525445
.PHONY: sched_image
526446
sched_image: $(OUTPUT)/third-party-licenses.md scheduler docker/scheduler
@@ -578,65 +498,6 @@ sched_image_instrumented: $(OUTPUT)/third-party-licenses.md scheduler_instrument
578498
--label "org.opencontainers.image.documentation=${DOCS_URL}" \
579499
${QUIET}
580500

581-
# Build a plugin image based on the production ready version
582-
.PHONY: plugin_image
583-
plugin_image: $(OUTPUT)/third-party-licenses.md plugin docker/plugin conf/scheduler-config.yaml
584-
@echo "building plugin docker image"
585-
@rm -rf "$(DOCKER_DIR)/plugin"
586-
@mkdir -p "$(DOCKER_DIR)/plugin"
587-
@cp -a "docker/plugin/." "$(DOCKER_DIR)/plugin/."
588-
@cp "$(RELEASE_BIN_DIR)/$(PLUGIN_BINARY)" "$(DOCKER_DIR)/plugin/."
589-
@cp -a LICENSE NOTICE "$(OUTPUT)/third-party-licenses.md" "$(DOCKER_DIR)/plugin/."
590-
@cp conf/scheduler-config.yaml "$(DOCKER_DIR)/plugin/scheduler-config.yaml"
591-
DOCKER_BUILDKIT=1 docker build \
592-
"$(DOCKER_DIR)/plugin" \
593-
-t "$(PLUGIN_TAG)" \
594-
--platform "linux/${DOCKER_ARCH}" \
595-
--label "yunikorn-core-revision=${CORE_SHA}" \
596-
--label "yunikorn-scheduler-interface-revision=${SI_SHA}" \
597-
--label "yunikorn-k8shim-revision=${SHIM_SHA}" \
598-
--label "BuildTimeStamp=${DATE}" \
599-
--label "Version=${VERSION}" \
600-
--label "org.opencontainers.image.title=${PLUGIN_BINARY}" \
601-
--label "org.opencontainers.image.description=Apache YuniKorn Scheduler (Plugin)" \
602-
--label "org.opencontainers.image.version=${VERSION}" \
603-
--label "org.opencontainers.image.created=$(DATE)" \
604-
--label "org.opencontainers.image.source=${IMAGE_SOURCE}" \
605-
--label "org.opencontainers.image.url=${IMAGE_URL}" \
606-
--label "org.opencontainers.image.revision=$(SHIM_SHA)" \
607-
--label "org.opencontainers.image.license=${LICENSE}" \
608-
--label "org.opencontainers.image.documentation=${DOCS_URL}" \
609-
${QUIET}
610-
611-
.PHONY: plugin_image_instrumented
612-
plugin_image_instrumented: $(OUTPUT)/third-party-licenses.md plugin_instrumented docker/plugin conf/scheduler-config.yaml
613-
@echo "building instrumented plugin docker image"
614-
@rm -rf "$(DOCKER_DIR)/plugin"
615-
@mkdir -p "$(DOCKER_DIR)/plugin"
616-
@cp -a "docker/plugin/." "$(DOCKER_DIR)/plugin/."
617-
@cp "$(COVERAGE_DIR)/$(PLUGIN_BINARY)" "$(DOCKER_DIR)/plugin/."
618-
@cp -a LICENSE NOTICE "$(OUTPUT)/third-party-licenses.md" "$(DOCKER_DIR)/plugin/."
619-
@cp conf/scheduler-config.yaml "$(DOCKER_DIR)/plugin/scheduler-config.yaml"
620-
DOCKER_BUILDKIT=1 docker build \
621-
"$(DOCKER_DIR)/plugin" \
622-
-t "$(PLUGIN_INSTRUMENTED_TAG)" \
623-
--platform "linux/${DOCKER_ARCH}" \
624-
--label "yunikorn-core-revision=${CORE_SHA}" \
625-
--label "yunikorn-scheduler-interface-revision=${SI_SHA}" \
626-
--label "yunikorn-k8shim-revision=${SHIM_SHA}" \
627-
--label "BuildTimeStamp=${DATE}" \
628-
--label "Version=${VERSION}" \
629-
--label "org.opencontainers.image.title=${PLUGIN_BINARY}" \
630-
--label "org.opencontainers.image.description=Apache YuniKorn Scheduler (Plugin)" \
631-
--label "org.opencontainers.image.version=${VERSION}" \
632-
--label "org.opencontainers.image.created=$(DATE)" \
633-
--label "org.opencontainers.image.source=${IMAGE_SOURCE}" \
634-
--label "org.opencontainers.image.url=${IMAGE_URL}" \
635-
--label "org.opencontainers.image.revision=$(SHIM_SHA)" \
636-
--label "org.opencontainers.image.license=${LICENSE}" \
637-
--label "org.opencontainers.image.documentation=${DOCS_URL}" \
638-
${QUIET}
639-
640501
# Build admission controller binary in a production ready version
641502
.PHONY: admission
642503
admission: $(RELEASE_BIN_DIR)/$(ADMISSION_CONTROLLER_BINARY)
@@ -694,7 +555,7 @@ adm_image: $(OUTPUT)/third-party-licenses.md admission docker/admission
694555

695556
# Build all images based on the production ready version
696557
.PHONY: image
697-
image: sched_image plugin_image adm_image
558+
image: sched_image adm_image
698559

699560
# Build a web server image ONLY to be used in e2e tests
700561
.PHONY: webtest_image
@@ -785,7 +646,7 @@ arch:
785646
.PHONY: start-cluster
786647
start-cluster: $(KIND_BIN)
787648
@"$(KIND_BIN)" delete cluster --name="$(CLUSTER_NAME)" || :
788-
@./scripts/run-e2e-tests.sh -a install -n "$(CLUSTER_NAME)" -v "kindest/node:$(K8S_VERSION)" $(PLUGIN_OPTS)
649+
@./scripts/run-e2e-tests.sh -a install -n "$(CLUSTER_NAME)" -v "kindest/node:$(K8S_VERSION)"
789650

790651
# Stop dev cluster
791652
.PHONY: stop-cluster
@@ -796,7 +657,7 @@ stop-cluster: $(KIND_BIN)
796657
.PHONY: kind-e2e
797658
kind-e2e: $(KIND_BIN)
798659
@"$(KIND_BIN)" delete cluster --name="$(CLUSTER_NAME)" || : ; \
799-
./scripts/run-e2e-tests.sh -a test -n "$(CLUSTER_NAME)" -v "kindest/node:$(K8S_VERSION)" $(PLUGIN_OPTS) ; STATUS=$$? ; \
660+
./scripts/run-e2e-tests.sh -a test -n "$(CLUSTER_NAME)" -v "kindest/node:$(K8S_VERSION)" ; STATUS=$$? ; \
800661
"$(KIND_BIN)" delete cluster --name="$(CLUSTER_NAME)" || : ; exit $$STATUS
801662

802663
# Run the e2e tests, this assumes yunikorn is running under yunikorn namespace

conf/.gitignore

Lines changed: 0 additions & 1 deletion
This file was deleted.

conf/scheduler-config.yaml

Lines changed: 0 additions & 30 deletions
This file was deleted.

0 commit comments

Comments
 (0)