loader

package
v1.20.2 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Nov 21, 2023 License: Apache-2.0 Imports: 27 Imported by: 58

Documentation

Index

Constants

This section is empty.

Variables

Functions

func InvalidProjectNameErr added in v1.13.2

func InvalidProjectNameErr(v string) error

func IsServiceDependency added in v1.14.0

func IsServiceDependency(ref string) (string, bool)

IsServiceDependency check the relation set by ref refers to a service

func Load

func Load(configDetails types.ConfigDetails, options ...func(*Options)) (*types.Project, error)

Load reads a ConfigDetails and returns a fully loaded configuration. Deprecated: use LoadWithContext.

func LoadConfigObjs

func LoadConfigObjs(source map[string]interface{}) (map[string]types.ConfigObjConfig, error)

LoadConfigObjs produces a ConfigObjConfig map from a compose file Dict the source Dict is not validated if directly used. Use Load() to enable validation

func LoadIncludeConfig added in v1.16.0

func LoadIncludeConfig(source []interface{}) ([]types.IncludeConfig, error)

LoadIncludeConfig parse the require config from raw yaml

func LoadNetworks

func LoadNetworks(source map[string]interface{}) (map[string]types.NetworkConfig, error)

LoadNetworks produces a NetworkConfig map from a compose file Dict the source Dict is not validated if directly used. Use Load() to enable validation

func LoadSecrets

func LoadSecrets(source map[string]interface{}) (map[string]types.SecretConfig, error)

LoadSecrets produces a SecretConfig map from a compose file Dict the source Dict is not validated if directly used. Use Load() to enable validation

func LoadService

func LoadService(name string, serviceDict map[string]interface{}) (*types.ServiceConfig, error)

LoadService produces a single ServiceConfig from a compose file Dict the serviceDict is not validated if directly used. Use Load() to enable validation

func LoadServices

func LoadServices(ctx context.Context, filename string, servicesDict map[string]interface{}, workingDir string, lookupEnv template.Mapping, opts *Options) ([]types.ServiceConfig, error)

LoadServices produces a ServiceConfig map from a compose file Dict the servicesDict is not validated if directly used. Use Load() to enable validation

func LoadVolumes

func LoadVolumes(source map[string]interface{}) (map[string]types.VolumeConfig, error)

LoadVolumes produces a VolumeConfig map from a compose file Dict the source Dict is not validated if directly used. Use Load() to enable validation

func LoadWithContext added in v1.18.0

func LoadWithContext(ctx context.Context, configDetails types.ConfigDetails, options ...func(*Options)) (*types.Project, error)

LoadWithContext reads a ConfigDetails and returns a fully loaded configuration

func Normalize added in v1.11.0

func Normalize(project *types.Project) error

Normalize compose project by moving deprecated attributes to their canonical position and injecting implicit defaults

func NormalizeProjectName added in v1.2.5

func NormalizeProjectName(s string) string

func ParseShortSSHSyntax added in v1.2.2

func ParseShortSSHSyntax(value string) ([]types.SSHKey, error)

ParseShortSSHSyntax parse short syntax for SSH authentications

func ParseVolume

func ParseVolume(spec string) (types.ServiceVolumeConfig, error)

ParseVolume parses a volume spec without any knowledge of the target platform

func ParseYAML

func ParseYAML(source []byte) (map[string]interface{}, error)

ParseYAML reads the bytes from a file, parses the bytes into a mapping structure, and returns it.

func ResolveRelativePaths added in v1.15.0

func ResolveRelativePaths(project *types.Project) error

ResolveRelativePaths resolves relative paths based on project WorkingDirectory

func ResolveServiceRelativePaths added in v1.15.0

func ResolveServiceRelativePaths(workingDir string, s *types.ServiceConfig)

func Transform

func Transform(source interface{}, target interface{}, additionalTransformers ...Transformer) error

Transform converts the source into the target struct with compose types transformer and the specified transformers if any.

func WithDiscardEnvFiles

func WithDiscardEnvFiles(opts *Options)

WithDiscardEnvFiles sets the Options to discard the `env_file` section after resolving to the `environment` section

func WithProfiles added in v1.9.0

func WithProfiles(profiles []string) func(*Options)

WithProfiles sets profiles to be activated

func WithSkipValidation

func WithSkipValidation(opts *Options)

WithSkipValidation sets the Options to skip validation when loading sections

Types

type ForbiddenPropertiesError

type ForbiddenPropertiesError struct {
	Properties map[string]string
}

ForbiddenPropertiesError is returned when there are properties in the Compose file that are forbidden.

func (*ForbiddenPropertiesError) Error

func (e *ForbiddenPropertiesError) Error() string

type Options

type Options struct {
	// Skip schema validation
	SkipValidation bool
	// Skip interpolation
	SkipInterpolation bool
	// Skip normalization
	SkipNormalization bool
	// Resolve paths
	ResolvePaths bool
	// Convert Windows paths
	ConvertWindowsPaths bool
	// Skip consistency check
	SkipConsistencyCheck bool
	// Skip extends
	SkipExtends bool
	// SkipInclude will ignore `include` and only load model from file(s) set by ConfigDetails
	SkipInclude bool
	// SkipResolveEnvironment will ignore computing `environment` for services
	SkipResolveEnvironment bool
	// Interpolation options
	Interpolate *interp.Options

	// Profiles set profiles to enable
	Profiles []string
	// ResourceLoaders manages support for remote resources
	ResourceLoaders []ResourceLoader
	// contains filtered or unexported fields
}

Options supported by Load

func (Options) GetProjectName added in v1.1.0

func (o Options) GetProjectName() (string, bool)

func (*Options) SetProjectName added in v1.1.0

func (o *Options) SetProjectName(name string, imperativelySet bool)

type PostProcessor added in v1.13.5

type PostProcessor interface {
	yaml.Unmarshaler

	// Apply changes to compose model based on recorder metadata
	Apply(config *types.Config) error
}

PostProcessor is used to tweak compose model based on metadata extracted during yaml Unmarshal phase that hardly can be implemented using go-yaml and mapstructure

type ResetProcessor added in v1.13.5

type ResetProcessor struct {
	// contains filtered or unexported fields
}

func (*ResetProcessor) Apply added in v1.13.5

func (p *ResetProcessor) Apply(target *types.Config) error

Apply finds the go attributes matching recorded paths and reset them to zero value

func (*ResetProcessor) UnmarshalYAML added in v1.13.5

func (p *ResetProcessor) UnmarshalYAML(value *yaml.Node) error

UnmarshalYAML implement yaml.Unmarshaler

type ResourceLoader added in v1.18.0

type ResourceLoader interface {
	// Accept returns `true` is the resource reference matches ResourceLoader supported protocol(s)
	Accept(path string) bool
	// Load returns the path to a local copy of remote resource identified by `path`.
	Load(ctx context.Context, path string) (string, error)
}

ResourceLoader is a plugable remote resource resolver

type Transformer

type Transformer struct {
	TypeOf reflect.Type
	Func   TransformerFunc
}

Transformer defines a map to type transformer

type TransformerFunc

type TransformerFunc func(interface{}) (interface{}, error)

TransformerFunc defines a function to perform the actual transformation

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL