mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-08-12 05:21:58 +00:00
Update applyconfig-gen for pacakges where group and dir differ in name
It is possible that package paths might differ from the group name, see https://github.com/openshift/api/blob/master/operatorcontrolplane/v1alpha1/doc.go notice that pacakge name is `operatorcontrolplane` whereas the group is `controlplane.operator...`. This confuses the generator since it tries to extrapolate the name of the package based on the group name. Whereas the ImportTracker can properly recognize the import path. This leads to cyclical imports in packages where the group name is different from the actual import path.
This commit is contained in:
parent
d9c54f69d4
commit
b40057db2a
@ -35,6 +35,7 @@ type applyConfigurationGenerator struct {
|
||||
generator.GoGenerator
|
||||
// outPkgBase is the base package, under which the "internal" and GV-specific subdirs live
|
||||
outPkgBase string // must be a Go import-path
|
||||
localPkg string
|
||||
groupVersion clientgentypes.GroupVersion
|
||||
applyConfig applyConfig
|
||||
imports namer.ImportTracker
|
||||
@ -49,9 +50,8 @@ func (g *applyConfigurationGenerator) Filter(_ *generator.Context, t *types.Type
|
||||
}
|
||||
|
||||
func (g *applyConfigurationGenerator) Namers(*generator.Context) namer.NameSystems {
|
||||
localPkg := path.Join(g.outPkgBase, g.groupVersion.Group.PackageName(), g.groupVersion.Version.PackageName())
|
||||
return namer.NameSystems{
|
||||
"raw": namer.NewRawNamer(localPkg, g.imports),
|
||||
"raw": namer.NewRawNamer(g.localPkg, g.imports),
|
||||
"singularKind": namer.NewPublicNamer(0),
|
||||
}
|
||||
}
|
||||
@ -336,7 +336,7 @@ func (b *$.ApplyConfig.ApplyConfiguration|public$) ensure$.MemberType.Elem|publi
|
||||
|
||||
var clientgenTypeConstructorNamespaced = `
|
||||
// $.ApplyConfig.Type|public$ constructs an declarative configuration of the $.ApplyConfig.Type|public$ type for use with
|
||||
// apply.
|
||||
// apply.
|
||||
func $.ApplyConfig.Type|public$(name, namespace string) *$.ApplyConfig.ApplyConfiguration|public$ {
|
||||
b := &$.ApplyConfig.ApplyConfiguration|public${}
|
||||
b.WithName(name)
|
||||
|
@ -185,6 +185,7 @@ func targetForApplyConfigurationsPackage(outputDirBase, outputPkgBase, pkgSubdir
|
||||
OutputFilename: strings.ToLower(toGenerate.Type.Name.Name) + ".go",
|
||||
},
|
||||
outPkgBase: outputPkgBase,
|
||||
localPkg: outputPkg,
|
||||
groupVersion: gv,
|
||||
applyConfig: toGenerate,
|
||||
imports: generator.NewImportTracker(),
|
||||
|
Loading…
Reference in New Issue
Block a user