Skip to content

Commit

Permalink
updates based on PR review
Browse files Browse the repository at this point in the history
Signed-off-by: Bryce Palmer <bpalmer@redhat.com>
  • Loading branch information
everettraven committed Apr 13, 2022
1 parent 694106b commit a0faa6f
Show file tree
Hide file tree
Showing 7 changed files with 257 additions and 171 deletions.
9 changes: 1 addition & 8 deletions pkg/plugins/golang/v3/scaffolds/init.go
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,6 @@ package scaffolds

import (
"fmt"
"strings"

"github.com/spf13/afero"

Expand Down Expand Up @@ -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{},
)
}
94 changes: 51 additions & 43 deletions pkg/plugins/golang/v3/scaffolds/internal/templates/readme.go
Original file line number Diff line number Diff line change
Expand Up @@ -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{}

Expand All @@ -25,6 +30,8 @@ type Readme struct {
machinery.TemplateMixin
machinery.BoilerplateMixin
machinery.ProjectNameMixin

License string
}

// SetTemplateDefaults implements file.Template
Expand All @@ -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=<some-registry>/{{ .ProjectName }}:tag"),
codeFence("sh", "make deploy IMG=<some-registry>/{{ .ProjectName }}:tag"),
codeFence("sh", "make uninstall"),
codeFence("sh", "make undeploy"),
codeFence("sh", "make install"),
codeFence("sh", "make run"),
codeFence("sh", "make manifests"))

return nil
}
Expand All @@ -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=<some-registry>/<project-name>:tag\n" +
"\t```" +
`
%s
3. Deploy the controller to the cluster with the image specified by ` + "`IMG`" + `:
` +
"\t```sh\n" +
"\tmake deploy IMG=<some-registry>/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
Expand All @@ -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" + "```"
}
65 changes: 41 additions & 24 deletions testdata/project-v3-addon/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -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=<some-registry>/<project-name>:tag
```

```sh
make docker-build docker-push IMG=<some-registry>/project-v3-addon:tag
```

3. Deploy the controller to the cluster with the image specified by `IMG`:
```sh
make deploy IMG=<some-registry>/project-name>:tag
```

```sh
make deploy IMG=<some-registry>/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
Expand All @@ -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)
Expand Down
65 changes: 41 additions & 24 deletions testdata/project-v3-config/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -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=<some-registry>/<project-name>:tag
```

```sh
make docker-build docker-push IMG=<some-registry>/project-v3-config:tag
```

3. Deploy the controller to the cluster with the image specified by `IMG`:
```sh
make deploy IMG=<some-registry>/project-name>:tag
```

```sh
make deploy IMG=<some-registry>/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
Expand All @@ -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)
Expand Down
Loading

0 comments on commit a0faa6f

Please sign in to comment.