@@ -81,6 +81,10 @@ ACN_PACKAGE_PATH = github.com/Azure/azure-container-networking
8181CNI_AI_PATH =$(ACN_PACKAGE_PATH ) /telemetry.aiMetadata
8282CNS_AI_PATH =$(ACN_PACKAGE_PATH ) /cns/logger.aiMetadata
8383NPM_AI_PATH =$(ACN_PACKAGE_PATH ) /npm.aiMetadata
84+ CNI_TELEMETRY_SIDECAR_DIR = $(REPO_ROOT ) /cns/cni-telemetry-sidecar
85+ CNI_TELEMETRY_SIDECAR_BUILD_DIR = $(BUILD_DIR ) /cni-telemetry-sidecar
86+ CNI_TELEMETRY_SIDECAR_AI_ID = $(CNI_AI_ID ) # Reuse CNI AI ID
87+ CNI_TELEMETRY_SIDECAR_VERSION = $(CNS_VERSION ) # Version follows CNS
8488
8589# Tool paths
8690CONTROLLER_GEN := $(TOOLS_BIN_DIR ) /controller-gen
@@ -107,6 +111,7 @@ NPM_ARCHIVE_NAME = azure-npm-$(GOOS)-$(GOARCH)-$(NPM_VERSION).$(ARCHIVE_EXT)
107111AZURE_IPAM_ARCHIVE_NAME = azure-ipam-$(GOOS ) -$(GOARCH ) -$(AZURE_IPAM_VERSION ) .$(ARCHIVE_EXT )
108112AZURE_IP_MASQ_MERGER_ARCHIVE_NAME = azure-ip-masq-merger-$(GOOS ) -$(GOARCH ) -$(AZURE_IP_MASQ_MERGER_VERSION ) .$(ARCHIVE_EXT )
109113IPV6_HP_BPF_ARCHIVE_NAME = ipv6-hp-bpf-$(GOOS ) -$(GOARCH ) -$(IPV6_HP_BPF_VERSION ) .$(ARCHIVE_EXT )
114+ CNI_TELEMETRY_SIDECAR_ARCHIVE_NAME = azure-cni-telemetry-sidecar-$(GOOS ) -$(GOARCH ) -$(CNI_TELEMETRY_SIDECAR_VERSION ) .$(ARCHIVE_EXT )
110115
111116# Image info file names.
112117CNI_IMAGE_INFO_FILE = azure-cni-$(CNI_VERSION ) .txt
@@ -123,7 +128,7 @@ all-binaries-platforms: ## Make all platform binaries
123128
124129# OS specific binaries/images
125130ifeq ($(GOOS ) ,linux)
126- all-binaries : acncli azure-cni-plugin azure-cns azure-npm azure-ipam azure-ip-masq-merger ipv6-hp-bpf
131+ all-binaries : acncli azure-cni-plugin azure-cns azure-npm azure-ipam azure-ip-masq-merger ipv6-hp-bpf cni-telemetry-sidecar
127132all-images : npm-image cns-image cni-manager-image azure-ip-masq-merger-image ipv6-hp-bpf-image
128133else
129134all-binaries : azure-cni-plugin azure-cns azure-npm
@@ -139,7 +144,7 @@ azure-npm: azure-npm-binary npm-archive
139144azure-ipam : azure-ipam-binary azure-ipam-archive
140145ipv6-hp-bpf : ipv6-hp-bpf-binary ipv6-hp-bpf-archive
141146azure-ip-masq-merger : azure-ip-masq-merger-binary azure-ip-masq-merger-archive
142-
147+ cni-telemetry-sidecar : cni-telemetry-sidecar-binary cni-telemetry-sidecar-archive
143148
144149# #@ Versioning
145150
@@ -213,6 +218,10 @@ azure-vnet-ipamv6-binary:
213218azure-vnet-telemetry-binary :
214219 cd $(CNI_TELEMETRY_DIR ) && CGO_ENABLED=0 go build -v -o $(CNI_BUILD_DIR ) /azure-vnet-telemetry$(EXE_EXT ) -ldflags " -X main.version=$( CNI_VERSION) -X $( CNI_AI_PATH) =$( CNI_AI_ID) " -gcflags=" -dwarflocationlists=true"
215220
221+ # Build the Azure CNI Telemetry Sidecar binary.
222+ cni-telemetry-sidecar-binary :
223+ cd $(CNI_TELEMETRY_SIDECAR_DIR) && CGO_ENABLED=0 go build -v -o $(CNI_TELEMETRY_SIDECAR_BUILD_DIR)/azure-cni-telemetry-sidecar$(EXE_EXT) -ldflags "-X main.version=$(CNI_TELEMETRY_SIDECAR_VERSION) -X $(CNI_AI_PATH)=$(CNI_TELEMETRY_SIDECAR_AI_ID)" -gcflags="-dwarflocationlists=true"
224+
216225# Build the Azure CLI network binary.
217226acncli-binary :
218227 cd $(ACNCLI_DIR ) && CGO_ENABLED=0 go build -v -o $(ACNCLI_BUILD_DIR ) /acn$(EXE_EXT ) -ldflags " -X main.version=$( ACN_VERSION) " -gcflags=" -dwarflocationlists=true"
@@ -275,6 +284,7 @@ CNI_IMAGE = azure-cni
275284CNS_IMAGE = azure-cns
276285NPM_IMAGE = azure-npm
277286AZURE_IP_MASQ_MERGER_IMAGE = azure-ip-masq-merger
287+ CNI_TELEMETRY_SIDECAR_IMAGE = azure-cni-telemetry-sidecar
278288
279289# # Image platform tags.
280290ACNCLI_PLATFORM_TAG ?= $(subst /,-,$(PLATFORM ) ) -$(ACN_VERSION )
@@ -287,7 +297,7 @@ CNS_PLATFORM_TAG ?= $(subst /,-,$(PLATFORM))-$(CNS_VERSION)
287297CNS_WINDOWS_PLATFORM_TAG ?= $(subst /,-,$(PLATFORM ) ) -$(CNS_VERSION ) -$(OS_SKU_WIN )
288298NPM_PLATFORM_TAG ?= $(subst /,-,$(PLATFORM ) ) -$(NPM_VERSION )
289299AZURE_IP_MASQ_MERGER_PLATFORM_TAG ?= $(subst /,-,$(PLATFORM ) ) -$(AZURE_IP_MASQ_MERGER_VERSION )
290-
300+ CNI_TELEMETRY_SIDECAR_PLATFORM_TAG ?= $( subst /,-, $( PLATFORM ) ) - $( CNI_TELEMETRY_SIDECAR_VERSION )
291301
292302qemu-user-static : # # Set up the host to run qemu multiplatform container builds.
293303 sudo $(CONTAINER_RUNTIME ) run --rm --privileged multiarch/qemu-user-static --reset -p yes
@@ -542,6 +552,35 @@ npm-image-pull: ## pull cns container image.
542552 IMAGE=$(NPM_IMAGE ) \
543553 TAG=$(NPM_PLATFORM_TAG )
544554
555+ # cni-telemetry-sidecar
556+
557+ cni-telemetry-sidecar-image-name : # util target to print the CNI telemetry sidecar image name
558+ @echo $(CNI_TELEMETRY_SIDECAR_IMAGE)
559+
560+ cni-telemetry-sidecar-image-name-and-tag : # util target to print the CNI telemetry sidecar image name and tag.
561+ @echo $(IMAGE_REGISTRY ) /$(CNI_TELEMETRY_SIDECAR_IMAGE ) :$(CNI_TELEMETRY_SIDECAR_PLATFORM_TAG )
562+
563+ cni-telemetry-sidecar-image : # # build cni-telemetry-sidecar container image.
564+ $(MAKE) container \
565+ DOCKERFILE =cns/cni-telemetry-sidecar/Dockerfile \
566+ IMAGE=$(CNI_TELEMETRY_SIDECAR_IMAGE ) \
567+ EXTRA_BUILD_ARGS='--build-arg CNI_AI_PATH=$(CNI_AI_PATH ) --build-arg CNI_AI_ID=$(CNI_TELEMETRY_SIDECAR_AI_ID ) ' \
568+ PLATFORM=$(PLATFORM ) \
569+ TAG=$(CNI_TELEMETRY_SIDECAR_PLATFORM_TAG ) \
570+ TARGET=$(OS ) \
571+ OS=$(OS ) \
572+ ARCH=$(ARCH )
573+
574+ cni-telemetry-sidecar-image-push : # # push cni-telemetry-sidecar container image.
575+ $(MAKE) container-push \
576+ IMAGE =$(CNI_TELEMETRY_SIDECAR_IMAGE ) \
577+ TAG=$(CNI_TELEMETRY_SIDECAR_PLATFORM_TAG )
578+
579+ cni-telemetry-sidecar-image-pull : # # pull cni-telemetry-sidecar container image.
580+ $(MAKE) container-pull \
581+ IMAGE =$(CNI_TELEMETRY_SIDECAR_IMAGE ) \
582+ TAG=$(CNI_TELEMETRY_SIDECAR_PLATFORM_TAG )
583+
545584# # Reusable targets for building multiplat container image manifests.
546585
547586IMAGE_ARCHIVE_DIR ?= $(shell pwd)
@@ -681,6 +720,21 @@ npm-skopeo-archive: ## export tar archive of multiplat container manifest.
681720 IMAGE=$(NPM_IMAGE ) \
682721 TAG=$(NPM_VERSION )
683722
723+ cni-telemetry-sidecar-manifest-build : # # build cni-telemetry-sidecar multiplat container manifest.
724+ $(MAKE) manifest-build \
725+ PLATFORMS ="$(PLATFORMS ) " \
726+ IMAGE=$(CNI_TELEMETRY_SIDECAR_IMAGE ) \
727+ TAG=$(CNI_TELEMETRY_SIDECAR_VERSION )
728+
729+ cni-telemetry-sidecar-manifest-push : # # push cni-telemetry-sidecar multiplat container manifest
730+ $(MAKE) manifest-push \
731+ IMAGE =$(CNI_TELEMETRY_SIDECAR_IMAGE ) \
732+ TAG=$(CNI_TELEMETRY_SIDECAR_VERSION )
733+
734+ cni-telemetry-sidecar-skopeo-archive : # # export tar archive of cni-telemetry-sidecar multiplat container manifest.
735+ $(MAKE) manifest-skopeo-archive \
736+ IMAGE =$(CNI_TELEMETRY_SIDECAR_IMAGE ) \
737+ TAG=$(CNI_TELEMETRY_SIDECAR_VERSION )
684738
685739# ########################## Archives ################################
686740
@@ -783,6 +837,14 @@ ifeq ($(GOOS),linux)
783837 cd $(IPV6_HP_BPF_BUILD_DIR) && $(ARCHIVE_CMD) $(IPV6_HP_BPF_ARCHIVE_NAME) ipv6-hp-bpf$(EXE_EXT)
784838endif
785839
840+ # Create a CNI Telemetry Sidecar archive for the target platform.
841+ .PHONY : cni-telemetry-sidecar-archive
842+ cni-telemetry-sidecar-archive : cni-telemetry-sidecar-binary
843+ ifeq ($(GOOS ) ,linux)
844+ $(MKDIR) $(CNI_TELEMETRY_SIDECAR_BUILD_DIR)
845+ cd $(CNI_TELEMETRY_SIDECAR_BUILD_DIR) && $(ARCHIVE_CMD) $(CNI_TELEMETRY_SIDECAR_ARCHIVE_NAME) azure-cni-telemetry-sidecar$(EXE_EXT)
846+ endif
847+
786848# #@ Utils
787849
788850clean : # # Clean build artifacts.
0 commit comments