Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

✨ Integrate CRS code into regular code structure #11943

Merged
merged 1 commit into from
Mar 13, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions .golangci-kal.yml
Original file line number Diff line number Diff line change
Expand Up @@ -62,7 +62,7 @@ issues:
- path-except: "api//*"
linters:
- kal
- path: "api/v1beta1/*|api/v1alpha1/*"
- path: "api/v1beta1/*|api/v1alpha1/*|api/addons/v1beta1/*"
text: "Conditions field must be a slice of metav1.Condition"
linters:
- kal
Expand All @@ -86,11 +86,11 @@ issues:
- kal
# It does not make sense to add a maxItems marker on the *List structs as they are not used to generate CRD YAMLs.
# This exclude will be removed once https://github.com/JoelSpeed/kal/issues/38 is resolved.
- path: "api/v1beta1/*|api/v1alpha1/*"
- path: "api/v1beta1/*|api/v1alpha1/*|api/addons/v1beta1/*"
text: "maxlength: field Items must have a maximum items, add kubebuilder:validation:MaxItems marker"
linters:
- kal
- path: "api/v1alpha1/*|api/v1beta1/*"
- path: "api/v1alpha1/*|api/v1beta1/*|api/addons/v1beta1/*"
text: "nobools"
linters:
- kal
Expand Down
12 changes: 9 additions & 3 deletions .golangci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -144,11 +144,11 @@ linters-settings:
- 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
- pkg: sigs.k8s.io/cluster-api/internal/apis/addons/v1alpha3
alias: addonsv1alpha3
- pkg: sigs.k8s.io/cluster-api/internal/apis/core/exp/addons/v1alpha4
- pkg: sigs.k8s.io/cluster-api/internal/apis/addons/v1alpha4
alias: addonsv1alpha4
- pkg: sigs.k8s.io/cluster-api/exp/addons/api/v1beta1
- pkg: sigs.k8s.io/cluster-api/api/addons/v1beta1
alias: addonsv1
# CAPI exp IPAM
- pkg: sigs.k8s.io/cluster-api/exp/ipam/api/v1beta1
Expand Down Expand Up @@ -282,6 +282,12 @@ issues:
- linters:
- staticcheck
text: "SA1019: feature.ClusterResourceSet is deprecated: ClusterResourceSet feature is now GA and the corresponding feature flag will be removed in 1.12 release."
- linters:
- revive
text: "exported: type name will be used as clusterresourceset.ClusterResourceSetBindingReconciler by other packages, and that stutters; consider calling this BindingReconciler"
- linters:
- revive
text: "exported: type name will be used as clusterresourceset.ClusterResourceSetReconciler by other packages, and that stutters; consider calling this Reconciler"
- linters:
- revive
text: "exported: exported method .*\\.(Reconcile|SetupWithManager|SetupWebhookWithManager) should have comment or be unexported"
Expand Down
26 changes: 16 additions & 10 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -286,12 +286,10 @@ generate-manifests-core: $(CONTROLLER_GEN) $(KUSTOMIZE) ## Generate manifests e.
paths=./internal/apis/core/... \
paths=./internal/controllers/... \
paths=./internal/webhooks/... \
paths=./internal/apis/addons/... \
paths=./$(EXP_DIR)/api/... \
paths=./$(EXP_DIR)/internal/controllers/... \
paths=./$(EXP_DIR)/internal/webhooks/... \
paths=./$(EXP_DIR)/addons/api/... \
paths=./$(EXP_DIR)/addons/internal/controllers/... \
paths=./$(EXP_DIR)/addons/internal/webhooks/... \
paths=./$(EXP_DIR)/ipam/api/... \
paths=./$(EXP_DIR)/ipam/internal/webhooks/... \
paths=./$(EXP_DIR)/runtime/api/... \
Expand Down Expand Up @@ -389,12 +387,12 @@ generate-go-deepcopy: ## Run all generate-go-deepcopy-* targets

.PHONY: generate-go-deepcopy-core
generate-go-deepcopy-core: $(CONTROLLER_GEN) ## Generate deepcopy go code for core
$(MAKE) clean-generated-deepcopy SRC_DIRS="./api,./$(EXP_DIR)/api,./$(EXP_DIR)/addons/api,./$(EXP_DIR)/runtime/api,./$(EXP_DIR)/runtime/hooks/api"
$(MAKE) clean-generated-deepcopy SRC_DIRS="./api,./internal/apis/addons,./$(EXP_DIR)/api,./$(EXP_DIR)/runtime/api,./$(EXP_DIR)/runtime/hooks/api"
$(CONTROLLER_GEN) \
object:headerFile=./hack/boilerplate/boilerplate.generatego.txt \
paths=./api/... \
paths=./internal/apis/addons/... \
paths=./$(EXP_DIR)/api/... \
paths=./$(EXP_DIR)/addons/api/... \
paths=./$(EXP_DIR)/ipam/api/... \
paths=./$(EXP_DIR)/runtime/api/... \
paths=./$(EXP_DIR)/runtime/hooks/api/... \
Expand Down Expand Up @@ -443,6 +441,7 @@ generate-go-conversions: ## Run all generate-go-conversions-* targets
.PHONY: generate-go-conversions-core
generate-go-conversions-core: ## Run all generate-go-conversions-core-* targets
$(MAKE) generate-go-conversions-core-api
$(MAKE) generate-go-conversions-addons-api
$(MAKE) generate-go-conversions-core-exp
$(MAKE) generate-go-conversions-core-exp-ipam
$(MAKE) generate-go-conversions-core-runtime
Expand All @@ -456,16 +455,23 @@ generate-go-conversions-core-api: $(CONVERSION_GEN) ## Generate conversions go c
./internal/apis/core/v1alpha3 \
./internal/apis/core/v1alpha4

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

.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"
$(MAKE) clean-generated-conversions SRC_DIRS="./internal/apis/core/exp/v1alpha3,./internal/apis/core/exp/v1alpha4"
$(CONVERSION_GEN) \
--output-file=zz_generated.conversion.go \
--go-header-file=./hack/boilerplate/boilerplate.generatego.txt \
./internal/apis/core/exp/v1alpha3 \
./internal/apis/core/exp/v1alpha4 \
./internal/apis/core/exp/addons/v1alpha3 \
./internal/apis/core/exp/addons/v1alpha4
./internal/apis/core/exp/v1alpha4

.PHONY: generate-go-conversions-core-exp-ipam
generate-go-conversions-core-exp-ipam: $(CONVERSION_GEN) ## Generate conversions go code for core exp IPAM
Expand Down Expand Up @@ -527,7 +533,7 @@ generate-go-conversions-test-extension: $(CONVERSION_GEN) ## Generate conversion
.PHONY: generate-go-openapi
generate-go-openapi: $(OPENAPI_GEN) ## Generate openapi go code for runtime SDK
@mkdir -p ./tmp/sigs.k8s.io; ln -s $(ROOT_DIR) ./tmp/sigs.k8s.io/; cd ./tmp; \
for pkg in "api/v1beta1" "$(EXP_DIR)/runtime/hooks/api/v1alpha1"; do \
for pkg in "api/v1beta1" "api/addons/v1beta1" "$(EXP_DIR)/runtime/hooks/api/v1alpha1"; do \
(cd ../ && $(MAKE) clean-generated-openapi-definitions SRC_DIRS="./$${pkg}"); \
echo "** Generating openapi schema for types in ./$${pkg} **"; \
$(OPENAPI_GEN) \
Expand Down
File renamed without changes.
Original file line number Diff line number Diff line change
Expand Up @@ -205,6 +205,7 @@ type ClusterResourceSetList struct {
// +optional
metav1.ListMeta `json:"metadata,omitempty"`
// items is the list of ClusterResourceSets.
// +required
Items []ClusterResourceSet `json:"items"`
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -219,6 +219,7 @@ type ClusterResourceSetBindingList struct {
// +optional
metav1.ListMeta `json:"metadata,omitempty"`
// items is the list of ClusterResourceSetBindings.
// +required
Items []ClusterResourceSetBinding `json:"items"`
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,6 @@ package v1beta1
import clusterv1 "sigs.k8s.io/cluster-api/api/v1beta1"

// Conditions and condition Reasons for the ClusterResourceSet object.

const (
// ResourcesAppliedCondition documents that all resources in the ClusterResourceSet object are applied to
// all matching clusters. This indicates all resources exist, and no errors during applying them to all clusters.
Expand Down
File renamed without changes.
File renamed without changes.

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

2 changes: 1 addition & 1 deletion cmd/clusterctl/client/cluster/objectgraph.go
Original file line number Diff line number Diff line change
Expand Up @@ -35,11 +35,11 @@ import (
"k8s.io/klog/v2"
"sigs.k8s.io/controller-runtime/pkg/client"

addonsv1 "sigs.k8s.io/cluster-api/api/addons/v1beta1"
clusterv1 "sigs.k8s.io/cluster-api/api/v1beta1"
clusterctlv1 "sigs.k8s.io/cluster-api/cmd/clusterctl/api/v1alpha3"
logf "sigs.k8s.io/cluster-api/cmd/clusterctl/log"
"sigs.k8s.io/cluster-api/controllers/external"
addonsv1 "sigs.k8s.io/cluster-api/exp/addons/api/v1beta1"
secretutil "sigs.k8s.io/cluster-api/util/secret"
)

Expand Down
2 changes: 1 addition & 1 deletion cmd/clusterctl/client/tree/discovery.go
Original file line number Diff line number Diff line change
Expand Up @@ -25,9 +25,9 @@ import (
"k8s.io/apimachinery/pkg/apis/meta/v1/unstructured"
"sigs.k8s.io/controller-runtime/pkg/client"

addonsv1 "sigs.k8s.io/cluster-api/api/addons/v1beta1"
clusterv1 "sigs.k8s.io/cluster-api/api/v1beta1"
"sigs.k8s.io/cluster-api/controllers/external"
addonsv1 "sigs.k8s.io/cluster-api/exp/addons/api/v1beta1"
expv1 "sigs.k8s.io/cluster-api/exp/api/v1beta1"
"sigs.k8s.io/cluster-api/util"
)
Expand Down
4 changes: 2 additions & 2 deletions cmd/clusterctl/internal/scheme/scheme.go
Original file line number Diff line number Diff line change
Expand Up @@ -25,10 +25,10 @@ import (
"k8s.io/apimachinery/pkg/runtime"
clientgoscheme "k8s.io/client-go/kubernetes/scheme"

addonsv1 "sigs.k8s.io/cluster-api/api/addons/v1beta1"
clusterv1 "sigs.k8s.io/cluster-api/api/v1beta1"
clusterctlv1 "sigs.k8s.io/cluster-api/cmd/clusterctl/api/v1alpha3"
controlplanev1 "sigs.k8s.io/cluster-api/controlplane/kubeadm/api/v1beta1"
addonsv1 "sigs.k8s.io/cluster-api/exp/addons/api/v1beta1"
expv1 "sigs.k8s.io/cluster-api/exp/api/v1beta1"
)

Expand All @@ -45,7 +45,7 @@ func init() {
_ = apiextensionsv1beta1.AddToScheme(Scheme)
_ = admissionregistration.AddToScheme(Scheme)
_ = admissionregistrationv1beta1.AddToScheme(Scheme)
_ = addonsv1.AddToScheme(Scheme)
_ = controlplanev1.AddToScheme(Scheme)
_ = expv1.AddToScheme(Scheme)
_ = addonsv1.AddToScheme(Scheme)
}
2 changes: 1 addition & 1 deletion cmd/clusterctl/internal/test/fake_objects.go
Original file line number Diff line number Diff line change
Expand Up @@ -31,13 +31,13 @@ import (
"sigs.k8s.io/controller-runtime/pkg/client"
"sigs.k8s.io/controller-runtime/pkg/controller/controllerutil"

addonsv1 "sigs.k8s.io/cluster-api/api/addons/v1beta1"
clusterv1 "sigs.k8s.io/cluster-api/api/v1beta1"
clusterctlv1 "sigs.k8s.io/cluster-api/cmd/clusterctl/api/v1alpha3"
fakebootstrap "sigs.k8s.io/cluster-api/cmd/clusterctl/internal/test/providers/bootstrap"
fakecontrolplane "sigs.k8s.io/cluster-api/cmd/clusterctl/internal/test/providers/controlplane"
fakeexternal "sigs.k8s.io/cluster-api/cmd/clusterctl/internal/test/providers/external"
fakeinfrastructure "sigs.k8s.io/cluster-api/cmd/clusterctl/internal/test/providers/infrastructure"
addonsv1 "sigs.k8s.io/cluster-api/exp/addons/api/v1beta1"
expv1 "sigs.k8s.io/cluster-api/exp/api/v1beta1"
"sigs.k8s.io/cluster-api/util"
"sigs.k8s.io/cluster-api/util/test/builder"
Expand Down
4 changes: 2 additions & 2 deletions cmd/clusterctl/internal/test/fake_proxy.go
Original file line number Diff line number Diff line change
Expand Up @@ -30,14 +30,14 @@ import (
"sigs.k8s.io/controller-runtime/pkg/client"
"sigs.k8s.io/controller-runtime/pkg/client/fake"

addonsv1 "sigs.k8s.io/cluster-api/api/addons/v1beta1"
clusterv1 "sigs.k8s.io/cluster-api/api/v1beta1"
clusterctlv1 "sigs.k8s.io/cluster-api/cmd/clusterctl/api/v1alpha3"
fakebootstrap "sigs.k8s.io/cluster-api/cmd/clusterctl/internal/test/providers/bootstrap"
fakecontrolplane "sigs.k8s.io/cluster-api/cmd/clusterctl/internal/test/providers/controlplane"
fakeexternal "sigs.k8s.io/cluster-api/cmd/clusterctl/internal/test/providers/external"
fakeinfrastructure "sigs.k8s.io/cluster-api/cmd/clusterctl/internal/test/providers/infrastructure"
controlplanev1 "sigs.k8s.io/cluster-api/controlplane/kubeadm/api/v1beta1"
addonsv1 "sigs.k8s.io/cluster-api/exp/addons/api/v1beta1"
expv1 "sigs.k8s.io/cluster-api/exp/api/v1beta1"
)

Expand All @@ -56,8 +56,8 @@ func init() {
_ = clientgoscheme.AddToScheme(FakeScheme)
_ = clusterctlv1.AddToScheme(FakeScheme)
_ = clusterv1.AddToScheme(FakeScheme)
_ = expv1.AddToScheme(FakeScheme)
_ = addonsv1.AddToScheme(FakeScheme)
_ = expv1.AddToScheme(FakeScheme)
_ = apiextensionsv1.AddToScheme(FakeScheme)
_ = controlplanev1.AddToScheme(FakeScheme)

Expand Down
Loading