Kubebuilder controller-gen CLI
controller-gen
controller-gen [<option>]
<option>output:<generator>:<rule>artifacts:<option>config=<path>: 파일이 생성될 디렉토리 경로 설정입니다.
output:<rule>:output:<generator>:<rule>설정이 없으면 사용하는 전역 설정입니다.
CRD 생성
package주석// +groupName=<group>
type주석// +kubebuilder:subresource:status:spec.versions.subresources.status생성 여부입니다.
controller-gen paths=./... \
crd[:<option>[,<option>]] output:crd:<rule>
crd:<option>
RBAC 생성
package주석// +kubebuilder:rbac:<option>[,<option>]groups=<group>[,<group>]resources=<resource>[,<resource>]verbs=<verb>[,<verb>]- e.g.,
groups="",resources=pods,verbs=get;list;watch;create;update;patch;delete
controller-gen paths=./... \
rbac:roleName=<name>[,<option>]] output:rbac:<rule>
rbac:<option>
Object/DeepCopy 코드 생성
package주석// +kubebuilder:object:generate=<bool>: package에 존재하는 모든type에DeepCopy관련 메서드 생성 여부입니다.
type주석// +kubebuilder:object:generate=<bool>:DeepCopy관련 메서드 생성 여부입니다.// +kubebuilder:object:root=true:runtime.Object관련 메서드 생성 여부입니다.
controller-gen paths=./... object[:<option>[,<option>]]
object:<option>headerFile=<path>: 생성된 파일 상단에 추가할 내용을 포함한 파일 경로 설정입니다.year=<year>: headerFile의YEAR을<year>로 변경합니다.