Skip to content

Commit

Permalink
Merge pull request #10147 from sbueringer/pr-fix-apiversion-issue-wit…
Browse files Browse the repository at this point in the history
…h-fix

🐛 Restore v1alpha3/v1alpha4 conversion to fix SSA issue & add e2e test coverage
  • Loading branch information
k8s-ci-robot committed Feb 14, 2024
2 parents a1663fb + c5508cf commit e8eda40
Show file tree
Hide file tree
Showing 201 changed files with 49,028 additions and 246 deletions.
33 changes: 33 additions & 0 deletions .golangci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,8 @@ run:
skip-files:
- "zz_generated.*\\.go$"
- "vendored_openapi\\.go$"
# We don't want to invest time to fix new linter findings in old API types.
- "internal/apis/.*"
allow-parallel-runners: true

linters:
Expand Down Expand Up @@ -115,18 +117,38 @@ linters-settings:
- pkg: sigs.k8s.io/controller-runtime
alias: ctrl
# CABPK
- pkg: sigs.k8s.io/cluster-api/internal/apis/bootstrap/kubeadm/v1alpha3
alias: bootstrapv1alpha3
- pkg: sigs.k8s.io/cluster-api/internal/apis/bootstrap/kubeadm/v1alpha4
alias: bootstrapv1alpha4
- pkg: sigs.k8s.io/cluster-api/bootstrap/kubeadm/api/v1beta1
alias: bootstrapv1
# KCP
- pkg: sigs.k8s.io/cluster-api/internal/apis/controlplane/kubeadm/v1alpha3
alias: controlplanev1alpha3
- pkg: sigs.k8s.io/cluster-api/internal/apis/controlplane/kubeadm/v1alpha4
alias: controlplanev1alpha4
- pkg: sigs.k8s.io/cluster-api/controlplane/kubeadm/api/v1beta1
alias: controlplanev1
# CAPI
- pkg: sigs.k8s.io/cluster-api/internal/apis/core/v1alpha3
alias: clusterv1alpha3
- pkg: sigs.k8s.io/cluster-api/internal/apis/core/v1alpha4
alias: clusterv1alpha4
- pkg: sigs.k8s.io/cluster-api/api/v1beta1
alias: clusterv1
# CAPI exp
- pkg: sigs.k8s.io/cluster-api/internal/apis/core/exp/v1alpha3
alias: expv1alpha3
- pkg: sigs.k8s.io/cluster-api/internal/apis/core/exp/v1alpha4
alias: expv1alpha4
- pkg: sigs.k8s.io/cluster-api/exp/api/v1beta1
alias: expv1
# CAPI exp addons
- pkg: sigs.k8s.io/cluster-api/internal/apis/core/exp/addons/v1alpha3
alias: addonsv1alpha3
- pkg: sigs.k8s.io/cluster-api/internal/apis/core/exp/addons/v1alpha4
alias: addonsv1alpha4
- pkg: sigs.k8s.io/cluster-api/exp/addons/api/v1beta1
alias: addonsv1
# CAPI exp IPAM
Expand All @@ -148,9 +170,17 @@ linters-settings:
- pkg: sigs.k8s.io/cluster-api/internal/webhooks/runtime
alias: runtimewebhooks
# CAPD
- pkg: sigs.k8s.io/cluster-api/test/infrastructure/docker/api/v1alpha3
alias: infrav1alpha3
- pkg: sigs.k8s.io/cluster-api/test/infrastructure/docker/api/v1alpha4
alias: infrav1alpha4
- pkg: sigs.k8s.io/cluster-api/test/infrastructure/docker/api/v1beta1
alias: infrav1
# CAPD exp
- pkg: sigs.k8s.io/cluster-api/test/infrastructure/docker/exp/api/v1alpha3
alias: infraexpv1alpha3
- pkg: sigs.k8s.io/cluster-api/test/infrastructure/docker/exp/api/v1alpha4
alias: infraexpv1alpha4
- pkg: sigs.k8s.io/cluster-api/test/infrastructure/docker/exp/api/v1beta1
alias: infraexpv1
nolintlint:
Expand Down Expand Up @@ -210,6 +240,9 @@ issues:
text: "SA1019: .* is deprecated: This package will be removed in one of the next releases."
# Specific exclude rules for deprecated types that are still part of the codebase. These
# should be removed as the referenced deprecated types are removed from the project.
- linters:
- staticcheck
text: "SA1019: (clusterv1alpha3.*|clusterv1alpha4.*) is deprecated: This type will be removed in one of the next releases."
- linters:
- revive
text: "exported: exported method .*\\.(Reconcile|SetupWithManager|SetupWebhookWithManager) should have comment or be unexported"
Expand Down
65 changes: 63 additions & 2 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -283,6 +283,7 @@ generate-manifests-core: $(CONTROLLER_GEN) $(KUSTOMIZE) ## Generate manifests e.
$(CONTROLLER_GEN) \
paths=./ \
paths=./api/... \
paths=./internal/apis/core/... \
paths=./internal/controllers/... \
paths=./internal/webhooks/... \
paths=./$(EXP_DIR)/api/... \
Expand Down Expand Up @@ -314,6 +315,7 @@ generate-manifests-kubeadm-bootstrap: $(CONTROLLER_GEN) ## Generate manifests e.
paths=./bootstrap/kubeadm/api/... \
paths=./bootstrap/kubeadm/internal/controllers/... \
paths=./bootstrap/kubeadm/internal/webhooks/... \
paths=./internal/apis/bootstrap/kubeadm/... \
crd:crdVersions=v1 \
rbac:roleName=manager-role \
output:crd:dir=./bootstrap/kubeadm/config/crd/bases \
Expand All @@ -329,6 +331,7 @@ generate-manifests-kubeadm-control-plane: $(CONTROLLER_GEN) ## Generate manifest
paths=./controlplane/kubeadm/api/... \
paths=./controlplane/kubeadm/internal/controllers/... \
paths=./controlplane/kubeadm/internal/webhooks/... \
paths=./internal/apis/controlplane/kubeadm/... \
crd:crdVersions=v1 \
rbac:roleName=manager-role \
output:crd:dir=./controlplane/kubeadm/config/crd/bases \
Expand Down Expand Up @@ -441,15 +444,34 @@ generate-go-conversions-core: ## Run all generate-go-conversions-core-* targets

.PHONY: generate-go-conversions-core-api
generate-go-conversions-core-api: $(CONVERSION_GEN) ## Generate conversions go code for core api
$(MAKE) clean-generated-conversions SRC_DIRS="./internal/apis/core/v1alpha3,./internal/apis/core/v1alpha4"
$(CONVERSION_GEN) \
--input-dirs=./internal/apis/core/v1alpha3 \
--input-dirs=./internal/apis/core/v1alpha4 \
--build-tag=ignore_autogenerated_core \
--output-file-base=zz_generated.conversion $(CONVERSION_GEN_OUTPUT_BASE) \
--go-header-file=./hack/boilerplate/boilerplate.generatego.txt

.PHONY: generate-go-conversions-core-exp
generate-go-conversions-core-exp: $(CONVERSION_GEN) ## Generate conversions go code for core exp
$(MAKE) clean-generated-conversions SRC_DIRS="./internal/apis/core/exp/v1alpha3,./internal/apis/core/exp/addons/v1alpha3,./internal/apis/core/exp/v1alpha4,./internal/apis/core/exp/addons/v1alpha4"
$(CONVERSION_GEN) \
--input-dirs=./internal/apis/core/exp/v1alpha3 \
--input-dirs=./internal/apis/core/exp/v1alpha4 \
--input-dirs=./internal/apis/core/exp/addons/v1alpha3 \
--input-dirs=./internal/apis/core/exp/addons/v1alpha4 \
--build-tag=ignore_autogenerated_core_exp \
--extra-peer-dirs=sigs.k8s.io/cluster-api/internal/apis/core/v1alpha3 \
--extra-peer-dirs=sigs.k8s.io/cluster-api/internal/apis/core/v1alpha4 \
--output-file-base=zz_generated.conversion $(CONVERSION_GEN_OUTPUT_BASE) \
--go-header-file=./hack/boilerplate/boilerplate.generatego.txt

.PHONY: generate-go-conversions-core-exp-ipam
generate-go-conversions-core-exp-ipam: $(CONVERSION_GEN) ## Generate conversions go code for core exp IPAM
$(MAKE) clean-generated-conversions SRC_DIRS="./$(EXP_DIR)/ipam/api/v1alpha1"
$(CONVERSION_GEN) \
--input-dirs=./$(EXP_DIR)/ipam/api/v1alpha1 \
--build-tag=ignore_autogenerated_core_exp_ipam \
--output-file-base=zz_generated.conversion $(CONVERSION_GEN_OUTPUT_BASE) \
--go-header-file=./hack/boilerplate/boilerplate.generatego.txt

Expand All @@ -459,12 +481,21 @@ generate-go-conversions-core-runtime: $(CONVERSION_GEN) ## Generate conversions
$(CONVERSION_GEN) \
--input-dirs=./internal/runtime/test/v1alpha1 \
--input-dirs=./internal/runtime/test/v1alpha2 \
--build-tag=ignore_autogenerated_runtime \
--build-tag=ignore_autogenerated_core_runtime \
--output-file-base=zz_generated.conversion $(CONVERSION_GEN_OUTPUT_BASE) \
--go-header-file=./hack/boilerplate/boilerplate.generatego.txt

.PHONY: generate-go-conversions-kubeadm-bootstrap
generate-go-conversions-kubeadm-bootstrap: $(CONVERSION_GEN) ## Generate conversions go code for kubeadm bootstrap
$(MAKE) clean-generated-conversions SRC_DIRS="./internal/apis/bootstrap/kubeadm"
$(CONVERSION_GEN) \
--input-dirs=./internal/apis/bootstrap/kubeadm/v1alpha3 \
--input-dirs=./internal/apis/bootstrap/kubeadm/v1alpha4 \
--build-tag=ignore_autogenerated_kubeadm_bootstrap \
--extra-peer-dirs=sigs.k8s.io/cluster-api/internal/apis/core/v1alpha3 \
--extra-peer-dirs=sigs.k8s.io/cluster-api/internal/apis/core/v1alpha4 \
--output-file-base=zz_generated.conversion $(CONVERSION_GEN_OUTPUT_BASE) \
--go-header-file=./hack/boilerplate/boilerplate.generatego.txt
$(MAKE) clean-generated-conversions SRC_DIRS="./bootstrap/kubeadm/types/upstreamv1beta2,./bootstrap/kubeadm/types/upstreamv1beta3"
$(CONVERSION_GEN) \
--input-dirs=./bootstrap/kubeadm/types/upstreamv1beta2 \
Expand All @@ -475,12 +506,34 @@ generate-go-conversions-kubeadm-bootstrap: $(CONVERSION_GEN) ## Generate convers

.PHONY: generate-go-conversions-kubeadm-control-plane
generate-go-conversions-kubeadm-control-plane: $(CONVERSION_GEN) ## Generate conversions go code for kubeadm control plane
$(MAKE) clean-generated-conversions SRC_DIRS="./internal/apis/controlplane/kubeadm"
$(CONVERSION_GEN) \
--input-dirs=./internal/apis/controlplane/kubeadm/v1alpha3 \
--input-dirs=./internal/apis/controlplane/kubeadm/v1alpha4 \
--build-tag=ignore_autogenerated_kubeadm_controlplane \
--extra-peer-dirs=sigs.k8s.io/cluster-api/internal/apis/core/v1alpha3 \
--extra-peer-dirs=sigs.k8s.io/cluster-api/internal/apis/core/v1alpha4 \
--extra-peer-dirs=sigs.k8s.io/cluster-api/internal/apis/bootstrap/kubeadm/v1alpha3 \
--extra-peer-dirs=sigs.k8s.io/cluster-api/internal/apis/bootstrap/kubeadm/v1alpha4 \
--output-file-base=zz_generated.conversion $(CONVERSION_GEN_OUTPUT_BASE) \
--go-header-file=./hack/boilerplate/boilerplate.generatego.txt

.PHONY: generate-go-conversions-docker-infrastructure
generate-go-conversions-docker-infrastructure: $(CONVERSION_GEN) ## Generate conversions go code for docker infrastructure provider
cd $(CAPD_DIR); $(CONVERSION_GEN) \
--input-dirs=./api/v1alpha3 \
--input-dirs=./api/v1alpha4 \
--input-dirs=./$(EXP_DIR)/api/v1alpha3 \
--input-dirs=./$(EXP_DIR)/api/v1alpha4 \
--build-tag=ignore_autogenerated_capd \
--extra-peer-dirs=sigs.k8s.io/cluster-api/internal/apis/core/v1alpha3 \
--extra-peer-dirs=sigs.k8s.io/cluster-api/internal/apis/core/v1alpha4 \
--output-file-base=zz_generated.conversion $(CONVERSION_GEN_OUTPUT_BASE_CAPD) \
--go-header-file=../../../hack/boilerplate/boilerplate.generatego.txt

.PHONY: generate-go-conversions-in-memory-infrastructure
generate-go-conversions-in-memory-infrastructure: $(CONVERSION_GEN) ## Generate conversions go code for in-memory infrastructure provider
cd $(CAPIM_DIR)

.PHONY: generate-go-conversions-test-extension
generate-go-conversions-test-extension: $(CONVERSION_GEN) ## Generate conversions go code for in-memory infrastructure provider
Expand Down Expand Up @@ -511,11 +564,19 @@ generate-doctoc:
TRACE=$(TRACE) ./hack/generate-doctoc.sh

.PHONY: generate-e2e-templates
generate-e2e-templates: $(KUSTOMIZE) $(addprefix generate-e2e-templates-, v1.0 v1.5 v1.6 main) ## Generate cluster templates for all versions
generate-e2e-templates: $(KUSTOMIZE) $(addprefix generate-e2e-templates-, v0.3 v0.4 v1.0 v1.5 v1.6 main) ## Generate cluster templates for all versions

DOCKER_TEMPLATES := test/e2e/data/infrastructure-docker
INMEMORY_TEMPLATES := test/e2e/data/infrastructure-inmemory

.PHONY: generate-e2e-templates-v0.3
generate-e2e-templates-v0.3: $(KUSTOMIZE)
$(KUSTOMIZE) build $(DOCKER_TEMPLATES)/v0.3/cluster-template --load-restrictor LoadRestrictionsNone > $(DOCKER_TEMPLATES)/v0.3/cluster-template.yaml

.PHONY: generate-e2e-templates-v0.4
generate-e2e-templates-v0.4: $(KUSTOMIZE)
$(KUSTOMIZE) build $(DOCKER_TEMPLATES)/v0.4/cluster-template --load-restrictor LoadRestrictionsNone > $(DOCKER_TEMPLATES)/v0.4/cluster-template.yaml

.PHONY: generate-e2e-templates-v1.0
generate-e2e-templates-v1.0: $(KUSTOMIZE)
$(KUSTOMIZE) build $(DOCKER_TEMPLATES)/v1.0/cluster-template --load-restrictor LoadRestrictionsNone > $(DOCKER_TEMPLATES)/v1.0/cluster-template.yaml
Expand Down
Loading

0 comments on commit e8eda40

Please sign in to comment.