From ece96fa7a31e67fad7188a59c54dc0822fef4c5e Mon Sep 17 00:00:00 2001 From: Camila Macedo Date: Fri, 19 Jun 2020 18:06:20 +0100 Subject: [PATCH] feat: add dockerignore file to the scaffold (V3 only) --- .../testdata/project/.dockerignore | 5 ++ .../testdata/project/.dockerignore | 5 ++ pkg/plugin/v3/scaffolds/init.go | 1 + .../internal/templates/dockerignorefile.go | 46 +++++++++++++++++++ testdata/project-v3-addon/.dockerignore | 5 ++ testdata/project-v3-multigroup/.dockerignore | 5 ++ testdata/project-v3/.dockerignore | 5 ++ 7 files changed, 72 insertions(+) create mode 100644 docs/book/src/cronjob-tutorial/testdata/project/.dockerignore create mode 100644 docs/book/src/multiversion-tutorial/testdata/project/.dockerignore create mode 100644 pkg/plugin/v3/scaffolds/internal/templates/dockerignorefile.go create mode 100644 testdata/project-v3-addon/.dockerignore create mode 100644 testdata/project-v3-multigroup/.dockerignore create mode 100644 testdata/project-v3/.dockerignore diff --git a/docs/book/src/cronjob-tutorial/testdata/project/.dockerignore b/docs/book/src/cronjob-tutorial/testdata/project/.dockerignore new file mode 100644 index 00000000000..243f81a5080 --- /dev/null +++ b/docs/book/src/cronjob-tutorial/testdata/project/.dockerignore @@ -0,0 +1,5 @@ +# More info: https://docs.docker.com/engine/reference/builder/#dockerignore-file +# Ignore all files which are not go type +!**/*.go +!**/*.mod +!**/*.sum diff --git a/docs/book/src/multiversion-tutorial/testdata/project/.dockerignore b/docs/book/src/multiversion-tutorial/testdata/project/.dockerignore new file mode 100644 index 00000000000..243f81a5080 --- /dev/null +++ b/docs/book/src/multiversion-tutorial/testdata/project/.dockerignore @@ -0,0 +1,5 @@ +# More info: https://docs.docker.com/engine/reference/builder/#dockerignore-file +# Ignore all files which are not go type +!**/*.go +!**/*.mod +!**/*.sum diff --git a/pkg/plugin/v3/scaffolds/init.go b/pkg/plugin/v3/scaffolds/init.go index e66738f074f..7ea614e98c8 100644 --- a/pkg/plugin/v3/scaffolds/init.go +++ b/pkg/plugin/v3/scaffolds/init.go @@ -112,6 +112,7 @@ func (s *initScaffolder) scaffold() error { KustomizeVersion: KustomizeVersion, }, &templates.Dockerfile{}, + &templates.DockerignoreFile{}, &templates.Kustomize{}, &templates.ManagerWebhookPatch{}, &templates.ManagerRoleBinding{}, diff --git a/pkg/plugin/v3/scaffolds/internal/templates/dockerignorefile.go b/pkg/plugin/v3/scaffolds/internal/templates/dockerignorefile.go new file mode 100644 index 00000000000..d3a22022b1b --- /dev/null +++ b/pkg/plugin/v3/scaffolds/internal/templates/dockerignorefile.go @@ -0,0 +1,46 @@ +/* +Copyright 2020 The Kubernetes Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package templates + +import ( + "sigs.k8s.io/kubebuilder/pkg/model/file" +) + +var _ file.Template = &DockerignoreFile{} + +// Dockerfile scaffolds a DockerignoreFile for building a main +type DockerignoreFile struct { + file.TemplateMixin +} + +// SetTemplateDefaults implements input.Template +func (f *DockerignoreFile) SetTemplateDefaults() error { + if f.Path == "" { + f.Path = ".dockerignore" + } + + f.TemplateBody = dockerignorefileTemplate + + return nil +} + +const dockerignorefileTemplate = `# More info: https://docs.docker.com/engine/reference/builder/#dockerignore-file +# Ignore all files which are not go type +!**/*.go +!**/*.mod +!**/*.sum +` diff --git a/testdata/project-v3-addon/.dockerignore b/testdata/project-v3-addon/.dockerignore new file mode 100644 index 00000000000..243f81a5080 --- /dev/null +++ b/testdata/project-v3-addon/.dockerignore @@ -0,0 +1,5 @@ +# More info: https://docs.docker.com/engine/reference/builder/#dockerignore-file +# Ignore all files which are not go type +!**/*.go +!**/*.mod +!**/*.sum diff --git a/testdata/project-v3-multigroup/.dockerignore b/testdata/project-v3-multigroup/.dockerignore new file mode 100644 index 00000000000..243f81a5080 --- /dev/null +++ b/testdata/project-v3-multigroup/.dockerignore @@ -0,0 +1,5 @@ +# More info: https://docs.docker.com/engine/reference/builder/#dockerignore-file +# Ignore all files which are not go type +!**/*.go +!**/*.mod +!**/*.sum diff --git a/testdata/project-v3/.dockerignore b/testdata/project-v3/.dockerignore new file mode 100644 index 00000000000..243f81a5080 --- /dev/null +++ b/testdata/project-v3/.dockerignore @@ -0,0 +1,5 @@ +# More info: https://docs.docker.com/engine/reference/builder/#dockerignore-file +# Ignore all files which are not go type +!**/*.go +!**/*.mod +!**/*.sum