diff --git a/pkg/plugins/golang/v3/scaffolds/init.go b/pkg/plugins/golang/v3/scaffolds/init.go index dea8a22ae07..d30d56dc65c 100644 --- a/pkg/plugins/golang/v3/scaffolds/init.go +++ b/pkg/plugins/golang/v3/scaffolds/init.go @@ -18,7 +18,6 @@ package scaffolds import ( "fmt" - "strings" "github.com/spf13/afero" @@ -113,12 +112,6 @@ func (s *initScaffolder) Scaffold() error { }, &templates.Dockerfile{}, &templates.DockerIgnore{}, - &templates.Readme{ - BoilerplateMixin: machinery.BoilerplateMixin{ - Boilerplate: strings.Replace( - strings.Replace(string(boilerplate), "/*", "", 1), - "*/", "", 1), - }, - }, + &templates.Readme{}, ) } diff --git a/pkg/plugins/golang/v3/scaffolds/internal/templates/readme.go b/pkg/plugins/golang/v3/scaffolds/internal/templates/readme.go index 0aa3926fab9..48c415bb518 100644 --- a/pkg/plugins/golang/v3/scaffolds/internal/templates/readme.go +++ b/pkg/plugins/golang/v3/scaffolds/internal/templates/readme.go @@ -16,7 +16,12 @@ limitations under the License. package templates -import "sigs.k8s.io/kubebuilder/v3/pkg/machinery" +import ( + "fmt" + "strings" + + "sigs.k8s.io/kubebuilder/v3/pkg/machinery" +) var _ machinery.Template = &Readme{} @@ -25,6 +30,8 @@ type Readme struct { machinery.TemplateMixin machinery.BoilerplateMixin machinery.ProjectNameMixin + + License string } // SetTemplateDefaults implements file.Template @@ -33,7 +40,19 @@ func (f *Readme) SetTemplateDefaults() error { f.Path = "README.md" } - f.TemplateBody = readmeFileTemplate + f.License = strings.Replace( + strings.Replace(string(f.Boilerplate), "/*", "", 1), + "*/", "", 1) + + f.TemplateBody = fmt.Sprintf(readmeFileTemplate, + codeFence("sh", "kubectl apply -f config/samples/"), + codeFence("sh", "make docker-build docker-push IMG=/{{ .ProjectName }}:tag"), + codeFence("sh", "make deploy IMG=/{{ .ProjectName }}:tag"), + codeFence("sh", "make uninstall"), + codeFence("sh", "make undeploy"), + codeFence("sh", "make install"), + codeFence("sh", "make run"), + codeFence("sh", "make manifests")) return nil } @@ -51,37 +70,26 @@ You’ll need a Kubernetes cluster to run against. You can use [KIND](https://si ### Running on the cluster 1. Install Instances of Custom Resources: -` + - "\t```sh\n" + - "\tkubectl apply -f config/samples/\n" + - "\t```" + - ` + +%s + 2. Build and push your image to the location specified by ` + "`IMG`" + `: -` + - "\t```sh\n" + - "\tmake docker-build docker-push IMG=/:tag\n" + - "\t```" + - ` + +%s + 3. Deploy the controller to the cluster with the image specified by ` + "`IMG`" + `: -` + - "\t```sh\n" + - "\tmake deploy IMG=/project-name>:tag\n" + - "\t```" + - ` + +%s + ### Uninstall CRDs To delete the CRDs from the cluster: -` + - "\t```sh\n" + - "\tmake uninstall\n" + - "\t```" + - ` + +%s + ### Undeploy controller UnDeploy the controller to the cluster: -` + - "\t```sh\n" + - "\tmake undeploy\n" + - "\t```" + - ` + +%s ## Contributing // TODO(user): Add detailed information on how you would like others to contribute to this project @@ -93,29 +101,29 @@ It uses [Controllers](https://kubernetes.io/docs/concepts/architecture/controlle which provides a reconcile function responsible for synchronizing resources untile the desired state is reached on the cluster ### Test It Out -You’ll need a Kubernetes cluster to run against. You can use [KIND](https://sigs.k8s.io/kind) to get a local cluster for testing, or run against a remote cluster. -**Note:** Your controller will automatically use the current context in your kubeconfig file (i.e. whatever cluster ` + "`kubectl cluster-info`" + ` shows). - 1. Install the CRDs into the cluster: -` + - // Backticks can't be escaped within backticks so have to - // do this to get the backticks for Markdown code fences - "\t```sh\n" + - "\tmake install\n" + - "\t```" + - ` + +%s + 2. Run your controller (this will run in the foreground, so switch to a new terminal if you want to leave it running): -` + - "\t```sh\n" + - "\tmake run\n" + - "\t```" + - ` + +%s + **NOTE:** You can also run this in one step by running: ` + "`make install run`" + ` +### Modifying the API definitions +If you are editing the API definitions, generate the manifests such as CRs or CRDs using: + +%s + **NOTE:** Run ` + "`make --help`" + ` for more information on all potential ` + "`make`" + ` targets More information can be found via the [Kubebuilder Documentation](https://book.kubebuilder.io/introduction.html) ## License -{{ .Boilerplate }} +{{ .License }} ` + +func codeFence(syntax string, code string) string { + return "```" + syntax + "\n" + code + "\n" + "```" +} diff --git a/testdata/project-v3-addon/README.md b/testdata/project-v3-addon/README.md index c42dcda1990..3f240ba80b4 100644 --- a/testdata/project-v3-addon/README.md +++ b/testdata/project-v3-addon/README.md @@ -10,27 +10,36 @@ You’ll need a Kubernetes cluster to run against. You can use [KIND](https://si ### Running on the cluster 1. Install Instances of Custom Resources: - ```sh - kubectl apply -f config/samples/ - ``` + +```sh +kubectl apply -f config/samples/ +``` + 2. Build and push your image to the location specified by `IMG`: - ```sh - make docker-build docker-push IMG=/:tag - ``` + +```sh +make docker-build docker-push IMG=/project-v3-addon:tag +``` + 3. Deploy the controller to the cluster with the image specified by `IMG`: - ```sh - make deploy IMG=/project-name>:tag - ``` + +```sh +make deploy IMG=/project-v3-addon:tag +``` + ### Uninstall CRDs To delete the CRDs from the cluster: - ```sh - make uninstall - ``` + +```sh +make uninstall +``` + ### Undeploy controller UnDeploy the controller to the cluster: - ```sh - make undeploy - ``` + +```sh +make undeploy +``` ## Contributing // TODO(user): Add detailed information on how you would like others to contribute to this project @@ -42,19 +51,27 @@ It uses [Controllers](https://kubernetes.io/docs/concepts/architecture/controlle which provides a reconcile function responsible for synchronizing resources untile the desired state is reached on the cluster ### Test It Out -You’ll need a Kubernetes cluster to run against. You can use [KIND](https://sigs.k8s.io/kind) to get a local cluster for testing, or run against a remote cluster. -**Note:** Your controller will automatically use the current context in your kubeconfig file (i.e. whatever cluster `kubectl cluster-info` shows). - 1. Install the CRDs into the cluster: - ```sh - make install - ``` + +```sh +make install +``` + 2. Run your controller (this will run in the foreground, so switch to a new terminal if you want to leave it running): - ```sh - make run - ``` + +```sh +make run +``` + **NOTE:** You can also run this in one step by running: `make install run` +### Modifying the API definitions +If you are editing the API definitions, generate the manifests such as CRs or CRDs using: + +```sh +make manifests +``` + **NOTE:** Run `make --help` for more information on all potential `make` targets More information can be found via the [Kubebuilder Documentation](https://book.kubebuilder.io/introduction.html) diff --git a/testdata/project-v3-config/README.md b/testdata/project-v3-config/README.md index f3d656a8a78..253fcecbab2 100644 --- a/testdata/project-v3-config/README.md +++ b/testdata/project-v3-config/README.md @@ -10,27 +10,36 @@ You’ll need a Kubernetes cluster to run against. You can use [KIND](https://si ### Running on the cluster 1. Install Instances of Custom Resources: - ```sh - kubectl apply -f config/samples/ - ``` + +```sh +kubectl apply -f config/samples/ +``` + 2. Build and push your image to the location specified by `IMG`: - ```sh - make docker-build docker-push IMG=/:tag - ``` + +```sh +make docker-build docker-push IMG=/project-v3-config:tag +``` + 3. Deploy the controller to the cluster with the image specified by `IMG`: - ```sh - make deploy IMG=/project-name>:tag - ``` + +```sh +make deploy IMG=/project-v3-config:tag +``` + ### Uninstall CRDs To delete the CRDs from the cluster: - ```sh - make uninstall - ``` + +```sh +make uninstall +``` + ### Undeploy controller UnDeploy the controller to the cluster: - ```sh - make undeploy - ``` + +```sh +make undeploy +``` ## Contributing // TODO(user): Add detailed information on how you would like others to contribute to this project @@ -42,19 +51,27 @@ It uses [Controllers](https://kubernetes.io/docs/concepts/architecture/controlle which provides a reconcile function responsible for synchronizing resources untile the desired state is reached on the cluster ### Test It Out -You’ll need a Kubernetes cluster to run against. You can use [KIND](https://sigs.k8s.io/kind) to get a local cluster for testing, or run against a remote cluster. -**Note:** Your controller will automatically use the current context in your kubeconfig file (i.e. whatever cluster `kubectl cluster-info` shows). - 1. Install the CRDs into the cluster: - ```sh - make install - ``` + +```sh +make install +``` + 2. Run your controller (this will run in the foreground, so switch to a new terminal if you want to leave it running): - ```sh - make run - ``` + +```sh +make run +``` + **NOTE:** You can also run this in one step by running: `make install run` +### Modifying the API definitions +If you are editing the API definitions, generate the manifests such as CRs or CRDs using: + +```sh +make manifests +``` + **NOTE:** Run `make --help` for more information on all potential `make` targets More information can be found via the [Kubebuilder Documentation](https://book.kubebuilder.io/introduction.html) diff --git a/testdata/project-v3-multigroup/README.md b/testdata/project-v3-multigroup/README.md index af85922d4a3..8593cb58c9a 100644 --- a/testdata/project-v3-multigroup/README.md +++ b/testdata/project-v3-multigroup/README.md @@ -10,27 +10,36 @@ You’ll need a Kubernetes cluster to run against. You can use [KIND](https://si ### Running on the cluster 1. Install Instances of Custom Resources: - ```sh - kubectl apply -f config/samples/ - ``` + +```sh +kubectl apply -f config/samples/ +``` + 2. Build and push your image to the location specified by `IMG`: - ```sh - make docker-build docker-push IMG=/:tag - ``` + +```sh +make docker-build docker-push IMG=/project-v3-multigroup:tag +``` + 3. Deploy the controller to the cluster with the image specified by `IMG`: - ```sh - make deploy IMG=/project-name>:tag - ``` + +```sh +make deploy IMG=/project-v3-multigroup:tag +``` + ### Uninstall CRDs To delete the CRDs from the cluster: - ```sh - make uninstall - ``` + +```sh +make uninstall +``` + ### Undeploy controller UnDeploy the controller to the cluster: - ```sh - make undeploy - ``` + +```sh +make undeploy +``` ## Contributing // TODO(user): Add detailed information on how you would like others to contribute to this project @@ -42,19 +51,27 @@ It uses [Controllers](https://kubernetes.io/docs/concepts/architecture/controlle which provides a reconcile function responsible for synchronizing resources untile the desired state is reached on the cluster ### Test It Out -You’ll need a Kubernetes cluster to run against. You can use [KIND](https://sigs.k8s.io/kind) to get a local cluster for testing, or run against a remote cluster. -**Note:** Your controller will automatically use the current context in your kubeconfig file (i.e. whatever cluster `kubectl cluster-info` shows). - 1. Install the CRDs into the cluster: - ```sh - make install - ``` + +```sh +make install +``` + 2. Run your controller (this will run in the foreground, so switch to a new terminal if you want to leave it running): - ```sh - make run - ``` + +```sh +make run +``` + **NOTE:** You can also run this in one step by running: `make install run` +### Modifying the API definitions +If you are editing the API definitions, generate the manifests such as CRs or CRDs using: + +```sh +make manifests +``` + **NOTE:** Run `make --help` for more information on all potential `make` targets More information can be found via the [Kubebuilder Documentation](https://book.kubebuilder.io/introduction.html) diff --git a/testdata/project-v3-v1beta1/README.md b/testdata/project-v3-v1beta1/README.md index 2eac42a7d04..160a76fb75c 100644 --- a/testdata/project-v3-v1beta1/README.md +++ b/testdata/project-v3-v1beta1/README.md @@ -10,27 +10,36 @@ You’ll need a Kubernetes cluster to run against. You can use [KIND](https://si ### Running on the cluster 1. Install Instances of Custom Resources: - ```sh - kubectl apply -f config/samples/ - ``` + +```sh +kubectl apply -f config/samples/ +``` + 2. Build and push your image to the location specified by `IMG`: - ```sh - make docker-build docker-push IMG=/:tag - ``` + +```sh +make docker-build docker-push IMG=/project-v3-v1beta1:tag +``` + 3. Deploy the controller to the cluster with the image specified by `IMG`: - ```sh - make deploy IMG=/project-name>:tag - ``` + +```sh +make deploy IMG=/project-v3-v1beta1:tag +``` + ### Uninstall CRDs To delete the CRDs from the cluster: - ```sh - make uninstall - ``` + +```sh +make uninstall +``` + ### Undeploy controller UnDeploy the controller to the cluster: - ```sh - make undeploy - ``` + +```sh +make undeploy +``` ## Contributing // TODO(user): Add detailed information on how you would like others to contribute to this project @@ -42,19 +51,27 @@ It uses [Controllers](https://kubernetes.io/docs/concepts/architecture/controlle which provides a reconcile function responsible for synchronizing resources untile the desired state is reached on the cluster ### Test It Out -You’ll need a Kubernetes cluster to run against. You can use [KIND](https://sigs.k8s.io/kind) to get a local cluster for testing, or run against a remote cluster. -**Note:** Your controller will automatically use the current context in your kubeconfig file (i.e. whatever cluster `kubectl cluster-info` shows). - 1. Install the CRDs into the cluster: - ```sh - make install - ``` + +```sh +make install +``` + 2. Run your controller (this will run in the foreground, so switch to a new terminal if you want to leave it running): - ```sh - make run - ``` + +```sh +make run +``` + **NOTE:** You can also run this in one step by running: `make install run` +### Modifying the API definitions +If you are editing the API definitions, generate the manifests such as CRs or CRDs using: + +```sh +make manifests +``` + **NOTE:** Run `make --help` for more information on all potential `make` targets More information can be found via the [Kubebuilder Documentation](https://book.kubebuilder.io/introduction.html) diff --git a/testdata/project-v3/README.md b/testdata/project-v3/README.md index bc07f0b10a4..478d112d4cf 100644 --- a/testdata/project-v3/README.md +++ b/testdata/project-v3/README.md @@ -10,27 +10,36 @@ You’ll need a Kubernetes cluster to run against. You can use [KIND](https://si ### Running on the cluster 1. Install Instances of Custom Resources: - ```sh - kubectl apply -f config/samples/ - ``` + +```sh +kubectl apply -f config/samples/ +``` + 2. Build and push your image to the location specified by `IMG`: - ```sh - make docker-build docker-push IMG=/:tag - ``` + +```sh +make docker-build docker-push IMG=/project-v3:tag +``` + 3. Deploy the controller to the cluster with the image specified by `IMG`: - ```sh - make deploy IMG=/project-name>:tag - ``` + +```sh +make deploy IMG=/project-v3:tag +``` + ### Uninstall CRDs To delete the CRDs from the cluster: - ```sh - make uninstall - ``` + +```sh +make uninstall +``` + ### Undeploy controller UnDeploy the controller to the cluster: - ```sh - make undeploy - ``` + +```sh +make undeploy +``` ## Contributing // TODO(user): Add detailed information on how you would like others to contribute to this project @@ -42,19 +51,27 @@ It uses [Controllers](https://kubernetes.io/docs/concepts/architecture/controlle which provides a reconcile function responsible for synchronizing resources untile the desired state is reached on the cluster ### Test It Out -You’ll need a Kubernetes cluster to run against. You can use [KIND](https://sigs.k8s.io/kind) to get a local cluster for testing, or run against a remote cluster. -**Note:** Your controller will automatically use the current context in your kubeconfig file (i.e. whatever cluster `kubectl cluster-info` shows). - 1. Install the CRDs into the cluster: - ```sh - make install - ``` + +```sh +make install +``` + 2. Run your controller (this will run in the foreground, so switch to a new terminal if you want to leave it running): - ```sh - make run - ``` + +```sh +make run +``` + **NOTE:** You can also run this in one step by running: `make install run` +### Modifying the API definitions +If you are editing the API definitions, generate the manifests such as CRs or CRDs using: + +```sh +make manifests +``` + **NOTE:** Run `make --help` for more information on all potential `make` targets More information can be found via the [Kubebuilder Documentation](https://book.kubebuilder.io/introduction.html)