Documentation ¶
Index ¶
- Constants
- Variables
- func DecodeBuildMetadataTOML(path string, platformAPI *api.Version, buildmd *BuildMetadata) error
- func GuardExperimental(requested string, logger log.Logger) error
- type AnalyzeInputs
- type AnalyzedMetadata
- type BuildMetadata
- type BuildPlan
- type BuildPlanEntry
- type BuildReport
- type CacheMetadata
- type DefaultExiter
- type DetectInputs
- type DirStore
- type Exiter
- type ExportReport
- type ExtendInputs
- type GitMetadata
- type ImageIdentifier
- type ImageReport
- type InputsResolver
- type LauncherMetadata
- type LayerMetadata
- type LayersMetadata
- type LayersMetadataCompat
- type LegacyExiter
- type LifecycleExitError
- type Platform
- type ProjectMetadata
- type ProjectSource
- type RunImageMetadata
- type SourceMetadata
- type StackMetadata
- type StackRunImageMetadata
Constants ¶
const ( EnvAnalyzedPath = "CNB_ANALYZED_PATH" EnvAppDir = "CNB_APP_DIR" EnvBuildImage = "CNB_BUILD_IMAGE" EnvBuildpacksDir = "CNB_BUILDPACKS_DIR" EnvCacheDir = "CNB_CACHE_DIR" EnvCacheImage = "CNB_CACHE_IMAGE" EnvDeprecationMode = "CNB_DEPRECATION_MODE" EnvExperimentalMode = "CNB_EXPERIMENTAL_MODE" EnvExtensionsDir = "CNB_EXTENSIONS_DIR" EnvGID = "CNB_GROUP_ID" EnvGeneratedDir = "CNB_GENERATED_DIR" EnvGroupPath = "CNB_GROUP_PATH" EnvKanikoCacheTTL = "CNB_KANIKO_CACHE_TTL" EnvLaunchCacheDir = "CNB_LAUNCH_CACHE_DIR" EnvLayersDir = "CNB_LAYERS_DIR" EnvLogLevel = "CNB_LOG_LEVEL" EnvNoColor = "CNB_NO_COLOR" // defaults to false EnvOrderPath = "CNB_ORDER_PATH" EnvPlanPath = "CNB_PLAN_PATH" EnvPlatformAPI = "CNB_PLATFORM_API" EnvPlatformDir = "CNB_PLATFORM_DIR" EnvPreviousImage = "CNB_PREVIOUS_IMAGE" EnvProcessType = "CNB_PROCESS_TYPE" EnvProjectMetadataPath = "CNB_PROJECT_METADATA_PATH" EnvReportPath = "CNB_REPORT_PATH" EnvRunImage = "CNB_RUN_IMAGE" EnvSkipLayers = "CNB_ANALYZE_SKIP_LAYERS" // defaults to false EnvSkipRestore = "CNB_SKIP_RESTORE" // defaults to false EnvStackPath = "CNB_STACK_PATH" EnvUID = "CNB_USER_ID" EnvUseDaemon = "CNB_USE_DAEMON" // defaults to false DefaultExperimentalMode = ModeError DefaultLogLevel = "info" DefaultPlatformAPI = "0.3" DefaultAnalyzedFile = "analyzed.toml" DefaultGroupFile = "group.toml" DefaultOrderFile = "order.toml" DefaultPlanFile = "plan.toml" DefaultProjectMetadataFile = "project-metadata.toml" DefaultReportFile = "report.toml" ModeQuiet = "quiet" ModeWarn = "warn" ModeError = "error" )
const ( BuildMetadataLabel = "io.buildpacks.build.metadata" LayerMetadataLabel = "io.buildpacks.lifecycle.metadata" ProjectMetadataLabel = "io.buildpacks.project.metadata" StackIDLabel = "io.buildpacks.stack.id" MixinsLabel = "io.buildpacks.stack.mixins" )
const (
CodeForFailed = 1
)
const (
FeatureDockerfiles = "Dockerfiles"
)
Variables ¶
var ( DefaultAppDir = filepath.Join(rootDir, "workspace") DefaultBuildpacksDir = filepath.Join(rootDir, "cnb", "buildpacks") DefaultExtensionsDir = filepath.Join(rootDir, "cnb", "extensions") DefaultKanikoCacheTTL = 14 * (24 * time.Hour) DefaultLauncherPath = filepath.Join(rootDir, "cnb", "lifecycle", "launcher"+execExt) DefaultLayersDir = filepath.Join(rootDir, "layers") DefaultOutputDir = filepath.Join(rootDir, "layers") DefaultPlatformDir = filepath.Join(rootDir, "platform") DefaultStackPath = filepath.Join(rootDir, "cnb", "stack.toml") PlaceholderAnalyzedPath = filepath.Join("<layers>", DefaultAnalyzedFile) PlaceholderGeneratedDir = filepath.Join("<layers>", "generated") PlaceholderGroupPath = filepath.Join("<layers>", DefaultGroupFile) PlaceholderOrderPath = filepath.Join("<layers>", DefaultOrderFile) PlaceholderPlanPath = filepath.Join("<layers>", DefaultPlanFile) PlaceholderProjectMetadataPath = filepath.Join("<layers>", DefaultProjectMetadataFile) PlaceholderReportPath = filepath.Join("<layers>", DefaultReportFile) )
var ExperimentalMode = envOrDefault(EnvExperimentalMode, DefaultExperimentalMode)
Functions ¶
func DecodeBuildMetadataTOML ¶ added in v0.15.0
func DecodeBuildMetadataTOML(path string, platformAPI *api.Version, buildmd *BuildMetadata) error
DecodeBuildMetadataTOML reads a metadata.toml file
Types ¶
type AnalyzeInputs ¶ added in v0.14.1
type AnalyzeInputs struct { AdditionalTags str.Slice // satisfies the `Value` interface required by the `flag` package AnalyzedPath string CacheImageRef string LaunchCacheDir string LayersDir string LegacyCacheDir string LegacyGroupPath string OutputImageRef string PreviousImageRef string RunImageRef string StackPath string UID int GID int SkipLayers bool UseDaemon bool }
AnalyzeInputs holds the values of command-line flags and args. Fields are the cumulative total of inputs across all supported platform APIs.
func (AnalyzeInputs) RegistryImages ¶ added in v0.14.1
func (a AnalyzeInputs) RegistryImages() []string
RegistryImages returns the inputs that are images in a registry.
type AnalyzedMetadata ¶
type AnalyzedMetadata struct { PreviousImage *ImageIdentifier `toml:"image"` Metadata LayersMetadata `toml:"metadata"` RunImage *ImageIdentifier `toml:"run-image,omitempty"` BuildImage *ImageIdentifier `toml:"build-image,omitempty"` }
type BuildMetadata ¶
type BuildMetadata struct { BOM []buildpack.BOMEntry `toml:"bom,omitempty" json:"bom"` Buildpacks []buildpack.GroupElement `toml:"buildpacks" json:"buildpacks"` Extensions []buildpack.GroupElement `toml:"extensions,omitempty" json:"extensions,omitempty"` Labels []buildpack.Label `toml:"labels" json:"-"` Launcher LauncherMetadata `toml:"-" json:"launcher"` Processes []launch.Process `toml:"processes" json:"processes"` Slices []layers.Slice `toml:"slices" json:"-"` BuildpackDefaultProcessType string `toml:"buildpack-default-process-type,omitempty" json:"buildpack-default-process-type,omitempty"` PlatformAPI *api.Version `toml:"-" json:"-"` }
func (*BuildMetadata) MarshalJSON ¶ added in v0.14.0
func (md *BuildMetadata) MarshalJSON() ([]byte, error)
func (BuildMetadata) ToLaunchMD ¶
func (md BuildMetadata) ToLaunchMD() launch.Metadata
type BuildPlan ¶
type BuildPlan struct {
Entries []BuildPlanEntry `toml:"entries"`
}
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 CacheMetadata ¶
type CacheMetadata struct { BOM LayerMetadata `json:"sbom"` Buildpacks []buildpack.LayersMetadata `json:"buildpacks"` }
func (*CacheMetadata) MetadataForBuildpack ¶
func (cm *CacheMetadata) MetadataForBuildpack(id string) buildpack.LayersMetadata
type DefaultExiter ¶ added in v0.13.2
type DefaultExiter struct{}
func (*DefaultExiter) CodeFor ¶ added in v0.13.2
func (e *DefaultExiter) CodeFor(errType LifecycleExitError) int
type DetectInputs ¶ added in v0.15.0
type DetectInputs struct { AnalyzedPath string AppDir string BuildpacksDir string ExtensionsDir string GeneratedDir string GroupPath string LayersDir string OrderPath string PlanPath string PlatformDir string }
DetectInputs holds the values of command-line flags and args. Fields are the cumulative total of inputs across all supported platform APIs.
type DirStore ¶ added in v0.15.0
type DirStore struct {
// contains filtered or unexported fields
}
func NewDirStore ¶ added in v0.15.0
func (*DirStore) Lookup ¶ added in v0.15.0
func (s *DirStore) Lookup(kind, id, version string) (buildpack.Descriptor, error)
type Exiter ¶ added in v0.13.2
type Exiter interface {
CodeFor(errType LifecycleExitError) int
}
type ExportReport ¶
type ExportReport struct { Build BuildReport `toml:"build,omitempty"` Image ImageReport `toml:"image"` }
type ExtendInputs ¶ added in v0.15.0
type ExtendInputs struct { AnalyzedPath string AppDir string BuildpacksDir string GeneratedDir string GroupPath string ImageRef string LayersDir string PlanPath string PlatformDir string UID, GID int KanikoCacheTTL time.Duration }
ExtendInputs holds the values of command-line flags and args. Fields are the cumulative total of inputs across all supported platform APIs.
type GitMetadata ¶
type ImageIdentifier ¶
type ImageIdentifier struct {
Reference string `toml:"reference"`
}
FIXME: fix key names to be accurate in the daemon case
type ImageReport ¶
type InputsResolver ¶ added in v0.14.1
type InputsResolver struct {
// contains filtered or unexported fields
}
InputsResolver resolves inputs for each of the lifecycle phases.
func NewInputsResolver ¶ added in v0.14.1
func NewInputsResolver(platformAPI *api.Version) *InputsResolver
NewInputsResolver accepts a platform API and returns a new InputsResolver.
func (*InputsResolver) ResolveAnalyze ¶ added in v0.14.1
func (r *InputsResolver) ResolveAnalyze(inputs AnalyzeInputs, logger log.Logger) (AnalyzeInputs, error)
ResolveAnalyze accepts an AnalyzeInputs and returns a new AnalyzeInputs with default values filled in, or an error if the provided inputs are not valid.
func (*InputsResolver) ResolveDetect ¶ added in v0.15.0
func (r *InputsResolver) ResolveDetect(inputs DetectInputs) (DetectInputs, error)
ResolveDetect accepts a DetectInputs and returns a new DetectInputs with default values filled in, or an error if the provided inputs are not valid.
func (*InputsResolver) ResolveExtend ¶ added in v0.15.0
func (r *InputsResolver) ResolveExtend(inputs ExtendInputs) (ExtendInputs, error)
ResolveExtend accepts a ExtendInputs and returns a new ExtendInputs with default values filled in, or an error if the provided inputs are not valid.
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 RunImageMetadata `json:"runImage" toml:"run-image"` Stack StackMetadata `json:"stack" toml:"stack"` }
NOTE: This struct MUST be kept in sync with `LayersMetadataCompat`
func (*LayersMetadata) MetadataForBuildpack ¶
func (m *LayersMetadata) MetadataForBuildpack(id 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 RunImageMetadata `json:"runImage" toml:"run-image"` Stack StackMetadata `json:"stack" toml:"stack"` }
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 LegacyExiter ¶ added in v0.13.2
type LegacyExiter struct{}
func (*LegacyExiter) CodeFor ¶ added in v0.13.2
func (e *LegacyExiter) CodeFor(errType LifecycleExitError) int
type LifecycleExitError ¶ added in v0.13.2
type LifecycleExitError int
const ( FailedDetect LifecycleExitError = iota // generic detect error FailedDetectWithErrors // no buildpacks detected DetectError // no buildpacks detected and at least one errored AnalyzeError // generic analyze error RestoreError // generic restore error FailedBuildWithErrors // buildpack error during /bin/build BuildError // generic build error ExportError // generic export error RebaseError // generic rebase error LaunchError // generic launch error FailedGenerateWithErrors // extension error during /bin/generate GenerateError // generic generate error ExtendError // generic extend error )
type Platform ¶
type Platform struct { *InputsResolver Exiter // contains filtered or unexported fields }
Platform handles logic pertaining to inputs and outputs from a platform (lifecycle invoker)'s perspective.
func NewPlatform ¶
NewPlatform accepts a platform API and returns a new Platform.
type ProjectMetadata ¶
type ProjectMetadata struct {
Source *ProjectSource `toml:"source" json:"source,omitempty"`
}
type ProjectSource ¶
type RunImageMetadata ¶
type SourceMetadata ¶
type SourceMetadata struct {
Git GitMetadata `json:"git"`
}
type StackMetadata ¶
type StackMetadata struct {
RunImage StackRunImageMetadata `json:"runImage" toml:"run-image"`
}
func (*StackMetadata) BestRunImageMirror ¶
func (sm *StackMetadata) BestRunImageMirror(registry string) (string, error)