The Devfile Parser library is a Golang module that:
parses the devfile.yaml as specified by the api & schema.
writes to the devfile.yaml with the updated data.
generates Kubernetes objects for the various devfile resources.
defines util functions for the devfile.
The function documentation can be accessed via pkg.go.dev.
To parse a devfile, visit pkg/devfile/parse.go
// Parses the devfile and validates the devfile data
devfile, err := devfilePkg.ParseAndValidate(devfileLocation)
// To get all the components from the devfile
components, err := devfile.Data.GetComponents(DevfileOptions{})
To get the Kubernetes objects from the devfile, visit pkg/devfile/generator/generators.go
// To get a slice of Kubernetes containers of type corev1.Container from the devfile component containers
containers, err := generator.GetContainers(devfile)
// To generate a Kubernetes deployment of type v1.Deployment
deployParams := generator.DeploymentParams{
TypeMeta: generator.GetTypeMeta(deploymentKind, deploymentAPIVersion),
ObjectMeta: generator.GetObjectMeta(name, namespace, labels, annotations),
InitContainers: initContainers,
Containers: containers,
Volumes: volumes,
PodSelectorLabels: labels,
}
deployment := generator.GetDeployment(deployParams)
Usage
In the future, the following projects will be consuming this library as a Golang dependency