appfile

package
v1.1.0-alpha.3 Latest Latest
Warning

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

Go to latest
Published: Jun 19, 2021 License: Apache-2.0 Imports: 32 Imported by: 1

Documentation

Index

Constants

View Source
const (
	// UsageTag is usage comment annotation
	UsageTag = "+usage="
	// ShortTag is the short alias annotation
	ShortTag = "+short"
	// InsertSecretToTag marks the value should be set as an context
	InsertSecretToTag = "+insertSecretTo="
)
View Source
const (
	// AppfileBuiltinConfig defines the built-in config variable
	AppfileBuiltinConfig = "config"
)
View Source
const WriteConnectionSecretToRefKey = "writeConnectionSecretToRef"

WriteConnectionSecretToRefKey is used to create a secret for cloud resource connection

Variables

This section is empty.

Functions

func ConvertTemplateJSON2Object added in v1.0.3

func ConvertTemplateJSON2Object(capabilityName string, in *runtime.RawExtension, schematic *common.Schematic) (types.Capability, error)

ConvertTemplateJSON2Object convert spec.extension or spec.schematic to object

func GetOutputSecretNames added in v1.0.0

func GetOutputSecretNames(workloads *Workload) (string, error)

GetOutputSecretNames set all secret names, which are generated by cloud resource, to context

func NewBasicContext added in v1.0.5

func NewBasicContext(wl *Workload, applicationName, revision, namespace string) process.Context

NewBasicContext prepares a basic DSL process Context

func PrepareProcessContext added in v0.3.1

func PrepareProcessContext(wl *Workload, applicationName, revision, namespace string) (process.Context, error)

PrepareProcessContext prepares a DSL process Context

Types

type Appfile added in v0.3.1

type Appfile struct {
	Name         string
	Namespace    string
	RevisionName string
	Workloads    []*Workload

	Policies      []*Workload
	WorkflowSteps []*Workload
}

Appfile describes application

func (*Appfile) GenerateApplicationConfiguration added in v1.0.3

func (af *Appfile) GenerateApplicationConfiguration() (*v1alpha2.ApplicationConfiguration,
	[]*v1alpha2.Component, error)

GenerateApplicationConfiguration converts an appFile to applicationConfig & Components

func (*Appfile) GenerateWorkflowAndPolicy added in v1.1.0

func (af *Appfile) GenerateWorkflowAndPolicy() (policies, steps []*unstructured.Unstructured, err error)

GenerateWorkflowAndPolicy generates workflow steps and policies from an appFile

type Parser added in v0.3.1

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

Parser is an application parser

func NewApplicationParser added in v0.3.1

func NewApplicationParser(cli client.Client, dm discoverymapper.DiscoveryMapper, pd *packages.PackageDiscover) *Parser

NewApplicationParser create appfile parser

func NewDryRunApplicationParser added in v1.0.3

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 added in v0.3.1

func (p *Parser) GenerateAppFile(ctx context.Context, app *v1beta1.Application) (*Appfile, error)

GenerateAppFile converts an application to an Appfile

func (*Parser) ValidateCUESchematicAppfile added in v1.0.3

func (p *Parser) ValidateCUESchematicAppfile(a *Appfile) error

ValidateCUESchematicAppfile validates CUE schematic workloads in an Appfile

type Scope added in v0.3.1

type Scope struct {
	Name string
	GVK  schema.GroupVersionKind
}

Scope defines the scope of workload

type Template added in v1.0.3

type Template struct {
	TemplateStr        string
	Health             string
	CustomStatus       string
	CapabilityCategory types.CapabilityCategory
	Reference          common.WorkloadTypeDescriptor
	Helm               *common.Helm
	Kube               *common.Kube
	Terraform          *common.Terraform
	// TODO: Add scope definition too
	ComponentDefinition    *v1beta1.ComponentDefinition
	WorkloadDefinition     *v1beta1.WorkloadDefinition
	TraitDefinition        *v1beta1.TraitDefinition
	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 added in v1.0.3

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.

type TemplateLoaderFn added in v1.0.3

TemplateLoaderFn load template of a capability definition

func DryRunTemplateLoader added in v1.0.3

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 added in v1.0.3

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 added in v0.3.1

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

	FullTemplate *Template
	// contains filtered or unexported fields
}

Trait is ComponentTrait

func (*Trait) EvalContext added in v0.3.1

func (trait *Trait) EvalContext(ctx process.Context) error

EvalContext eval trait template and set result to context

func (*Trait) EvalHealth added in v0.3.1

func (trait *Trait) EvalHealth(ctx process.Context, client client.Client, namespace string) (bool, error)

EvalHealth eval trait health check

func (*Trait) EvalStatus added in v0.3.3

func (trait *Trait) EvalStatus(ctx process.Context, cli client.Client, ns string) (string, error)

EvalStatus eval trait status

type Workload added in v0.3.1

type Workload struct {
	Name               string
	Type               string
	CapabilityCategory types.CapabilityCategory
	Params             map[string]interface{}
	Traits             []*Trait
	Scopes             []Scope
	FullTemplate       *Template

	// OutputSecretName is the secret name which this workload will generate after it successfully generate a cloud resource
	OutputSecretName string
	// RequiredSecrets stores secret names which the workload needs from cloud resource component and its context
	RequiredSecrets []process.RequiredSecrets
	UserConfigs     []map[string]string
	// contains filtered or unexported fields
}

Workload is component

func (*Workload) EvalContext added in v0.3.1

func (wl *Workload) EvalContext(ctx process.Context) error

EvalContext eval workload template and set result to context

func (*Workload) EvalHealth added in v0.3.1

func (wl *Workload) EvalHealth(ctx process.Context, client client.Client, namespace string) (bool, error)

EvalHealth eval workload health check

func (*Workload) EvalStatus added in v0.3.3

func (wl *Workload) EvalStatus(ctx process.Context, cli client.Client, ns string) (string, error)

EvalStatus eval workload status

func (*Workload) GetUserConfigName added in v0.3.1

func (wl *Workload) GetUserConfigName() string

GetUserConfigName get user config from AppFile, it will contain config file in it.

func (*Workload) IsCloudResourceConsumer added in v1.0.0

func (wl *Workload) IsCloudResourceConsumer() bool

IsCloudResourceConsumer checks whether a workload is cloud resource consumer role

func (*Workload) IsCloudResourceProducer added in v1.0.0

func (wl *Workload) IsCloudResourceProducer() bool

IsCloudResourceProducer checks whether a workload is cloud resource producer role

Directories

Path Synopsis
flux2apis
Package apis contains typed structs from fluxcd/helm-controller and fluxcd/source-controller.
Package apis contains typed structs from fluxcd/helm-controller and fluxcd/source-controller.

Jump to

Keyboard shortcuts

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