Skip to content

Commit af0052b

Browse files
Merge pull request #22 from cozystack/fix-go-generation
Added groupname and verison parameters
2 parents fa99cdb + c5a4f5a commit af0052b

4 files changed

Lines changed: 37 additions & 31 deletions

File tree

internal/openapi/examples_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ func TestExamplesGeneration(t *testing.T) {
2727
root := Build(rows)
2828
require.NotNil(t, root, "failed to build tree for %s", file.Name())
2929

30-
tmpdir, goFile, err := WriteGeneratedGoAndStub(root, "values")
30+
tmpdir, goFile, err := WriteGeneratedGoAndStub(root, "values", "values.helm.io", "v1alpha1")
3131
require.NoError(t, err, "failed to generate Go code for %s", file.Name())
3232
defer os.RemoveAll(tmpdir)
3333

internal/openapi/openapi.go

Lines changed: 13 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -543,16 +543,18 @@ func Build(rows []Raw) *Node {
543543
/* -------------------------------------------------------------------------- */
544544

545545
type gen struct {
546-
pkg string
547-
buf bytes.Buffer
548-
imp map[string]string
549-
ff map[string]bool
550-
def map[string]bool
546+
pkg string
547+
groupName string
548+
versionName string
549+
buf bytes.Buffer
550+
imp map[string]string
551+
ff map[string]bool
552+
def map[string]bool
551553
}
552554

553555
// NewGen creates a new generator instance
554-
func NewGen(pkg string) *gen {
555-
return &gen{pkg: pkg}
556+
func NewGen(pkg, groupName, versionName string) *gen {
557+
return &gen{pkg: pkg, groupName: groupName, versionName: versionName}
556558
}
557559

558560
func (g *gen) addImpAlias(path, alias string) {
@@ -864,8 +866,8 @@ func (g *gen) Generate(root *Node) ([]byte, []byte, error) {
864866
}
865867
g.buf.WriteString("// Code generated by values-gen. DO NOT EDIT.\n")
866868
g.buf.WriteString("// +kubebuilder:object:generate=true\n")
867-
g.buf.WriteString("// +groupName=values.helm.io\n")
868-
g.buf.WriteString("// +versionName=v1alpha1\n")
869+
g.buf.WriteString("// +groupName=" + g.groupName + "\n")
870+
g.buf.WriteString("// +versionName=" + g.versionName + "\n")
869871
g.buf.WriteString("package " + g.pkg + "\n\n")
870872

871873
// collect defined complex types (have children)
@@ -949,7 +951,7 @@ func sortedKeysByOrder(nodes map[string]*Node) []string {
949951
/* Temporary project scaffolding */
950952
/* -------------------------------------------------------------------------- */
951953

952-
func WriteGeneratedGoAndStub(root *Node, module string) (tmpdir, goFilePath string, err error) {
954+
func WriteGeneratedGoAndStub(root *Node, module, groupName, versionName string) (tmpdir, goFilePath string, err error) {
953955
tmpdir, err = os.MkdirTemp("", "values-gen-*")
954956
if err != nil {
955957
return "", "", err
@@ -974,7 +976,7 @@ replace k8s.io/apimachinery => ./k8s.io/apimachinery
974976
return "", "", err
975977
}
976978

977-
g := &gen{pkg: module}
979+
g := &gen{pkg: module, groupName: groupName, versionName: versionName}
978980
formatted, raw, err := g.Generate(root)
979981
goFilePath = filepath.Join(pkgDir, "values_generated.go")
980982
if err != nil {

internal/openapi/openapi_test.go

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@ func TestEndToEndSchemaGeneration(t *testing.T) {
5757
aliases[n.Name] = n
5858
}
5959
PopulateDefaults(root, parsed, aliases)
60-
tmp, goFile, err := WriteGeneratedGoAndStub(root, "values")
60+
tmp, goFile, err := WriteGeneratedGoAndStub(root, "values", "values.helm.io", "v1alpha1")
6161
require.NoError(t, err)
6262
defer os.RemoveAll(tmp)
6363
crdBytes, err := CG(filepath.Dir(goFile))
@@ -149,7 +149,7 @@ metricsStorages:
149149
rows, err := Parse(tmpfile)
150150
require.NoError(t, err)
151151
root := Build(rows)
152-
tmpdir, gofile, err := WriteGeneratedGoAndStub(root, "values")
152+
tmpdir, gofile, err := WriteGeneratedGoAndStub(root, "values", "values.helm.io", "v1alpha1")
153153
require.NoError(t, err)
154154
defer os.RemoveAll(tmpdir)
155155
crdBytes, err := CG(filepath.Dir(gofile))
@@ -194,7 +194,7 @@ foo:
194194
rows, err := Parse(tmpfile)
195195
require.NoError(t, err)
196196
root := Build(rows)
197-
tmpdir, gofile, err := WriteGeneratedGoAndStub(root, "values")
197+
tmpdir, gofile, err := WriteGeneratedGoAndStub(root, "values", "values.helm.io", "v1alpha1")
198198
require.NoError(t, err)
199199
defer os.RemoveAll(tmpdir)
200200
crdBytes, err := CG(filepath.Dir(gofile))
@@ -356,7 +356,7 @@ apiURL: ""
356356
root := Build(rows)
357357

358358
// generate stub project & CRD → schema
359-
tmpDir, goFile, err := WriteGeneratedGoAndStub(root, "values")
359+
tmpDir, goFile, err := WriteGeneratedGoAndStub(root, "values", "values.helm.io", "v1alpha1")
360360
require.NoError(t, err)
361361
defer os.RemoveAll(tmpDir)
362362

@@ -496,7 +496,7 @@ cfg: {}
496496

497497
// ----- build CRD & JSON-schema ----------------------------------
498498

499-
tmpDir, goFile, err := WriteGeneratedGoAndStub(root, "values")
499+
tmpDir, goFile, err := WriteGeneratedGoAndStub(root, "values", "values.helm.io", "v1alpha1")
500500
require.NoError(t, err)
501501
defer os.RemoveAll(tmpDir)
502502

@@ -591,7 +591,7 @@ config:
591591
require.NoError(t, err)
592592
root := Build(rows)
593593

594-
tmpDir, goFile, err := WriteGeneratedGoAndStub(root, "values")
594+
tmpDir, goFile, err := WriteGeneratedGoAndStub(root, "values", "values.helm.io", "v1alpha1")
595595
require.NoError(t, err)
596596
defer os.RemoveAll(tmpDir)
597597

@@ -654,7 +654,7 @@ labels:
654654
require.NoError(t, err)
655655
root := Build(rows)
656656

657-
tmpDir, goFile, err := WriteGeneratedGoAndStub(root, "values")
657+
tmpDir, goFile, err := WriteGeneratedGoAndStub(root, "values", "values.helm.io", "v1alpha1")
658658
require.NoError(t, err)
659659
defer os.RemoveAll(tmpDir)
660660

@@ -710,7 +710,7 @@ labels:
710710
require.Contains(t, code, "`json:\"config\"`", "ConfigSpec.Config should have json tag \"config\"")
711711

712712
// Build CRD → JSON schema
713-
tmpDir, goFile, err := WriteGeneratedGoAndStub(root, "values")
713+
tmpDir, goFile, err := WriteGeneratedGoAndStub(root, "values", "values.helm.io", "v1alpha1")
714714
require.NoError(t, err)
715715
defer os.RemoveAll(tmpDir)
716716

@@ -816,7 +816,7 @@ nodeGroups: {}
816816
require.NoError(t, err)
817817
root := Build(rows)
818818

819-
tmpdir, gofile, err := WriteGeneratedGoAndStub(root, "values")
819+
tmpdir, gofile, err := WriteGeneratedGoAndStub(root, "values", "values.helm.io", "v1alpha1")
820820
require.NoError(t, err)
821821
defer os.RemoveAll(tmpdir)
822822

@@ -855,7 +855,7 @@ backup: {}
855855
require.NoError(t, err)
856856
root := Build(rows)
857857

858-
tmpdir, gofile, err := WriteGeneratedGoAndStub(root, "values")
858+
tmpdir, gofile, err := WriteGeneratedGoAndStub(root, "values", "values.helm.io", "v1alpha1")
859859
require.NoError(t, err)
860860
defer os.RemoveAll(tmpdir)
861861

@@ -897,7 +897,7 @@ controlPlane:
897897
require.NoError(t, err)
898898

899899
root := Build(rows)
900-
tmpDir, goFile, err := WriteGeneratedGoAndStub(root, "values")
900+
tmpDir, goFile, err := WriteGeneratedGoAndStub(root, "values", "values.helm.io", "v1alpha1")
901901
require.NoError(t, err)
902902
defer os.RemoveAll(tmpDir)
903903

@@ -1286,7 +1286,7 @@ tags:
12861286
require.NoError(t, err)
12871287

12881288
root := Build(rows)
1289-
tmpDir, goFile, err := WriteGeneratedGoAndStub(root, "values")
1289+
tmpDir, goFile, err := WriteGeneratedGoAndStub(root, "values", "values.helm.io", "v1alpha1")
12901290
require.NoError(t, err)
12911291
defer os.RemoveAll(tmpDir)
12921292

main.go

Lines changed: 11 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -19,18 +19,22 @@ import (
1919
var Version = "dev"
2020

2121
var (
22-
inValues string
23-
module string
24-
outGo string
25-
outCRD string
26-
outSchema string
27-
outReadme string
22+
inValues string
23+
module string
24+
groupName string
25+
versionName string
26+
outGo string
27+
outCRD string
28+
outSchema string
29+
outReadme string
2830
)
2931

3032
func init() {
3133
pflag.BoolP("version", "V", false, "print version and exit")
3234
pflag.StringVarP(&inValues, "values", "v", "values.yaml", "annotated Helm values.yaml")
3335
pflag.StringVarP(&module, "module", "m", "values", "package name")
36+
pflag.StringVar(&groupName, "group-name", "apps.cozystack.io", "API group name for +groupName marker")
37+
pflag.StringVar(&versionName, "version-name", "v1alpha1", "API version for +versionName marker")
3438
pflag.StringVarP(&outGo, "debug-go", "g", "", "output *.go file")
3539
pflag.StringVarP(&outCRD, "debug-crd", "c", "", "output CRD YAML")
3640
pflag.StringVarP(&outSchema, "schema", "s", "", "output values.schema.json")
@@ -71,7 +75,7 @@ func main() {
7175
// Generate Go files only if required
7276
if outGo != "" || outCRD != "" || outSchema != "" {
7377
var genErr error
74-
tmpdir, goFilePath, genErr = openapi.WriteGeneratedGoAndStub(tree, module)
78+
tmpdir, goFilePath, genErr = openapi.WriteGeneratedGoAndStub(tree, module, groupName, versionName)
7579
if genErr != nil {
7680
fmt.Printf("write generated: %v\n", genErr)
7781
}

0 commit comments

Comments
 (0)