Devfile

Kube-native API for cloud development workspaces specification

Stars
211
Forks
54
Open issues
373
Closed issues
769
Last release
6 months ago
Last commit
5 months ago
Watchers
211
Total releases
6
Total commits
299
Open PRs
9
Closed PRs
213
Repo URL
Project Website
https://devfile.io
Platform
License
apache-2.0
Category
Offers premium version?
NO
Proprietary?
NO
About

Kube-native API for cloud development workspaces specification

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).

Devfile 2.0.0 file format

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

Release details and process are found in Devfile Release

How to build

For information about building this project visit CONTRIBUTING.md.

Specification status

This work is still in an early stage of specification, and the related API and schemas are still a draft proposal.

Quickly open and test ?

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.
Contributing

Please see our contributing.md.

License

Apache License 2.0, see LICENSE for details.

Adding License Headers

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.

Alternative Projects

Subscribe to Open Source Businees Newsletter

Twice a month we will interview people behind open source businesses. We will talk about how they are building a business on top of open source projects.

We'll never share your email with anyone else.