Documentation
¶
Overview ¶
Package oam contains miscellaneous OAM helper types.
Index ¶
- Constants
- Variables
- func GetCluster(o client.Object) string
- func GetControllerRequirement(o client.Object) string
- func GetDeployVersion(o client.Object) string
- func GetLastAppliedTime(o client.Object) time.Time
- func GetPublishVersion(o client.Object) string
- func SetCluster(o client.Object, clusterName string)
- func SetControllerRequirement(o client.Object, controllerRequirement string)
- func SetPublishVersion(o client.Object, publishVersion string)
- type Conditioned
- type Finalizer
- type Object
- type Scope
- type ScopeKind
- type Trait
- type TraitKind
- type Workload
- type WorkloadKind
- type WorkloadReferencer
- type WorkloadsReferencer
Constants ¶
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"
// LabelAppDeployment records the name of AppDeployment.
LabelAppDeployment = "app.oam.dev/appDeployment"
// LabelAppComponent records the name of Component
LabelAppComponent = "app.oam.dev/component"
// 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"
// LabelComponentRevisionHash records the hash value of a component
LabelComponentRevisionHash = "app.oam.dev/component-revision-hash"
// LabelAddonsName records the name of initializer stored in configMap
LabelAddonsName = "addons.oam.dev/type"
// 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"
// LabelAppEnv records the name of Env
LabelAppEnv = "envbinding.oam.dev/env"
// 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"
)
Label key strings. AppConfig controller will add these labels into workloads.
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"
)
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"
)
const (
// AnnotationAppGeneration records the generation of AppConfig
AnnotationAppGeneration = "app.oam.dev/generation"
// 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"
// AnnotationAppRollout indicates that the application is still rolling out
// the application controller should treat it differently
AnnotationAppRollout = "app.oam.dev/rollout-template"
// 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"
// AnnotationRollingComponent indicates that the component is rolling out
// this is to enable any concerned controllers to handle the first component apply logic differently
// the value of the annotation is a list of component name of all the new component
AnnotationRollingComponent = "app.oam.dev/rolling-components"
// AnnotationAppRevision indicates that the object is an application revision
// its controller should not try to reconcile it
AnnotationAppRevision = "app.oam.dev/app-revision"
// AnnotationAppRevisionOnly the Application update should only generate revision,
// not any appContexts or components.
AnnotationAppRevisionOnly = "app.oam.dev/revision-only"
// AnnotationWorkflowContext is used to pass in the workflow context marshalled in json format.
AnnotationWorkflowContext = "app.oam.dev/workflow-context"
// 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"
// AnnotationSkipGC is used to tell application to skip gc workload/trait
AnnotationSkipGC = "app.oam.dev/skipGC"
// AnnotationDefinitionRevisionName is used to specify the name of DefinitionRevision in component/trait definition
AnnotationDefinitionRevisionName = "definitionrevision.oam.dev/name"
// AnnotationResourceTrackerLifeLong is used to identify life-long resourcetracker which should only be recycled when application is deleted
AnnotationResourceTrackerLifeLong = "resourcetracker.oam.dev/life-long"
// AnnotationAddonsName records the name of initializer stored in configMap
AnnotationAddonsName = "addons.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"
// AnnotationWorkloadGVK indicates the managed workload's GVK by trait
AnnotationWorkloadGVK = "trait.oam.dev/workload-gvk"
// AnnotationWorkloadName indicates the managed workload's name by trait
AnnotationWorkloadName = "trait.oam.dev/workload-name"
// 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"
)
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"
)
Variables ¶
var (
// SystemDefinitonNamespace golbal value for controller and webhook systemlevel namespace
SystemDefinitonNamespace string = "vela-system"
// ApplicationControllerName means the controller is application
ApplicationControllerName string = "vela-core"
)
Functions ¶
func GetCluster ¶ added in v1.2.0
func GetCluster(o client.Object) string
GetCluster get cluster from object
func GetControllerRequirement ¶ added in v1.3.1
func GetControllerRequirement(o client.Object) string
GetControllerRequirement get ControllerRequirement from object
func GetDeployVersion ¶ added in v1.3.1
func GetDeployVersion(o client.Object) string
GetDeployVersion get DeployVersion from object
func GetLastAppliedTime ¶ added in v1.3.1
func GetLastAppliedTime(o client.Object) time.Time
GetLastAppliedTime .
func GetPublishVersion ¶ added in v1.3.0
func GetPublishVersion(o client.Object) string
GetPublishVersion get PublishVersion from object
func SetCluster ¶ added in v1.2.0
func SetCluster(o client.Object, clusterName string)
SetCluster add cluster label to object
func SetControllerRequirement ¶ added in v1.3.1
func SetControllerRequirement(o client.Object, controllerRequirement string)
SetControllerRequirement set ControllerRequirement for object
func SetPublishVersion ¶ added in v1.3.1
func SetPublishVersion(o client.Object, publishVersion string)
SetPublishVersion set PublishVersion for object
Types ¶
type Conditioned ¶ added in v0.2.0
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 ¶ added in v0.2.0
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 ¶ added in v0.2.0
type Object interface {
metav1.Object
runtime.Object
}
An Object is a Kubernetes object.
type Scope ¶ added in v0.2.0
type Scope interface {
Object
Conditioned
WorkloadsReferencer
}
A Scope is a type of OAM scope.
type ScopeKind ¶ added in v0.2.0
type ScopeKind schema.GroupVersionKind
ScopeKind contains the type metadata for a kind of an OAM scope resource.
type Trait ¶ added in v0.2.0
type Trait interface {
Object
Conditioned
WorkloadReferencer
}
A Trait is a type of OAM trait.
type TraitKind ¶ added in v0.2.0
type TraitKind schema.GroupVersionKind
TraitKind contains the type metadata for a kind of an OAM trait resource.
type Workload ¶ added in v0.2.0
type Workload interface {
Object
Conditioned
}
A Workload is a type of OAM workload.
type WorkloadKind ¶ added in v0.2.0
type WorkloadKind schema.GroupVersionKind
WorkloadKind contains the type metadata for a kind of an OAM workload resource.
type WorkloadReferencer ¶ added in v0.2.0
type WorkloadReferencer interface {
GetWorkloadReference() corev1.ObjectReference
SetWorkloadReference(corev1.ObjectReference)
}
A WorkloadReferencer may reference an OAM workload.
type WorkloadsReferencer ¶ added in v0.2.0
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. |