multicloud-operators-subscription icon indicating copy to clipboard operation
multicloud-operators-subscription copied to clipboard

"make generate" results in error due to invalid type: interface{}

Open mikeshng opened this issue 2 years ago • 0 comments

Describe the bug The make generate Makefile target currently doesn't work because of the helmrelease_types.go contains a spec field that has interface{}.

The current workaround is: Commented out the following 2 lines in helmrelease_types.go

1) Spec   HelmAppSpec   `json:"spec,omitempty"`
2) type HelmAppSpec interface{} // modified

then run make generate then exclude the helmrelease related changes

$ git checkout -- pkg/apis/apps/helmrelease/v1/helmrelease_types.go 
$ git checkout  -- pkg/apis/apps/helmrelease/v1/zz_generated.deepcopy.go

It seems like controller-gen used to support interface but not anymore probably due to security reason. We will need to look into how to modify this field and most importantly maintain backward compatibility. See some suggestions in https://github.com/kubernetes-sigs/controller-tools/issues/636

To Reproduce Run make generate

Expected behavior make generate to return successfully.

Additional context Thank you @TomerFi for discovering and reporting this issue.

mikeshng avatar Mar 21 '22 13:03 mikeshng