Sources for this API are defined in Go code, starting from the devworkspace_types.go source file
From these Go sources, several files are generated:
- A Kubernetes Custom Resource Definition(CRD) with an embedded OpenApi schema,
- json schemas (in the schemas folder) generated from the above CRD, to specify the syntax of:
- the DevWorkspace CRD itself;
- the DevWorkspaceTemplate CRD (a devworkspace content, without runtime information);
- the Devfile 2.0.0 format, which is generated from the
DevWorkspace
API.
Generated files are created by a build script (see section How to build).
A Subset of this DevWorkspace
API defines a structure (workspace template content), which is also at the core of the Devfile 2.0 format specification.
For more information about this, please look into the Devfile support README
The generated documentation of the Devfile 2.0 format, based on its json schema, is available here.
Typescript model is build on each commit of main branch and available as an NPM package.
Release details and process are found in Devfile Release
In order to build the CRD and the various schemas, you don't need to install any pre-requisite apart from docker
.
In the root directory, just run the following command:
bash ./docker-run.sh ./build.sh
Typescript model is generated based on JSON Schema with help of https://github.com/kubernetes-client/gen. To generate them locally run:
bash ./build/typescript-model/generate.sh
This work is still in an early stage of specification, and the related API and schemas are still a draft proposal.
In order to test existing or new Devfile 2.0 or DevWorkspace sample files in a self-service Che workspace (hosted on che.openshift.io), just click on the button below:
As soon as the devworkspace is opened, you should be able to:
- open the
yaml
files in the following folders:samples/
devfile-support/samples
- have
yaml
language support (completion and documentation) based on the current Json schemas.
Please see our contributing.md.
Apache License 2.0, see LICENSE for details.
license_header
contains the license header to be contained under all source files. For Go sources, this can be included by running bash add_licenses.sh
.
Ensure github.com/google/addlicense
is installed by running go install github.com/google/addlicense@latest
.