diff --git a/changelog/fragments/ansible-gitignore.yaml b/changelog/fragments/ansible-gitignore.yaml new file mode 100644 index 00000000000..ab3cb16554e --- /dev/null +++ b/changelog/fragments/ansible-gitignore.yaml @@ -0,0 +1,16 @@ +# entries is a list of entries to include in +# release notes and/or the migration guide +entries: + - description: > + For Ansible-based Operator, add `.gitignore` file. + + # kind is one of: + # - addition + # - change + # - deprecation + # - removal + # - bugfix + kind: "addition" + + # Is this a breaking change? + breaking: false diff --git a/internal/plugins/ansible/v1/scaffolds/init.go b/internal/plugins/ansible/v1/scaffolds/init.go index b6631118a37..3340ed36729 100644 --- a/internal/plugins/ansible/v1/scaffolds/init.go +++ b/internal/plugins/ansible/v1/scaffolds/init.go @@ -80,6 +80,7 @@ func (s *initScaffolder) scaffold() error { return machinery.NewScaffold().Execute( s.newUniverse(), &templates.Dockerfile{}, + &templates.GitIgnore{}, &templates.RequirementsYml{}, &templates.Watches{}, diff --git a/internal/plugins/ansible/v1/scaffolds/internal/templates/gitignore.go b/internal/plugins/ansible/v1/scaffolds/internal/templates/gitignore.go new file mode 100644 index 00000000000..e309be025bb --- /dev/null +++ b/internal/plugins/ansible/v1/scaffolds/internal/templates/gitignore.go @@ -0,0 +1,56 @@ +/* +Copyright 2018 The Kubernetes Authors. +Modifications copyright 2020 The Operator-SDK 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 = &GitIgnore{} + +// GitIgnore scaffolds the .gitignore file +type GitIgnore struct { + file.TemplateMixin +} + +// SetTemplateDefaults implements input.Template +func (f *GitIgnore) SetTemplateDefaults() error { + if f.Path == "" { + f.Path = ".gitignore" + } + + f.TemplateBody = gitignoreTemplate + + return nil +} + +const gitignoreTemplate = ` +# Binaries for programs and plugins +*.exe +*.exe~ +*.dll +*.so +*.dylib +bin + +# editor and IDE paraphernalia +.idea +*.swp +*.swo +*~ +`