Documentation ¶
Index ¶
- Constants
- func ConvertTemplateJSON2Object(capabilityName string, in *runtime.RawExtension, schematic *common.Schematic) (types.Capability, error)
- func GenerateCUETemplate(wl *Workload) (string, error)
- func GenerateContextDataFromAppFile(appfile *Appfile, wlName string) process.ContextData
- func GetScopeDefAndGVK(ctx context.Context, cli client.Reader, dm discoverymapper.DiscoveryMapper, ...) (*v1beta1.ScopeDefinition, metav1.GroupVersionKind, error)
- func GetScopeDefAndGVKFromRevision(name string, appRev *v1beta1.ApplicationRevision) (*v1beta1.ScopeDefinition, metav1.GroupVersionKind, error)
- func NewBasicContext(contextData process.ContextData, params map[string]interface{}) process.Context
- func PrepareProcessContext(wl *Workload, ctxData process.ContextData) (process.Context, error)
- type Appfile
- func (af *Appfile) GenerateComponentManifest(wl *Workload) (*types.ComponentManifest, error)
- func (af *Appfile) GenerateComponentManifests() ([]*types.ComponentManifest, error)
- func (af *Appfile) PrepareWorkflowAndPolicy(ctx context.Context) ([]*unstructured.Unstructured, error)
- func (af *Appfile) SetOAMContract(comp *types.ComponentManifest) error
- type Handler
- type Parser
- func (p *Parser) GenerateAppFile(ctx context.Context, app *v1beta1.Application) (*Appfile, error)
- func (p *Parser) GenerateAppFileFromRevision(appRev *v1beta1.ApplicationRevision) (*Appfile, error)
- func (p *Parser) ParseWorkloadFromRevision(comp common.ApplicationComponent, appRev *v1beta1.ApplicationRevision) (*Workload, error)
- func (p *Parser) ValidateCUESchematicAppfile(a *Appfile) error
- func (p *Parser) ValidateComponentNames(ctx context.Context, af *Appfile) (int, error)
- type Scope
- type Template
- type TemplateLoaderFn
- type Trait
- type Workload
Constants ¶
const ( // WriteConnectionSecretToRefKey is used to create a secret for cloud resource connection WriteConnectionSecretToRefKey = "writeConnectionSecretToRef" // RegionKey is the region of a Cloud Provider RegionKey = "region" // ProviderRefKey is the reference of a Provider ProviderRefKey = "providerRef" )
const ( // UsageTag is usage comment annotation UsageTag = "+usage=" // ShortTag is the short alias annotation ShortTag = "+short" )
Variables ¶
This section is empty.
Functions ¶
func ConvertTemplateJSON2Object ¶
func ConvertTemplateJSON2Object(capabilityName string, in *runtime.RawExtension, schematic *common.Schematic) (types.Capability, error)
ConvertTemplateJSON2Object convert spec.extension or spec.schematic to object
func GenerateCUETemplate ¶
GenerateCUETemplate generate CUE Template from Kube module and Helm module
func GenerateContextDataFromAppFile ¶
func GenerateContextDataFromAppFile(appfile *Appfile, wlName string) process.ContextData
GenerateContextDataFromAppFile generates process context data from app file
func GetScopeDefAndGVK ¶
func GetScopeDefAndGVK(ctx context.Context, cli client.Reader, dm discoverymapper.DiscoveryMapper, name string) (*v1beta1.ScopeDefinition, metav1.GroupVersionKind, error)
GetScopeDefAndGVK get grouped API version of the given scope
func GetScopeDefAndGVKFromRevision ¶
func GetScopeDefAndGVKFromRevision(name string, appRev *v1beta1.ApplicationRevision) (*v1beta1.ScopeDefinition, metav1.GroupVersionKind, error)
GetScopeDefAndGVKFromRevision get grouped API version of the given scope
func NewBasicContext ¶
func NewBasicContext(contextData process.ContextData, params map[string]interface{}) process.Context
NewBasicContext prepares a basic DSL process Context
func PrepareProcessContext ¶
PrepareProcessContext prepares a DSL process Context
Types ¶
type Appfile ¶
type Appfile struct { Name string Namespace string AppRevisionName string Workloads []*Workload AppRevisionHash string AppLabels map[string]string AppAnnotations map[string]string RelatedTraitDefinitions map[string]*v1beta1.TraitDefinition RelatedComponentDefinitions map[string]*v1beta1.ComponentDefinition RelatedScopeDefinitions map[string]*v1beta1.ScopeDefinition Policies []v1beta1.AppPolicy PolicyWorkloads []*Workload WorkflowSteps []v1beta1.WorkflowStep Components []common.ApplicationComponent Artifacts []*types.ComponentManifest WorkflowMode common.WorkflowMode // contains filtered or unexported fields }
Appfile describes application
func (*Appfile) GenerateComponentManifest ¶
func (af *Appfile) GenerateComponentManifest(wl *Workload) (*types.ComponentManifest, error)
GenerateComponentManifest generate only one ComponentManifest
func (*Appfile) GenerateComponentManifests ¶
func (af *Appfile) GenerateComponentManifests() ([]*types.ComponentManifest, error)
GenerateComponentManifests converts an appFile to a slice of ComponentManifest
func (*Appfile) PrepareWorkflowAndPolicy ¶
func (af *Appfile) PrepareWorkflowAndPolicy(ctx context.Context) ([]*unstructured.Unstructured, error)
PrepareWorkflowAndPolicy generates workflow steps and policies from an appFile
func (*Appfile) SetOAMContract ¶
func (af *Appfile) SetOAMContract(comp *types.ComponentManifest) error
SetOAMContract will set OAM labels and annotations for resources as contract
type Handler ¶
type Handler interface { HandleComponentsRevision(ctx context.Context, compManifests []*types.ComponentManifest) error Dispatch(ctx context.Context, manifests ...*unstructured.Unstructured) error }
Handler handles reconcile
type Parser ¶
type Parser struct {
// contains filtered or unexported fields
}
Parser is an application parser
func NewApplicationParser ¶
func NewApplicationParser(cli client.Client, dm discoverymapper.DiscoveryMapper, pd *packages.PackageDiscover) *Parser
NewApplicationParser create appfile parser
func NewDryRunApplicationParser ¶
func NewDryRunApplicationParser(cli client.Client, dm discoverymapper.DiscoveryMapper, pd *packages.PackageDiscover, defs []oam.Object) *Parser
NewDryRunApplicationParser create an appfile parser for DryRun
func (*Parser) GenerateAppFile ¶
GenerateAppFile converts an application to an Appfile
func (*Parser) GenerateAppFileFromRevision ¶
func (p *Parser) GenerateAppFileFromRevision(appRev *v1beta1.ApplicationRevision) (*Appfile, error)
GenerateAppFileFromRevision converts an application revision to an Appfile
func (*Parser) ParseWorkloadFromRevision ¶
func (p *Parser) ParseWorkloadFromRevision(comp common.ApplicationComponent, appRev *v1beta1.ApplicationRevision) (*Workload, error)
ParseWorkloadFromRevision resolve an ApplicationComponent and generate a Workload containing ALL information required by an Appfile from app revision.
func (*Parser) ValidateCUESchematicAppfile ¶
ValidateCUESchematicAppfile validates CUE schematic workloads in an Appfile
type Scope ¶
type Scope struct { Name string GVK metav1.GroupVersionKind ResourceVersion string }
Scope defines the scope of workload
type Template ¶
type Template struct { TemplateStr string Health string CustomStatus string CapabilityCategory types.CapabilityCategory Reference common.WorkloadTypeDescriptor Helm *common.Helm Kube *common.Kube Terraform *common.Terraform ComponentDefinition *v1beta1.ComponentDefinition WorkloadDefinition *v1beta1.WorkloadDefinition TraitDefinition *v1beta1.TraitDefinition ScopeDefinition *v1beta1.ScopeDefinition PolicyDefinition *v1beta1.PolicyDefinition WorkflowStepDefinition *v1beta1.WorkflowStepDefinition }
Template is a helper struct for processing capability including ComponentDefinition, TraitDefinition, ScopeDefinition. It mainly collects schematic and status data of a capability definition.
func LoadTemplate ¶
func LoadTemplate(ctx context.Context, dm discoverymapper.DiscoveryMapper, cli client.Reader, capName string, capType types.CapType) (*Template, error)
LoadTemplate gets the capability definition from cluster and resolve it. It returns a helper struct, Template, which will be used for further processing.
func LoadTemplateFromRevision ¶
func LoadTemplateFromRevision(capName string, capType types.CapType, apprev *v1beta1.ApplicationRevision, dm discoverymapper.DiscoveryMapper) (*Template, error)
LoadTemplateFromRevision will load Definition template from app revision
type TemplateLoaderFn ¶
type TemplateLoaderFn func(context.Context, discoverymapper.DiscoveryMapper, client.Reader, string, types.CapType) (*Template, error)
TemplateLoaderFn load template of a capability definition
func DryRunTemplateLoader ¶
func DryRunTemplateLoader(defs []oam.Object) TemplateLoaderFn
DryRunTemplateLoader return a function that do the same work as LoadTemplate, but load template from provided ones before loading from cluster through LoadTemplate
func (TemplateLoaderFn) LoadTemplate ¶
func (fn TemplateLoaderFn) LoadTemplate(ctx context.Context, dm discoverymapper.DiscoveryMapper, c client.Reader, capName string, capType types.CapType) (*Template, error)
LoadTemplate load template of a capability definition
type Trait ¶
type Trait struct { // The Name is name of TraitDefinition, actually it's a type of the trait instance Name string CapabilityCategory types.CapabilityCategory Params map[string]interface{} Template string HealthCheckPolicy string CustomStatusFormat string // RequiredSecrets stores secret names which the trait needs from cloud resource component and its context RequiredSecrets []process.RequiredSecrets FullTemplate *Template // contains filtered or unexported fields }
Trait is ComponentTrait
func (*Trait) EvalContext ¶
EvalContext eval trait template and set result to context
type Workload ¶
type Workload struct { Name string Type string ExternalRevision string CapabilityCategory types.CapabilityCategory Params map[string]interface{} Traits []*Trait Scopes []Scope ScopeDefinition []*v1beta1.ScopeDefinition FullTemplate *Template Ctx process.Context Patch *value.Value SkipApplyWorkload bool // contains filtered or unexported fields }
Workload is component
func (*Workload) EvalContext ¶
EvalContext eval workload template and set result to context