From 6c959b2cbc3bf3a525d0b890a2f12e33b742a149 Mon Sep 17 00:00:00 2001 From: Sidharth Surana Date: Thu, 7 Aug 2025 01:23:31 -0700 Subject: [PATCH] Handle multiple API versions per group properly in "Grouped" mode Fixes: https://github.com/elastic/crd-ref-docs/issues/167 --- renderer/renderer.go | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/renderer/renderer.go b/renderer/renderer.go index 3d89656..4a9401b 100644 --- a/renderer/renderer.go +++ b/renderer/renderer.go @@ -83,15 +83,20 @@ func renderTemplate(tmpl *template.Template, conf *config.Config, fileExtension } case config.OutputModeGroup: + // groupedGVDS aggregates all the GroupVersionDetails by group + groupedGVDS := make(map[string][]types.GroupVersionDetails) for _, gvd := range gvds { - fileName := fmt.Sprintf("%s.%s", gvd.Group, fileExtension) + group := gvd.Group + groupedGVDS[group] = append(groupedGVDS[group], gvd) + } + for group, gvds := range groupedGVDS { + fileName := fmt.Sprintf("%s.%s", group, fileExtension) file, err := createOutFile(conf.OutputPath, true, fileName) defer file.Close() if err != nil { return err } - - if err := tmpl.ExecuteTemplate(file, mainTemplate, []types.GroupVersionDetails{gvd}); err != nil { + if err := tmpl.ExecuteTemplate(file, mainTemplate, gvds); err != nil { return err } }