types

package
v1.8.0 Latest Latest
Warning

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

Go to latest
Published: Apr 14, 2023 License: Apache-2.0 Imports: 10 Imported by: 10

Documentation

Index

Constants

View Source
const (
	// OpenapiV3JSONSchema is the key to store OpenAPI v3 JSON schema in ConfigMap
	OpenapiV3JSONSchema string = "openapi-v3-json-schema"
	// UISchema is the key to store ui custom schema
	UISchema string = "ui-schema"
	// VelaQLConfigmapKey is the key to store velaql view
	VelaQLConfigmapKey string = "template"
)
View Source
const (
	ReasonParsed          = "Parsed"
	ReasonRendered        = "Rendered"
	ReasonPolicyGenerated = "PolicyGenerated"
	ReasonRevisoned       = "Revisioned"
	ReasonApplied         = "Applied"
	ReasonHealthCheck     = "HealthChecked"
	ReasonDeployed        = "Deployed"
	ReasonRollout         = "Rollout"

	ReasonFailedParse       = "FailedParse"
	ReasonFailedRender      = "FailedRender"
	ReasonFailedRevision    = "FailedRevision"
	ReasonFailedWorkflow    = "FailedWorkflow"
	ReasonFailedApply       = "FailedApply"
	ReasonFailedHealthCheck = "FailedHealthCheck"
	ReasonFailedStateKeep   = "FailedStateKeep"
	ReasonFailedGC          = "FailedGC"
	ReasonFailedRollout     = "FailedRollout"
)

reason for Application

View Source
const (
	MessageParsed           = "Parsed successfully"
	MessageRendered         = "Rendered successfully"
	MessagePolicyGenerated  = "Policy generated successfully"
	MessageRevisioned       = "Revisioned successfully"
	MessageApplied          = "Applied successfully"
	MessageWorkflowFinished = "Workflow finished"
	MessageHealthCheck      = "Health checked healthy"
	MessageDeployed         = "Deployed successfully"
	MessageRollout          = "Rollout successfully"

	MessageFailedParse       = "fail to parse application, err: %v"
	MessageFailedRender      = "fail to render application, err: %v"
	MessageFailedRevision    = "fail to handle application revision, err: %v"
	MessageFailedApply       = "fail to apply component, err: %v"
	MessageFailedHealthCheck = "fail to health check, err: %v"
	MessageFailedGC          = "fail to garbage collection, err: %v"
)

event message for Application

View Source
const (
	// ClusterLocalName the name for the hub cluster
	ClusterLocalName = "local"

	// CredentialTypeInternal identifies the virtual cluster from internal kubevela system
	CredentialTypeInternal v1alpha1.CredentialType = "Internal"
	// CredentialTypeOCMManagedCluster identifies the virtual cluster from ocm
	CredentialTypeOCMManagedCluster v1alpha1.CredentialType = "ManagedCluster"
	// ClusterBlankEndpoint identifies the endpoint of a cluster as blank (not available)
	ClusterBlankEndpoint = "-"

	// ClustersArg indicates the argument for specific clusters to install addon
	ClustersArg = "clusters"
)
View Source
const (
	// KubeVelaName name of kubevela
	KubeVelaName = "kubevela"
	// VelaCoreName name of vela-core
	VelaCoreName = "vela-core"
)
View Source
const (
	// DefaultKubeVelaReleaseName defines the default name of KubeVela Release
	DefaultKubeVelaReleaseName = "kubevela"
	// DefaultKubeVelaChartName defines the default chart name of KubeVela, this variable MUST align to the chart name of this repo
	DefaultKubeVelaChartName = "vela-core"
	// DefaultKubeVelaVersion defines the default version needed for KubeVela chart
	DefaultKubeVelaVersion = ">0.0.0-0"
	// DefaultEnvName defines the default environment name for Apps created by KubeVela
	DefaultEnvName = "default"
	// DefaultAppNamespace defines the default K8s namespace for Apps created by KubeVela
	DefaultAppNamespace = "default"
	// AutoDetectWorkloadDefinition defines the default workload type for ComponentDefinition which doesn't specify a workload
	AutoDetectWorkloadDefinition = "autodetects.core.oam.dev"
	// KubeVelaControllerDeployment defines the KubeVela controller's deployment name
	KubeVelaControllerDeployment = "kubevela-vela-core"
)
View Source
const (
	// AnnoDefinitionDescription is the annotation which describe what is the capability used for in a WorkloadDefinition/TraitDefinition Object
	AnnoDefinitionDescription = "definition.oam.dev/description"
	// AnnoDefinitionExampleURL is the annotation which describe url of usage examples of the capability, it will be loaded in documentation generate.
	AnnoDefinitionExampleURL = "definition.oam.dev/example-url"
	// AnnoDefinitionAlias is the annotation for definition alias
	AnnoDefinitionAlias = "definition.oam.dev/alias"
	// AnnoDefinitionIcon is the annotation which describe the icon url
	AnnoDefinitionIcon = "definition.oam.dev/icon"
	// AnnoDefinitionAppliedWorkloads is the annotation which describe what is the workloads used for in a TraitDefinition Object
	AnnoDefinitionAppliedWorkloads = "definition.oam.dev/appliedWorkloads"
	// LabelDefinition is the label for definition
	LabelDefinition = "definition.oam.dev"
	// LabelDefinitionName is the label for definition name
	LabelDefinitionName = "definition.oam.dev/name"
	// LabelDefinitionDeprecated is the label which describe whether the capability is deprecated
	LabelDefinitionDeprecated = "custom.definition.oam.dev/deprecated"
	// LabelDefinitionHidden is the label which describe whether the capability is hidden by UI
	LabelDefinitionHidden = "custom.definition.oam.dev/ui-hidden"
	// LabelDefinitionScope is the label which describe whether the capability's scope
	LabelDefinitionScope = "custom.definition.oam.dev/scope"
	// LabelNodeRoleGateway gateway role of node
	LabelNodeRoleGateway = "node-role.kubernetes.io/gateway"
	// LabelNodeRoleWorker worker role of node
	LabelNodeRoleWorker = "node-role.kubernetes.io/worker"
	// AnnoIngressControllerHTTPSPort define ingress controller listen port for https
	AnnoIngressControllerHTTPSPort = "ingress.controller/https-port"
	// AnnoIngressControllerHTTPPort define ingress controller listen port for http
	AnnoIngressControllerHTTPPort = "ingress.controller/http-port"
	// AnnoIngressControllerHost define ingress controller externally host
	AnnoIngressControllerHost = "ingress.controller/host"
	// LabelConfigType is the label marked as the template that generated the config.
	LabelConfigType = "config.oam.dev/type"
	// LabelConfigCatalog is the label marked as the secret generated from the config.
	LabelConfigCatalog = "config.oam.dev/catalog"
	// LabelConfigSubType is the sub-type for a config type
	LabelConfigSubType = "config.oam.dev/sub-type"
	// LabelConfigProject is the label for config project
	LabelConfigProject = "config.oam.dev/project"
	// LabelConfigSyncToMultiCluster is the label to decide whether a config will be synchronized to multi-cluster
	LabelConfigSyncToMultiCluster = "config.oam.dev/multi-cluster"
	// LabelConfigIdentifier is the label for config identifier
	LabelConfigIdentifier = "config.oam.dev/identifier"
	// LabelConfigScope is the label for config scope
	LabelConfigScope = "config.oam.dev/scope"
	// AnnotationConfigSensitive is the annotation for the sensitization
	AnnotationConfigSensitive = "config.oam.dev/sensitive"
	// AnnotationConfigTemplateNamespace is the annotation for the template namespace
	AnnotationConfigTemplateNamespace = "config.oam.dev/template-namespace"
	// AnnotationConfigDescription is the annotation for config description
	AnnotationConfigDescription = "config.oam.dev/description"
	// AnnotationConfigAlias is the annotation for config alias
	AnnotationConfigAlias = "config.oam.dev/alias"
	// AnnotationConfigDistributionSpec is the annotation key of the application that distributes the configs
	AnnotationConfigDistributionSpec = "config.oam.dev/distribution-spec"
)
View Source
const (
	// StatusDeployed represents the App was deployed
	StatusDeployed = "Deployed"
	// StatusStaging represents the App was changed locally and it's spec is diff from the deployed one, or not deployed at all
	StatusStaging = "Staging"
)
View Source
const (
	// TagCommandType used for tag cli category
	TagCommandType = "commandType"

	// TagCommandOrder defines the order
	TagCommandOrder = "commandOrder"

	// TypeStart defines one category
	TypeStart = "Getting Started"

	// TypeApp defines one category
	TypeApp = "Managing Applications"

	// TypeCD defines workflow Management operations
	TypeCD = "Continuous Delivery"

	// TypeExtension defines one category
	TypeExtension = "Managing Extension"

	// TypeSystem defines one category
	TypeSystem = "Others"

	// TypePlugin defines one category used in Kubectl Plugin
	TypePlugin = "Plugin Command"
)
View Source
const (
	// TerraformProvider is the config type for terraform provider
	TerraformProvider = "terraform-provider"
	// DexConnector is the config type for dex connector
	DexConnector = "dex-connector"
	// ImageRegistry is the config type for image registry
	ImageRegistry = "image-registry"
	// HelmRepository is the config type for Helm chart repository
	HelmRepository = "helm-repository"
	// CatalogConfigDistribution is the catalog type
	CatalogConfigDistribution = "config-distribution"
)
View Source
const (
	// TerraformComponentPrefix is the prefix of component type of terraform-xxx
	TerraformComponentPrefix = "terraform-"

	// ProviderAppPrefix is the prefix of the application to create a Terraform Provider
	ProviderAppPrefix = "config-terraform-provider"
	// ProviderNamespace is the namespace of Terraform Cloud Provider
	ProviderNamespace = "default"
	// VelaCoreConfig is to mark application, config and its secret or Terraform provider lelong to a KubeVela config
	VelaCoreConfig = "velacore-config"
)
View Source
const (
	// LabelSourceOfTruth describes the source of this app
	LabelSourceOfTruth = "app.oam.dev/source-of-truth"

	// FromCR means the data source of truth is from k8s CR
	FromCR = "from-k8s-resource"
	// FromUX means the data source of truth is from velaux data store
	FromUX = "from-velaux"
	// FromInner means the data source of truth is from KubeVela inner usage
	// the configuration that don't want to be synced
	// the addon application should be synced, but set to readonly mode
	FromInner = "from-inner-system"
)
View Source
const CapabilityConfigMapNamePrefix = "schema-"

CapabilityConfigMapNamePrefix is the prefix for capability ConfigMap name

View Source
const LabelArg = "label"

LabelArg is the argument `label` of a definition

Variables

View Source
var (
	// AnnotationClusterAlias the annotation key for cluster alias
	AnnotationClusterAlias = config.MetaApiGroupName + "/cluster-alias"

	// AnnotationClusterVersion the annotation key for cluster version
	AnnotationClusterVersion = config.MetaApiGroupName + "/cluster-version"
)

DefaultFilterAnnots are annotations that won't pass to workload or trait

View Source
var DefaultKubeVelaNS = "vela-system"

DefaultKubeVelaNS defines the default KubeVela namespace in Kubernetes

Functions

func SetFlagBy

func SetFlagBy(flags *pflag.FlagSet, v Parameter)

SetFlagBy set cli flag from Parameter

Types

type CRDInfo

type CRDInfo struct {
	APIVersion string `json:"apiVersion"`
	Kind       string `json:"kind"`
}

CRDInfo record the CRD info of the Capability

type CapType

type CapType string

CapType defines the type of capability

const (
	// TypeComponentDefinition represents OAM ComponentDefinition
	TypeComponentDefinition CapType = "componentDefinition"
	// TypeWorkload represents OAM Workload
	TypeWorkload CapType = "workload"
	// TypeTrait represents OAM Trait
	TypeTrait CapType = "trait"
	// TypeScope represent OAM Scope
	TypeScope CapType = "scope"
	// TypeWorkflowStep represent OAM Workflow
	TypeWorkflowStep CapType = "workflowstep"
	// TypePolicy represent OAM Policy
	TypePolicy CapType = "policy"
)

type Capability

type Capability struct {
	Name           string             `json:"name"`
	Type           CapType            `json:"type"`
	CueTemplate    string             `json:"template,omitempty"`
	CueTemplateURI string             `json:"templateURI,omitempty"`
	Parameters     []Parameter        `json:"parameters,omitempty"`
	CrdName        string             `json:"crdName,omitempty"`
	Center         string             `json:"center,omitempty"`
	Status         string             `json:"status,omitempty"`
	Description    string             `json:"description,omitempty"`
	Example        string             `json:"example,omitempty"`
	Labels         map[string]string  `json:"labels,omitempty"`
	Category       CapabilityCategory `json:"category,omitempty"`

	// trait only
	AppliesTo []string `json:"appliesTo,omitempty"`

	// Namespace represents it's a system-level or user-level capability.
	Namespace string `json:"namespace,omitempty"`

	// Plugin Source
	Source  *Source  `json:"source,omitempty"`
	CrdInfo *CRDInfo `json:"crdInfo,omitempty"`

	// Terraform
	TerraformConfiguration string `json:"terraformConfiguration,omitempty"`
	ConfigurationType      string `json:"configurationType,omitempty"`
	Path                   string `json:"path,omitempty"`

	// KubeTemplate
	KubeTemplate  runtime.RawExtension   `json:"kubetemplate,omitempty"`
	KubeParameter []common.KubeParameter `json:"kubeparameter,omitempty"`
}

Capability defines the content of a capability

type CapabilityCategory added in v0.3.1

type CapabilityCategory string

CapabilityCategory defines the category of a capability

const (
	TerraformCategory CapabilityCategory = "terraform"

	HelmCategory CapabilityCategory = "helm"

	KubeCategory CapabilityCategory = "kube"

	CUECategory CapabilityCategory = "cue"
)

categories of capability schematic

type Chart

type Chart struct {
	Repo      string                 `json:"repo"`
	URL       string                 `json:"url"`
	Name      string                 `json:"name"`
	Namespace string                 `json:"namespace,omitempty"`
	Version   string                 `json:"version"`
	Values    map[string]interface{} `json:"values"`
}

Chart defines all necessary information to install a whole chart

type ClusterVersion added in v1.6.0

type ClusterVersion struct {
	Major      string `json:"major"`
	Minor      string `json:"minor"`
	GitVersion string `json:"gitVersion,omitempty"`
	Platform   string `json:"platform,omitempty"`
}

ClusterVersion defines the Version info of managed clusters.

var ControlPlaneClusterVersion ClusterVersion

ControlPlaneClusterVersion will be the default value of cluster info if managed cluster version get error, it will have value when vela-core started.

type ComponentManifest added in v1.1.0

type ComponentManifest struct {
	Name             string
	Namespace        string
	RevisionName     string
	RevisionHash     string
	ExternalRevision string
	// StandardWorkload contains K8s resource generated from "output" block of ComponentDefinition
	StandardWorkload *unstructured.Unstructured
	// Traits contains both resources generated from "outputs" block of ComponentDefinition and resources generated from TraitDefinition
	Traits []*unstructured.Unstructured
	Scopes []*corev1.ObjectReference

	// PackagedWorkloadResources contain all the workload related resources. It could be a Helm
	// Release, Git Repo or anything that can package and run a workload.
	PackagedWorkloadResources []*unstructured.Unstructured
	PackagedTraitResources    map[string][]*unstructured.Unstructured
}

ComponentManifest contains resources rendered from an application component.

type Config added in v1.1.4

type Config map[string]string

Config contains key/value pairs

type ConfigType added in v1.3.0

type ConfigType string

ConfigType is the type of config

type EnvMeta

type EnvMeta struct {
	Name      string `json:"name"`
	Namespace string `json:"namespace"`
	Labels    string `json:"labels"`
	Current   string `json:"current"`
}

EnvMeta stores the namespace for app environment

type Installation

type Installation struct {
	Helm Chart `json:"helm"`
}

Installation defines the installation method for this Capability, currently only helm is supported

type Parameter

type Parameter struct {
	Name     string      `json:"name"`
	Short    string      `json:"short,omitempty"`
	Required bool        `json:"required,omitempty"`
	Default  interface{} `json:"default,omitempty"`
	Usage    string      `json:"usage,omitempty"`
	Ignore   bool        `json:"ignore,omitempty"`
	Type     cue.Kind    `json:"type,omitempty"`
	Alias    string      `json:"alias,omitempty"`
	JSONType string      `json:"jsonType,omitempty"`
}

Parameter defines a parameter for cli from capability template

type RollingStatus added in v1.0.0

type RollingStatus string

RollingStatus represents the rollout phases

const (
	// RollingTemplating means that the AC is rolling and need template
	RollingTemplating RollingStatus = "RollingTemplating"
	// RollingTemplated means that the AC is rolling and it already templated
	RollingTemplated RollingStatus = "RollingTemplated"
	// RollingCompleted means that the AC is the new active revision of the application
	RollingCompleted RollingStatus = "RollingCompleted"
	// InactiveAfterRollingCompleted means that the AC is the inactive revision after the rolling is finished
	InactiveAfterRollingCompleted RollingStatus = "InactiveAfterRollingCompleted"
)

type Source

type Source struct {
	RepoName  string `json:"repoName"`
	ChartName string `json:"chartName,omitempty"`
}

Source record the source of Capability

type WorkflowContext added in v1.1.0

type WorkflowContext struct {
	AppName           string                      `json:"appName,omitempty"`
	AppRevision       string                      `json:"appRevision,omitempty"`
	WorkflowIndex     int                         `json:"workflowIndex"`
	ResourceConfigMap corev1.LocalObjectReference `json:"resourceConfigMap,omitempty"`
}

WorkflowContext is the workflow context to pass into workflow objects.

Jump to

Keyboard shortcuts

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