appfile

package
v1.2.0-beta.1 Latest Latest
Warning

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

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

Documentation

Index

Constants

View Source
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"
)
View Source
const (
	// UsageTag is usage comment annotation
	UsageTag = "+usage="
	// ShortTag is the short alias annotation
	ShortTag = "+short"
)

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

func GenerateCUETemplate(wl *Workload) (string, error)

GenerateCUETemplate generate CUE Template from Kube module and Helm module

func GetScopeDefAndGVK added in v1.1.1

GetScopeDefAndGVK get grouped API version of the given scope

func GetScopeDefAndGVKFromRevision added in v1.1.1

func GetScopeDefAndGVKFromRevision(name string, appRev *v1beta1.ApplicationRevision) (*v1beta1.ScopeDefinition, metav1.GroupVersionKind, error)

GetScopeDefAndGVKFromRevision get grouped API version of the given scope

func NewBasicContext added in v1.0.5

func NewBasicContext(applicationName, workloadName, revision, namespace string, params map[string]interface{}) 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
	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      []*Workload
	WorkflowSteps []v1beta1.WorkflowStep
	Components    []common.ApplicationComponent
	Artifacts     []*types.ComponentManifest
	WorkflowMode  common.WorkflowMode
	// contains filtered or unexported fields
}

Appfile describes application

func (*Appfile) GenerateComponentManifest added in v1.1.0

func (af *Appfile) GenerateComponentManifest(wl *Workload) (*types.ComponentManifest, error)

GenerateComponentManifest generate only one ComponentManifest

func (*Appfile) GenerateComponentManifests added in v1.1.0

func (af *Appfile) GenerateComponentManifests() ([]*types.ComponentManifest, error)

GenerateComponentManifests converts an appFile to a slice of ComponentManifest

func (*Appfile) PrepareWorkflowAndPolicy added in v1.1.1

func (af *Appfile) PrepareWorkflowAndPolicy() ([]*Workload, []*unstructured.Unstructured, error)

PrepareWorkflowAndPolicy generates workflow steps and policies from an appFile

func (*Appfile) SetOAMContract added in v1.1.1

func (af *Appfile) SetOAMContract(comp *types.ComponentManifest) error

SetOAMContract will set OAM labels and annotations for resources as contract

type Handler added in v1.1.1

type Handler interface {
	HandleComponentsRevision(ctx context.Context, compManifests []*types.ComponentManifest) error
	Dispatch(ctx context.Context, manifests ...*unstructured.Unstructured) error
}

Handler handles reconcile

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) GenerateAppFileFromRevision added in v1.1.1

func (p *Parser) GenerateAppFileFromRevision(appRev *v1beta1.ApplicationRevision) (*Appfile, error)

GenerateAppFileFromRevision converts an application revision to an Appfile

func (*Parser) ParseWorkloadFromRevision added in v1.1.1

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

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

ValidateCUESchematicAppfile validates CUE schematic workloads in an Appfile

func (*Parser) ValidateComponentNames added in v1.1.0

func (p *Parser) ValidateComponentNames(ctx context.Context, af *Appfile) (int, error)

ValidateComponentNames validate all component name whether repeat in cluster and template

type Scope added in v0.3.1

type Scope struct {
	Name            string
	GVK             metav1.GroupVersionKind
	ResourceVersion string
}

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

	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 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.

func LoadTemplateFromRevision added in v1.1.1

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 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

	// 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 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
	ExternalRevision   string
	CapabilityCategory types.CapabilityCategory
	Params             map[string]interface{}
	Traits             []*Trait
	Scopes             []Scope
	ScopeDefinition    []*v1beta1.ScopeDefinition
	FullTemplate       *Template
	Ctx                process.Context
	Patch              *value.Value
	// 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

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