oam

package
v1.7.9 Latest Latest
Warning

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

Go to latest
Published: May 27, 2024 License: Apache-2.0 Imports: 9 Imported by: 0

Documentation

Overview

Package oam contains miscellaneous OAM helper types.

Index

Constants

View Source
const (
	// LabelAppName records the name of AppConfig
	LabelAppName = "app.oam.dev/name"
	// LabelAppRevision records the name of Application, it's equal to name of AppConfig created by Application
	LabelAppRevision = "app.oam.dev/appRevision"
	// LabelAppComponent records the name of Component
	LabelAppComponent = "app.oam.dev/component"
	// LabelReplicaKey records the replica key of Component
	LabelReplicaKey = "app.oam.dev/replicaKey"
	// LabelAppComponentRevision records the revision name of Component
	LabelAppComponentRevision = "app.oam.dev/revision"
	// LabelOAMResourceType whether a CR is workload or trait
	LabelOAMResourceType = "app.oam.dev/resourceType"
	// LabelAppRevisionHash records the Hash value of the application revision
	LabelAppRevisionHash = "app.oam.dev/app-revision-hash"
	// LabelAppNamespace records the namespace of Application
	LabelAppNamespace = "app.oam.dev/namespace"
	// LabelAppCluster records the cluster of Application
	LabelAppCluster = "app.oam.dev/cluster"
	// LabelAppUID records the uid of Application
	LabelAppUID = "app.oam.dev/uid"

	// WorkloadTypeLabel indicates the type of the workloadDefinition
	WorkloadTypeLabel = "workload.oam.dev/type"
	// TraitTypeLabel indicates the type of the traitDefinition
	TraitTypeLabel = "trait.oam.dev/type"
	// TraitResource indicates which resource it is when a trait is composed by multiple resources in KubeVela
	TraitResource = "trait.oam.dev/resource"

	// LabelComponentDefinitionName records the name of ComponentDefinition
	LabelComponentDefinitionName = "componentdefinition.oam.dev/name"
	// LabelTraitDefinitionName records the name of TraitDefinition
	LabelTraitDefinitionName = "trait.oam.dev/name"
	// LabelManageWorkloadTrait indicates if the trait will manage the lifecycle of the workload
	LabelManageWorkloadTrait = "trait.oam.dev/manage-workload"
	// LabelPolicyDefinitionName records the name of PolicyDefinition
	LabelPolicyDefinitionName = "policydefinition.oam.dev/name"
	// LabelWorkflowStepDefinitionName records the name of WorkflowStepDefinition
	LabelWorkflowStepDefinitionName = "workflowstepdefinition.oam.dev/name"

	// LabelControllerRevisionComponent indicate which component the revision belong to
	LabelControllerRevisionComponent = "controller.oam.dev/component"

	// LabelAddonName indicates the name of the corresponding Addon
	LabelAddonName = "addons.oam.dev/name"

	// LabelAddonAuxiliaryName indicates the name of the auxiliary resource in addon app template
	LabelAddonAuxiliaryName = "addons.oam.dev/auxiliary-name"

	// LabelAddonVersion indicates the version of the corresponding  installed Addon
	LabelAddonVersion = "addons.oam.dev/version"

	// LabelAddonRegistry indicates the name of addon-registry
	LabelAddonRegistry = "addons.oam.dev/registry"

	// LabelNamespaceOfEnvName records the env name of namespace
	LabelNamespaceOfEnvName = "namespace.oam.dev/env"

	// LabelNamespaceOfTargetName records the target name of namespace
	LabelNamespaceOfTargetName = "namespace.oam.dev/target"

	// LabelControlPlaneNamespaceUsage mark the usage of the namespace in control plane cluster.
	LabelControlPlaneNamespaceUsage = "usage.oam.dev/control-plane"

	// LabelRuntimeNamespaceUsage mark the usage of the namespace in runtime cluster.
	// A control plane cluster can also be used as runtime cluster
	LabelRuntimeNamespaceUsage = "usage.oam.dev/runtime"

	// LabelConfigType means the config type
	LabelConfigType = "config.oam.dev/type"

	// LabelProject recorde the project the resource belong to
	LabelProject = "core.oam.dev/project"

	// LabelResourceRules defines the configmap is representing the resource topology rules
	LabelResourceRules = "rules.oam.dev/resources"

	// LabelResourceRuleFormat defines the resource format of the resource topology rules
	LabelResourceRuleFormat = "rules.oam.dev/resource-format"

	// LabelControllerName indicates the controller name
	LabelControllerName = "controller.oam.dev/name"

	// LabelPreCheck indicates if the target resource is for pre-check test
	LabelPreCheck = "core.oam.dev/pre-check"
)

Label key strings. AppConfig controller will add these labels into workloads.

View Source
const (
	// VelaNamespaceUsageEnv mark the usage of the namespace is used by env.
	VelaNamespaceUsageEnv = "env"
	// VelaNamespaceUsageTarget mark the usage of the namespace is used as delivery target.
	VelaNamespaceUsageTarget = "target"
)
View Source
const (
	// ResourceTypeTrait mark this K8s Custom Resource is an OAM trait
	ResourceTypeTrait = "TRAIT"
	// ResourceTypeWorkload mark this K8s Custom Resource is an OAM workload
	ResourceTypeWorkload = "WORKLOAD"
)
View Source
const (
	// AnnotationLastAppliedConfig records the previous configuration of a
	// resource for use in a three-way diff during a patching apply
	AnnotationLastAppliedConfig = "app.oam.dev/last-applied-configuration"

	// AnnotationLastAppliedTime indicates the last applied time
	AnnotationLastAppliedTime = "app.oam.dev/last-applied-time"

	// AnnotationInplaceUpgrade indicates the workload should upgrade with the the same name
	// the name of the workload instance should not changing along with the revision
	AnnotationInplaceUpgrade = "app.oam.dev/inplace-upgrade"

	// AnnotationAppRevision indicates that the object is an application revision
	//	its controller should not try to reconcile it
	AnnotationAppRevision = "app.oam.dev/app-revision"

	// AnnotationKubeVelaVersion is used to record current KubeVela version
	AnnotationKubeVelaVersion = "oam.dev/kubevela-version"

	// AnnotationFilterAnnotationKeys is used to filter annotations passed to workload and trait, split by comma
	AnnotationFilterAnnotationKeys = "filter.oam.dev/annotation-keys"

	// AnnotationFilterLabelKeys is used to filter labels passed to workload and trait, split by comma
	AnnotationFilterLabelKeys = "filter.oam.dev/label-keys"

	// AnnotationDefinitionRevisionName is used to specify the name of DefinitionRevision in component/trait definition
	AnnotationDefinitionRevisionName = "definitionrevision.oam.dev/name"

	// AnnotationLastAppliedConfiguration is kubectl annotations for 3-way merge
	AnnotationLastAppliedConfiguration = "kubectl.kubernetes.io/last-applied-configuration"

	// AnnotationDeployVersion know the version number of the deployment.
	AnnotationDeployVersion = "app.oam.dev/deployVersion"

	// AnnotationPublishVersion is annotation that record the application workflow version.
	AnnotationPublishVersion = "app.oam.dev/publishVersion"

	// AnnotationAutoUpdate is annotation that let application auto update when it finds definition changes
	AnnotationAutoUpdate = "app.oam.dev/autoUpdate"

	// AnnotationWorkflowName specifies the workflow name for execution.
	AnnotationWorkflowName = "app.oam.dev/workflowName"

	// AnnotationAppName specifies the name for application in db.
	// Note: the annotation is only created by velaUX, please don't use it in other Source of Truth.
	AnnotationAppName = "app.oam.dev/appName"

	// AnnotationAppAlias specifies the alias for application in db.
	AnnotationAppAlias = "app.oam.dev/appAlias"

	// AnnotationControllerRequirement indicates the controller version that can process the application/definition.
	AnnotationControllerRequirement = "app.oam.dev/controller-version-require"

	// AnnotationApplicationServiceAccountName indicates the name of the ServiceAccount to use to apply Components and run Workflow.
	// ServiceAccount will be used in the local cluster only.
	AnnotationApplicationServiceAccountName = "app.oam.dev/service-account-name"

	// AnnotationApplicationUsername indicates the username of the Application to use to apply resources
	AnnotationApplicationUsername = "app.oam.dev/username"

	// AnnotationApplicationGroup indicates the group of the Application to use to apply resources
	AnnotationApplicationGroup = "app.oam.dev/group"

	// AnnotationAppSharedBy records who share the application
	AnnotationAppSharedBy = "app.oam.dev/shared-by"

	// AnnotationResourceURL records the source url of the Kubernetes object
	AnnotationResourceURL = "app.oam.dev/resource-url"

	// AnnotationIgnoreWithoutCompKey indicates the bond component.
	// Deprecated: please use AnnotationAddonDefinitionBindCompKey.
	AnnotationIgnoreWithoutCompKey = "addon.oam.dev/ignore-without-component"

	// AnnotationAddonDefinitionBondCompKey indicates the definition in addon bond component.
	AnnotationAddonDefinitionBondCompKey = "addon.oam.dev/bind-component"

	// AnnotationSkipResume annotation indicates that the resource does not need to be resumed.
	AnnotationSkipResume = "controller.core.oam.dev/skip-resume"
)
View Source
const (
	// ResourceTopologyFormatYAML mark the format of resource topology is yaml, by default, it's yaml.
	ResourceTopologyFormatYAML = "yaml"
	// ResourceTopologyFormatJSON mark the format of resource topology is json.
	ResourceTopologyFormatJSON = "json"
)
View Source
const (
	// FinalizerResourceTracker is the application finalizer for gc
	FinalizerResourceTracker = "app.oam.dev/resource-tracker-finalizer"
	// FinalizerOrphanResource indicates that the gc process should orphan managed
	// resources instead of deleting them
	FinalizerOrphanResource = "app.oam.dev/orphan-resource"
)

Variables

View Source
var (
	// SystemDefinitionNamespace global value for controller and webhook system-level namespace
	SystemDefinitionNamespace = "vela-system"

	// ApplicationControllerName means the controller is application
	ApplicationControllerName = "vela-core"
)

Functions

func GetCluster

func GetCluster(o client.Object) string

GetCluster get cluster from object

func GetControllerRequirement

func GetControllerRequirement(o client.Object) string

GetControllerRequirement get ControllerRequirement from object

func GetDeployVersion

func GetDeployVersion(o client.Object) string

GetDeployVersion get DeployVersion from object

func GetLastAppliedTime

func GetLastAppliedTime(o client.Object) time.Time

GetLastAppliedTime .

func GetPublishVersion

func GetPublishVersion(o client.Object) string

GetPublishVersion get PublishVersion from object

func SetCluster

func SetCluster(o client.Object, clusterName string)

SetCluster add cluster label to object

func SetClusterIfEmpty

func SetClusterIfEmpty(o client.Object, clusterName string)

SetClusterIfEmpty set cluster label to object if the label is empty

func SetControllerRequirement

func SetControllerRequirement(o client.Object, controllerRequirement string)

SetControllerRequirement set ControllerRequirement for object

func SetPublishVersion

func SetPublishVersion(o client.Object, publishVersion string)

SetPublishVersion set PublishVersion for object

Types

type Conditioned

type Conditioned interface {
	SetConditions(c ...condition.Condition)
	GetCondition(condition.ConditionType) condition.Condition
}

A Conditioned may have conditions set or retrieved. Conditions are typically indicate the status of both a resource and its reconciliation process.

type Finalizer

type Finalizer interface {
	AddFinalizer(ctx context.Context, obj Object) error
	RemoveFinalizer(ctx context.Context, obj Object) error
}

A Finalizer manages the finalizers on the resource.

type Object

type Object interface {
	metav1.Object
	runtime.Object
}

An Object is a Kubernetes object.

type Trait

type Trait interface {
	Object

	Conditioned
	WorkloadReferencer
}

A Trait is a type of OAM trait.

type TraitKind

type TraitKind schema.GroupVersionKind

TraitKind contains the type metadata for a kind of an OAM trait resource.

type Workload

type Workload interface {
	Object

	Conditioned
}

A Workload is a type of OAM workload.

type WorkloadKind

type WorkloadKind schema.GroupVersionKind

WorkloadKind contains the type metadata for a kind of an OAM workload resource.

type WorkloadReferencer

type WorkloadReferencer interface {
	GetWorkloadReference() corev1.ObjectReference
	SetWorkloadReference(corev1.ObjectReference)
}

A WorkloadReferencer may reference an OAM workload.

type WorkloadsReferencer

type WorkloadsReferencer interface {
	GetWorkloadReferences() []corev1.ObjectReference
	AddWorkloadReference(corev1.ObjectReference)
}

A WorkloadsReferencer may reference an OAM workload.

Directories

Path Synopsis
Package mock provides fake OAM resources for use in tests.
Package mock provides fake OAM resources for use in tests.

Jump to

Keyboard shortcuts

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