@@ -36,6 +36,7 @@ help: ## Display this help.
3636
3737REGISTRY ?= example.com
3838OVNKUBERNETES_IMAGE ?= $(REGISTRY ) /ovn-kubernetes-dpf
39+ DPF_UTILS_IMAGE ?= $(REGISTRY ) /ovn-kubernetes-dpf-utils
3940
4041.PHONY : docker-build-ubuntu
4142docker-build-ubuntu :
@@ -55,6 +56,15 @@ docker-build-fedora:
5556 --load \
5657 -f Dockerfile.ovn-kubernetes.fedora .
5758
59+ .PHONY : docker-build-dpf-utils
60+ docker-build-dpf-utils : # # Build DPF utilities image
61+ docker buildx build \
62+ --build-arg builder_image=${GO_IMAGE} \
63+ -t $(DPF_UTILS_IMAGE ) :$(TAG ) \
64+ --load \
65+ -f dpf-utils/Dockerfile \
66+ dpf-utils/
67+
5868.PHONY : docker-push-ubuntu
5969docker-push-ubuntu : # # Push Ubuntu image to registry
6070 docker push $(OVNKUBERNETES_IMAGE ) :$(TAG )
@@ -63,6 +73,22 @@ docker-push-ubuntu: ## Push Ubuntu image to registry
6373docker-push-fedora : # # Push Fedora image to registry
6474 docker push $(OVNKUBERNETES_IMAGE ) :$(TAG ) -fedora
6575
76+ .PHONY : docker-push-dpf-utils
77+ docker-push-dpf-utils : # # Push DPF utilities image to registry
78+ docker push $(DPF_UTILS_IMAGE ) :$(TAG )
79+
80+ # #@ DPF Utils Targets
81+
82+ DPF_UTILS_DIR = dpf-utils
83+
84+ .PHONY : lint
85+ lint : golangci-lint # # Run linter for DPF utilities
86+ cd $(DPF_UTILS_DIR ) && $(GOLANGCI_LINT ) run ./...
87+
88+ .PHONY : test
89+ test : # # Run tests for DPF utilities
90+ cd $(DPF_UTILS_DIR ) && go test -v -coverprofile=coverage.out -covermode=atomic ./...
91+
6692# #@ Helm Chart Targets
6793
6894HELM_CHART_DIR ?= helm/ovn-kubernetes-dpf
@@ -72,15 +98,15 @@ HELM_OUTPUT_DIR ?= _output/helm
7298helm-build : yq
7399 @mkdir -p $(HELM_OUTPUT_DIR )
74100 @cp $(HELM_CHART_DIR ) /values.yaml.tmpl $(HELM_CHART_DIR ) /values.yaml
75- @$(YQ ) eval -i ' .ovn-kubernetes-resource-injector.controllerManager.webhook.image.repository = "$(OVNKUBERNETES_IMAGE )"' $(HELM_CHART_DIR ) /values.yaml
101+ @$(YQ ) eval -i ' .ovn-kubernetes-resource-injector.controllerManager.webhook.image.repository = "$(DPF_UTILS_IMAGE )"' $(HELM_CHART_DIR ) /values.yaml
76102 @$(YQ ) eval -i ' .ovn-kubernetes-resource-injector.controllerManager.webhook.image.tag = "$(TAG)"' $(HELM_CHART_DIR ) /values.yaml
77103 @$(YQ ) eval -i ' .nodeWithDPUManifests.image.repository = "$(OVNKUBERNETES_IMAGE)"' $(HELM_CHART_DIR ) /values.yaml
78104 @$(YQ ) eval -i ' .nodeWithDPUManifests.image.tag = "$(TAG)"' $(HELM_CHART_DIR ) /values.yaml
79105 @$(YQ ) eval -i ' .nodeWithoutDPUManifests.image.repository = "$(OVNKUBERNETES_IMAGE)"' $(HELM_CHART_DIR ) /values.yaml
80106 @$(YQ ) eval -i ' .nodeWithoutDPUManifests.image.tag = "$(TAG)"' $(HELM_CHART_DIR ) /values.yaml
81107 @$(YQ ) eval -i ' .dpuManifests.image.repository = "$(OVNKUBERNETES_IMAGE)"' $(HELM_CHART_DIR ) /values.yaml
82108 @$(YQ ) eval -i ' .dpuManifests.image.tag = "$(TAG)"' $(HELM_CHART_DIR ) /values.yaml
83- @$(YQ ) eval -i ' .dpuManifests.imagedpf.repository = "$(OVNKUBERNETES_IMAGE )"' $(HELM_CHART_DIR ) /values.yaml
109+ @$(YQ ) eval -i ' .dpuManifests.imagedpf.repository = "$(DPF_UTILS_IMAGE )"' $(HELM_CHART_DIR ) /values.yaml
84110 @$(YQ ) eval -i ' .dpuManifests.imagedpf.tag = "$(TAG)"' $(HELM_CHART_DIR ) /values.yaml
85111 @$(YQ ) eval -i ' .controlPlaneManifests.image.repository = "$(OVNKUBERNETES_IMAGE)"' $(HELM_CHART_DIR ) /values.yaml
86112 @$(YQ ) eval -i ' .controlPlaneManifests.image.tag = "$(TAG)"' $(HELM_CHART_DIR ) /values.yaml
@@ -103,6 +129,8 @@ helm-clean:
103129TOOLSDIR ?= $(CURDIR ) /hack/tools/bin
104130YQ_VERSION ?= v4.45.1
105131export YQ ?= $(TOOLSDIR ) /yq-$(YQ_VERSION )
132+ GOLANGCI_LINT_VERSION ?= v1.62.2
133+ export GOLANGCI_LINT ?= $(TOOLSDIR ) /golangci-lint-$(GOLANGCI_LINT_VERSION )
106134
107135define go-install-tool
108136@[ -f $(1 ) ] || { \
@@ -120,4 +148,9 @@ $(TOOLSDIR):
120148.PHONY : yq
121149yq : $(YQ ) # # Download yq locally if necessary
122150$(YQ ) : | $(TOOLSDIR )
123- $(call go-install-tool,$(YQ ) ,github.com/mikefarah/yq/v4,$(YQ_VERSION ) )
151+ $(call go-install-tool,$(YQ ) ,github.com/mikefarah/yq/v4,$(YQ_VERSION ) )
152+
153+ .PHONY : golangci-lint
154+ golangci-lint : $(GOLANGCI_LINT ) # # Download golangci-lint locally if necessary
155+ $(GOLANGCI_LINT ) : | $(TOOLSDIR )
156+ $(call go-install-tool,$(GOLANGCI_LINT ) ,github.com/golangci/golangci-lint/cmd/golangci-lint,$(GOLANGCI_LINT_VERSION ) )
0 commit comments