Documentation ¶
Overview ¶
Package definition contains some helper functions used in vela CLI and vela addon mechanism
Index ¶
- Constants
- Variables
- func GenGoCodeFromParams(parameters []StructParameter) (string, error)
- func GetDefinitionDefaultSpec(kind string) map[string]interface{}
- func PrintParamGosStruct(parameters []StructParameter)
- func SearchDefinition(definitionName string, c client.Client, definitionType string, ...) ([]unstructured.Unstructured, error)
- func SplitComponents(name string) []string
- func ValidDefinitionTypes() []string
- type AbbrFieldNamer
- 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) 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)
- type Field
- type FieldNamer
- type StructParameter
Constants ¶
const ( // DescriptionKey the key for accessing definition description DescriptionKey = "definition.oam.dev/description" // UserPrefix defines the prefix of user customized label or annotation UserPrefix = "custom.definition.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, } )
Functions ¶
func GenGoCodeFromParams ¶ added in v1.4.0
func GenGoCodeFromParams(parameters []StructParameter) (string, error)
GenGoCodeFromParams generates go code from parameters
func GetDefinitionDefaultSpec ¶
GetDefinitionDefaultSpec returns the default spec of Definition with given kind. This may be implemented with cue in the future.
func PrintParamGosStruct ¶ added in v1.4.0
func PrintParamGosStruct(parameters []StructParameter)
PrintParamGosStruct prints the StructParameter in Golang struct format
func SearchDefinition ¶
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 SplitComponents ¶ added in v1.4.0
SplitComponents splits name into components. name may be kebab case, snake case, or camel case.
func ValidDefinitionTypes ¶
func ValidDefinitionTypes() []string
ValidDefinitionTypes return the list of valid definition types
Types ¶
type AbbrFieldNamer ¶ added in v1.4.0
type AbbrFieldNamer struct { // Prefix is a prefix to add to all field names with first char capitalized automatically. Prefix string Abbreviations map[string]bool // contains filtered or unexported fields }
An AbbrFieldNamer generates Go field names from Go struct field while keeping abbreviations uppercased.
func (*AbbrFieldNamer) FieldName ¶ added in v1.4.0
func (a *AbbrFieldNamer) FieldName(field string) string
FieldName implements FieldNamer.FieldName.
func (*AbbrFieldNamer) SetPrefix ¶ added in v1.4.0
func (a *AbbrFieldNamer) SetPrefix(s string)
SetPrefix set a prefix to namer.
type Definition ¶
type Definition struct {
unstructured.Unstructured
}
Definition the general struct for handling all kinds of definitions like ComponentDefinition or TraitDefinition
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
func (*Definition) FromCUEString ¶
func (def *Definition) FromCUEString(cueString string, config *rest.Config) error
FromCUEString converts cue string 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)
func (*Definition) ToCUEString ¶
func (def *Definition) ToCUEString() (string, error)
ToCUEString converts definition to CUE value and then encode to string
type Field ¶ added in v1.4.0
type Field struct { Name string // GoType is the same to parameter.Type but can be print in Go GoType string OmitEmpty bool }
Field is a field of a struct.
type FieldNamer ¶ added in v1.4.0
A FieldNamer generates a Go field name from a CUE label.
func NewFieldNamer ¶ added in v1.4.0
func NewFieldNamer(prefix string) FieldNamer
NewFieldNamer returns a new FieldNamer.
type StructParameter ¶ added in v1.4.0
type StructParameter struct { types.Parameter // GoType is the same to parameter.Type but can be print in Go GoType string Fields []Field }
StructParameter is a parameter that can be printed as a struct.
func GeneratorParameterStructs ¶ added in v1.4.0
func GeneratorParameterStructs(param cue.Value) ([]StructParameter, error)
GeneratorParameterStructs generates structs for parameters in cue.
func NewStructParameter ¶ added in v1.4.0
func NewStructParameter() StructParameter
NewStructParameter creates a StructParameter