@@ -54,7 +54,6 @@ COVERAGE_DIR=${OUTPUT}/instrumented
5454
5555# Binary names
5656SCHEDULER_BINARY =yunikorn-scheduler
57- PLUGIN_BINARY =yunikorn-scheduler-plugin
5857ADMISSION_CONTROLLER_BINARY =yunikorn-admission-controller
5958TEST_SERVER_BINARY =web-test-server
6059
7675ifeq ($(CLUSTER_NAME ) ,)
7776CLUSTER_NAME := yk8s
7877endif
79- ifeq ($(PLUGIN ) ,1)
80- PLUGIN_OPTS := --plugin
81- else
82- PLUGIN_OPTS :=
83- endif
8478
8579# Reproducible builds mode
8680GO_REPRO_VERSION := $(shell cat .go_repro_version)
@@ -234,26 +228,14 @@ export GO111MODULE
234228ifeq ($(SCHEDULER_TAG ) ,)
235229SCHEDULER_TAG := $(REGISTRY ) /yunikorn:scheduler-$(DOCKER_ARCH ) -$(VERSION )
236230endif
237- ifeq ($(PLUGIN_TAG ) ,)
238- PLUGIN_TAG := $(REGISTRY ) /yunikorn:scheduler-plugin-$(DOCKER_ARCH ) -$(VERSION )
239- endif
240231ifeq ($(ADMISSION_TAG ) ,)
241232ADMISSION_TAG := $(REGISTRY ) /yunikorn:admission-$(DOCKER_ARCH ) -$(VERSION )
242233endif
243234
244235SCHEDULER_INSTRUMENTED_TAG := $(SCHEDULER_TAG ) -instrumented
245- PLUGIN_INSTRUMENTED_TAG := $(PLUGIN_TAG ) -instrumented
246236
247237all :
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
421393build : $(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
446406scheduler : $(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/"
460420else
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/
468428endif
@@ -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
526446sched_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
642503admission : $(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
786647start-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
797658kind-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
0 commit comments