Skip to content

Commit

Permalink
Enable and update endpoint for telemetry for longevity tests (#2824)
Browse files Browse the repository at this point in the history
Enable and update endpoint for telemetry for longevity tests

Problem: Users want to get telemetry reports when running longevity tests to simulate a live environment.

Solution: To provide live telemetry reports when running longevity tests, we have enabled telemetry for the test when label is longevity and updated the workflow that creates the binary for release to update the TELEMETRY_ENDPOINT to the dev endpoint.
  • Loading branch information
salonichf5 authored Dec 4, 2024
1 parent 73afa15 commit 618e37f
Show file tree
Hide file tree
Showing 3 changed files with 21 additions and 3 deletions.
2 changes: 1 addition & 1 deletion .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -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_name == 'push' && startsWith(github.ref, 'refs/heads/release-') && 'oss-dev.edge.df.f5.com:443' || 'oss.edge.df.f5.com:443' }}
TELEMETRY_ENDPOINT_INSECURE: "false"

- name: Cache Artifacts
Expand Down
16 changes: 14 additions & 2 deletions tests/framework/ngf.go
Original file line number Diff line number Diff line change
Expand Up @@ -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.
Expand Down Expand Up @@ -70,14 +71,14 @@ 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 != "" {
args = append(args, "--version", cfg.ChartVersion)
}

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, " "))
Expand Down Expand Up @@ -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",
}
Expand All @@ -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, " "))
Expand Down Expand Up @@ -188,6 +189,17 @@ func UninstallNGF(cfg InstallationConfig, k8sClient client.Client) ([]byte, erro
return nil, nil
}

func setTelemetryArgs(cfg InstallationConfig) []string {
var args []string

if cfg.Telemetry {
args = append(args, formatValueSet("nginxGateway.productTelemetry.enable", "true")...)
} else {
args = append(args, formatValueSet("nginxGateway.productTelemetry.enable", "false")...)
}
return args
}

func setImageArgs(cfg InstallationConfig) []string {
var args []string

Expand Down
6 changes: 6 additions & 0 deletions tests/suite/system_suite_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -99,6 +99,7 @@ type setupConfig struct {
deploy bool
nfr bool
debugLogLevel bool
telemetry bool
}

func setup(cfg setupConfig, extraInstallArgs ...string) {
Expand Down Expand Up @@ -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
Expand Down Expand Up @@ -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
Expand Down

0 comments on commit 618e37f

Please sign in to comment.