Skip to content

Commit

Permalink
test: allow installation using a specified GatewayAPI commit
Browse files Browse the repository at this point in the history
Signed-off-by: Jintao Zhang <zhangjintao9020@gmail.com>
  • Loading branch information
tao12345666333 committed Apr 3, 2024
1 parent a04d32a commit 9d514ca
Show file tree
Hide file tree
Showing 5 changed files with 24 additions and 9 deletions.
8 changes: 7 additions & 1 deletion Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -725,10 +725,15 @@ _run:
# unsupported ref and downloads the manifests from the main branch.
#
# [1]: https://github.com/kubernetes-sigs/kustomize/blob/master/examples/remoteBuild.md#remote-directories
#
# If you want to install from a specific commit,
# you can set GATEWAY_API_VERSION to the full commit hash
# and GATEWAY_API_PACKAGE_VERSION will be automatically obtained through go mod.
GATEWAY_API_PACKAGE ?= sigs.k8s.io/gateway-api
GATEWAY_API_RELEASE_CHANNEL ?= experimental
GATEWAY_API_VERSION ?= $(shell go list -m -f '{{ .Version }}' $(GATEWAY_API_PACKAGE))
GATEWAY_API_CRDS_LOCAL_PATH = $(shell go env GOPATH)/pkg/mod/$(GATEWAY_API_PACKAGE)@$(GATEWAY_API_VERSION)/config/crd
GATEWAY_API_PACKAGE_VERSION ?= $(shell go list -m -f '{{ .Version }}' $(GATEWAY_API_PACKAGE))
GATEWAY_API_CRDS_LOCAL_PATH = $(shell go env GOPATH)/pkg/mod/$(GATEWAY_API_PACKAGE)@$(GATEWAY_API_PACKAGE_VERSION)/config/crd
GATEWAY_API_REPO ?= github.com/kubernetes-sigs/gateway-api
GATEWAY_API_RAW_REPO ?= https://raw.githubusercontent.com/kubernetes-sigs/gateway-api
GATEWAY_API_CRDS_URL = $(GATEWAY_API_REPO)/config/crd/$(GATEWAY_API_RELEASE_CHANNEL)?ref=$(GATEWAY_API_VERSION)
Expand All @@ -745,6 +750,7 @@ print-gateway-api-raw-repo-url:
.PHONY: generate.gateway-api-consts
generate.gateway-api-consts:
GATEWAY_API_VERSION=$(GATEWAY_API_VERSION) \
GATEWAY_API_PACKAGE_VERSION=$(GATEWAY_API_PACKAGE_VERSION) \
CRDS_STANDARD_URL=$(shell GATEWAY_API_RELEASE_CHANNEL="" $(MAKE) print-gateway-api-crds-url) \
CRDS_EXPERIMENTAL_URL=$(shell GATEWAY_API_RELEASE_CHANNEL="experimental" $(MAKE) print-gateway-api-crds-url) \
RAW_REPO_URL=$(shell $(MAKE) print-gateway-api-raw-repo-url) \
Expand Down
1 change: 1 addition & 0 deletions test/consts/zz_generated_gateway.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion test/envtest/setup.go
Original file line number Diff line number Diff line change
Expand Up @@ -127,7 +127,7 @@ func Setup(t *testing.T, scheme *k8sruntime.Scheme, optModifiers ...OptionModifi
func installGatewayCRDs(t *testing.T, scheme *k8sruntime.Scheme, cfg *rest.Config) {
t.Helper()

gatewayCRDPath := filepath.Join(build.Default.GOPATH, "pkg", "mod", "sigs.k8s.io", "gateway-api@"+consts.GatewayAPIVersion, "config", "crd", "experimental")
gatewayCRDPath := filepath.Join(build.Default.GOPATH, "pkg", "mod", "sigs.k8s.io", "gateway-api@"+consts.GatewayAPIPackageVersion, "config", "crd", "experimental")
_, err := envtest.InstallCRDs(cfg, envtest.CRDInstallOptions{
Scheme: scheme,
Paths: []string{gatewayCRDPath},
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ package consts

const (
GatewayAPIVersion = "{{.GatewayAPIVersion}}"
GatewayAPIPackageVersion = "{{.GatewayAPIPackageVersion}}"
GatewayStandardCRDsKustomizeURL = "{{.CRDsStandardKustomizeURL}}"
GatewayExperimentalCRDsKustomizeURL = "{{.CRDsExperimentalKustomizeURL}}"
GatewayRawRepoURL = "{{.RawRepoURL}}"
Expand Down
21 changes: 14 additions & 7 deletions test/internal/cmd/generate-gateway-api-consts/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -14,19 +14,21 @@ import (
"text/template"
)

//go:generate go run --tags generate_gateway_api_consts . -gateway-api-version $GATEWAY_API_VERSION -crds-standard-url $CRDS_STANDARD_URL -crds-experimental-url $CRDS_EXPERIMENTAL_URL -raw-repo-url $RAW_REPO_URL -in $INPUT -out $OUTPUT
//go:generate go run --tags generate_gateway_api_consts . -gateway-api-version $GATEWAY_API_VERSION -gateway-api-package-version $GATEWAY_API_PACKAGE_VERSION -crds-standard-url $CRDS_STANDARD_URL -crds-experimental-url $CRDS_EXPERIMENTAL_URL -raw-repo-url $RAW_REPO_URL -in $INPUT -out $OUTPUT

var (
gatewayAPIVersionFlag = flag.String("gateway-api-version", "", "The semver version of Gateway API that should be used")
crdsStandardURLFlag = flag.String("crds-standard-url", "", "The URL of standard Gateway API CRDs to be consumed by kustomize")
crdsExperimentalURLFlag = flag.String("crds-experimental-url", "", "The URL of experimental Gateway API CRDs to be consumed by kustomize")
rawRepoURLFlag = flag.String("raw-repo-url", "", "The raw URL of Gateway API repository")
inFlag = flag.String("in", "", "Template file path")
outFlag = flag.String("out", "", "Output file path where the generated file will be placed")
gatewayAPIVersionFlag = flag.String("gateway-api-version", "", "The semver version of Gateway API that should be used")
gatewayAPIPackageVersionFlag = flag.String("gateway-api-package-version", "", "The version of Gateway API package that should be used")
crdsStandardURLFlag = flag.String("crds-standard-url", "", "The URL of standard Gateway API CRDs to be consumed by kustomize")
crdsExperimentalURLFlag = flag.String("crds-experimental-url", "", "The URL of experimental Gateway API CRDs to be consumed by kustomize")
rawRepoURLFlag = flag.String("raw-repo-url", "", "The raw URL of Gateway API repository")
inFlag = flag.String("in", "", "Template file path")
outFlag = flag.String("out", "", "Output file path where the generated file will be placed")
)

type Data struct {
GatewayAPIVersion string
GatewayAPIPackageVersion string
CRDsStandardKustomizeURL string
CRDsExperimentalKustomizeURL string
RawRepoURL string
Expand All @@ -37,6 +39,7 @@ func main() {

data := Data{
GatewayAPIVersion: *gatewayAPIVersionFlag,
GatewayAPIPackageVersion: *gatewayAPIPackageVersionFlag,
CRDsStandardKustomizeURL: *crdsStandardURLFlag,
CRDsExperimentalKustomizeURL: *crdsExperimentalURLFlag,
RawRepoURL: *rawRepoURLFlag,
Expand All @@ -56,6 +59,10 @@ func flagParse() {
log.Print("Please provide the 'gateway-api-version' flag")
os.Exit(0)
}
if *gatewayAPIPackageVersionFlag == "" {
log.Print("Please provide the 'gateway-api-package-version' flag")
os.Exit(0)
}
if *crdsStandardURLFlag == "" {
log.Print("Please provide the 'crds-standard-url' flag")
os.Exit(0)
Expand Down

0 comments on commit 9d514ca

Please sign in to comment.