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.16 or later then you can also use go install. This will put openapi2crd in $(go env GOPATH)/bin:
go install fybrik.io/openapi2crd@latest
Usage
- Create an OpenAPI 3.0 document with
components.schemas (see example/spec.yaml)
- The document must comply with the listed limitations
- The document must include a component named the same as the
kind you want to generate.
- Invoke
openapi2crd command using one of the following methods:
An output YAML file will be generated in the specified output location (see example/output/output.yaml)
Limitations
Only structural schemas are allowed with the following exceptions:
- You can use
$ref as long as the referenced definition adheres to the listed limitations.
- You can use
oneOf that contains just a list of $ref items. This is translated to an object with a string type field and an optional property for each $ref item.
Acknowledgements
The work is inspired by https://github.com/ant31/crd-validation and https://github.com/kubeflow/crd-validation.