Documentation ¶
Overview ¶
Package files contains schema and helper methods for working with lifecycle configuration files.
Index ¶
- Variables
- type Analyzed
- type BuildMetadata
- type BuildPlanEntry
- type BuildReport
- type GitMetadata
- type ImageIdentifier
- type ImageReport
- type LauncherMetadata
- type LayerMetadata
- type LayersMetadata
- type LayersMetadataCompat
- type OSDistro
- type Plan
- type ProjectMetadata
- type ProjectSource
- type RebaseReport
- type Report
- type Run
- type RunImage
- type RunImageForExport
- type RunImageForRebase
- type SourceMetadata
- type Stack
- type TOMLHandler
- func (h *TOMLHandler) ReadAnalyzed(path string, logger log.Logger) (Analyzed, error)
- func (h *TOMLHandler) ReadBuildMetadata(path string, platformAPI *api.Version) (*BuildMetadata, error)
- func (h *TOMLHandler) ReadGroup(path string) (group buildpack.Group, err error)
- func (h *TOMLHandler) ReadOrder(path string) (buildpack.Order, buildpack.Order, error)
- func (h *TOMLHandler) ReadPlan(path string) (Plan, error)
- func (h *TOMLHandler) ReadProjectMetadata(path string, logger log.Logger) (ProjectMetadata, error)
- func (h *TOMLHandler) ReadRun(path string, logger log.Logger) (Run, error)
- func (h *TOMLHandler) ReadStack(path string, logger log.Logger) (Stack, error)
- func (h *TOMLHandler) WriteAnalyzed(path string, analyzedMD *Analyzed, logger log.Logger) error
- func (h *TOMLHandler) WriteBuildMetadata(path string, buildMD *BuildMetadata) error
- func (h *TOMLHandler) WriteGroup(path string, group *buildpack.Group) error
- func (h *TOMLHandler) WritePlan(path string, plan *Plan) error
- func (h *TOMLHandler) WriteRebaseReport(path string, report *RebaseReport) error
- func (h *TOMLHandler) WriteReport(path string, report *Report) error
- type TargetMetadata
Constants ¶
This section is empty.
Variables ¶
var Handler = &TOMLHandler{}
Handler is the default handler used to read and write lifecycle configuration files.
Functions ¶
This section is empty.
Types ¶
type Analyzed ¶
type Analyzed struct { // PreviousImage is the build image identifier, if the previous image exists. PreviousImage *ImageIdentifier `toml:"image,omitempty"` // BuildImage is the build image identifier. // It is recorded for use by the restorer in the case that image extensions are used // to extend the build image. BuildImage *ImageIdentifier `toml:"build-image,omitempty"` // LayersMetadata holds information about previously built layers. // It is used by the exporter to determine if any layers from the current build are unchanged, // to avoid re-uploading the same data to the export target, // and to provide information about previously-created layers to buildpacks. LayersMetadata LayersMetadata `toml:"metadata"` // RunImage holds information about the run image. // It is used to validate that buildpacks satisfy os/arch constraints, // and to provide information about the export target to buildpacks. RunImage *RunImage `toml:"run-image,omitempty"` }
Analyzed is written by the analyzer as analyzed.toml and updated in subsequent phases to record information about: * the previous image (if it exists), * the run image, * the build image (if provided). The location of the file can be specified by providing `-analyzed <path>` to the lifecycle.
func (Analyzed) PreviousImageRef ¶
func (Analyzed) RunImageImage ¶
func (Analyzed) RunImageRef ¶
func (Analyzed) RunImageTarget ¶
func (a Analyzed) RunImageTarget() TargetMetadata
type BuildMetadata ¶
type BuildMetadata struct { // BOM (deprecated) holds the unstructured bill-of-materials. BOM []buildpack.BOMEntry `toml:"bom,omitempty" json:"bom"` // Buildpacks are the buildpacks used in the build. Buildpacks []buildpack.GroupElement `toml:"buildpacks" json:"buildpacks"` // Extensions are the image extensions used in the build. Extensions []buildpack.GroupElement `toml:"extensions,omitempty" json:"extensions,omitempty"` // Labels are labels provided by buildpacks. Labels []buildpack.Label `toml:"labels" json:"-"` // Launcher is metadata to describe the launcher. Launcher LauncherMetadata `toml:"-" json:"launcher"` // Processes are processes provided by buildpacks. Processes []launch.Process `toml:"processes" json:"processes"` // Slices are application slices provided by buildpacks, // used by the exporter to "slice" the application directory into distinct layers. Slices []layers.Slice `toml:"slices" json:"-"` // BuildpackDefaultProcessType is the buildpack-provided default process type. // It will be the default process type for the image unless overridden by the end user. BuildpackDefaultProcessType string `toml:"buildpack-default-process-type,omitempty" json:"buildpack-default-process-type,omitempty"` // PlatformAPI is the Platform API version used for the build. PlatformAPI *api.Version `toml:"-" json:"-"` }
BuildMetadata is written by the builder as <layers>/config/metadata.toml to record information about the build. It is also serialized by the exporter as the `io.buildpacks.build.metadata` label on the output image.
func (*BuildMetadata) MarshalJSON ¶
func (m *BuildMetadata) MarshalJSON() ([]byte, error)
func (BuildMetadata) ToLaunchMD ¶
func (m BuildMetadata) ToLaunchMD() launch.Metadata
type BuildPlanEntry ¶
type BuildPlanEntry struct { Providers []buildpack.GroupElement `toml:"providers"` Requires []buildpack.Require `toml:"requires"` }
func (BuildPlanEntry) NoOpt ¶
func (be BuildPlanEntry) NoOpt() BuildPlanEntry
type BuildReport ¶
type GitMetadata ¶
type ImageIdentifier ¶
type ImageIdentifier struct {
Reference string `toml:"reference"` // FIXME: fix key name to be accurate in the daemon case
}
type ImageReport ¶
type LauncherMetadata ¶
type LauncherMetadata struct { Version string `json:"version"` Source SourceMetadata `json:"source"` }
type LayerMetadata ¶
type LayerMetadata struct {
SHA string `json:"sha" toml:"sha"`
}
type LayersMetadata ¶
type LayersMetadata struct { App []LayerMetadata `json:"app" toml:"app"` BOM *LayerMetadata `json:"sbom,omitempty" toml:"sbom,omitempty"` Buildpacks []buildpack.LayersMetadata `json:"buildpacks" toml:"buildpacks"` Config LayerMetadata `json:"config" toml:"config"` Launcher LayerMetadata `json:"launcher" toml:"launcher"` ProcessTypes LayerMetadata `json:"process-types" toml:"process-types"` RunImage RunImageForRebase `json:"runImage" toml:"run-image"` Stack *Stack `json:"stack,omitempty" toml:"stack,omitempty"` }
NOTE: This struct MUST be kept in sync with `LayersMetadataCompat`
func (*LayersMetadata) LayersMetadataFor ¶
func (m *LayersMetadata) LayersMetadataFor(bpID string) buildpack.LayersMetadata
type LayersMetadataCompat ¶
type LayersMetadataCompat struct { App interface{} `json:"app" toml:"app"` BOM *LayerMetadata `json:"sbom,omitempty" toml:"sbom,omitempty"` Buildpacks []buildpack.LayersMetadata `json:"buildpacks" toml:"buildpacks"` Config LayerMetadata `json:"config" toml:"config"` Launcher LayerMetadata `json:"launcher" toml:"launcher"` ProcessTypes LayerMetadata `json:"process-types" toml:"process-types"` RunImage RunImageForRebase `json:"runImage" toml:"run-image"` Stack *Stack `json:"stack,omitempty" toml:"stack,omitempty"` }
NOTE: This struct MUST be kept in sync with `LayersMetadata`. It exists for situations where the `App` field type cannot be guaranteed, yet the original struct data must be maintained.
type OSDistro ¶
type OSDistro struct { Name string `json:"name" toml:"name"` Version string `json:"version" toml:"version"` }
OSDistro is the OS distribution that a base image provides.
type Plan ¶
type Plan struct {
Entries []BuildPlanEntry `toml:"entries"`
}
Plan is written by the detector as plan.toml to record the application dependencies requested by buildpacks, and the image extensions or buildpacks that provide them. A subset of the plan is presented to each image extension (during the `generate` phase) or buildpack (during the `build` phase) with the entries that the module is expected to provide. The location of the file can be specified by providing `-plan <path>` to the lifecycle.
type ProjectMetadata ¶
type ProjectMetadata struct {
Source *ProjectSource `toml:"source" json:"source,omitempty"`
}
ProjectMetadata is written as `project_metadata.toml` by the exporter to record information about the application source code. It is also serialized by the exporter as the `io.buildpacks.project.metadata` label on the output image. The location of the file can be specified by providing `-project-metadata <path>` to the lifecycle.
type ProjectSource ¶
type RebaseReport ¶ added in v0.19.0
type RebaseReport struct {
Image ImageReport `toml:"image"`
}
RebaseReport is written by the rebaser to record information about the rebased image.
type Report ¶
type Report struct { Build BuildReport `toml:"build,omitempty"` Image ImageReport `toml:"image"` }
Report is written by the exporter to record information about the build. It is not included in the output image, but can be saved off by the platform before the build container exits. The location of the file can be specified by providing `-report <path>` to the lifecycle.
type Run ¶
type Run struct {
Images []RunImageForExport `json:"-" toml:"images"`
}
Run is provided by the platform as run.toml to record information about the run images that may be used during export. Data from the selected run image is serialized by the exporter as the `runImage` key in the `io.buildpacks.lifecycle.metadata` label on the output image for use during rebase. The location of the file can be specified by providing `-run <path>` to the lifecycle.
func (*Run) Contains ¶
Contains returns true if the provided image reference is found in the existing metadata, removing the digest portion of the reference when determining if two image names are equivalent.
func (*Run) FindByRef ¶ added in v0.20.0
func (r *Run) FindByRef(imageRef string) RunImageForExport
FindByRef return the RunImageForExport struct which contains the imageRef.
type RunImage ¶
type RunImage struct { Reference string `toml:"reference"` // Image specifies the repository name for the image that was provided - either by the platform, or by extensions. // When exporting to a daemon, the restorer uses this field to pull the run image if needed for the extender; // it can't use `Reference` because this may be a daemon image ID if analyzed.toml was last written by the analyzer. Image string `toml:"image,omitempty"` // Extend if true indicates that the run image should be extended by the extender. Extend bool `toml:"extend,omitempty"` TargetMetadata *TargetMetadata `json:"target,omitempty" toml:"target,omitempty"` }
type RunImageForExport ¶
type RunImageForExport struct { Image string `toml:"image,omitempty" json:"image,omitempty"` Mirrors []string `toml:"mirrors,omitempty" json:"mirrors,omitempty"` }
func (*RunImageForExport) Contains ¶
func (r *RunImageForExport) Contains(providedImage string) bool
Contains returns true if the provided image reference is found in the existing metadata, removing the digest portion of the reference when determining if two image names are equivalent.
type RunImageForRebase ¶
type RunImageForRebase struct { TopLayer string `json:"topLayer" toml:"top-layer"` Reference string `json:"reference" toml:"reference"` RunImageForExport }
func (*RunImageForRebase) Contains ¶
func (r *RunImageForRebase) Contains(providedImage string) bool
Contains returns true if the provided image reference is found in the existing metadata, removing the digest portion of the reference when determining if two image names are equivalent.
func (*RunImageForRebase) ToStack ¶
func (r *RunImageForRebase) ToStack() Stack
type SourceMetadata ¶
type SourceMetadata struct {
Git GitMetadata `json:"git"`
}
type Stack ¶
type Stack struct {
RunImage RunImageForExport `json:"runImage" toml:"run-image"`
}
Stack (deprecated as of Platform API 0.12) is provided by the platform as stack.toml to record information about the run images that may be used during export. It is also serialized by the exporter as the `stack` key in the `io.buildpacks.lifecycle.metadata` label on the output image for use during rebase. The location of the file can be specified by providing `-stack <path>` to the lifecycle.
type TOMLHandler ¶ added in v0.19.0
type TOMLHandler struct{}
TOMLHandler reads and writes lifecycle configuration files in TOML format.
func NewHandler ¶ added in v0.19.0
func NewHandler() *TOMLHandler
NewHandler returns a new file handler.
func (*TOMLHandler) ReadAnalyzed ¶ added in v0.19.0
ReadAnalyzed reads the provided analyzed.toml file. It logs a warning and returns empty analyzed metadata if the file does not exist.
func (*TOMLHandler) ReadBuildMetadata ¶ added in v0.19.0
func (h *TOMLHandler) ReadBuildMetadata(path string, platformAPI *api.Version) (*BuildMetadata, error)
ReadBuildMetadata reads the provided metadata.toml file, and sets the provided Platform API version on the returned struct so that the data can be re-encoded properly later.
func (*TOMLHandler) ReadGroup ¶ added in v0.19.0
func (h *TOMLHandler) ReadGroup(path string) (group buildpack.Group, err error)
ReadGroup reads the provided group.toml file.
func (*TOMLHandler) ReadPlan ¶ added in v0.19.0
func (h *TOMLHandler) ReadPlan(path string) (Plan, error)
ReadPlan reads the provided plan.toml file.
func (*TOMLHandler) ReadProjectMetadata ¶ added in v0.19.0
func (h *TOMLHandler) ReadProjectMetadata(path string, logger log.Logger) (ProjectMetadata, error)
ReadProjectMetadata reads the provided project_metadata.toml file. It logs a warning and returns empty project metadata if the file does not exist.
func (*TOMLHandler) WriteAnalyzed ¶ added in v0.19.0
WriteAnalyzed writes the provided analyzed metadata at the provided path.
func (*TOMLHandler) WriteBuildMetadata ¶ added in v0.19.0
func (h *TOMLHandler) WriteBuildMetadata(path string, buildMD *BuildMetadata) error
WriteBuildMetadata writes the provided build metadata at the provided path.
func (*TOMLHandler) WriteGroup ¶ added in v0.19.0
func (h *TOMLHandler) WriteGroup(path string, group *buildpack.Group) error
WriteGroup writes the provided group information at the provided path.
func (*TOMLHandler) WritePlan ¶ added in v0.19.0
func (h *TOMLHandler) WritePlan(path string, plan *Plan) error
WritePlan writes the provided plan information at the provided path.
func (*TOMLHandler) WriteRebaseReport ¶ added in v0.19.0
func (h *TOMLHandler) WriteRebaseReport(path string, report *RebaseReport) error
WriteRebaseReport writes the provided report information at the provided path.
func (*TOMLHandler) WriteReport ¶ added in v0.19.0
func (h *TOMLHandler) WriteReport(path string, report *Report) error
WriteReport writes the provided report information at the provided path.
type TargetMetadata ¶
type TargetMetadata struct { ID string `json:"id,omitempty" toml:"id,omitempty"` OS string `json:"os" toml:"os"` Arch string `json:"arch" toml:"arch"` ArchVariant string `json:"arch-variant,omitempty" toml:"arch-variant,omitempty"` Distro *OSDistro `json:"distro,omitempty" toml:"distro,omitempty"` }
func (*TargetMetadata) String ¶
func (t *TargetMetadata) String() string