Documentation ¶
Index ¶
- Variables
- func ParseOCIReference(ref string) [2]string
- func ResolveComponents(defaultCD *types.ComponentDescriptor, list *types.ComponentDescriptorList, ...) ([]map[string]interface{}, error)
- func ResolveResources(defaultCD *types.ComponentDescriptor, args []interface{}) ([]types.Resource, error)
- type BlueprintExecutionOptions
- type DeployExecutionOptions
- type DeployExecutorOutput
- type DeployItemSpecification
- type ExecutionTemplater
- type ExportExecutionOptions
- type ExportExecutorOutput
- type GenericStateHandler
- type ImportExecutorOutput
- type KubernetesStateHandler
- type MemoryStateHandler
- type SubinstallationExecutorOutput
- type TargetReference
- type TemplateInputFormatter
- type Templater
- func (o *Templater) TemplateDeployExecutions(opts DeployExecutionOptions) ([]DeployItemSpecification, error)
- func (o *Templater) TemplateExportExecutions(opts ExportExecutionOptions) (map[string]interface{}, error)
- func (o *Templater) TemplateImportExecutions(opts BlueprintExecutionOptions) ([]string, map[string]interface{}, error)
- func (o *Templater) TemplateSubinstallationExecutions(opts DeployExecutionOptions) ([]*lsv1alpha1.InstallationTemplate, error)
Constants ¶
This section is empty.
Variables ¶
var StateNotFoundErr = errors.New("state not found")
Functions ¶
func ParseOCIReference ¶
ParseOCIReference parses a oci reference string into its repository and version. e.g. host:5000/myrepo/myimage:1.0.0 -> ["host:5000/myrepo/myimage", "1.0.0"] host:5000/myrepo/myimage@sha256:123 -> ["host:5000/myrepo/myimage", "sha256:123"]
func ResolveComponents ¶
func ResolveComponents(defaultCD *types.ComponentDescriptor, list *types.ComponentDescriptorList, ocmSchemaVersion string, args []interface{}) ([]map[string]interface{}, error)
ResolveComponents is a helper function that can be used in the specific templating implementations to ease the access to component descriptors. The method takes a default component descriptor, a list of components and a optional number of args.
The arguments are expected to be a set of key value pairs that describe the identity of the resource. e.g. []interface{}{"name", "my-component"}. Optionally the first argument can be a component descriptor provided as map[string]interface{}
func ResolveResources ¶
func ResolveResources(defaultCD *types.ComponentDescriptor, args []interface{}) ([]types.Resource, error)
ResolveResources is a helper function that can be used in the specific templating implementations to ease the access to component descriptor defined resources. The method takes a default component descriptor and a optional number of args.
The arguments are expected to be a set of key value pairs that describe the identity of the resource. e.g. []interface{}{"name", "my-resource"}. Optionally the first argument can be a component descriptor provided as map[string]interface{}
Types ¶
type BlueprintExecutionOptions ¶
type BlueprintExecutionOptions struct { Installation *lsv1alpha1.Installation Blueprint *blueprints.Blueprint ComponentVersion model.ComponentVersion ComponentVersions *model.ComponentVersionList Imports map[string]interface{} }
BlueprintExecutionOptions describes the base options for templating of all blueprint executions.
func NewBlueprintExecutionOptions ¶
func NewBlueprintExecutionOptions(installation *lsv1alpha1.Installation, blueprint *blueprints.Blueprint, cd model.ComponentVersion, cdList *model.ComponentVersionList, imports map[string]interface{}) BlueprintExecutionOptions
NewBlueprintExecutionOptions create new basic blueprint execution options
func (*BlueprintExecutionOptions) Values ¶
func (o *BlueprintExecutionOptions) Values() (map[string]interface{}, error)
type DeployExecutionOptions ¶
type DeployExecutionOptions struct {
BlueprintExecutionOptions
}
DeployExecutionOptions describes the options for templating the deploy executions.
func NewDeployExecutionOptions ¶
func NewDeployExecutionOptions(base BlueprintExecutionOptions) DeployExecutionOptions
func (*DeployExecutionOptions) Values ¶
func (o *DeployExecutionOptions) Values() (map[string]interface{}, error)
type DeployExecutorOutput ¶
type DeployExecutorOutput struct {
DeployItems []DeployItemSpecification `json:"deployItems"`
}
DeployExecutorOutput describes the output of deploy executor.
type DeployItemSpecification ¶
type DeployItemSpecification struct { // Name is the unique name of the execution. Name string `json:"name"` // DataType is the DeployItem type of the execution. Type core.DeployItemType `json:"type"` // Target is the target reference to the target import of the target the deploy item should deploy to. // +optional Target *TargetReference `json:"target,omitempty"` // Labels is the map of labels to be added to the deploy item. // +optional Labels map[string]string `json:"labels,omitempty"` // ProviderConfiguration contains the type specific configuration for the execution. Configuration *runtime.RawExtension `json:"config"` // DependsOn lists deploy items that need to be executed before this one DependsOn []string `json:"dependsOn,omitempty"` // Timeout specifies how long the deployer may take to apply the deploy item. // When the time is exceeded, the deploy item fails. // Value has to be parsable by time.ParseDuration (or 'none' to deactivate the timeout). // Defaults to ten minutes if not specified. // +optional Timeout *lsv1alpha1.Duration `json:"timeout,omitempty"` // UpdateOnChangeOnly specifies if redeployment is executed only if the specification of the deploy item has changed. // +optional UpdateOnChangeOnly bool `json:"updateOnChangeOnly,omitempty"` OnDelete *core.OnDeleteConfig }
DeployItemSpecification defines a execution element that is translated into a deployitem template for the execution object.
type ExecutionTemplater ¶
type ExecutionTemplater interface { // Type returns the type of the templater. Type() lsv1alpha1.TemplateType // TemplateImportExecutions templates an import executor and return a list of error messages. TemplateImportExecutions(tmplExec lsv1alpha1.TemplateExecutor, blueprint *blueprints.Blueprint, cd model.ComponentVersion, cdList *model.ComponentVersionList, values map[string]interface{}) (*ImportExecutorOutput, error) // TemplateSubinstallationExecutions templates a subinstallation executor and return a list of installations templates. TemplateSubinstallationExecutions(tmplExec lsv1alpha1.TemplateExecutor, blueprint *blueprints.Blueprint, cd model.ComponentVersion, cdList *model.ComponentVersionList, values map[string]interface{}) (*SubinstallationExecutorOutput, error) // TemplateDeployExecutions templates a deploy executor and return a list of deployitem templates. TemplateDeployExecutions(tmplExec lsv1alpha1.TemplateExecutor, blueprint *blueprints.Blueprint, cd model.ComponentVersion, cdList *model.ComponentVersionList, values map[string]interface{}) (*DeployExecutorOutput, error) // TemplateExportExecutions templates a export executor. // It return the exported data as key value map where the key is the name of the export. TemplateExportExecutions(tmplExec lsv1alpha1.TemplateExecutor, blueprint *blueprints.Blueprint, descriptor model.ComponentVersion, cdList *model.ComponentVersionList, values map[string]interface{}) (*ExportExecutorOutput, error) }
ExecutionTemplater describes a implementation for a template execution
type ExportExecutionOptions ¶
type ExportExecutionOptions struct { BlueprintExecutionOptions Exports map[string]interface{} }
ExportExecutionOptions describes the options for templating the deploy executions.
func NewExportExecutionOptions ¶
func NewExportExecutionOptions(base BlueprintExecutionOptions, exports map[string]interface{}) ExportExecutionOptions
func (*ExportExecutionOptions) Values ¶
func (o *ExportExecutionOptions) Values() (map[string]interface{}, error)
type ExportExecutorOutput ¶
type ExportExecutorOutput struct {
Exports map[string]interface{} `json:"exports"`
}
ExportExecutorOutput describes the output of export executor.
type GenericStateHandler ¶
type ImportExecutorOutput ¶
type ImportExecutorOutput struct { Bindings map[string]interface{} `json:"bindings"` Errors []string `json:"errors"` }
ImportExecutorOutput describes the output of import executor.
type KubernetesStateHandler ¶
type KubernetesStateHandler struct { KubeClient client.Client Inst *lsv1alpha1.Installation }
KubernetesStateHandler implements the GenericStateHandler interface that stores the stateHdl in a kubernetes cluster.
type MemoryStateHandler ¶
func NewMemoryStateHandler ¶
func NewMemoryStateHandler() MemoryStateHandler
type SubinstallationExecutorOutput ¶
type SubinstallationExecutorOutput struct {
Subinstallations []*lsv1alpha1.InstallationTemplate `json:"subinstallations"`
}
SubinstallationExecutorOutput describes the output of deploy executor.
func (SubinstallationExecutorOutput) MarshalJSON ¶
func (o SubinstallationExecutorOutput) MarshalJSON() ([]byte, error)
func (*SubinstallationExecutorOutput) UnmarshalJSON ¶
func (o *SubinstallationExecutorOutput) UnmarshalJSON(data []byte) error
type TargetReference ¶
type TemplateInputFormatter ¶
type TemplateInputFormatter struct {
// contains filtered or unexported fields
}
The TemplateInputFormatter formats the input parameter of a template in a human-readable format.
func NewTemplateInputFormatter ¶
func NewTemplateInputFormatter(prettyPrint bool, sensitiveKeys ...string) *TemplateInputFormatter
NewTemplateInputFormatter creates a new template input formatter. When prettyPrint is set to true, the json output will be formatted with easier readable indentation. The parameter sensitiveKeys can contain template input keys which may contain sensitive data. When such a key is encountered during formatting, the values of the respective key will be removed.
type Templater ¶
type Templater struct {
// contains filtered or unexported fields
}
Templater implements all available template executors.
func New ¶
func New(templaters ...ExecutionTemplater) *Templater
New creates a new instance of a templater.
func (*Templater) TemplateDeployExecutions ¶
func (o *Templater) TemplateDeployExecutions(opts DeployExecutionOptions) ([]DeployItemSpecification, error)
TemplateDeployExecutions templates all deploy executions and returns a aggregated list of all templated deploy item templates.
func (*Templater) TemplateExportExecutions ¶
func (o *Templater) TemplateExportExecutions(opts ExportExecutionOptions) (map[string]interface{}, error)
TemplateExportExecutions templates all exports.
func (*Templater) TemplateImportExecutions ¶
func (o *Templater) TemplateImportExecutions(opts BlueprintExecutionOptions) ([]string, map[string]interface{}, error)
func (*Templater) TemplateSubinstallationExecutions ¶
func (o *Templater) TemplateSubinstallationExecutions(opts DeployExecutionOptions) ([]*lsv1alpha1.InstallationTemplate, error)
TemplateSubinstallationExecutions templates all subinstallation executions and returns a aggregated list of all templated installation templates.