definition

package
v1.4.13 Latest Latest
Warning

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

Go to latest
Published: Oct 13, 2022 License: Apache-2.0 Imports: 24 Imported by: 1

Documentation

Overview

Package definition contains some helper functions used in vela CLI and vela addon mechanism

Index

Constants

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

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,
	}
)
View Source
var (
	WellKnownAbbreviations = map[string]bool{
		"API":   true,
		"DB":    true,
		"HTTP":  true,
		"HTTPS": true,
		"ID":    true,
		"JSON":  true,
		"OS":    true,
		"SQL":   true,
		"SSH":   true,
		"URI":   true,
		"URL":   true,
		"XML":   true,
		"YAML":  true,

		"CPU": true,
		"PVC": true,
	}

	DefaultNamer = NewFieldNamer("")
)

Functions

func GenGoCodeFromParams added in v1.4.0

func GenGoCodeFromParams(parameters []StructParameter) (string, error)

GenGoCodeFromParams generates go code from parameters

func GetDefinitionDefaultSpec

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

func SplitComponents(name string) []string

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

type FieldNamer interface {
	FieldName(label string) string
	SetPrefix(string)
}

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

Jump to

Keyboard shortcuts

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