diff --git a/.golangci.yml b/.golangci.yml index 0462e1df07..730b7f583d 100644 --- a/.golangci.yml +++ b/.golangci.yml @@ -11,6 +11,11 @@ linters-settings: - name: blank-imports - name: context-as-argument - name: context-keys-type + - name: dot-imports + arguments: + - allowedPackages: + - github.com/onsi/gomega + - github.com/onsi/ginkgo/v2 - name: empty-block - name: error-naming - name: error-return @@ -40,6 +45,10 @@ linters-settings: dupword: ignore: - "test" + stylecheck: + dot-import-whitelist: + - github.com/onsi/gomega + - github.com/onsi/ginkgo/v2 linters: enable: - asasalint diff --git a/tests/Makefile b/tests/Makefile index b75c2050de..e404e5e4f5 100644 --- a/tests/Makefile +++ b/tests/Makefile @@ -9,7 +9,7 @@ GW_API_VERSION ?= $(shell sed -n 's/.*ref=v\(.*\)/\1/p' ../config/crd/gateway-ap GW_API_PREV_VERSION ?= 1.1.0## Supported Gateway API version from previous NGF release GW_SERVICE_TYPE = NodePort## Service type to use for the gateway GW_SVC_GKE_INTERNAL = false -NGF_VERSION ?= $(shell git describe --tags $(shell git rev-list --tags --max-count=1))## NGF version to be tested (defaults to latest tag) +NGF_VERSION ?= edge## NGF version to be tested PULL_POLICY = Never## Pull policy for the images PROVISIONER_MANIFEST = conformance/provisioner/provisioner.yaml SUPPORTED_FEATURES = HTTPRouteQueryParamMatching,HTTPRouteMethodMatching,HTTPRoutePortRedirect,HTTPRouteSchemeRedirect,HTTPRouteHostRewrite,HTTPRoutePathRewrite,GatewayPort8080,HTTPRouteResponseHeaderModification,GRPCExactMethodMatching,GRPCRouteListenerHostnameMatching,GRPCRouteHeaderMatching diff --git a/tests/framework/ngf.go b/tests/framework/ngf.go index e2f2eb97ab..48863a23e7 100644 --- a/tests/framework/ngf.go +++ b/tests/framework/ngf.go @@ -8,6 +8,7 @@ import ( "strings" "time" + . "github.com/onsi/ginkgo/v2" core "k8s.io/api/core/v1" apiext "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1" apierrors "k8s.io/apimachinery/pkg/api/errors" @@ -22,6 +23,7 @@ type InstallationConfig struct { ReleaseName string Namespace string ChartPath string + ChartVersion string NgfImageRepository string NginxImageRepository string ImageTag string @@ -58,6 +60,7 @@ func UninstallGatewayAPI(apiVersion string) ([]byte, error) { func InstallNGF(cfg InstallationConfig, extraArgs ...string) ([]byte, error) { args := []string{ "install", + "--debug", cfg.ReleaseName, cfg.ChartPath, "--create-namespace", @@ -65,10 +68,15 @@ func InstallNGF(cfg InstallationConfig, extraArgs ...string) ([]byte, error) { "--wait", "--set", "nginxGateway.productTelemetry.enable=false", } + if cfg.ChartVersion != "" { + args = append(args, "--version", cfg.ChartVersion) + } args = append(args, setImageArgs(cfg)...) fullArgs := append(args, extraArgs...) + GinkgoWriter.Printf("Installing NGF with command: helm %v\n", strings.Join(fullArgs, " ")) + return exec.Command("helm", fullArgs...).CombinedOutput() } @@ -81,16 +89,22 @@ func UpgradeNGF(cfg InstallationConfig, extraArgs ...string) ([]byte, error) { args := []string{ "upgrade", + "--debug", cfg.ReleaseName, cfg.ChartPath, "--namespace", cfg.Namespace, "--wait", "--set", "nginxGateway.productTelemetry.enable=false", } + if cfg.ChartVersion != "" { + args = append(args, "--version", cfg.ChartVersion) + } args = append(args, setImageArgs(cfg)...) fullArgs := append(args, extraArgs...) + GinkgoWriter.Printf("Upgrading NGF with command: helm %v\n", strings.Join(fullArgs, " ")) + return exec.Command("helm", fullArgs...).CombinedOutput() } diff --git a/tests/scripts/sync-files-to-vm.sh b/tests/scripts/sync-files-to-vm.sh index f8ecaabc6e..5b44c03c16 100755 --- a/tests/scripts/sync-files-to-vm.sh +++ b/tests/scripts/sync-files-to-vm.sh @@ -4,8 +4,8 @@ set -eo pipefail source scripts/vars.env -NGF_DIR=$(dirname "$PWD") +NGF_DIR=$(dirname "$PWD")/ gcloud compute config-ssh --ssh-config-file ngf-gcp.ssh >/dev/null -rsync -ave 'ssh -F ngf-gcp.ssh' "${NGF_DIR}" username@"${RESOURCE_NAME}"."${GKE_CLUSTER_ZONE}"."${GKE_PROJECT}":~ +rsync -ave 'ssh -F ngf-gcp.ssh' "${NGF_DIR}" username@"${RESOURCE_NAME}"."${GKE_CLUSTER_ZONE}"."${GKE_PROJECT}":~/nginx-gateway-fabric diff --git a/tests/suite/system_suite_test.go b/tests/suite/system_suite_test.go index bfb82040bf..f6913935ac 100644 --- a/tests/suite/system_suite_test.go +++ b/tests/suite/system_suite_test.go @@ -73,6 +73,7 @@ var ( localChartPath string address string version string + chartVersion string clusterInfo framework.ClusterInfo skipNFRTests bool ) @@ -173,6 +174,11 @@ func setup(cfg setupConfig, extraInstallArgs ...string) { } installCfg.ImageTag = *imageTag installCfg.ImagePullPolicy = *imagePullPolicy + } else { + if version == "edge" { + chartVersion = "0.0.0-edge" + installCfg.ChartVersion = chartVersion + } } output, err := framework.InstallGatewayAPI(cfg.gwAPIVersion) diff --git a/tests/suite/upgrade_test.go b/tests/suite/upgrade_test.go index 6539fffd96..66c87922e8 100644 --- a/tests/suite/upgrade_test.go +++ b/tests/suite/upgrade_test.go @@ -92,6 +92,7 @@ var _ = Describe("Upgrade testing", Label("nfr", "upgrade"), func() { ReleaseName: releaseName, Namespace: ngfNamespace, ChartPath: localChartPath, + ChartVersion: chartVersion, NgfImageRepository: *ngfImageRepository, NginxImageRepository: nginxImage, ImageTag: *imageTag,