Documentation ¶
Index ¶
- Constants
- Variables
- func AddAnnotations(o *unstructured.Unstructured, annos map[string]string)
- func AddLabels(o *unstructured.Unstructured, labels map[string]string)
- func BeEquivalentToError(expected error) types.GomegaMatcher
- func ComputeHash(trait *v1alpha2.ComponentTrait) string
- func ConvertTemplateJSON2Object(in *runtime.RawExtension, specTemplate string) (types.Capability, error)
- func DeepHashObject(hasher hash.Hash, objectToWrite interface{})
- func FetchScopeDefinition(ctx context.Context, r client.Reader, dm discoverymapper.DiscoveryMapper, ...) (*v1alpha2.ScopeDefinition, error)
- func FetchTraitDefinition(ctx context.Context, r client.Reader, dm discoverymapper.DiscoveryMapper, ...) (*v1alpha2.TraitDefinition, error)
- func FetchWorkload(ctx context.Context, c client.Client, mLog logr.Logger, oamTrait oam.Trait) (*unstructured.Unstructured, error)
- func FetchWorkloadChildResources(ctx context.Context, mLog logr.Logger, r client.Reader, ...) ([]*unstructured.Unstructured, error)
- func FetchWorkloadDefinition(ctx context.Context, r client.Reader, dm discoverymapper.DiscoveryMapper, ...) (*v1alpha2.WorkloadDefinition, error)
- func GenNamespacedDefinitionName(dn string) types.NamespacedName
- func GenTraitName(componentName string, ct *v1alpha2.ComponentTrait, traitType string) string
- func GetComponent(ctx context.Context, client client.Reader, ...) (*v1alpha2.Component, string, error)
- func GetDefinitionName(dm discoverymapper.DiscoveryMapper, u *unstructured.Unstructured, ...) (string, error)
- func GetDummyTraitDefinition(u *unstructured.Unstructured) *v1alpha2.TraitDefinition
- func GetDummyWorkloadDefinition(u *unstructured.Unstructured) *v1alpha2.WorkloadDefinition
- func GetGVKFromDefinition(dm discoverymapper.DiscoveryMapper, definitionRef v1alpha2.DefinitionReference) (schema.GroupVersionKind, error)
- func GetObjectGivenGVKAndName(ctx context.Context, client client.Reader, gvk schema.GroupVersionKind, ...) (*unstructured.Unstructured, error)
- func GetObjectsGivenGVKAndLabels(ctx context.Context, cli client.Reader, gvk schema.GroupVersionKind, ...) (*unstructured.UnstructuredList, error)
- func GetScopeGVK(cli client.Client, dm discoverymapper.DiscoveryMapper, name string) (schema.GroupVersionKind, error)
- func GetTraitDefinition(ctx context.Context, cli client.Reader, traitName string) (*v1alpha2.TraitDefinition, error)
- func GetWorkloadDefinition(ctx context.Context, cli client.Reader, workitemName string) (*v1alpha2.WorkloadDefinition, error)
- func JSONMarshal(o interface{}) []byte
- func LocateParentAppConfig(ctx context.Context, client client.Client, oamObject oam.Object) (oam.Object, error)
- func MergeMapOverrideWithDst(src, dst map[string]string) map[string]string
- func Object2Map(obj interface{}) (map[string]interface{}, error)
- func Object2Unstructured(obj interface{}) (*unstructured.Unstructured, error)
- func PassLabel(parentObj oam.Object, childObj labelAnnotationObject)
- func PassLabelAndAnnotation(parentObj oam.Object, childObj labelAnnotationObject)
- func PatchCondition(ctx context.Context, r client.StatusClient, workload ConditionedObject, ...) error
- func RawExtension2Map(raw *runtime.RawExtension) (map[string]interface{}, error)
- func UnMarshalStringToTraitDefinition(s string) (*v1alpha2.TraitDefinition, error)
- func UnMarshalStringToWorkloadDefinition(s string) (*v1alpha2.WorkloadDefinition, error)
- func UnpackRevisionData(rev *appsv1.ControllerRevision) (*v1alpha2.Component, error)
- type AlreadyExistMatcher
- type ConditionedObject
- type ErrorMatcher
- type NotFoundMatcher
- type Template
Constants ¶
const ( // TraitPrefixKey is prefix of trait name TraitPrefixKey = "trait" // Dummy used for dummy definition Dummy = "dummy" // DummyTraitMessage is a message for trait which don't have definition found DummyTraitMessage = "No TraitDefinition found, all framework capabilities will work as default" // DefinitionNamespaceEnv is env key for specifying a namespace to fetch definition DefinitionNamespaceEnv = "DEFINITION_NAMESPACE" )
const ( // ErrUpdateStatus is the error while applying status. ErrUpdateStatus = "cannot apply status" // ErrLocateAppConfig is the error while locating parent application. ErrLocateAppConfig = "cannot locate the parent application configuration to emit event to" // ErrLocateWorkload is the error while locate the workload ErrLocateWorkload = "cannot find the workload that the trait is referencing to" // ErrFetchChildResources is the error while fetching workload child resources ErrFetchChildResources = "failed to fetch workload child resources" )
Variables ¶
var ( // KindDeployment is the k8s Deployment kind. KindDeployment = reflect.TypeOf(appsv1.Deployment{}).Name() // KindService is the k8s Service kind. KindService = reflect.TypeOf(corev1.Service{}).Name() // ReconcileWaitResult is the time to wait between reconciliation. ReconcileWaitResult = reconcile.Result{RequeueAfter: 30 * time.Second} )
Functions ¶
func AddAnnotations ¶
func AddAnnotations(o *unstructured.Unstructured, annos map[string]string)
AddAnnotations will merge annotations with existing ones. If any conflict keys, use new value to override existing value.
func AddLabels ¶
func AddLabels(o *unstructured.Unstructured, labels map[string]string)
AddLabels will merge labels with existing labels. If any conflict keys, use new value to override existing value.
func BeEquivalentToError ¶
func BeEquivalentToError(expected error) types.GomegaMatcher
BeEquivalentToError matches the error to take care of nil.
func ComputeHash ¶
func ComputeHash(trait *v1alpha2.ComponentTrait) string
ComputeHash returns a hash value calculated from pod template and a collisionCount to avoid hash collision. The hash will be safe encoded to avoid bad words.
func ConvertTemplateJSON2Object ¶ added in v0.3.3
func ConvertTemplateJSON2Object(in *runtime.RawExtension, specTemplate string) (types.Capability, error)
ConvertTemplateJSON2Object convert spec.extension to object
func DeepHashObject ¶
DeepHashObject writes specified object to hash using the spew library which follows pointers and prints actual values of the nested objects ensuring the hash does not change when a pointer changes.
func FetchScopeDefinition ¶
func FetchScopeDefinition(ctx context.Context, r client.Reader, dm discoverymapper.DiscoveryMapper, scope *unstructured.Unstructured) (*v1alpha2.ScopeDefinition, error)
FetchScopeDefinition fetch corresponding scopeDefinition given a scope
func FetchTraitDefinition ¶
func FetchTraitDefinition(ctx context.Context, r client.Reader, dm discoverymapper.DiscoveryMapper, trait *unstructured.Unstructured) (*v1alpha2.TraitDefinition, error)
FetchTraitDefinition fetch corresponding traitDefinition given a trait
func FetchWorkload ¶
func FetchWorkload(ctx context.Context, c client.Client, mLog logr.Logger, oamTrait oam.Trait) ( *unstructured.Unstructured, error)
FetchWorkload fetch the workload that a trait refers to
func FetchWorkloadChildResources ¶
func FetchWorkloadChildResources(ctx context.Context, mLog logr.Logger, r client.Reader, dm discoverymapper.DiscoveryMapper, workload *unstructured.Unstructured) ([]*unstructured.Unstructured, error)
FetchWorkloadChildResources fetch corresponding child resources given a workload
func FetchWorkloadDefinition ¶
func FetchWorkloadDefinition(ctx context.Context, r client.Reader, dm discoverymapper.DiscoveryMapper, workload *unstructured.Unstructured) (*v1alpha2.WorkloadDefinition, error)
FetchWorkloadDefinition fetch corresponding workloadDefinition given a workload
func GenNamespacedDefinitionName ¶
func GenNamespacedDefinitionName(dn string) types.NamespacedName
GenNamespacedDefinitionName generate definition name with customized namespace
func GenTraitName ¶
func GenTraitName(componentName string, ct *v1alpha2.ComponentTrait, traitType string) string
GenTraitName generate trait name
func GetComponent ¶
func GetComponent(ctx context.Context, client client.Reader, acc v1alpha2.ApplicationConfigurationComponent, namespace string) (*v1alpha2.Component, string, error)
GetComponent will get Component and RevisionName by AppConfigComponent
func GetDefinitionName ¶
func GetDefinitionName(dm discoverymapper.DiscoveryMapper, u *unstructured.Unstructured, typeLabel string) (string, error)
GetDefinitionName return the Definition name of any resources the format of the definition of a resource is <kind plurals>.<group> Now the definition name of a resource could also be defined as `definition.oam.dev/name` in `metadata.annotations` typeLabel specified which Definition it is, if specified, will directly get definition from label.
func GetDummyTraitDefinition ¶
func GetDummyTraitDefinition(u *unstructured.Unstructured) *v1alpha2.TraitDefinition
GetDummyTraitDefinition will generate a dummy TraitDefinition for CustomResource that won't block app from running. OAM runtime will report warning if they got this dummy definition.
func GetDummyWorkloadDefinition ¶
func GetDummyWorkloadDefinition(u *unstructured.Unstructured) *v1alpha2.WorkloadDefinition
GetDummyWorkloadDefinition will generate a dummy WorkloadDefinition for CustomResource that won't block app from running. OAM runtime will report warning if they got this dummy definition.
func GetGVKFromDefinition ¶
func GetGVKFromDefinition(dm discoverymapper.DiscoveryMapper, definitionRef v1alpha2.DefinitionReference) (schema.GroupVersionKind, error)
GetGVKFromDefinition help get Group Version Kind from DefinitionReference
func GetObjectGivenGVKAndName ¶ added in v0.3.1
func GetObjectGivenGVKAndName(ctx context.Context, client client.Reader, gvk schema.GroupVersionKind, namespace, name string) (*unstructured.Unstructured, error)
GetObjectGivenGVKAndName fetches the kubernetes object given its gvk and name
func GetObjectsGivenGVKAndLabels ¶ added in v0.3.3
func GetObjectsGivenGVKAndLabels(ctx context.Context, cli client.Reader, gvk schema.GroupVersionKind, namespace string, labels map[string]string) (*unstructured.UnstructuredList, error)
GetObjectsGivenGVKAndLabels fetches the kubernetes object given its gvk and labels by list API
func GetScopeGVK ¶ added in v0.3.1
func GetScopeGVK(cli client.Client, dm discoverymapper.DiscoveryMapper, name string) (schema.GroupVersionKind, error)
GetScopeGVK Get ScopeDefinition
func GetTraitDefinition ¶ added in v0.3.1
func GetTraitDefinition(ctx context.Context, cli client.Reader, traitName string) (*v1alpha2.TraitDefinition, error)
GetTraitDefinition Get TraitDefinition
func GetWorkloadDefinition ¶ added in v0.3.1
func GetWorkloadDefinition(ctx context.Context, cli client.Reader, workitemName string) (*v1alpha2.WorkloadDefinition, error)
GetWorkloadDefinition Get WorkloadDefinition
func LocateParentAppConfig ¶
func LocateParentAppConfig(ctx context.Context, client client.Client, oamObject oam.Object) (oam.Object, error)
LocateParentAppConfig locate the parent application configuration object
func MergeMapOverrideWithDst ¶
MergeMapOverrideWithDst merges two could be nil maps. If any conflicts, override src with dst.
func Object2Map ¶
Object2Map turn the Object to a map
func Object2Unstructured ¶
func Object2Unstructured(obj interface{}) (*unstructured.Unstructured, error)
Object2Unstructured convert an object to an unstructured struct
func PassLabelAndAnnotation ¶
PassLabelAndAnnotation passes through labels and annotation objectMeta from the parent to the child object, when annotation or labels has conflicts, the parentObj will override the childObj.
func PatchCondition ¶
func PatchCondition(ctx context.Context, r client.StatusClient, workload ConditionedObject, condition ...cpv1alpha1.Condition) error
PatchCondition condition for a conditioned object
func RawExtension2Map ¶ added in v0.3.0
func RawExtension2Map(raw *runtime.RawExtension) (map[string]interface{}, error)
RawExtension2Map will convert rawExtension to map
func UnMarshalStringToTraitDefinition ¶ added in v0.3.1
func UnMarshalStringToTraitDefinition(s string) (*v1alpha2.TraitDefinition, error)
UnMarshalStringToTraitDefinition parse a string to a traitDefinition object
func UnMarshalStringToWorkloadDefinition ¶ added in v0.3.1
func UnMarshalStringToWorkloadDefinition(s string) (*v1alpha2.WorkloadDefinition, error)
UnMarshalStringToWorkloadDefinition parse a string to a workloadDefinition object
func UnpackRevisionData ¶
func UnpackRevisionData(rev *appsv1.ControllerRevision) (*v1alpha2.Component, error)
UnpackRevisionData will unpack revision.Data to Component
Types ¶
type AlreadyExistMatcher ¶
type AlreadyExistMatcher struct { }
AlreadyExistMatcher matches the error to be already exist
func (AlreadyExistMatcher) FailureMessage ¶
func (matcher AlreadyExistMatcher) FailureMessage(actual interface{}) (message string)
FailureMessage builds an error message.
func (AlreadyExistMatcher) Match ¶
func (matcher AlreadyExistMatcher) Match(actual interface{}) (success bool, err error)
Match matches error.
func (AlreadyExistMatcher) NegatedFailureMessage ¶
func (matcher AlreadyExistMatcher) NegatedFailureMessage(actual interface{}) (message string)
NegatedFailureMessage builds an error message.
type ConditionedObject ¶
type ConditionedObject interface { oam.Object oam.Conditioned }
A ConditionedObject is an Object type with condition field
type ErrorMatcher ¶
type ErrorMatcher struct {
ExpectedError error
}
ErrorMatcher matches errors.
func (ErrorMatcher) FailureMessage ¶
func (matcher ErrorMatcher) FailureMessage(actual interface{}) (message string)
FailureMessage builds an error message.
func (ErrorMatcher) Match ¶
func (matcher ErrorMatcher) Match(actual interface{}) (success bool, err error)
Match matches an error.
func (ErrorMatcher) NegatedFailureMessage ¶
func (matcher ErrorMatcher) NegatedFailureMessage(actual interface{}) (message string)
NegatedFailureMessage builds an error message.
type NotFoundMatcher ¶
type NotFoundMatcher struct { }
NotFoundMatcher matches the error to be not found.
func (NotFoundMatcher) FailureMessage ¶
func (matcher NotFoundMatcher) FailureMessage(actual interface{}) (message string)
FailureMessage builds an error message.
func (NotFoundMatcher) Match ¶
func (matcher NotFoundMatcher) Match(actual interface{}) (success bool, err error)
Match matches the api error.
func (NotFoundMatcher) NegatedFailureMessage ¶
func (matcher NotFoundMatcher) NegatedFailureMessage(actual interface{}) (message string)
NegatedFailureMessage builds an error message.
type Template ¶ added in v0.3.1
type Template struct { TemplateStr string Health string CustomStatus string CapabilityCategory types.CapabilityCategory }
Template includes its string, health and its category
func LoadTemplate ¶ added in v0.3.1
LoadTemplate Get template according to key
func NewTemplate ¶ added in v0.3.3
func NewTemplate(template string, status *v1alpha2.Status, raw *runtime.RawExtension) (*Template, error)
NewTemplate will create CUE template for inner AbstractEngine using.