Documentation ¶
Overview ¶
Package definition contains some helper functions used in vela CLI and vela addon mechanism
Index ¶
- Constants
- Variables
- func GetDefinitionDefaultSpec(kind string) map[string]interface{}
- func SearchDefinition(c client.Client, definitionType, namespace string, ...) ([]unstructured.Unstructured, error)
- func SearchDefinitionRevisions(ctx context.Context, c client.Client, namespace string, defName string, ...) ([]v1beta1.DefinitionRevision, error)
- func ValidDefinitionTypes() []string
- type Definition
- func (def *Definition) FromCUE(val *cue.Value, templateString string) error
- func (def *Definition) FromCUEString(cueString string, config *rest.Config) error
- func (def *Definition) FromYAML(data []byte) error
- func (def *Definition) GetType() string
- func (def *Definition) SetGVK(kind string)
- func (def *Definition) SetType(t string) error
- func (def *Definition) ToCUE() (*cue.Value, string, error)
- func (def *Definition) ToCUEString() (string, error)
Constants ¶
const ( // DescriptionKey the key for accessing definition description DescriptionKey = "definition.oam.dev/description" // AliasKey the key for accessing definition alias AliasKey = "definition.oam.dev/alias" // UserPrefix defines the prefix of user customized label or annotation UserPrefix = "custom.definition.oam.dev/" // DefinitionAlias is alias of definition DefinitionAlias = "alias.config.oam.dev" // DefinitionType marks definition's usage type, like image-registry DefinitionType = "type.config.oam.dev" // ConfigCatalog marks definition is a catalog ConfigCatalog = "catalog.config.oam.dev" )
Variables ¶
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, } // StringToDefinitionType converts user input to DefinitionType used in DefinitionRevisions StringToDefinitionType = map[string]common.DefinitionType{ "component": common.ComponentType, "trait": common.TraitType, "policy": common.PolicyType, "workflow-step": common.WorkflowStepType, } // DefinitionKindToNameLabel records DefinitionRevision types and labels to search its name DefinitionKindToNameLabel = map[common.DefinitionType]string{ common.ComponentType: oam.LabelComponentDefinitionName, common.TraitType: oam.LabelTraitDefinitionName, common.PolicyType: oam.LabelPolicyDefinitionName, common.WorkflowStepType: oam.LabelWorkflowStepDefinitionName, } // DefinitionKindToType maps the definition kinds to a shorter type DefinitionKindToType = map[string]string{ v1beta1.ComponentDefinitionKind: "component", v1beta1.TraitDefinitionKind: "trait", v1beta1.PolicyDefinitionKind: "policy", v1beta1.WorkloadDefinitionKind: "workload", v1beta1.ScopeDefinitionKind: "scope", v1beta1.WorkflowStepDefinitionKind: "workflow-step", } )
Functions ¶
func GetDefinitionDefaultSpec ¶
GetDefinitionDefaultSpec returns the default spec of Definition with given kind. This may be implemented with cue in the future.
func SearchDefinition ¶
func SearchDefinition(c client.Client, definitionType, namespace string, additionalFilters ...filters.Filter) ([]unstructured.Unstructured, error)
SearchDefinition search the Definition in k8s by traversing all possible results across types or namespaces
func SearchDefinitionRevisions ¶ added in v1.5.0
func SearchDefinitionRevisions(ctx context.Context, c client.Client, namespace string, defName string, defType common.DefinitionType, rev int64) ([]v1beta1.DefinitionRevision, error)
SearchDefinitionRevisions finds DefinitionRevisions. Use defName to filter DefinitionRevisions using the name of the underlying Definition. Empty defName will keep everything. Use defType to only keep DefinitionRevisions of the specified DefinitionType. Empty defType will search every possible type. Use rev to only keep the revision you want. rev=0 will keep every revision.
func ValidDefinitionTypes ¶
func ValidDefinitionTypes() []string
ValidDefinitionTypes return the list of valid definition types
Types ¶
type Definition ¶
type Definition struct {
unstructured.Unstructured
}
Definition the general struct for handling all kinds of definitions like ComponentDefinition or TraitDefinition
func GetDefinitionFromDefinitionRevision ¶ added in v1.5.0
func GetDefinitionFromDefinitionRevision(rev *v1beta1.DefinitionRevision) (*Definition, error)
GetDefinitionFromDefinitionRevision will extract the underlying Definition from a DefinitionRevision.
func (*Definition) FromCUE ¶
func (def *Definition) FromCUE(val *cue.Value, templateString string) error
FromCUE converts CUE value (predefined Definition's cue format) to Definition nolint:gocyclo,staticcheck
func (*Definition) FromCUEString ¶
func (def *Definition) FromCUEString(cueString string, config *rest.Config) error
FromCUEString converts cue string into Definition
func (*Definition) FromYAML ¶ added in v1.5.0
func (def *Definition) FromYAML(data []byte) error
FromYAML converts yaml into Definition
func (*Definition) GetType ¶
func (def *Definition) GetType() string
GetType gets the type of Definition
func (*Definition) SetGVK ¶
func (def *Definition) SetGVK(kind string)
SetGVK set the GroupVersionKind of Definition
func (*Definition) SetType ¶
func (def *Definition) SetType(t string) error
SetType sets the type of Definition
func (*Definition) ToCUE ¶
func (def *Definition) ToCUE() (*cue.Value, string, error)
ToCUE converts Definition to CUE value (with predefined Definition's cue format) nolint:staticcheck
func (*Definition) ToCUEString ¶
func (def *Definition) ToCUEString() (string, error)
ToCUEString converts definition to CUE value and then encode to string