mirror of
https://github.com/kyverno/kyverno.git
synced 2025-03-05 15:37:19 +00:00
docs: add section for generated code (#4465)
Signed-off-by: Charles-Edouard Brétéché <charled.breteche@gmail.com> Signed-off-by: Charles-Edouard Brétéché <charled.breteche@gmail.com>
This commit is contained in:
parent
891ab41bef
commit
f503be1b23
2 changed files with 86 additions and 1 deletions
|
@ -5,7 +5,6 @@ This document covers basic needs to work with Kyverno codebase.
|
||||||
It contains instructions to build, run, and test Kyverno.
|
It contains instructions to build, run, and test Kyverno.
|
||||||
|
|
||||||
- [Tools](#tools)
|
- [Tools](#tools)
|
||||||
- [Building and publishing an image locally](#building-and-publishing-an-image-locally)
|
|
||||||
- [Building local binaries](#building-local-binaries)
|
- [Building local binaries](#building-local-binaries)
|
||||||
- [Building local images](#building-local-images)
|
- [Building local images](#building-local-images)
|
||||||
- [Building local images with docker](#building-local-images-with-docker)
|
- [Building local images with docker](#building-local-images-with-docker)
|
||||||
|
@ -17,6 +16,10 @@ It contains instructions to build, run, and test Kyverno.
|
||||||
- [Create a local cluster](#create-a-local-cluster)
|
- [Create a local cluster](#create-a-local-cluster)
|
||||||
- [Build and load local images](#build-and-load-local-images)
|
- [Build and load local images](#build-and-load-local-images)
|
||||||
- [Deploy with helm](#deploy-with-helm)
|
- [Deploy with helm](#deploy-with-helm)
|
||||||
|
- [Code generation](#code-generation)
|
||||||
|
- [Generating kubernetes API client](#generating-kubernetes-api-client)
|
||||||
|
- [Generating API deep copy functions](#generating-api-deep-copy-functions)
|
||||||
|
- [Generating CRD definitions](#generating-crd-definitions)
|
||||||
|
|
||||||
## Tools
|
## Tools
|
||||||
|
|
||||||
|
@ -348,6 +351,59 @@ This will build local images, load built images in every node of the KinD cluste
|
||||||
|
|
||||||
You can override the KinD cluster name by setting the `KIND_NAME` environment variable (default value is `kind`).
|
You can override the KinD cluster name by setting the `KIND_NAME` environment variable (default value is `kind`).
|
||||||
|
|
||||||
|
## Code generation
|
||||||
|
|
||||||
|
We are using code generation tools to create the following portions of code:
|
||||||
|
- [Generating kubernetes API client](#generating-kubernetes-api-client)
|
||||||
|
- [Generating API deep copy functions](#generating-api-deep-copy-functions)
|
||||||
|
- [Generating CRD definitions](#generating-crd-definitions)
|
||||||
|
|
||||||
|
> **Note**: You can run `make codegen-all` to build all generated code at once.
|
||||||
|
|
||||||
|
### Generating kubernetes API client
|
||||||
|
|
||||||
|
TODO
|
||||||
|
|
||||||
|
### Generating API deep copy functions
|
||||||
|
|
||||||
|
Based on the [APIs golang code definitions](./api), you can generate the corresponding deep copy functions by running:
|
||||||
|
```console
|
||||||
|
# generate all deep copy functions
|
||||||
|
make codegen-deepcopy-all
|
||||||
|
```
|
||||||
|
or
|
||||||
|
```console
|
||||||
|
# generate kyverno deep copy functions
|
||||||
|
make codegen-deepcopy-kyverno
|
||||||
|
```
|
||||||
|
or
|
||||||
|
```console
|
||||||
|
# generate policy reports deep copy functions
|
||||||
|
make codegen-deepcopy-report
|
||||||
|
```
|
||||||
|
|
||||||
|
This will output files named `zz_generated.deepcopy.go` in every API package.
|
||||||
|
|
||||||
|
### Generating CRD definitions
|
||||||
|
|
||||||
|
Based on the [APIs golang code definitions](./api), you can generate the corresponding CRDs manifests by running:
|
||||||
|
```console
|
||||||
|
# generate all CRDs
|
||||||
|
make codegen-crds-all
|
||||||
|
```
|
||||||
|
or
|
||||||
|
```console
|
||||||
|
# generate Kyverno CRDs
|
||||||
|
make codegen-crds-kyverno
|
||||||
|
```
|
||||||
|
or
|
||||||
|
```console
|
||||||
|
# generate policy reports CRDs
|
||||||
|
make codegen-crds-report
|
||||||
|
```
|
||||||
|
|
||||||
|
This will output CRDs manifests [/config/crds](./config/crds).
|
||||||
|
|
||||||
## Building and publishing an image locally
|
## Building and publishing an image locally
|
||||||
|
|
||||||
First, make sure you [install `ko`](https://github.com/google/ko#install)
|
First, make sure you [install `ko`](https://github.com/google/ko#install)
|
||||||
|
|
29
Makefile
29
Makefile
|
@ -283,6 +283,35 @@ docker-publish-all: docker-publish-kyvernopre docker-publish-kyverno docker-publ
|
||||||
.PHONY: docker-publish-all-dev
|
.PHONY: docker-publish-all-dev
|
||||||
docker-publish-all-dev: docker-publish-kyvernopre-dev docker-publish-kyverno-dev docker-publish-cli-dev
|
docker-publish-all-dev: docker-publish-kyvernopre-dev docker-publish-kyverno-dev docker-publish-cli-dev
|
||||||
|
|
||||||
|
###########
|
||||||
|
# CODEGEN #
|
||||||
|
###########
|
||||||
|
|
||||||
|
.PHONY: codegen-crds-kyverno
|
||||||
|
codegen-crds-kyverno: $(CONTROLLER_GEN) ## Generate Kyverno CRDs
|
||||||
|
@$(CONTROLLER_GEN) crd paths=./api/kyverno/... crd:crdVersions=v1 output:dir=./config/crds
|
||||||
|
|
||||||
|
.PHONY: codegen-crds-report
|
||||||
|
codegen-crds-report: $(CONTROLLER_GEN) ## Generate policy reports CRDs
|
||||||
|
@$(CONTROLLER_GEN) crd paths=./api/policyreport/... crd:crdVersions=v1 output:dir=./config/crds
|
||||||
|
|
||||||
|
.PHONY: codegen-crds-all
|
||||||
|
codegen-crds-all: codegen-crds-kyverno codegen-crds-report ## Generate all CRDs
|
||||||
|
|
||||||
|
.PHONY: codegen-deepcopy-kyverno
|
||||||
|
codegen-deepcopy-kyverno: $(CONTROLLER_GEN) $(GOIMPORTS) ## Generate Kyverno deep copy functions
|
||||||
|
@$(CONTROLLER_GEN) object:headerFile="scripts/boilerplate.go.txt" paths="./api/kyverno/..." && $(GOIMPORTS) -w ./api/kyverno
|
||||||
|
|
||||||
|
.PHONY: codegen-deepcopy-report
|
||||||
|
codegen-deepcopy-report: $(CONTROLLER_GEN) $(GOIMPORTS) ## Generate policy reports deep copy functions
|
||||||
|
@$(CONTROLLER_GEN) object:headerFile="scripts/boilerplate.go.txt" paths="./api/policyreport/..." && $(GOIMPORTS) -w ./api/policyreport
|
||||||
|
|
||||||
|
.PHONY: codegen-deepcopy-all
|
||||||
|
codegen-deepcopy-all: codegen-deepcopy-kyverno codegen-deepcopy-report ## Generate all deep copy functions
|
||||||
|
|
||||||
|
.PHONY: codegen-all
|
||||||
|
codegen-all: codegen-deepcopy-all codegen-crds-all ## Generate all CRDs and deep copy functions
|
||||||
|
|
||||||
##################################
|
##################################
|
||||||
# KYVERNO
|
# KYVERNO
|
||||||
##################################
|
##################################
|
||||||
|
|
Loading…
Add table
Reference in a new issue