diff --git a/codegen/cmd/injection-gen/generators/filtered_informer.go b/codegen/cmd/injection-gen/generators/filtered_informer.go index 53debfb38..b9c5c4ae2 100644 --- a/codegen/cmd/injection-gen/generators/filtered_informer.go +++ b/codegen/cmd/injection-gen/generators/filtered_informer.go @@ -41,6 +41,7 @@ type filteredInjectionGenerator struct { injectionClientSetPackage string clientSetPackage string listerPkg string + listerHasPointerElem bool } var _ generator.Generator = (*filteredInjectionGenerator)(nil) @@ -92,6 +93,7 @@ func (g *filteredInjectionGenerator) GenerateType(c *generator.Context, t *types "clientSetInterface": c.Universe.Type(types.Name{Package: g.clientSetPackage, Name: "Interface"}), "resourceLister": c.Universe.Type(types.Name{Name: g.typeToGenerate.Name.Name + "Lister", Package: g.listerPkg}), "resourceNamespaceLister": c.Universe.Type(types.Name{Name: g.typeToGenerate.Name.Name + "NamespaceLister", Package: g.listerPkg}), + "listerHasPointerElem": g.listerHasPointerElem, "groupGoName": namer.IC(g.groupGoName), "versionGoName": namer.IC(g.groupVersion.Version.String()), "group": namer.IC(g.groupGoName), @@ -246,7 +248,7 @@ func (w *wrapper) List(selector {{ .labelsSelector|raw }}) (ret []*{{ .type|raw return nil, err } for idx := range lo.Items { - ret = append(ret, &lo.Items[idx]) + ret = append(ret, {{if not .listerHasPointerElem}}&{{end}}lo.Items[idx]) } return ret, nil } diff --git a/codegen/cmd/injection-gen/generators/packages.go b/codegen/cmd/injection-gen/generators/packages.go index 72d5ed0d2..8c3fe5240 100644 --- a/codegen/cmd/injection-gen/generators/packages.go +++ b/codegen/cmd/injection-gen/generators/packages.go @@ -503,6 +503,7 @@ func versionInformerPackages(basePackage string, groupPkgName string, gv clientg clientSetPackage: customArgs.VersionedClientSetPackage, injectionClientSetPackage: filepath.Join(basePackage, "client"), listerPkg: listerPackagePath, + listerHasPointerElem: customArgs.ListerHasPointerElem, }) return generators },