Skip to content

Commit 903757e

Browse files
Added indexer generation
1 parent 0e4dc30 commit 903757e

File tree

4 files changed

+505
-8
lines changed

4 files changed

+505
-8
lines changed

tools/scaffolder/Makefile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11

22
build:
3-
go build -o bin/ako-controller-scaffolder cmd/main.go
3+
go build -o bin/scaffolder cmd/main.go
44

55
generate:
66
controller-gen object:headerFile="hack/boilerplate.go.txt" paths="./pkg/api/..."

tools/scaffolder/cmd/main.go

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -9,16 +9,17 @@ import (
99
)
1010

1111
var (
12-
inputPath string
13-
crdKind string
14-
listCRDs bool
15-
controllerOutDir string
12+
inputPath string
13+
crdKind string
14+
listCRDs bool
15+
controllerOutDir string
1616
translationOutDir string
17+
indexerOutDir string
1718
)
1819

1920
func main() {
2021
rootCmd := &cobra.Command{
21-
Use: "ako-controller-scaffolder",
22+
Use: "scaffolder",
2223
Short: "Generate Kubernetes controllers for MongoDB Atlas CRDs",
2324
RunE: func(cmd *cobra.Command, args []string) error {
2425
if inputPath == "" {
@@ -29,7 +30,7 @@ func main() {
2930
return generate.PrintCRDs(inputPath)
3031
}
3132

32-
return generate.FromConfig(inputPath, crdKind, controllerOutDir, translationOutDir)
33+
return generate.FromConfig(inputPath, crdKind, controllerOutDir, translationOutDir, indexerOutDir)
3334
},
3435
}
3536

@@ -38,6 +39,7 @@ func main() {
3839
rootCmd.Flags().BoolVar(&listCRDs, "list", false, "List available CRDs from result file")
3940
rootCmd.Flags().StringVar(&controllerOutDir, "controller-out", "", "Output directory for controller files (default: ../mongodb-atlas-kubernetes/internal/controller)")
4041
rootCmd.Flags().StringVar(&translationOutDir, "translation-out", "", "Output directory for translation files (default: ../mongodb-atlas-kubernetes/internal/translation)")
42+
rootCmd.Flags().StringVar(&indexerOutDir, "indexer-out", "", "Output directory for indexer files (default: ../mongodb-atlas-kubernetes/internal/indexer)")
4143

4244
if err := rootCmd.Execute(); err != nil {
4345
fmt.Fprintf(os.Stderr, "Error: %v\n", err)

tools/scaffolder/internal/generate/controller.go

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ const (
2828
)
2929

3030
// FromConfig generates controllers and handlers based on the parsed CRD result file
31-
func FromConfig(resultPath, crdKind, controllerOutDir, translationOutDir string) error {
31+
func FromConfig(resultPath, crdKind, controllerOutDir, translationOutDir, indexerOutDir string) error {
3232
parsedConfig, err := ParseCRDConfig(resultPath, crdKind)
3333
if err != nil {
3434
return err
@@ -44,6 +44,14 @@ func FromConfig(resultPath, crdKind, controllerOutDir, translationOutDir string)
4444
translationOutDir = filepath.Join("..", "mongodb-atlas-kubernetes", "internal", "translation")
4545
}
4646

47+
// Generate indexers
48+
if indexerOutDir == "" {
49+
indexerOutDir = filepath.Join("..", "mongodb-atlas-kubernetes", "internal", "indexer")
50+
}
51+
if err := GenerateIndexers(resultPath, crdKind, indexerOutDir); err != nil {
52+
return fmt.Errorf("failed to generate indexers: %w", err)
53+
}
54+
4755
baseControllerDir := filepath.Join(controllerOutDir, strings.ToLower(resourceName))
4856

4957
// Generate translation layers for all mappings

0 commit comments

Comments
 (0)