apiextensions-application
This repository defines the Giant Swarm Kubernetes APIs in the application.giantswarm.io
group including the following:
App
AppCatalog
(deprecated in favor of Catalog
)
AppCatalogEntry
Catalog
Chart
Examples CRs for these can be found in the docs/cr
directory.
Note: These APIs were originally defined in giantswarm/apiextensions
and were moved here to simplify dependency graphs.
Code Generation
Code generation is used to generate:
DeepCopy
methods for each Go type to satisfy the runtime.Object
interface (zz_generated.deepcopy.go
).
- CRDs for each API in YAML format to be applied to a Kubernetes cluster before creating CRs using that API (
config/crd
).
Regenerate these files using make generate
. Other options can be viewed in Makefile.custom.mk
.
Additionally, example CRs are generated from code in Go tests using go test ./... -update
.
Release Process
After creating a release the following steps are needed.
Update apiextensions
Update the reference in the apiextensions then run make generate
in apiextensions.
opsct ensure crds
uses the master branch of the crds-common chart.
Update docs
Update the reference in the docs config.
Sync CRDs
All CRDs are embedded in apptestctl and the Chart CRD is embedded in app-operator.
apptestctl
$ make sync-crds
app-operator
$ make sync-chart-crd