Devfile
2.2.0Schema URL
Devfile describes the structure of a cloud-native devworkspace and development environment.
Properties
Devfile schema version
Map of implementation-dependant free-form YAML attributes.
Predefined, ready-to-use, devworkspace-related commands
List of the devworkspace components, such as editor and plugins, user-provided containers, or other types of components
Bindings of commands to events. Each command is referred-to by its name.
4 nested properties
IDs of commands that should be executed after the devworkspace is completely started. In the case of Che-Theia, these commands should be executed after all plugins and extensions have started, including project cloning. This means that those commands are not triggered until the user opens the IDE in his browser.
IDs of commands that should be executed after stopping the devworkspace.
IDs of commands that should be executed before the devworkspace start. Kubernetes-wise, these commands would typically be executed in init containers of the devworkspace POD.
IDs of commands that should be executed before stopping the devworkspace.
Optional metadata
14 nested properties
Optional list of processor architectures that the devfile supports, empty list suggests that the devfile can be used on any architecture
Map of implementation-dependant free-form YAML attributes. Deprecated, use the top-level attributes field instead.
Optional devfile description
Optional devfile display name
Optional devfile global memory limit
Optional devfile icon, can be a URI or a relative path in the project
Optional devfile language
Optional devfile name
Optional devfile project type
Optional devfile provider information
Optional link to a page that provides support information
Optional devfile tags
Optional semver-compatible version
Optional devfile website
Parent devworkspace template
11 nested properties
Overrides of attributes encapsulated in a parent devfile. Overriding is done according to K8S strategic merge patch standard rules.
Overrides of commands encapsulated in a parent devfile or a plugin. Overriding is done according to K8S strategic merge patch standard rules.
Overrides of components encapsulated in a parent devfile or a plugin. Overriding is done according to K8S strategic merge patch standard rules.
Id in a registry that contains a Devfile yaml file
Reference to a Kubernetes CRD of type DevWorkspaceTemplate
2 nested properties
Overrides of projects encapsulated in a parent devfile. Overriding is done according to K8S strategic merge patch standard rules.
Registry URL to pull the parent devfile from when using id in the parent reference. To ensure the parent devfile gets resolved consistently in different environments, it is recommended to always specify the registryUrl when id is used.
Overrides of starterProjects encapsulated in a parent devfile. Overriding is done according to K8S strategic merge patch standard rules.
URI Reference of a parent devfile YAML file. It can be a full URL or a relative URI with the current devfile as the base URI.
Overrides of variables encapsulated in a parent devfile. Overriding is done according to K8S strategic merge patch standard rules.
Specific stack/sample version to pull the parent devfile from, when using id in the parent reference. To specify version, id must be defined and used as the import reference source. version can be either a specific stack version, or latest. If no version specified, default version will be used.
Projects worked on in the devworkspace, containing names and sources locations
StarterProjects is a project that can be used as a starting point when bootstrapping new projects
Map of key-value variables used for string replacement in the devfile. Values can be referenced via {{variable-key}} to replace the corresponding value in string fields in the devfile. Replacement cannot be used for
-
schemaVersion, metadata, parent source
-
element identifiers, e.g. command id, component name, endpoint name, project name
-
references to identifiers, e.g. in events, a command's component, container's volume mount name
-
string enums, e.g. command group kind, endpoint exposure