common

package
v1.2.0-beta.2 Latest Latest
Warning

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

Go to latest
Published: Dec 8, 2021 License: Apache-2.0 Imports: 54 Imported by: 0

Documentation

Index

Constants

View Source
const (
	// DefinitionDescriptionKey the key for accessing definition description
	DefinitionDescriptionKey = "definition.oam.dev/description"
	// DefinitionUserPrefix defines the prefix of user customized label or annotation
	DefinitionUserPrefix = "custom.definition.oam.dev/"
)

Variables

View Source
var (
	// DefinitionTemplateKeys the keys for accessing definition template
	DefinitionTemplateKeys = []string{"spec", "schematic", "cue", "template"}
	// DefinitionTypeToKind maps the definition types to corresponding kinds
	DefinitionTypeToKind = map[string]string{
		"component":     v1beta1.ComponentDefinitionKind,
		"trait":         v1beta1.TraitDefinitionKind,
		"policy":        v1beta1.PolicyDefinitionKind,
		"workload":      v1beta1.WorkloadDefinitionKind,
		"scope":         v1beta1.ScopeDefinitionKind,
		"workflow-step": v1beta1.WorkflowStepDefinitionKind,
	}
)

Functions

func ApplyApplication added in v1.1.0

func ApplyApplication(app corev1beta1.Application, ioStream cmdutil.IOStreams, clt client.Client) error

ApplyApplication will apply an application file in K8s GVK format

func BaseComplete

func BaseComplete(namespace string, c common.Args, workloadName string, appName string, flagSet *pflag.FlagSet, workloadType string) (*api.Application, error)

BaseComplete will construct an Application from cli parameters.

func BuildRun

func BuildRun(ctx context.Context, app *api.Application, client client.Client, namespace string, io util.IOStreams) error

BuildRun will build application and deploy from Appfile

func CheckLabelExistence added in v1.1.1

func CheckLabelExistence(labels map[string]string, label string) bool

CheckLabelExistence checks whether a label `key=value` exists in definition labels

func ConvertApplyTo

func ConvertApplyTo(applyTo []string, workloads []types.Capability) []string

ConvertApplyTo will convert applyTo slice to workload capability name if CRD matches

func GetDefinitionDefaultSpec added in v1.1.0

func GetDefinitionDefaultSpec(kind string) map[string]interface{}

GetDefinitionDefaultSpec returns the default spec of Definition with given kind. This may be implemented with cue in the future.

func HackForStandardTrait

func HackForStandardTrait(tp types.Capability, client client.Client) error

HackForStandardTrait will do some hack install for standard registry

func InitApplication

func InitApplication(namespace string, c common.Args, workloadName string, appGroup string) (*api.Application, error)

InitApplication will load Application from cluster

func InstallComponentDefinition added in v1.1.0

func InstallComponentDefinition(client client.Client, componentData []byte, ioStreams cmdutil.IOStreams, tp *types.Capability) error

InstallComponentDefinition will add a component into K8s cluster and install its controller

func InstallPrometheusInstance

func InstallPrometheusInstance(kubecli client.Client) error

InstallPrometheusInstance will install prometheus instance when the Capability is 'metrics'

func InstallTraitDefinition added in v1.1.0

func InstallTraitDefinition(client client.Client, mapper discoverymapper.DiscoveryMapper, traitdata []byte, ioStreams cmdutil.IOStreams, cap *types.Capability) error

InstallTraitDefinition will add a trait into K8s cluster and install it's controller

func ListRawWorkloadDefinitions

func ListRawWorkloadDefinitions(userNamespace string, c common.Args) ([]v1beta1.WorkloadDefinition, error)

ListRawWorkloadDefinitions will list raw definition

func Parse

func Parse(applyTo string) string

Parse will parse applyTo(with format Group/Version.Kind) to crd name by just calculate the plural of kind word. TODO we should use discoverymapper instead of calculate plural

func SearchDefinition added in v1.1.0

func SearchDefinition(definitionName string, c client.Client, definitionType string, namespace string) ([]unstructured.Unstructured, error)

SearchDefinition search the Definition in k8s by traversing all possible results across types or namespaces

func ValidDefinitionTypes added in v1.1.0

func ValidDefinitionTypes() []string

ValidDefinitionTypes return the list of valid definition types

Types

type AppfileOptions

type AppfileOptions struct {
	Kubecli   client.Client
	IO        cmdutil.IOStreams
	Namespace string
}

AppfileOptions is some configuration that modify options for an Appfile

func (*AppfileOptions) ApplyApp

func (o *AppfileOptions) ApplyApp(app *corev1beta1.Application, scopes []oam.Object) error

ApplyApp applys config resources for the app. It differs by create and update:

  • for create, it displays app status along with information of url, metrics, ssh, logging.
  • for update, it rolls out a canary deployment and prints its information. User can verify the canary deployment. This will wait for user approval. If approved, it continues upgrading the whole; otherwise, it would rollback.

func (*AppfileOptions) BaseAppFileRun

func (o *AppfileOptions) BaseAppFileRun(result *BuildResult, args common.Args) error

BaseAppFileRun starts an application according to Appfile

func (*AppfileOptions) Export

func (o *AppfileOptions) Export(filePath, namespace string, quiet bool, c common.Args) (*BuildResult, []byte, error)

Export export Application object from the path of Appfile

func (*AppfileOptions) ExportFromAppFile

func (o *AppfileOptions) ExportFromAppFile(app *api.AppFile, namespace string, quiet bool, c common.Args) (*BuildResult, []byte, error)

ExportFromAppFile exports Application from appfile object

func (*AppfileOptions) Info

Info shows the status of each service in the Appfile

func (*AppfileOptions) Run

func (o *AppfileOptions) Run(filePath, namespace string, c common.Args) error

Run starts an application according to Appfile

type BuildResult

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

BuildResult is the export struct from AppFile yaml or AppFile object

type Definition added in v1.1.0

type Definition struct {
	unstructured.Unstructured
}

Definition the general struct for handling all kinds of definitions like ComponentDefinition or TraitDefinition

func (*Definition) FromCUE added in v1.1.0

func (def *Definition) FromCUE(val *cue.Value, templateString string) error

FromCUE converts CUE value (predefined Definition's cue format) to Definition nolint:gocyclo

func (*Definition) FromCUEString added in v1.1.0

func (def *Definition) FromCUEString(cueString string, config *rest.Config) error

FromCUEString converts cue string into Definition

func (*Definition) GetType added in v1.1.0

func (def *Definition) GetType() string

GetType gets the type of Definition

func (*Definition) SetGVK added in v1.1.0

func (def *Definition) SetGVK(kind string)

SetGVK set the GroupVersionKind of Definition

func (*Definition) SetType added in v1.1.0

func (def *Definition) SetType(t string) error

SetType sets the type of Definition

func (*Definition) ToCUE added in v1.1.0

func (def *Definition) ToCUE() (*cue.Value, string, error)

ToCUE converts Definition to CUE value (with predefined Definition's cue format)

func (*Definition) ToCUEString added in v1.1.0

func (def *Definition) ToCUEString() (string, error)

ToCUEString converts definition to CUE value and then encode to string

type DeleteOptions

type DeleteOptions struct {
	Namespace string
	AppName   string
	CompName  string
	Client    client.Client
	C         common.Args

	Wait        bool
	ForceDelete bool
}

DeleteOptions is options for delete

func (*DeleteOptions) DeleteApp

func (o *DeleteOptions) DeleteApp(io cmdutil.IOStreams) error

DeleteApp will delete app including server side

func (*DeleteOptions) DeleteAppWithoutDoubleCheck added in v1.2.0

func (o *DeleteOptions) DeleteAppWithoutDoubleCheck(io cmdutil.IOStreams) error

DeleteAppWithoutDoubleCheck delete application without double check

func (*DeleteOptions) DeleteComponent

func (o *DeleteOptions) DeleteComponent(io cmdutil.IOStreams) error

DeleteComponent will delete one component including server side.

func (*DeleteOptions) ForceDeleteApp added in v1.2.0

func (o *DeleteOptions) ForceDeleteApp(io cmdutil.IOStreams) error

ForceDeleteApp force delete the application

func (*DeleteOptions) WaitUntilDeleteApp added in v1.2.0

func (o *DeleteOptions) WaitUntilDeleteApp(io cmdutil.IOStreams) error

WaitUntilDeleteApp will wait until the application is completely deleted

type Option

type Option struct {
	// Optional filter, if specified, only components in such app will be listed
	AppName string

	Namespace string
}

Option is option work with dashboard api server

Jump to

Keyboard shortcuts

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