@@ -62,6 +62,7 @@ CNM_DIR = cnm/plugin
6262CNI_NET_DIR = cni/network/plugin
6363CNI_IPAM_DIR = cni/ipam/plugin
6464CNI_TELEMETRY_DIR = cni/telemetry/service
65+ TELEMETRY_CONF_DIR = telemetry
6566CNS_DIR = cns/service
6667NPM_DIR = npm/plugin
6768OUTPUT_DIR = output
@@ -71,6 +72,7 @@ CNI_BUILD_DIR = $(BUILD_DIR)/cni
7172CNI_MULTITENANCY_BUILD_DIR = $(BUILD_DIR ) /cni-multitenancy
7273CNS_BUILD_DIR = $(BUILD_DIR ) /cns
7374NPM_BUILD_DIR = $(BUILD_DIR ) /npm
75+ NPM_TELEMETRY_DIR = $(NPM_BUILD_DIR ) /telemetry
7476
7577# Containerized build parameters.
7678BUILD_CONTAINER_IMAGE = acn-build
@@ -97,6 +99,7 @@ CNI_MULTITENANCY_ARCHIVE_NAME = azure-vnet-cni-multitenancy-$(GOOS)-$(GOARCH)-$(
9799CNS_ARCHIVE_NAME = azure-cns-$(GOOS ) -$(GOARCH ) -$(VERSION ) .$(ARCHIVE_EXT )
98100NPM_ARCHIVE_NAME = azure-npm-$(GOOS ) -$(GOARCH ) -$(VERSION ) .$(ARCHIVE_EXT )
99101NPM_IMAGE_ARCHIVE_NAME = azure-npm-$(GOOS ) -$(GOARCH ) -$(VERSION ) .$(ARCHIVE_EXT )
102+ TELEMETRY_IMAGE_ARCHIVE_NAME = azure-vnet-telemetry-$(GOOS ) -$(GOARCH ) -$(VERSION ) .$(ARCHIVE_EXT )
100103
101104# Docker libnetwork (CNM) plugin v2 image parameters.
102105CNM_PLUGIN_IMAGE ?= microsoft/azure-vnet-plugin
@@ -105,8 +108,10 @@ CNM_PLUGIN_ROOTFS = azure-vnet-plugin-rootfs
105108# Azure network policy manager parameters.
106109AZURE_NPM_IMAGE = containernetworking/azure-npm
107110
111+ # Azure vnet telemetry image parameters.
112+ AZURE_VNET_TELEMETRY_IMAGE = containernetworking/azure-vnet-telemetry
113+
108114VERSION ?= $(shell git describe --tags --always --dirty)
109- AZURE_NPM_VERSION = $(VERSION )
110115
111116ENSURE_OUTPUT_DIR_EXISTS := $(shell mkdir -p $(OUTPUT_DIR ) )
112117
@@ -130,7 +135,7 @@ all-binaries: azure-cnm-plugin azure-cni-plugin azure-cns
130135endif
131136
132137ifeq ($(GOOS ) ,linux)
133- all-images : azure-npm-image
138+ all-images : azure-npm-image azure-vnet-telemetry-image
134139else
135140all-images :
136141 @echo " Nothing to build. Skip."
@@ -153,7 +158,7 @@ $(CNI_BUILD_DIR)/azure-vnet$(EXE_EXT): $(CNIFILES)
153158$(CNI_BUILD_DIR ) /azure-vnet-ipam$(EXE_EXT ) : $(CNIFILES )
154159 go build -v -o $(CNI_BUILD_DIR ) /azure-vnet-ipam$(EXE_EXT ) -ldflags " -X main.version=$( VERSION) -s -w" $(CNI_IPAM_DIR ) /* .go
155160
156- # Build the Azure CNI IPAM plugin.
161+ # Build the Azure CNI telemetry plugin.
157162$(CNI_BUILD_DIR ) /azure-vnet-telemetry$(EXE_EXT ) : $(CNIFILES )
158163 go build -v -o $(CNI_BUILD_DIR ) /azure-vnet-telemetry$(EXE_EXT ) -ldflags " -X main.version=$( VERSION) -s -w" $(CNI_TELEMETRY_DIR ) /* .go
159164
@@ -163,6 +168,7 @@ $(CNS_BUILD_DIR)/azure-cns$(EXE_EXT): $(CNSFILES)
163168
164169# Build the Azure NPM plugin.
165170$(NPM_BUILD_DIR ) /azure-npm$(EXE_EXT ) : $(NPMFILES )
171+ go build -v -o $(NPM_BUILD_DIR ) /azure-vnet-telemetry$(EXE_EXT ) -ldflags " -X main.version=$( VERSION) -s -w" $(CNI_TELEMETRY_DIR ) /* .go
166172 go build -v -o $(NPM_BUILD_DIR ) /azure-npm$(EXE_EXT ) -ldflags " -X main.version=$( VERSION) -s -w" $(NPM_DIR ) /* .go
167173
168174# Build all binaries in a container.
@@ -229,16 +235,32 @@ azure-npm-image: azure-npm
229235ifeq ($(GOOS ) ,linux)
230236 docker build \
231237 -f npm/Dockerfile \
232- -t $(AZURE_NPM_IMAGE):$(AZURE_NPM_VERSION ) \
238+ -t $(AZURE_NPM_IMAGE):$(VERSION ) \
233239 --build-arg NPM_BUILD_DIR=$(NPM_BUILD_DIR) \
234240 .
235- docker save $(AZURE_NPM_IMAGE):$(AZURE_NPM_VERSION ) | gzip -c > $(NPM_BUILD_DIR)/$(NPM_ARCHIVE_NAME )
241+ docker save $(AZURE_NPM_IMAGE):$(VERSION ) | gzip -c > $(NPM_BUILD_DIR)/$(NPM_IMAGE_ARCHIVE_NAME )
236242endif
237243
238244# Publish the Azure NPM image to a Docker registry
239245.PHONY : publish-azure-npm-image
240246publish-azure-npm-image :
241- docker push $(AZURE_NPM_IMAGE ) :$(AZURE_NPM_VERSION )
247+ docker push $(AZURE_NPM_IMAGE ) :$(VERSION )
248+
249+ # Build the Azure vnet telemetry image
250+ .PHONY : azure-vnet-telemetry-image
251+ azure-vnet-telemetry-image : azure-vnet-telemetry
252+ docker build \
253+ -f cni/telemetry/Dockerfile \
254+ -t $(AZURE_VNET_TELEMETRY_IMAGE ) :$(VERSION ) \
255+ --build-arg TELEMETRY_BUILD_DIR=$(NPM_BUILD_DIR ) \
256+ --build-arg TELEMETRY_CONF_DIR=$(TELEMETRY_CONF_DIR ) \
257+ .
258+ docker save $(AZURE_VNET_TELEMETRY_IMAGE ) :$(VERSION ) | gzip -c > $(NPM_BUILD_DIR ) /$(TELEMETRY_IMAGE_ARCHIVE_NAME )
259+
260+ # Publish the Azure vnet telemetry image to a Docker registry
261+ .PHONY : publish-azure-vnet-telemetry-image
262+ publish-azure-vnet-telemetry-image :
263+ docker push $(AZURE_VNET_TELEMETRY_IMAGE ) :$(VERSION )
242264
243265# Create a CNI archive for the target platform.
244266.PHONY : cni-archive
@@ -274,7 +296,8 @@ cns-archive:
274296.PHONY : npm-archive
275297npm-archive :
276298ifeq ($(GOOS ) ,linux)
277- chmod 0755 $(NPM_BUILD_DIR)/azure-npm$(EXE_EXT)
278- cd $(NPM_BUILD_DIR) && $(ARCHIVE_CMD) $(NPM_ARCHIVE_NAME) azure-npm$(EXE_EXT)
299+ chmod 0755 $(NPM_BUILD_DIR)/azure-npm$(EXE_EXT) $(NPM_BUILD_DIR)/azure-vnet-telemetry$(EXE_EXT)
300+ cp telemetry/azure-vnet-telemetry.config $(NPM_BUILD_DIR)/azure-vnet-telemetry.config
301+ cd $(NPM_BUILD_DIR) && $(ARCHIVE_CMD) $(NPM_ARCHIVE_NAME) azure-npm$(EXE_EXT) azure-vnet-telemetry$(EXE_EXT) azure-vnet-telemetry.config
279302 chown $(BUILD_USER):$(BUILD_USER) $(NPM_BUILD_DIR)/$(NPM_ARCHIVE_NAME)
280303endif
0 commit comments