From 4ec743b994ede1396622cd9b93464d78d60abfcb Mon Sep 17 00:00:00 2001 From: salonichf5 <146118978+salonichf5@users.noreply.github.com> Date: Tue, 26 Nov 2024 15:45:44 -0800 Subject: [PATCH] enable and update endpoint for telemetry for longevity tests --- .github/workflows/ci.yml | 2 +- cmd/gateway/commands.go | 2 ++ tests/Makefile | 2 +- tests/framework/ngf.go | 16 ++++++++++++++-- tests/suite/system_suite_test.go | 6 ++++++ 5 files changed, 24 insertions(+), 4 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 08bc5caf09..1cc9f2406a 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -180,7 +180,7 @@ jobs: AZURE_STORAGE_KEY: ${{ secrets.AZURE_STORAGE_KEY }} AZURE_BUCKET_NAME: ${{ secrets.AZURE_BUCKET_NAME }} SLACK_WEBHOOK: ${{ secrets.SLACK_WEBHOOK_COMMUNITY }} - TELEMETRY_ENDPOINT: oss.edge.df.f5.com:443 + TELEMETRY_ENDPOINT: ${{ github.event == 'push' && 'tests/telemetry' && startsWith(github.ref, 'refs/heads/tests/') && 'oss-dev.edge.df.f5.com:443' || 'oss.edge.df.f5.com:443' }} TELEMETRY_ENDPOINT_INSECURE: "false" - name: Cache Artifacts diff --git a/cmd/gateway/commands.go b/cmd/gateway/commands.go index 72b64db403..103cbf3340 100644 --- a/cmd/gateway/commands.go +++ b/cmd/gateway/commands.go @@ -190,6 +190,8 @@ func createStaticModeCommand() *cobra.Command { } } + fmt.Println("telemetry endpoint set to ", telemetryEndpoint) + telemetryEndpointInsecure, err := strconv.ParseBool(telemetryEndpointInsecure) if err != nil { return fmt.Errorf("error parsing telemetry endpoint insecure: %w", err) diff --git a/tests/Makefile b/tests/Makefile index 3addb0843d..50c66ad5c5 100644 --- a/tests/Makefile +++ b/tests/Makefile @@ -123,7 +123,7 @@ stop-longevity-test: nfr-test ## Stop the longevity test and collects results .PHONY: .vm-nfr-test .vm-nfr-test: ## Runs the NFR tests on the GCP VM (called by `nfr-test`) - go run github.com/onsi/ginkgo/v2/ginkgo --randomize-all --randomize-suites --keep-going --fail-on-pending \ + go run github.com/onsi/ginkgo/v2/ginkgo -v --randomize-all --randomize-suites --keep-going --fail-on-pending \ --trace -r -v --buildvcs --force-newlines $(GITHUB_OUTPUT) \ --label-filter "nfr" $(GINKGO_FLAGS) --timeout 5h ./suite -- --gateway-api-version=$(GW_API_VERSION) \ --gateway-api-prev-version=$(GW_API_PREV_VERSION) --image-tag=$(TAG) --version-under-test=$(NGF_VERSION) \ diff --git a/tests/framework/ngf.go b/tests/framework/ngf.go index 6c3008d882..56e9608a4e 100644 --- a/tests/framework/ngf.go +++ b/tests/framework/ngf.go @@ -35,6 +35,7 @@ type InstallationConfig struct { ServiceType string IsGKEInternalLB bool Plus bool + Telemetry bool } // InstallGatewayAPI installs the specified version of the Gateway API resources. @@ -70,7 +71,6 @@ func InstallNGF(cfg InstallationConfig, extraArgs ...string) ([]byte, error) { "--create-namespace", "--namespace", cfg.Namespace, "--wait", - "--set", "nginxGateway.productTelemetry.enable=false", "--set", "nginxGateway.snippetsFilters.enable=true", } if cfg.ChartVersion != "" { @@ -78,6 +78,7 @@ func InstallNGF(cfg InstallationConfig, extraArgs ...string) ([]byte, error) { } args = append(args, setImageArgs(cfg)...) + args = append(args, setTelemetryArgs(cfg)...) fullArgs := append(args, extraArgs...) //nolint:gocritic GinkgoWriter.Printf("Installing NGF with command: helm %v\n", strings.Join(fullArgs, " ")) @@ -136,7 +137,6 @@ func UpgradeNGF(cfg InstallationConfig, extraArgs ...string) ([]byte, error) { cfg.ChartPath, "--namespace", cfg.Namespace, "--wait", - "--set", "nginxGateway.productTelemetry.enable=false", "--set", "nginxGateway.config.logging.level=debug", "--set", "nginxGateway.snippetsFilter.enable=true", } @@ -145,6 +145,7 @@ func UpgradeNGF(cfg InstallationConfig, extraArgs ...string) ([]byte, error) { } args = append(args, setImageArgs(cfg)...) + args = append(args, setTelemetryArgs(cfg)...) fullArgs := append(args, extraArgs...) //nolint:gocritic GinkgoWriter.Printf("Upgrading NGF with command: helm %v\n", strings.Join(fullArgs, " ")) @@ -188,6 +189,17 @@ func UninstallNGF(cfg InstallationConfig, k8sClient client.Client) ([]byte, erro return nil, nil } +func setTelemetryArgs(cfg InstallationConfig) []string { + var args []string + + args = append(args, formatValueSet("nginxGateway.productTelemetry.enable", "false")...) + if cfg.Telemetry { + GinkgoWriter.Printf("Telemetry set to %v\n", cfg.Telemetry) + args = append(args, formatValueSet("nginxGateway.productTelemetry.enable", "true")...) + } + return args +} + func setImageArgs(cfg InstallationConfig) []string { var args []string diff --git a/tests/suite/system_suite_test.go b/tests/suite/system_suite_test.go index 7c51bc8e97..f4bce1b1b9 100644 --- a/tests/suite/system_suite_test.go +++ b/tests/suite/system_suite_test.go @@ -99,6 +99,7 @@ type setupConfig struct { deploy bool nfr bool debugLogLevel bool + telemetry bool } func setup(cfg setupConfig, extraInstallArgs ...string) { @@ -151,6 +152,10 @@ func setup(cfg setupConfig, extraInstallArgs ...string) { Skip("Graceful Recovery test must be run on Kind") } + if clusterInfo.IsGKE && strings.Contains(GinkgoLabelFilter(), "longevity") { + cfg.telemetry = true + } + switch { case *versionUnderTest != "": version = *versionUnderTest @@ -196,6 +201,7 @@ func createNGFInstallConfig(cfg setupConfig, extraInstallArgs ...string) framewo ServiceType: *serviceType, IsGKEInternalLB: *isGKEInternalLB, Plus: *plusEnabled, + Telemetry: cfg.telemetry, } // if we aren't installing from the public charts, then set the custom images