From eb209bd4c6789470296590a06ba35e7b7c21cae9 Mon Sep 17 00:00:00 2001 From: Alexander <39818795+QxBytes@users.noreply.github.com> Date: Mon, 4 Nov 2024 13:39:37 -0800 Subject: [PATCH 1/2] fix: pass ai metadata to telemetry during cni image build (#3095) * fix log on ai telemetry handle create error * fix failure to pass cni ai id at build time for cni images * address feedback * move ai id to hardcoded variable * update unit test * Revert "move ai id to hardcoded variable" This reverts commit 666c2b0a8f5efbee6d8b970f87fbb94763347916. * fix typo --- Makefile | 3 ++- cni/telemetry/service/telemetrymain.go | 4 ++-- cni/windows.Dockerfile | 4 +++- cns/service/main.go | 2 +- telemetry/aiwrapper_test.go | 10 +--------- 5 files changed, 9 insertions(+), 14 deletions(-) diff --git a/Makefile b/Makefile index b647fa05b5..3b88ff1c09 100644 --- a/Makefile +++ b/Makefile @@ -430,7 +430,8 @@ cni-image: ## build cni container image. TAG=$(CNI_PLATFORM_TAG) \ OS=$(OS) \ ARCH=$(ARCH) \ - OS_VERSION=$(OS_VERSION) + OS_VERSION=$(OS_VERSION) \ + EXTRA_BUILD_ARGS='--build-arg CNI_AI_PATH=$(CNI_AI_PATH) --build-arg CNI_AI_ID=$(CNI_AI_ID)' cni-image-push: ## push cni container image. $(MAKE) container-push \ diff --git a/cni/telemetry/service/telemetrymain.go b/cni/telemetry/service/telemetrymain.go index bf21571d0b..8c278eafe2 100644 --- a/cni/telemetry/service/telemetrymain.go +++ b/cni/telemetry/service/telemetrymain.go @@ -167,8 +167,8 @@ func main() { GetEnvRetryWaitTimeInSecs: config.GetEnvRetryWaitTimeInSecs, } - if tb.CreateAITelemetryHandle(aiConfig, config.DisableAll, config.DisableTrace, config.DisableMetric) != nil { - logger.Error("AI Handle creation error", zap.Error(err)) + if err := tb.CreateAITelemetryHandle(aiConfig, config.DisableAll, config.DisableTrace, config.DisableMetric); err != nil { // nolint + logger.Error("AI Handle creation error:", zap.Error(err)) } logger.Info("Report to host interval", zap.Duration("seconds", config.ReportToHostIntervalInSeconds)) tb.PushData(context.Background()) diff --git a/cni/windows.Dockerfile b/cni/windows.Dockerfile index a464a700c9..e1af11b9a0 100644 --- a/cni/windows.Dockerfile +++ b/cni/windows.Dockerfile @@ -6,10 +6,12 @@ ARG OS_VERSION FROM --platform=linux/${ARCH} mcr.microsoft.com/oss/go/microsoft/golang:1.22 AS azure-vnet ARG OS ARG VERSION +ARG CNI_AI_PATH +ARG CNI_AI_ID WORKDIR /azure-container-networking COPY . . RUN GOOS=$OS CGO_ENABLED=0 go build -a -o /go/bin/azure-vnet -trimpath -ldflags "-X main.version="$VERSION"" -gcflags="-dwarflocationlists=true" cni/network/plugin/main.go -RUN GOOS=$OS CGO_ENABLED=0 go build -a -o /go/bin/azure-vnet-telemetry -trimpath -ldflags "-X main.version="$VERSION"" -gcflags="-dwarflocationlists=true" cni/telemetry/service/telemetrymain.go +RUN GOOS=$OS CGO_ENABLED=0 go build -a -o /go/bin/azure-vnet-telemetry -trimpath -ldflags "-X main.version="$VERSION" -X "$CNI_AI_PATH"="$CNI_AI_ID"" -gcflags="-dwarflocationlists=true" cni/telemetry/service/telemetrymain.go RUN GOOS=$OS CGO_ENABLED=0 go build -a -o /go/bin/azure-vnet-ipam -trimpath -ldflags "-X main.version="$VERSION"" -gcflags="-dwarflocationlists=true" cni/ipam/plugin/main.go RUN GOOS=$OS CGO_ENABLED=0 go build -a -o /go/bin/azure-vnet-stateless -trimpath -ldflags "-X main.version="$VERSION"" -gcflags="-dwarflocationlists=true" cni/network/stateless/main.go diff --git a/cns/service/main.go b/cns/service/main.go index 1cd19ffd20..d986964a12 100644 --- a/cns/service/main.go +++ b/cns/service/main.go @@ -684,7 +684,7 @@ func main() { } if telemetryDaemonEnabled { - log.Printf("CNI Telemtry is enabled") + logger.Printf("CNI Telemetry is enabled") go startTelemetryService(rootCtx) } diff --git a/telemetry/aiwrapper_test.go b/telemetry/aiwrapper_test.go index c10e39fe70..326e99f55d 100644 --- a/telemetry/aiwrapper_test.go +++ b/telemetry/aiwrapper_test.go @@ -17,15 +17,7 @@ func TestCreateAITelemetryHandle(t *testing.T) { wantErr bool }{ { - name: "disable telemetry", - aiConfig: aitelemetry.AIConfig{}, - disableAll: false, - disableMetric: true, - disableTrace: true, - wantErr: true, - }, - { - name: "empty aiconfig", + name: "disabled telemetry with empty aiconfig", aiConfig: aitelemetry.AIConfig{}, disableAll: true, disableMetric: true, From f25f29c724a2459c1e0b8b0b6aec14d59ac7f6d4 Mon Sep 17 00:00:00 2001 From: QxBytes Date: Thu, 7 Nov 2024 11:52:43 -0800 Subject: [PATCH 2/2] add cni ai info to cni image args and linux dockerfile --- Makefile | 5 ++--- cni/linux.Dockerfile | 4 +++- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/Makefile b/Makefile index 3b88ff1c09..1eb8a0eee0 100644 --- a/Makefile +++ b/Makefile @@ -425,13 +425,12 @@ cni-image: ## build cni container image. $(MAKE) container \ DOCKERFILE=cni/$(OS).Dockerfile \ IMAGE=$(CNI_IMAGE) \ - EXTRA_BUILD_ARGS='--build-arg OS=$(OS) --build-arg ARCH=$(ARCH) --build-arg OS_VERSION=$(OS_VERSION)' \ + EXTRA_BUILD_ARGS='--build-arg OS=$(OS) --build-arg ARCH=$(ARCH) --build-arg OS_VERSION=$(OS_VERSION) --build-arg CNI_AI_PATH=$(CNI_AI_PATH) --build-arg CNI_AI_ID=$(CNI_AI_ID)' \ PLATFORM=$(PLATFORM) \ TAG=$(CNI_PLATFORM_TAG) \ OS=$(OS) \ ARCH=$(ARCH) \ - OS_VERSION=$(OS_VERSION) \ - EXTRA_BUILD_ARGS='--build-arg CNI_AI_PATH=$(CNI_AI_PATH) --build-arg CNI_AI_ID=$(CNI_AI_ID)' + OS_VERSION=$(OS_VERSION) cni-image-push: ## push cni container image. $(MAKE) container-push \ diff --git a/cni/linux.Dockerfile b/cni/linux.Dockerfile index b38b88b8af..8cdbea07e0 100644 --- a/cni/linux.Dockerfile +++ b/cni/linux.Dockerfile @@ -6,10 +6,12 @@ ARG OS FROM mcr.microsoft.com/oss/go/microsoft/golang:1.22 AS azure-vnet ARG OS ARG VERSION +ARG CNI_AI_PATH +ARG CNI_AI_ID WORKDIR /azure-container-networking COPY . . RUN GOOS=$OS CGO_ENABLED=0 go build -a -o /go/bin/azure-vnet -trimpath -ldflags "-X main.version="$VERSION"" -gcflags="-dwarflocationlists=true" cni/network/plugin/main.go -RUN GOOS=$OS CGO_ENABLED=0 go build -a -o /go/bin/azure-vnet-telemetry -trimpath -ldflags "-X main.version="$VERSION"" -gcflags="-dwarflocationlists=true" cni/telemetry/service/telemetrymain.go +RUN GOOS=$OS CGO_ENABLED=0 go build -a -o /go/bin/azure-vnet-telemetry -trimpath -ldflags "-X main.version="$VERSION" -X "$CNI_AI_PATH"="$CNI_AI_ID"" -gcflags="-dwarflocationlists=true" cni/telemetry/service/telemetrymain.go RUN GOOS=$OS CGO_ENABLED=0 go build -a -o /go/bin/azure-vnet-ipam -trimpath -ldflags "-X main.version="$VERSION"" -gcflags="-dwarflocationlists=true" cni/ipam/plugin/main.go RUN GOOS=$OS CGO_ENABLED=0 go build -a -o /go/bin/azurecni-stateless -trimpath -ldflags "-X main.version="$VERSION"" -gcflags="-dwarflocationlists=true" cni/network/stateless/main.go