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)
In the future, the following projects will be consuming this library as a Golang dependency
Issues are tracked in the devfile/api repo with the label area/library