Install
Install kubebuilder
os=$(go env GOOS)
arch=$(go env GOARCH)
# download kubebuilder and extract it to tmp
curl -sL https://go.kubebuilder.io/dl/2.0.0-beta.0/${os}/${arch} | tar -xz -C /tmp/
# move to a long-term location and put it on your path
# (you'll need to set the KUBEBUILDER_ASSETS env var if you put it somewhere else)
sudo mv /tmp/kubebuilder_2.0.0-beta.0_${os}_${arch} /usr/local/kubebuilder
export PATH=$PATH:/usr/local/kubebuilder/bin
Create a Project
mkdir namespace-operator
cd namespace-operator
go mod init kangwoo.github.io/namespace-operator
kubebuilder init --domain kangwoo.github.io
Adding a new API
kubebuilder create api --group tenant --version v1 --kind NamespaceRequest --namespaced false
Adding a new Webhook
kubebuilder create webhook --group tenant --version v1 --kind NamespaceRequest --defaulting --programmatic-validation