Skip to content

Commit

Permalink
WIP Enable deepcopy-gen
Browse files Browse the repository at this point in the history
Signed-off-by: Tom Wieczorek <twieczorek@mirantis.com>
  • Loading branch information
twz123 committed Jul 11, 2024
1 parent 4fdcf48 commit d95dd03
Show file tree
Hide file tree
Showing 14 changed files with 122 additions and 18 deletions.
17 changes: 7 additions & 10 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -116,26 +116,23 @@ go.sum: go.mod .k0sbuild.docker-image.k0s
api_group_versions := $(foreach path,$(wildcard pkg/apis/*/v*/doc.go),$(path:pkg/apis/%/doc.go=%))

# Declare the requisites for the generators operating on API group versions.
k8s_code_generators := register defaulter
k8s_code_generators := deepcopy register defaulter
api_group_version_targets := .controller-gen.stamp $(foreach gen,$(k8s_code_generators),zz_generated.$(gen).go)
$(foreach gv,$(api_group_versions),$(eval $(foreach t,$(api_group_version_targets),pkg/apis/$(gv)/$(t)): $$(shell find pkg/apis/$(gv)/ -maxdepth 1 -type f -name '*.go' -not -name '*_test.go' -not -name 'zz_generated*')))

# Run controller-gen for each API group version.
controller_gen_targets := $(foreach gv,$(api_group_versions),pkg/apis/$(gv)/.controller-gen.stamp)
codegen_targets := $(controller_gen_targets)
$(controller_gen_targets): .k0sbuild.docker-image.k0s hack/tools/boilerplate.go.txt hack/tools/Makefile.variables
# Run controller-gen to generate CRDs for each API group version.
crd_targets := $(foreach gv,$(api_group_versions),pkg/apis/$(gv)/.controller-gen.stamp)
$(crd_targets): .k0sbuild.docker-image.k0s hack/tools/Makefile.variables
rm -rf 'static/manifests/$(dir $(@:pkg/apis/%/.controller-gen.stamp=%))CustomResourceDefinition'
mkdir -p 'static/manifests/$(dir $(@:pkg/apis/%/.controller-gen.stamp=%))'
gendir="$$(mktemp -d .controller-gen.XXXXXX.tmp)" \
&& trap "rm -rf -- $$gendir" INT EXIT \
&& CGO_ENABLED=0 $(GO) run sigs.k8s.io/controller-tools/cmd/controller-gen@v$(controller-gen_version) \
paths="./$(dir $@)..." \
object:headerFile=hack/tools/boilerplate.go.txt output:object:dir="$$gendir" \
crd output:crd:dir='static/manifests/$(dir $(@:pkg/apis/%/.controller-gen.stamp=%))CustomResourceDefinition' \
&& mv -f -- "$$gendir"/zz_generated.deepcopy.go '$(dir $@).'
crd output:crd:dir='static/manifests/$(dir $(@:pkg/apis/%/.controller-gen.stamp=%))CustomResourceDefinition'
touch -- '$@'

# Run Kubernetes code generators for each API group versions.
# Run Kubernetes code generators for each API group version.
k8s_code_generator_targets := $(foreach gv,$(api_group_versions),$(foreach gen,$(k8s_code_generators),pkg/apis/$(gv)/zz_generated.$(gen).go))
codegen_targets += $(k8s_code_generator_targets)
$(k8s_code_generator_targets): .k0sbuild.docker-image.k0s hack/tools/boilerplate.go.txt embedded-bins/Makefile.variables
Expand Down Expand Up @@ -168,7 +165,7 @@ pkg/client/clientset/.client-gen.stamp: .k0sbuild.docker-image.k0s hack/tools/bo
touch -- '$@'

codegen_targets += static/zz_generated_assets.go
static/zz_generated_assets.go: $(controller_gen_targets) # to generate the CRDs into static/manifests/*/CustomResourceDefinition
static/zz_generated_assets.go: $(crd_targets) # to generate the CRDs into static/manifests/*/CustomResourceDefinition
static/zz_generated_assets.go: $(shell find static/manifests/calico static/manifests/windows static/misc -type f)
static/zz_generated_assets.go: .k0sbuild.docker-image.k0s hack/tools/Makefile.variables
CGO_ENABLED=0 $(GO) run github.com/kevinburke/go-bindata/go-bindata@v$(go-bindata_version) \
Expand Down
1 change: 1 addition & 0 deletions pkg/apis/autopilot/v1beta2/doc.go
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@
// limitations under the License.

// +k8s:defaulter-gen=TypeMeta
// +k8s:deepcopy-gen=package
// +groupName=autopilot.k0sproject.io
// +kubebuilder:object:generate=true

Expand Down
4 changes: 4 additions & 0 deletions pkg/apis/autopilot/v1beta2/types.go
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@ import (
// +kubebuilder:object:root=true
// +kubebuilder:resource:scope=Cluster
// +kubebuilder:subresource:status
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
// +genclient
// +genclient:onlyVerbs=create,delete,list,get,watch,update,updateStatus
// +genclient:nonNamespaced
Expand Down Expand Up @@ -53,6 +54,7 @@ func (c *ControlNodeStatus) GetInternalIP() string {
//
// +kubebuilder:object:root=true
// +kubebuilder:resource:scope=Cluster
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
type ControlNodeList struct {
metav1.TypeMeta `json:",inline"`
metav1.ListMeta `json:"metadata,omitempty"`
Expand All @@ -68,6 +70,7 @@ type ControlNodeList struct {
// +kubebuilder:subresource:status
// +kubebuilder:printcolumn:name="State",type="string",JSONPath=".status.state"
// +kubebuilder:printcolumn:name="Age",type="date",JSONPath=".metadata.creationTimestamp"
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
// +genclient
// +genclient:onlyVerbs=create,delete,list,get,watch,update
// +genclient:nonNamespaced
Expand All @@ -87,6 +90,7 @@ type Plan struct {
//
// +kubebuilder:object:root=true
// +kubebuilder:resource:scope=Cluster
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
type PlanList struct {
metav1.TypeMeta `json:",inline"`
metav1.ListMeta `json:"metadata,omitempty"`
Expand Down
2 changes: 2 additions & 0 deletions pkg/apis/autopilot/v1beta2/updateconfig.go
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,7 @@ const (

// +kubebuilder:object:root=true
// +kubebuilder:resource:scope=Cluster
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
// +genclient
// +genclient:onlyVerbs=create,delete,list,get,watch,update
// +genclient:nonNamespaced
Expand Down Expand Up @@ -151,6 +152,7 @@ func startTimeForCurrentDay(startTime time.Time) time.Time {

// +kubebuilder:object:root=true
// +kubebuilder:resource:scope=Cluster
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
type UpdateConfigList struct {
metav1.TypeMeta `json:",inline"`
metav1.ListMeta `json:"metadata,omitempty"`
Expand Down
36 changes: 34 additions & 2 deletions pkg/apis/autopilot/v1beta2/zz_generated.deepcopy.go

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

1 change: 1 addition & 0 deletions pkg/apis/etcd/v1beta1/doc.go
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@
// limitations under the License.

// +k8s:defaulter-gen=TypeMeta
// +k8s:deepcopy-gen=package
// +groupName=etcd.k0sproject.io
// +kubebuilder:object:generate=true

Expand Down
2 changes: 2 additions & 0 deletions pkg/apis/etcd/v1beta1/types.go
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,7 @@ import (
// +kubebuilder:printcolumn:name="Member ID",type=string,JSONPath=`.status.memberID`
// +kubebuilder:printcolumn:name="Joined",type=string,JSONPath=`.status.conditions[?(@.type=="Joined")].status`
// +kubebuilder:printcolumn:name="Reconcile Status",type=string,JSONPath=`.status.reconcileStatus`
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
// +genclient
// +genclient:onlyVerbs=create,delete,list,get,watch,update,updateStatus,patch
// +genclient:nonNamespaced
Expand Down Expand Up @@ -145,6 +146,7 @@ func (s *Status) SetCondition(t ConditionType, status ConditionStatus, msg strin
//
// +kubebuilder:object:root=true
// +kubebuilder:resource:scope=Cluster
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
type EtcdMemberList struct {
metav1.TypeMeta `json:",inline"`
metav1.ListMeta `json:"metadata,omitempty"`
Expand Down
Loading

0 comments on commit d95dd03

Please sign in to comment.