Documentation ¶
Index ¶
- func GetCoreActions() []string
- func GetParameterSourceForDependency(ref DependencyOutputReference) string
- func GetParameterSourceForOutput(outputName string) string
- func IsCoreAction(value string) bool
- func ParamToEnvVar(name string) string
- func ReadManifestData(cxt *context.Context, path string) ([]byte, error)
- type BundleOutput
- type CredentialDefinition
- type CredentialDefinitions
- type CustomActionDefinition
- type Dependency
- type DependencyOutputReference
- type DependencyOutputReferences
- type Location
- type Manifest
- type MappedImage
- type MixinDeclaration
- type OutputDefinition
- type OutputDefinitions
- type ParameterDefinition
- type ParameterDefinitions
- type ParameterSource
- type RequiredExtension
- type Step
- type Steps
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func GetCoreActions ¶
func GetCoreActions() []string
func GetParameterSourceForDependency ¶ added in v0.28.0
func GetParameterSourceForDependency(ref DependencyOutputReference) string
GetParameterSourceForDependency builds the parameter source name used by Porter internally for wiring up an dependency's output to a parameter.
func GetParameterSourceForOutput ¶ added in v0.28.0
GetParameterSourceForOutput builds the parameter source name used by Porter internally for wiring up an output to a parameter.
func IsCoreAction ¶
IsCoreAction determines if the value is a core action from the CNAB spec.
func ParamToEnvVar ¶ added in v0.28.0
Convert a parameter name to an environment variable. Anything more complicated should define the variable explicitly.
Types ¶
type BundleOutput ¶
type CredentialDefinition ¶
type CredentialDefinition struct { Name string `yaml:"name"` Description string `yaml:"description,omitempty"` Required bool `yaml:"required,omitempty"` Location `yaml:",inline"` }
CredentialDefinition represents the structure or fields of a credential parameter
func (*CredentialDefinition) UnmarshalYAML ¶
func (cd *CredentialDefinition) UnmarshalYAML(unmarshal func(interface{}) error) error
type CredentialDefinitions ¶ added in v0.28.0
type CredentialDefinitions map[string]CredentialDefinition
CredentialDefinitions allows us to represent credentials as a list in the YAML and work with them as a map internally
func (CredentialDefinitions) MarshalYAML ¶ added in v0.28.0
func (cd CredentialDefinitions) MarshalYAML() (interface{}, error)
func (*CredentialDefinitions) UnmarshalYAML ¶ added in v0.28.0
func (cd *CredentialDefinitions) UnmarshalYAML(unmarshal func(interface{}) error) error
type CustomActionDefinition ¶
type Dependency ¶
type Dependency struct { Tag string `yaml:"tag"` Versions []string `yaml:"versions"` AllowPrereleases bool `yaml:"prereleases"` Parameters map[string]string `yaml:"parameters,omitempty"` }
func (*Dependency) Validate ¶
func (d *Dependency) Validate() error
type DependencyOutputReference ¶ added in v0.28.0
func (DependencyOutputReference) String ¶ added in v0.28.0
func (r DependencyOutputReference) String() string
type DependencyOutputReferences ¶ added in v0.28.0
type DependencyOutputReferences map[string]DependencyOutputReference
type Location ¶
type Location struct { Path string `yaml:"path,omitempty"` EnvironmentVariable string `yaml:"env,omitempty"` }
TODO: use cnab-go's bundle.Location instead, once yaml tags have been added Location represents a Parameter or Credential location in an InvocationImage
type Manifest ¶
type Manifest struct { // ManifestPath is the location from which the manifest was loaded, such as the path on the filesystem or a url. ManifestPath string `yaml:"-"` // TemplateVariables are the variables used in the templating, e.g. bundle.parameters.NAME, or bundle.outputs.NAME TemplateVariables []string `yaml:"-"` Name string `yaml:"name,omitempty"` Description string `yaml:"description,omitempty"` Version string `yaml:"version,omitempty"` // BundleTag is the name of the bundle in the format REGISTRY/NAME:TAG BundleTag string `yaml:"tag"` // Image is the name of the invocation image in the format REGISTRY/NAME:TAG // It doesn't map to any field in the manifest as it isn't meant to be user-specified Image string `yaml:"-"` // Dockerfile is the relative path to the Dockerfile template for the invocation image Dockerfile string `yaml:"dockerfile,omitempty"` Mixins []MixinDeclaration `yaml:"mixins,omitempty"` Install Steps `yaml:"install"` Uninstall Steps `yaml:"uninstall"` Upgrade Steps `yaml:"upgrade"` Custom map[string]interface{} `yaml:"custom,omitempty"` CustomActions map[string]Steps `yaml:"-"` CustomActionDefinitions map[string]CustomActionDefinition `yaml:"customActions,omitempty"` Parameters ParameterDefinitions `yaml:"parameters,omitempty"` Credentials CredentialDefinitions `yaml:"credentials,omitempty"` Dependencies map[string]Dependency `yaml:"dependencies,omitempty"` Outputs OutputDefinitions `yaml:"outputs,omitempty"` // ImageMap is a map of images referenced in the bundle. If an image relocation mapping is later provided, that // will be mounted at as a file at runtime to /cnab/app/relocation-mapping.json. ImageMap map[string]MappedImage `yaml:"images,omitempty"` Required []RequiredExtension `yaml:"required,omitempty"` }
func ReadManifest ¶
ReadManifest determines if specified path is a URL or a filepath. After reading the data in the path it returns a Manifest and any errors
func UnmarshalManifest ¶
func (*Manifest) GetTemplatedDependencyOutputs ¶ added in v0.28.0
func (m *Manifest) GetTemplatedDependencyOutputs() DependencyOutputReferences
GetTemplatedOutputs returns the output definitions for any bundle level outputs that have been templated, keyed by "DEPENDENCY.OUTPUT".
func (*Manifest) GetTemplatedOutputs ¶ added in v0.28.0
func (m *Manifest) GetTemplatedOutputs() OutputDefinitions
GetTemplatedOutputs returns the output definitions for any bundle level outputs that have been templated, keyed by the output name.
func (*Manifest) SetDefaults ¶
SetDefaults updates the manifest with default values where not populated
func (*Manifest) SetInvocationImageFromBundleTag ¶ added in v0.27.2
SetInvocationImageFromBundleTag sets the invocation image name on the manifest per the provided bundle tag, also updating the manifest BundleTag value if it initially lacks a Docker tag
type MappedImage ¶
type MappedImage struct { Description string `yaml:"description"` ImageType string `yaml:"imageType"` Repository string `yaml:"repository"` Digest string `yaml:"digest,omitempty"` Size uint64 `yaml:"size,omitempty"` MediaType string `yaml:"mediaType,omitempty"` Labels map[string]string `yaml:"labels,omitempty"` Tag string `yaml:"tag,omitempty"` }
func (*MappedImage) Validate ¶
func (mi *MappedImage) Validate() error
type MixinDeclaration ¶
type MixinDeclaration struct { Name string Config interface{} }
func (MixinDeclaration) MarshalYAML ¶
func (m MixinDeclaration) MarshalYAML() (interface{}, error)
MarshalYAML allows mixin declarations to either be a normal list of strings mixins: - exec - helm or allow some entries to have config data defined
- az: extensions:
- iot
func (*MixinDeclaration) UnmarshalYAML ¶
func (m *MixinDeclaration) UnmarshalYAML(unmarshal func(interface{}) error) error
UnmarshalYAML allows mixin declarations to either be a normal list of strings mixins: - exec - helm or allow some entries to have config data defined
- az: extensions:
- iot
type OutputDefinition ¶
type OutputDefinition struct { Name string `yaml:"name"` ApplyTo []string `yaml:"applyTo,omitempty"` Sensitive bool `yaml:"sensitive"` // This is not in the CNAB spec, but it allows a mixin to create a file // and porter will take care of making it a proper output. Path string `yaml:"path,omitempty"` definition.Schema `yaml:",inline"` }
OutputDefinition defines a single output for a CNAB
func (*OutputDefinition) DeepCopy ¶
func (od *OutputDefinition) DeepCopy() *OutputDefinition
DeepCopy copies a ParameterDefinition and returns the copy
func (*OutputDefinition) Validate ¶
func (od *OutputDefinition) Validate() error
type OutputDefinitions ¶ added in v0.28.0
type OutputDefinitions map[string]OutputDefinition
OutputDefinitions allows us to represent parameters as a list in the YAML and work with them as a map internally
func (OutputDefinitions) MarshalYAML ¶ added in v0.28.0
func (od OutputDefinitions) MarshalYAML() (interface{}, error)
func (*OutputDefinitions) UnmarshalYAML ¶ added in v0.28.0
func (od *OutputDefinitions) UnmarshalYAML(unmarshal func(interface{}) error) error
type ParameterDefinition ¶
type ParameterDefinition struct { Name string `yaml:"name"` Sensitive bool `yaml:"sensitive"` Source ParameterSource `yaml:"source,omitempty"` // These fields represent a subset of bundle.Parameter as defined in cnabio/cnab-go, // minus the 'Description' field (definition.Schema's will be used) and `Definition` field ApplyTo []string `yaml:"applyTo,omitempty"` Destination Location `yaml:",inline,omitempty"` definition.Schema `yaml:",inline"` }
ParameterDefinition defines a single parameter for a CNAB bundle
func (*ParameterDefinition) AppliesTo ¶
func (pd *ParameterDefinition) AppliesTo(action string) bool
AppliesTo returns a boolean value specifying whether or not the Parameter applies to the provided action
func (*ParameterDefinition) DeepCopy ¶
func (pd *ParameterDefinition) DeepCopy() *ParameterDefinition
DeepCopy copies a ParameterDefinition and returns the copy
func (*ParameterDefinition) UpdateApplyTo ¶ added in v0.28.0
func (pd *ParameterDefinition) UpdateApplyTo(m *Manifest)
UpdateApplyTo updates a parameter definition's applyTo section based on the provided manifest
func (*ParameterDefinition) Validate ¶
func (pd *ParameterDefinition) Validate() error
type ParameterDefinitions ¶ added in v0.28.0
type ParameterDefinitions map[string]ParameterDefinition
ParameterDefinitions allows us to represent parameters as a list in the YAML and work with them as a map internally
func (ParameterDefinitions) MarshalYAML ¶ added in v0.28.0
func (pd ParameterDefinitions) MarshalYAML() (interface{}, error)
func (*ParameterDefinitions) UnmarshalYAML ¶ added in v0.28.0
func (pd *ParameterDefinitions) UnmarshalYAML(unmarshal func(interface{}) error) error
type ParameterSource ¶ added in v0.28.0
type RequiredExtension ¶
RequiredExtension represents a custom extension that is required in order for a bundle to work correctly
func (*RequiredExtension) UnmarshalYAML ¶
func (r *RequiredExtension) UnmarshalYAML(unmarshal func(interface{}) error) error
UnmarshalYAML allows required extensions to either be a normal list of strings required: - docker or allow some entries to have config data defined
- vpn: name: mytrustednetwork
type Step ¶
type Step struct {
Data map[string]interface{} `yaml:",inline"`
}
func (*Step) GetDescription ¶
GetDescription returns a description of the step. Every step must have this property.