openapi2crd
openapi2crd is a CLI to generate Kubernetes Custom Resource Definition (CRD) resources from OpenAPI 3.0.
Install
Download the appropriate version for your platform from Releases. You may want to install the binary to somewhere in your system's PATH such as /usr/local/bin.
Alternatively, if you have go 1.13 or later then you can also use go get. This will put crdoc in $(go env GOPATH)/bin:
go get github.com/mesh-for-data/openapi2crd
Usage
- Create an input directory with YAML files of
CustomResourceDefinition resources without schema information (see example/input).
- Create an OpenAPI 3.0 document with
components.schemas (see example/spec.yaml)
- The document must include a schema with the name identical to the
kind of each input CustomResourceDefinition.
- The document must comply with the listed limitations
- Invoke
openapi2crd command:
openapi2crd SPEC_FILE --input INPUT_DIR --output OUTPUT_FILE
An output YAML file will be generated in the specified output location (see example/output/output.yaml)
Limitations
Acknowledgements
The work is inspired by https://github.com/ant31/crd-validation and https://github.com/kubeflow/crd-validation.