utils

package
v1.1.0 Latest Latest
Warning

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

Go to latest
Published: Aug 20, 2021 License: Apache-2.0 Imports: 43 Imported by: 2

Documentation

Index

Constants

View Source
const (
	TerraformVariableString string = "string"
	TerraformVariableNumber string = "number"
	TerraformVariableBool   string = "bool"
	TerraformVariableList   string = "list"
	TerraformVariableTuple  string = "tuple"
	TerraformVariableMap    string = "map"
	TerraformVariableObject string = "object"
)

data types of parameter value

View Source
const LabelPodSpecable = "workload.oam.dev/podspecable"

LabelPodSpecable defines whether a workload has podSpec or not.

Variables

View Source
var DefaultBackoff = wait.Backoff{
	Duration: 1 * time.Second,
	Factor:   2,
	Steps:    5,
	Jitter:   0.1,
}

DefaultBackoff is the backoff we use in controller

View Source
var ExtractComponentName = util.ExtractComponentName

ExtractComponentName will extract the componentName from a revisionName

Functions

func CheckAppDeploymentUsingAppRevision added in v1.0.3

func CheckAppDeploymentUsingAppRevision(ctx context.Context, c client.Reader, appNs string, appName string) ([]string, error)

CheckAppDeploymentUsingAppRevision get all appDeployments using appRevisions related the app

func CheckDisabledCapabilities added in v0.2.0

func CheckDisabledCapabilities(disableCaps string) error

CheckDisabledCapabilities checks whether the disabled capability controllers are valid

func CompareWithRevision added in v1.0.0

func CompareWithRevision(ctx context.Context, c client.Client, componentName, nameSpace,
	latestRevision string, curCompSpec *v1alpha2.ComponentSpec) (bool, error)

CompareWithRevision compares a component's spec with the component's latest revision content

func ComputeSpecHash added in v1.0.0

func ComputeSpecHash(spec interface{}) (string, error)

ComputeSpecHash computes the hash value of a k8s resource spec

func ConstructRevisionName added in v1.0.0

func ConstructRevisionName(componentName string, revision int64) string

ConstructRevisionName will generate a revisionName given the componentName and revision will be <componentName>-v<RevisionNumber>, for example: comp-v1

func ConvertOpenAPISchema2SwaggerObject added in v1.0.0

func ConvertOpenAPISchema2SwaggerObject(data []byte) (*openapi3.Schema, error)

ConvertOpenAPISchema2SwaggerObject converts OpenAPI v2 JSON schema to Swagger Object

func DiscoveryFromPodSpec

func DiscoveryFromPodSpec(w *unstructured.Unstructured, fieldPath string) ([]intstr.IntOrString, error)

DiscoveryFromPodSpec will discover pods from podSpec

func DiscoveryFromPodTemplate

func DiscoveryFromPodTemplate(w *unstructured.Unstructured, fields ...string) ([]intstr.IntOrString, map[string]string, error)

DiscoveryFromPodTemplate not only discovery port, will also use labels in podTemplate

func ExtractRevision added in v1.0.0

func ExtractRevision(revisionName string) (int, error)

ExtractRevision will extract the revision from a revisionName

func GenerateOpenAPISchemaFromDefinition added in v1.0.0

func GenerateOpenAPISchemaFromDefinition(definitionName, cueTemplate string) ([]byte, error)

GenerateOpenAPISchemaFromDefinition returns the parameter of a definition

func GetAppNextRevision added in v1.0.0

func GetAppNextRevision(app *v1beta1.Application) (string, int64)

GetAppNextRevision will generate the next revision name and revision number for application

func GetBuildInInitializer added in v1.1.0

func GetBuildInInitializer(ctx context.Context, cli client.Client, name string) (*v1beta1.Initializer, error)

GetBuildInInitializer get built-in initializer from configMap in vela-system namespace

func GetInitializer added in v1.1.0

func GetInitializer(ctx context.Context, cli client.Client, namespace, name string) (*v1beta1.Initializer, error)

GetInitializer get initializer from two level namespace

func GetKubeSchematicOpenAPISchema added in v1.1.0

func GetKubeSchematicOpenAPISchema(params []commontypes.KubeParameter) ([]byte, error)

GetKubeSchematicOpenAPISchema gets OpenAPI v3 schema based on kube schematic parameters for component and trait definition

func GetOpenAPISchemaFromTerraformComponentDefinition added in v1.0.6

func GetOpenAPISchemaFromTerraformComponentDefinition(configuration string) ([]byte, error)

GetOpenAPISchemaFromTerraformComponentDefinition gets OpenAPI v3 schema by WorkloadDefinition name

func GetPodSpecPath

func GetPodSpecPath(workloadDef *v1alpha2.WorkloadDefinition) (string, bool)

GetPodSpecPath get podSpec field and label

func GetUnstructuredObjectStatusCondition added in v1.1.0

func GetUnstructuredObjectStatusCondition(obj *unstructured.Unstructured, condType string) (*condition.Condition, bool, error)

GetUnstructuredObjectStatusCondition returns the status.condition with matching condType from an unstructured object.

func RefreshPackageDiscover added in v1.0.2

func RefreshPackageDiscover(ctx context.Context, k8sClient client.Client, dm discoverymapper.DiscoveryMapper,
	pd *packages.PackageDiscover, definition runtime.Object) error

RefreshPackageDiscover help refresh package discover

func SelectOAMAppLabelsWithoutRevision

func SelectOAMAppLabelsWithoutRevision(labels map[string]string) map[string]string

SelectOAMAppLabelsWithoutRevision will filter and return OAM app labels only, if no labels, return the original one.

func StoreInSet added in v0.2.0

func StoreInSet(disableCaps string) mapset.Set

StoreInSet stores items in Set

Types

type CapabilityBaseDefinition added in v1.0.0

type CapabilityBaseDefinition struct {
}

CapabilityBaseDefinition is the base struct for CapabilityWorkloadDefinition and CapabilityTraitDefinition

func (*CapabilityBaseDefinition) CreateOrUpdateConfigMap added in v1.0.0

func (def *CapabilityBaseDefinition) CreateOrUpdateConfigMap(ctx context.Context, k8sClient client.Client, namespace,
	definitionName string, jsonSchema []byte, ownerReferences []metav1.OwnerReference) (string, error)

CreateOrUpdateConfigMap creates ConfigMap to store OpenAPI v3 schema or or updates data in ConfigMap

type CapabilityComponentDefinition added in v1.0.0

type CapabilityComponentDefinition struct {
	Name                string                      `json:"name"`
	ComponentDefinition v1beta1.ComponentDefinition `json:"componentDefinition"`

	WorkloadType    util.WorkloadType `json:"workloadType"`
	WorkloadDefName string            `json:"workloadDefName"`

	Helm      *commontypes.Helm      `json:"helm"`
	Kube      *commontypes.Kube      `json:"kube"`
	Terraform *commontypes.Terraform `json:"terraform"`
	CapabilityBaseDefinition
}

CapabilityComponentDefinition is the struct for ComponentDefinition

func NewCapabilityComponentDef added in v1.1.0

func NewCapabilityComponentDef(componentDefinition *v1beta1.ComponentDefinition) CapabilityComponentDefinition

NewCapabilityComponentDef will create a CapabilityComponentDefinition

func (*CapabilityComponentDefinition) GetOpenAPISchema added in v1.0.0

func (def *CapabilityComponentDefinition) GetOpenAPISchema(pd *packages.PackageDiscover, name string) ([]byte, error)

GetOpenAPISchema gets OpenAPI v3 schema by WorkloadDefinition name

func (*CapabilityComponentDefinition) StoreOpenAPISchema added in v1.0.0

func (def *CapabilityComponentDefinition) StoreOpenAPISchema(ctx context.Context, k8sClient client.Client,
	pd *packages.PackageDiscover, namespace, name, revName string) (string, error)

StoreOpenAPISchema stores OpenAPI v3 schema in ConfigMap from WorkloadDefinition

type CapabilityDefinitionInterface added in v1.0.0

type CapabilityDefinitionInterface interface {
	GetCapabilityObject(ctx context.Context, k8sClient client.Client, namespace, name string) (*types.Capability, error)
	GetOpenAPISchema(ctx context.Context, k8sClient client.Client, namespace, name string) ([]byte, error)
}

CapabilityDefinitionInterface is the interface for Capability (WorkloadDefinition and TraitDefinition)

type CapabilityTraitDefinition added in v1.0.0

type CapabilityTraitDefinition struct {
	Name            string                  `json:"name"`
	TraitDefinition v1beta1.TraitDefinition `json:"traitDefinition"`

	DefCategoryType util.WorkloadType `json:"defCategoryType"`

	Kube *commontypes.Kube `json:"kube"`

	CapabilityBaseDefinition
}

CapabilityTraitDefinition is the Capability struct for TraitDefinition

func NewCapabilityTraitDef added in v1.1.0

func NewCapabilityTraitDef(traitdefinition *v1beta1.TraitDefinition) CapabilityTraitDefinition

NewCapabilityTraitDef will create a CapabilityTraitDefinition

func (*CapabilityTraitDefinition) GetOpenAPISchema added in v1.0.0

func (def *CapabilityTraitDefinition) GetOpenAPISchema(pd *packages.PackageDiscover, name string) ([]byte, error)

GetOpenAPISchema gets OpenAPI v3 schema by TraitDefinition name

func (*CapabilityTraitDefinition) StoreOpenAPISchema added in v1.0.0

func (def *CapabilityTraitDefinition) StoreOpenAPISchema(ctx context.Context, k8sClient client.Client, pd *packages.PackageDiscover, namespace, name string, revName string) (string, error)

StoreOpenAPISchema stores OpenAPI v3 schema from TraitDefinition in ConfigMap

type ErrNoSectionParameterInCue added in v1.0.0

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

ErrNoSectionParameterInCue means there is not parameter section in Cue template of a workload

func (ErrNoSectionParameterInCue) Error added in v1.1.0

Jump to

Keyboard shortcuts

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