diff --git a/pkg/plugins/hybrid/v1alpha/scaffolds/init.go b/pkg/plugins/hybrid/v1alpha/scaffolds/init.go index c48fd9d8..17f83167 100644 --- a/pkg/plugins/hybrid/v1alpha/scaffolds/init.go +++ b/pkg/plugins/hybrid/v1alpha/scaffolds/init.go @@ -110,7 +110,9 @@ func (s *initScaffolder) Scaffold() error { machinery.WithBoilerplate(string(boilerplate)), ) - if err := os.MkdirAll(chartutil.HelmChartsDir, 0755); err != nil { + // create placeholder directories for helm charts and go apis + err = createDirectories([]string{chartutil.HelmChartsDir, "api", "controllers"}) + if err != nil { return err } @@ -131,9 +133,6 @@ func (s *initScaffolder) Scaffold() error { &templates.DockerIgnore{}, ) - // Add note to include any depedencies in dockerfile which are required to build `main.go`. - fmt.Println("Include any dependencies required to build `main.go` in your project to Dockerfile") - if err != nil { return err } @@ -146,3 +145,12 @@ func (s *initScaffolder) Scaffold() error { return nil } + +func createDirectories(directories []string) error { + for _, dir := range directories { + if err := os.MkdirAll(dir, 0755); err != nil { + return fmt.Errorf("unable to create directory %q : %v", dir, err) + } + } + return nil +} diff --git a/pkg/plugins/hybrid/v1alpha/scaffolds/internal/templates/dockerfile.go b/pkg/plugins/hybrid/v1alpha/scaffolds/internal/templates/dockerfile.go index 032696f7..2bd5cef1 100644 --- a/pkg/plugins/hybrid/v1alpha/scaffolds/internal/templates/dockerfile.go +++ b/pkg/plugins/hybrid/v1alpha/scaffolds/internal/templates/dockerfile.go @@ -53,6 +53,8 @@ RUN go mod download # Copy the go source COPY main.go main.go +COPY api/ api/ +COPY controllers/ controllers/ # Build RUN CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -a -o manager main.go