docs/book/src/cronjob-tutorial/basic-project.md
When scaffolding out a new project, Kubebuilder provides us with a few basic pieces of boilerplate.
First up, basic infrastructure for building your project:
<details><summary><code>go.mod</code>: A new Go module matching our project, with basic dependencies</summary>{{#include ./testdata/project/go.mod}}
{{#include ./testdata/project/Makefile}}
{{#include ./testdata/project/PROJECT}}
We also get launch configurations under the
config/
directory. Right now, it just contains
Kustomize YAML definitions required to
launch our controller on a cluster, but once we get started writing our
controller, it'll also hold our CustomResourceDefinitions, RBAC
configuration, and WebhookConfigurations.
config/default contains a Kustomize base for launching
the controller in a standard configuration.
Each other directory contains a different piece of configuration, refactored out into its own base:
config/manager: launch your controllers as pods in the
cluster
config/rbac: permissions required to run your
controllers under their own service account
Last, but certainly not least, Kubebuilder scaffolds out the basic
entrypoint of our project: main.go. Let's take a look at that next...