diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml index 20d5791da1..966eb893e0 100644 --- a/.github/workflows/release.yaml +++ b/.github/workflows/release.yaml @@ -28,7 +28,7 @@ jobs: go-version: ${{ env.go_version }} - name: generate release artifacts run: | - make release-manifests VERSION=${RELEASE_TAG} + make release - name: generate release notes run: | make generate-release-notes diff --git a/Makefile b/Makefile index 856e92cc15..c7b42a2e95 100644 --- a/Makefile +++ b/Makefile @@ -20,14 +20,11 @@ SHELL:=/usr/bin/env bash .DEFAULT_GOAL:=help -// FIXME: still needed? -VERSION ?= $(shell cat clusterctl-settings.json | jq .config.nextVersion -r) - # # Go. # GO_VERSION ?= 1.20.6 -GO_CONTAINER_IMAGE ?= docker.io/library/golang:$(GO_VERSION) +GO_CONTAINER_IMAGE ?= golang:$(GO_VERSION) # Use GOPROXY environment variable if set GOPROXY := $(shell go env GOPROXY) @@ -114,6 +111,11 @@ CONTROLLER_GEN_BIN := controller-gen CONTROLLER_GEN := $(abspath $(TOOLS_BIN_DIR)/$(CONTROLLER_GEN_BIN)-$(CONTROLLER_GEN_VER)) CONTROLLER_GEN_PKG := sigs.k8s.io/controller-tools/cmd/controller-gen +GOTESTSUM_VER := v1.6.4 +GOTESTSUM_BIN := gotestsum +GOTESTSUM := $(abspath $(TOOLS_BIN_DIR)/$(GOTESTSUM_BIN)-$(GOTESTSUM_VER)) +GOTESTSUM_PKG := gotest.tools/gotestsum + CONVERSION_GEN_VER := v0.27.1 CONVERSION_GEN_BIN := conversion-gen # We are intentionally using the binary without version suffix, to avoid the version @@ -209,6 +211,7 @@ SUPERVISOR_CRD_ROOT ?= $(MANIFEST_ROOT)/supervisor/crd VMOP_CRD_ROOT ?= $(MANIFEST_ROOT)/deployments/integration-tests/crds WEBHOOK_ROOT ?= $(MANIFEST_ROOT)/webhook RBAC_ROOT ?= $(MANIFEST_ROOT)/rbac +VERSION ?= $(shell cat clusterctl-settings.json | jq .config.nextVersion -r) OVERRIDES_DIR := $(HOME)/.cluster-api/overrides/infrastructure-vsphere/$(VERSION) all: test managers clusterctl @@ -385,11 +388,8 @@ clusterctl: go.mod ## Build the clusterctl binary ALL_MANAGERS = vsphere -.PHONY: managers -managers: $(addprefix manager-,$(ALL_MANAGERS)) ## Run all manager-* targets - -.PHONY: $(MANAGER) -manager-vsphere: ## Build the vsphere manager binary into the ./bin folder +.PHONY: manager +manager: ## Build the vsphere manager binary into the ./bin folder go build -trimpath -ldflags "$(LDFLAGS)" -o $(BIN_DIR)/manager sigs.k8s.io/cluster-api-provider-vsphere .PHONY: generate-flavors @@ -405,7 +405,7 @@ generate-flavors: $(FLAVOR_DIR) docker-pull-prerequisites: docker pull docker.io/docker/dockerfile:1.4 docker pull $(GO_CONTAINER_IMAGE) - docker pull gcr.io/distroless/static:latest + docker pull gcr.io/distroless/static:nonroot .PHONY: docker-build-all docker-build-all: $(addprefix docker-build-,$(ALL_ARCH)) ## Build docker images for all architectures @@ -413,23 +413,9 @@ docker-build-all: $(addprefix docker-build-,$(ALL_ARCH)) ## Build docker images docker-build-%: $(MAKE) ARCH=$* docker-build -ALL_DOCKER_BUILD = vsphere - .PHONY: docker-build -docker-build: docker-pull-prerequisites ## Run docker-build-* targets for all the images - $(MAKE) ARCH=$(ARCH) $(addprefix docker-build-,$(ALL_DOCKER_BUILD)) - -ALL_DOCKER_BUILD_E2E = vsphere - -.PHONY: docker-build-e2e -docker-build-e2e: ## Run docker-build-* targets for all the images with settings to be used for the e2e tests - # please ensure the generated image name matches image names used in the E2E_CONF_FILE; - # also the same settings must exist in ci-e2e-lib.sh, capi:buildDockerImage func. - $(MAKE) REGISTRY=gcr.io/k8s-staging-capi-vsphere PULL_POLICY=IfNotPresent TAG=dev $(addprefix docker-build-,$(ALL_DOCKER_BUILD_E2E)) - -.PHONY: docker-build-vsphere -docker-build-vsphere: ## Build the docker image for core controller manager - DOCKER_BUILDKIT=1 docker build --build-arg builder_image=$(GO_CONTAINER_IMAGE) --build-arg goproxy=$(GOPROXY) --build-arg ARCH=$(ARCH) --build-arg ldflags="$(LDFLAGS)" . -t $(CONTROLLER_IMG)-$(ARCH):$(TAG) +docker-build: docker-pull-prerequisites ## Build the docker image for core controller manager + DOCKER_BUILDKIT=1 docker build --platform linux/$(ARCH) --build-arg GOLANG_VERSION=$(GO_CONTAINER_IMAGE) --build-arg goproxy=$(GOPROXY) --build-arg ldflags="$(LDFLAGS)" . -t $(CONTROLLER_IMG)-$(ARCH):$(TAG) $(MAKE) set-manifest-image MANIFEST_IMG=$(CONTROLLER_IMG)-$(ARCH) MANIFEST_TAG=$(TAG) TARGET_RESOURCE="./config/base/manager_image_patch.yaml" $(MAKE) set-manifest-pull-policy TARGET_RESOURCE="./config/base/manager_pull_policy.yaml" @@ -448,27 +434,21 @@ setup-envtest: $(SETUP_ENVTEST) ## Set up envtest (download kubebuilder assets) @echo KUBEBUILDER_ASSETS=$(KUBEBUILDER_ASSETS) .PHONY: test -test: $(SETUP_ENVTEST) $(GOVC) ## Run unit and integration tests +test: $(SETUP_ENVTEST) $(GOVC) ## Run unit tests KUBEBUILDER_ASSETS="$(KUBEBUILDER_ASSETS)" GOVC_BIN_PATH=$(GOVC) go test -v ./apis/... ./controllers/... ./pkg/... $(TEST_ARGS) .PHONY: test-verbose -test-verbose: ## Run unit and integration tests with verbose flag +test-verbose: ## Run unit tests with verbose flag $(MAKE) test TEST_ARGS="$(TEST_ARGS) -v" -.PHONY: test-junit -test-junit: $(SETUP_ENVTEST) $(GOTESTSUM) ## Run unit and integration tests and generate a junit report - set +o errexit; (KUBEBUILDER_ASSETS="$(KUBEBUILDER_ASSETS)" go test -json ./... $(TEST_ARGS); echo $$? > $(ARTIFACTS)/junit.exitcode) | tee $(ARTIFACTS)/junit.stdout - $(GOTESTSUM) --junitfile $(ARTIFACTS)/junit.xml --raw-command cat $(ARTIFACTS)/junit.stdout - exit $$(cat $(ARTIFACTS)/junit.exitcode) - .PHONY: test-cover -test-cover: ## Run unit and integration tests and generate a coverage report +test-cover: ## Run unit tests and generate a coverage report $(MAKE) test TEST_ARGS="$(TEST_ARGS) -coverprofile=coverage.out" go tool cover -func=coverage.out -o coverage.txt go tool cover -html=coverage.out -o coverage.html .PHONY: test-integration -test-integration: e2e-image +test-integration: e2e-image ## Run integration tests test-integration: $(GINKGO) $(KUSTOMIZE) $(KIND) time $(GINKGO) -v ./test/integration -- --config="$(INTEGRATION_CONF_FILE)" --artifacts-folder="$(ARTIFACTS)" @@ -703,6 +683,9 @@ $(CONVERSION_GEN_BIN): $(CONVERSION_GEN) ## Build a local copy of conversion-gen .PHONY: $(CONVERSION_VERIFIER_BIN) $(CONVERSION_VERIFIER_BIN): $(CONVERSION_VERIFIER) ## Build a local copy of conversion-verifier. +.PHONY: $(GOTESTSUM_BIN) +$(GOTESTSUM_BIN): $(GOTESTSUM) ## Build a local copy of gotestsum. + .PHONY: $(GO_APIDIFF_BIN) $(GO_APIDIFF_BIN): $(GO_APIDIFF) ## Build a local copy of go-apidiff @@ -740,19 +723,22 @@ $(CONTROLLER_GEN): # Build CONTROLLER_GEN. ## We are forcing a rebuilt of conversion-gen via PHONY so that we're always using an up-to-date version. ## We can't use a versioned name for the binary, because that would be reflected in generated files. .PHONY: $(CONVERSION_GEN) -$(CONVERSION_GEN): # Build conversion-gen from tools folder. +$(CONVERSION_GEN): # Build conversion-gen. GOBIN=$(TOOLS_BIN_DIR) $(GO_INSTALL) $(CONVERSION_GEN_PKG) $(CONVERSION_GEN_BIN) $(CONVERSION_GEN_VER) $(CONVERSION_VERIFIER): # Build conversion-verifier. GOBIN=$(TOOLS_BIN_DIR) $(GO_TOOLS_BUILD) $(CONVERSION_VERIFIER_PKG) $(CONVERSION_VERIFIER_BIN) $(CONVERSION_VERIFIER_VER) -$(GO_APIDIFF): # Build go-apidiff from tools folder. +$(GOTESTSUM): # Build gotestsum from tools folder. + GOBIN=$(TOOLS_BIN_DIR) $(GO_INSTALL) $(GOTESTSUM_PKG) $(GOTESTSUM_BIN) $(GOTESTSUM_VER) + +$(GO_APIDIFF): # Build go-apidiff. GOBIN=$(TOOLS_BIN_DIR) $(GO_INSTALL) $(GO_APIDIFF_PKG) $(GO_APIDIFF_BIN) $(GO_APIDIFF_VER) -$(KUSTOMIZE): # Build kustomize from tools folder. +$(KUSTOMIZE): # Build kustomize. CGO_ENABLED=0 GOBIN=$(TOOLS_BIN_DIR) $(GO_INSTALL) $(KUSTOMIZE_PKG) $(KUSTOMIZE_BIN) $(KUSTOMIZE_VER) -$(SETUP_ENVTEST): # Build setup-envtest from tools folder. +$(SETUP_ENVTEST): # Build setup-envtest. GOBIN=$(TOOLS_BIN_DIR) $(GO_INSTALL) $(SETUP_ENVTEST_PKG) $(SETUP_ENVTEST_BIN) $(SETUP_ENVTEST_VER) $(KPROMO): @@ -761,10 +747,10 @@ $(KPROMO): $(YQ): GOBIN=$(TOOLS_BIN_DIR) $(GO_INSTALL) $(YQ_PKG) $(YQ_BIN) ${YQ_VER} -$(GINKGO): # Build ginkgo from tools folder. +$(GINKGO): # Build ginkgo. GOBIN=$(TOOLS_BIN_DIR) $(GO_INSTALL) $(GINKGO_PKG) $(GINKGO_BIN) $(GINGKO_VER) -$(GOLANGCI_LINT): # Build golangci-lint from tools folder. +$(GOLANGCI_LINT): # Build golangci-lint. GOBIN=$(TOOLS_BIN_DIR) $(GO_INSTALL) $(GOLANGCI_LINT_PKG) $(GOLANGCI_LINT_BIN) $(GOLANGCI_LINT_VER) $(GOVC): # Build GOVC. diff --git a/apis/v1alpha3/networkdevicespec_conversion.go b/apis/v1alpha3/networkdevicespec_conversion.go index db7f5b7720..2d69a8cc34 100644 --- a/apis/v1alpha3/networkdevicespec_conversion.go +++ b/apis/v1alpha3/networkdevicespec_conversion.go @@ -5,7 +5,7 @@ Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at - http://www.apache.org/licenses/LICENSE-2.0 + http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, @@ -18,6 +18,7 @@ package v1alpha3 import ( conversion "k8s.io/apimachinery/pkg/conversion" + v1beta1 "sigs.k8s.io/cluster-api-provider-vsphere/apis/v1beta1" ) diff --git a/apis/v1alpha4/networkdevicespec_conversion.go b/apis/v1alpha4/networkdevicespec_conversion.go index 56064d1cd8..1436af1d7b 100644 --- a/apis/v1alpha4/networkdevicespec_conversion.go +++ b/apis/v1alpha4/networkdevicespec_conversion.go @@ -5,7 +5,7 @@ Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at - http://www.apache.org/licenses/LICENSE-2.0 + http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, @@ -18,6 +18,7 @@ package v1alpha4 import ( conversion "k8s.io/apimachinery/pkg/conversion" + v1beta1 "sigs.k8s.io/cluster-api-provider-vsphere/apis/v1beta1" ) diff --git a/hack/boilerplate/README.md b/hack/boilerplate/README.md new file mode 100644 index 0000000000..09503541f5 --- /dev/null +++ b/hack/boilerplate/README.md @@ -0,0 +1,3 @@ +# Boilerplate utilities + +The boilerplate validation utilities have been copied and adapted from upstream Kubernetes, see [boilerplate](https://github.com/kubernetes/kubernetes/blob/4dfd73940396730caf331e35cbb28235d233f2a0/hack/boilerplate). diff --git a/hack/boilerplate/boilerplate.Dockerfile.txt b/hack/boilerplate/boilerplate.Dockerfile.txt index 384f325abf..8e3aa0ab20 100644 --- a/hack/boilerplate/boilerplate.Dockerfile.txt +++ b/hack/boilerplate/boilerplate.Dockerfile.txt @@ -1,3 +1,5 @@ +# syntax=docker/dockerfile:1.4 + # Copyright YEAR The Kubernetes Authors. # # Licensed under the Apache License, Version 2.0 (the "License"); @@ -11,4 +13,3 @@ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. - diff --git a/hack/boilerplate/boilerplate.bzl.txt b/hack/boilerplate/boilerplate.bzl.txt index 384f325abf..34cb349c40 100644 --- a/hack/boilerplate/boilerplate.bzl.txt +++ b/hack/boilerplate/boilerplate.bzl.txt @@ -11,4 +11,3 @@ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. - diff --git a/hack/boilerplate/boilerplate.generatego.txt b/hack/boilerplate/boilerplate.generatego.txt index b7c650da47..0926592d38 100644 --- a/hack/boilerplate/boilerplate.generatego.txt +++ b/hack/boilerplate/boilerplate.generatego.txt @@ -13,4 +13,3 @@ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. */ - diff --git a/hack/boilerplate/boilerplate.py b/hack/boilerplate/boilerplate.py index ba79f63da6..830fcdd3e8 100755 --- a/hack/boilerplate/boilerplate.py +++ b/hack/boilerplate/boilerplate.py @@ -1,4 +1,4 @@ -#!/usr/bin/env python +#!/usr/bin/env python3 # Copyright 2015 The Kubernetes Authors. # @@ -99,7 +99,7 @@ def file_passes(filename, refs, regexs): if extension == "go" or extension == "generatego": p = regexs["go_build_constraints"] (data, found) = p.subn("", data, 1) - elif extension == "sh": + elif extension in ["sh", "py"]: p = regexs["shebang"] (data, found) = p.subn("", data, 1) @@ -119,9 +119,11 @@ def file_passes(filename, refs, regexs): for d in data: if p.search(d): if generated: - print('File %s has the YEAR field, but it should not be in generated file' % filename, file=verbose_out) + print('File %s has the YEAR field, but it should not be in generated file' % + filename, file=verbose_out) else: - print('File %s has the YEAR field, but missing the year of date' % filename, file=verbose_out) + print('File %s has the YEAR field, but missing the year of date' % + filename, file=verbose_out) return False if not generated: @@ -134,7 +136,8 @@ def file_passes(filename, refs, regexs): # if we don't match the reference at this point, fail if ref != data: - print("Header in %s does not match reference, diff:" % filename, file=verbose_out) + print("Header in %s does not match reference, diff:" % + filename, file=verbose_out) if args.verbose: print(file=verbose_out) for line in difflib.unified_diff(ref, data, 'reference', filename, lineterm=''): @@ -147,12 +150,11 @@ def file_passes(filename, refs, regexs): def file_extension(filename): return os.path.splitext(filename)[1].split(".")[-1].lower() -skipped_dirs = ['Godeps', 'third_party', '_gopath', '_output', '.git', 'cluster/env.sh', - "vendor", "test/e2e/generated/bindata.go", "hack/boilerplate/test", - "pkg/kubectl/generated/bindata.go"] +skipped_dirs = ['_output', '.git', "hack/boilerplate/test"] # list all the files contain 'DO NOT EDIT', but are not generated -skipped_ungenerated_files = ['hack/lib/swagger.sh', 'hack/boilerplate/boilerplate.py'] +skipped_ungenerated_files = [ + 'hack/lib/swagger.sh', 'hack/boilerplate/boilerplate.py'] def normalize_files(files): newfiles = [] @@ -199,16 +201,19 @@ def get_dates(): def get_regexs(): regexs = {} # Search for "YEAR" which exists in the boilerplate, but shouldn't in the real thing - regexs["year"] = re.compile( 'YEAR' ) + regexs["year"] = re.compile('YEAR') # get_dates return 2014, 2015, 2016, 2017, or 2018 until the current year as a regex like: "(2014|2015|2016|2017|2018)"; # company holder names can be anything regexs["date"] = re.compile(get_dates()) - # strip // +build/+go:build constraints - regexs["go_build_constraints"] = re.compile(r"^(//(go:build| \+build).*\n)+\n", re.MULTILINE) - # strip #!.* from shell scripts + # strip the following build constraints/tags: + # //go:build + # // +build \n\n + regexs["go_build_constraints"] = re.compile( + r"^(//(go:build| \+build).*\n)+\n", re.MULTILINE) + # strip #!.* from scripts regexs["shebang"] = re.compile(r"^(#!.*\n)\n*", re.MULTILINE) # Search for generated files - regexs["generated"] = re.compile( 'DO NOT EDIT' ) + regexs["generated"] = re.compile('DO NOT EDIT') return regexs def main(): @@ -223,4 +228,4 @@ def main(): return 0 if __name__ == "__main__": - sys.exit(main()) + sys.exit(main()) diff --git a/hack/boilerplate/boilerplate.py.txt b/hack/boilerplate/boilerplate.py.txt index a2e72e5988..34cb349c40 100644 --- a/hack/boilerplate/boilerplate.py.txt +++ b/hack/boilerplate/boilerplate.py.txt @@ -1,5 +1,3 @@ -#!/usr/bin/env python - # Copyright YEAR The Kubernetes Authors. # # Licensed under the Apache License, Version 2.0 (the "License"); @@ -13,4 +11,3 @@ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. - diff --git a/hack/boilerplate/boilerplate.sh.txt b/hack/boilerplate/boilerplate.sh.txt index 384f325abf..34cb349c40 100644 --- a/hack/boilerplate/boilerplate.sh.txt +++ b/hack/boilerplate/boilerplate.sh.txt @@ -11,4 +11,3 @@ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. - diff --git a/hack/boilerplate/boilerplate_test.py b/hack/boilerplate/boilerplate_test.py index b8d5b8e9e0..49dc60c8c4 100644 --- a/hack/boilerplate/boilerplate_test.py +++ b/hack/boilerplate/boilerplate_test.py @@ -1,4 +1,4 @@ -#!/usr/bin/env python +#!/usr/bin/env python3 # Copyright 2016 The Kubernetes Authors. # diff --git a/hack/boilerplate/test/fail.go b/hack/boilerplate/test/fail.go index 16159c5ac0..bbaaf6414d 100644 --- a/hack/boilerplate/test/fail.go +++ b/hack/boilerplate/test/fail.go @@ -16,4 +16,5 @@ See the License for the specific language governing permissions and limitations under the License. */ +// Package test contains test boilerplate. package test diff --git a/hack/tools/bootstrap-base/Dockerfile b/hack/tools/bootstrap-base/Dockerfile index ff00644c5e..4eab9695da 100644 --- a/hack/tools/bootstrap-base/Dockerfile +++ b/hack/tools/bootstrap-base/Dockerfile @@ -1,3 +1,5 @@ +# syntax=docker/dockerfile:1.4 + # Copyright 2019 The Kubernetes Authors. # # Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/hack/tools/mdlint/Dockerfile b/hack/tools/mdlint/Dockerfile index fd3e5bea23..9de4a4d85d 100644 --- a/hack/tools/mdlint/Dockerfile +++ b/hack/tools/mdlint/Dockerfile @@ -1,3 +1,5 @@ +# syntax=docker/dockerfile:1.4 + # Copyright 2019 The Kubernetes Authors. # # Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/hack/tools/openvpn/Dockerfile b/hack/tools/openvpn/Dockerfile index a350ae4a5f..8a941856ce 100644 --- a/hack/tools/openvpn/Dockerfile +++ b/hack/tools/openvpn/Dockerfile @@ -1,3 +1,5 @@ +# syntax=docker/dockerfile:1.4 + # Copyright 2019 The Kubernetes Authors. # # Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/hack/tools/shellcheck/Dockerfile b/hack/tools/shellcheck/Dockerfile index 9486d0ff8e..483d05be12 100644 --- a/hack/tools/shellcheck/Dockerfile +++ b/hack/tools/shellcheck/Dockerfile @@ -1,3 +1,5 @@ +# syntax=docker/dockerfile:1.4 + # Copyright 2019 The Kubernetes Authors. # # Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/pkg/util/ipaddress_claim.go b/pkg/util/ipaddress_claim.go index 9e6b3dbb24..73a5583892 100644 --- a/pkg/util/ipaddress_claim.go +++ b/pkg/util/ipaddress_claim.go @@ -1,3 +1,19 @@ +/* +Copyright 2023 The Kubernetes Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + package util import "fmt" diff --git a/test/e2e/capv_clusterclass_quickstart_test.go b/test/e2e/capv_clusterclass_quickstart_test.go index 740cdaa021..b44851fa7c 100644 --- a/test/e2e/capv_clusterclass_quickstart_test.go +++ b/test/e2e/capv_clusterclass_quickstart_test.go @@ -5,7 +5,7 @@ Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at - http://www.apache.org/licenses/LICENSE-2.0 + http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, diff --git a/test/e2e/capv_quick_start_test.go b/test/e2e/capv_quick_start_test.go index 255a687caa..0b6b7abc79 100644 --- a/test/e2e/capv_quick_start_test.go +++ b/test/e2e/capv_quick_start_test.go @@ -5,7 +5,7 @@ Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at - http://www.apache.org/licenses/LICENSE-2.0 + http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, diff --git a/test/e2e/clusterclass_changes_test.go b/test/e2e/clusterclass_changes_test.go index 832f3eccaf..4527bffe0a 100644 --- a/test/e2e/clusterclass_changes_test.go +++ b/test/e2e/clusterclass_changes_test.go @@ -5,7 +5,7 @@ Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at - http://www.apache.org/licenses/LICENSE-2.0 + http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, diff --git a/test/e2e/dhcp_overrides_test.go b/test/e2e/dhcp_overrides_test.go index a49f59605b..f1f11fb352 100644 --- a/test/e2e/dhcp_overrides_test.go +++ b/test/e2e/dhcp_overrides_test.go @@ -5,7 +5,7 @@ Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at - http://www.apache.org/licenses/LICENSE-2.0 + http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, diff --git a/test/e2e/hardware_upgrade_test.go b/test/e2e/hardware_upgrade_test.go index 45ff48611e..e1c4f7d140 100644 --- a/test/e2e/hardware_upgrade_test.go +++ b/test/e2e/hardware_upgrade_test.go @@ -5,7 +5,7 @@ Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at - http://www.apache.org/licenses/LICENSE-2.0 + http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, diff --git a/test/e2e/node_labeling_test.go b/test/e2e/node_labeling_test.go index 5a9055f96e..97c3d45e54 100644 --- a/test/e2e/node_labeling_test.go +++ b/test/e2e/node_labeling_test.go @@ -5,7 +5,7 @@ Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at - http://www.apache.org/licenses/LICENSE-2.0 + http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS,