Documentation
¶
Index ¶
- Constants
- Variables
- func BuildFinalizersMergePatch(finalizers []string) []byte
- func CapsuleFieldOwners(obj *unstructured.Unstructured, prefix string) map[string]struct{}
- func ControllerFieldOwner() string
- func ControllerFieldOwnerPrefix(fieldowner string) string
- func FilterFinalizers(finalizers []string, ignored map[string]struct{}) (remaining []string, removed bool)
- func FreezeLabelRemove(obj client.Object)
- func FreezeLabelTriggers(obj client.Object) bool
- func GetLooseOwnerReference(obj client.Object) metav1.OwnerReference
- func HasExactlyCapsuleOwners(obj *unstructured.Unstructured, prefix string, allowed []string) bool
- func HasLooseOwnerReference(obj client.Object, owner metav1.OwnerReference) bool
- func IsStatusConditionTrue(conditions ConditionList, conditionType string) bool
- func LabelSelectorKeys(sel *metav1.LabelSelector) map[string]struct{}
- func LabelsChanged(keys []string, oldLabels, newLabels map[string]string) bool
- func LabelsChangedUnstructured(oldObj, newObj unstructured.Unstructured) bool
- func LooseOwnerReferenceEqual(a, b metav1.OwnerReference) bool
- func NameForManagedPoolResourceQuota(name string) string
- func NameForManagedRoleBindings(hash string) string
- func NameForManagedRuleStatus() string
- func OwnerPromotionLabelRemove(obj client.Object)
- func OwnerPromotionLabelTriggers(obj client.Object) bool
- func ReleaseAnnotationRemove(obj client.Object)
- func ReleaseAnnotationTriggers(obj client.Object) bool
- func RemoveLooseOwnerReference(obj client.Object, owner metav1.OwnerReference)
- func RemoveLooseOwnerReferenceForKindExceptGiven(obj client.Object, owner metav1.OwnerReference)
- func RemoveReconcileTriggerAnnotation(obj client.Object)
- func ResourceControllerFieldOwnerPrefix() string
- func SetFilteredLabels(obj *unstructured.Unstructured, filter map[string]struct{})
- func SetLooseOwnerReference(obj client.Object, owner metav1.OwnerReference) error
- func ShouldSkipObjectByRules(obj *metav1.PartialObjectMetadata, rules []ObjectSkipRule) bool
- func TriggerRequestReconcileAnnotation(ctx context.Context, c client.Client, gvk schema.GroupVersionKind, ...) error
- type Condition
- func NewAssignedCondition(obj client.Object) Condition
- func NewBoundCondition(obj client.Object) Condition
- func NewCordonedCondition(obj client.Object) Condition
- func NewExhaustedCondition(obj client.Object) Condition
- func NewReadyCondition(obj client.Object) Condition
- func NewReadyConditionReconcilingReason(obj client.Object) Condition
- func NewTerminatingConditionReason(obj client.Object) Condition
- type ConditionList
- func (in ConditionList) DeepCopy() ConditionList
- func (in ConditionList) DeepCopyInto(out *ConditionList)
- func (c *ConditionList) GetConditionByType(conditionType string) *Condition
- func (c *ConditionList) RemoveConditionByType(condition string)
- func (c *ConditionList) UpdateConditionByType(condition Condition)
- func (c *ConditionList) UpdateConditionByTypeWithStatus(condition Condition) (updated bool)
- type LocalObjectReference
- type LocalRFC1123ObjectReference
- type LocalRFC1123ObjectReferenceWithUID
- type ManagedMetadata
- type NamespacedObjectReference
- type NamespacedObjectReferenceWithNamespace
- type NamespacedObjectWithUIDReference
- type NamespacedRFC1123ObjectReference
- type NamespacedRFC1123ObjectReferenceWithNamespace
- type NamespacedRFC1123ObjectReferenceWithNamespaceWithUID
- type ObjectReferenceStatus
- type ObjectReferenceStatusCondition
- type ObjectSkipRule
- type ProcessedItems
- func (p *ProcessedItems) GetItem(ref gvk.ResourceID) *ObjectReferenceStatus
- func (p ProcessedItems) InScope(tenant, namespace string) ProcessedItems
- func (p *ProcessedItems) RemoveItem(item ObjectReferenceStatus)
- func (p *ProcessedItems) ReplaceScope(tenant, namespace string, items ProcessedItems)
- func (p ProcessedItems) SortDeterministic()
- func (p *ProcessedItems) UpdateItem(item ObjectReferenceStatus)
- type RFC1123Name
- type RFC1123SubdomainName
Constants ¶
const ( ReleaseAnnotation = "projectcapsule.dev/release" ReleaseAnnotationTrigger = "true" ReconcileAnnotation = "reconcile.projectcapsule.dev/requestedAt" AvailableIngressClassesAnnotation = "capsule.clastix.io/ingress-classes" AvailableIngressClassesRegexpAnnotation = "capsule.clastix.io/ingress-classes-regexp" AvailableStorageClassesAnnotation = "capsule.clastix.io/storage-classes" AvailableStorageClassesRegexpAnnotation = "capsule.clastix.io/storage-classes-regexp" AllowedRegistriesAnnotation = "capsule.clastix.io/allowed-registries" AllowedRegistriesRegexpAnnotation = "capsule.clastix.io/allowed-registries-regexp" ForbiddenNamespaceLabelsAnnotation = "capsule.clastix.io/forbidden-namespace-labels" ForbiddenNamespaceLabelsRegexpAnnotation = "capsule.clastix.io/forbidden-namespace-labels-regexp" ForbiddenNamespaceAnnotationsAnnotation = "capsule.clastix.io/forbidden-namespace-annotations" ForbiddenNamespaceAnnotationsRegexpAnnotation = "capsule.clastix.io/forbidden-namespace-annotations-regexp" ProtectedTenantAnnotation = "capsule.clastix.io/protected" ResourceQuotaAnnotationPrefix = "quota.resources.capsule.clastix.io" ResourceUsedAnnotationPrefix = "used.resources.capsule.clastix.io" // Audit Annotations. AuditRequestUID = "audit.projectcapsule.dev/request-uid" AuditUsername = "audit.projectcapsule.dev/username" AuditRuleSetName = "audit.projectcapsule.dev/rule-set" AuditRuleSetAction = "audit.projectcapsule.dev/rule-action" )
const ( // ReadyCondition indicates the resource is ready and fully reconciled. ReadyCondition string = "Ready" CordonedCondition string = "Cordoned" TerminatingCondition string = "Terminating" NotReadyCondition string = "NotReady" AssignedCondition string = "Assigned" BoundCondition string = "Bound" ExhaustedCondition string = "Exhausted" // FailedReason indicates a condition or event observed a failure (Claim Rejected). SucceededReason string = "Succeeded" FailedReason string = "Failed" ActiveReason string = "Active" CordonedReason string = "Cordoned" TerminatingReason string = "Terminating" ReconcilingReason string = "Reconciling" PoolExhaustedReason string = "PoolExhausted" QueueExhaustedReason string = "QueueExhausted" NamespaceExhaustedReason string = "NamespaceExhausted" NoExhaustionsReason string = "NoExhaustions" InUseReason string = "InUse" UnusedReason string = "Unused" PendingUnmanagedContentReason string = "PendingUnmanagedContent" )
const ( ValueTrue string = "true" ValueFalse string = "false" ValueController string = "controller" ValueControllerResources string = "resources" ValueControllerReplications string = "replications" )
const ( ControllerFinalizer = "controller.projectcapsule.dev/finalize" LegacyResourceFinalizer = "capsule.clastix.io/resources" )
const ( ResourcesLabel = "capsule.clastix.io/resources" TenantNameLabel = "kubernetes.io/metadata.name" TenantLabel = "capsule.clastix.io/tenant" NewTenantLabel = "projectcapsule.dev/tenant" ResourcePoolLabel = "projectcapsule.dev/pool" GlobalResourceQuotaLabel = "projectcapsule.dev/global-resource-quota" FreezeLabel = "projectcapsule.dev/freeze" OwnerPromotionLabel = "owner.projectcapsule.dev/promote" ServiceAccountPromotionLabel = "projectcapsule.dev/promote" CordonedLabel = "projectcapsule.dev/cordoned" CapsuleNameLabel = "projectcapsule.dev/name" CreatedByCapsuleLabel = "projectcapsule.dev/created-by" CustomResourcesLabel = "projectcapsule.dev/custom-resources" ResourceOriginLabel = "projectcapsule.dev/resource-origin" NewManagedByCapsuleLabel = "projectcapsule.dev/managed-by" ManagedByCapsuleLabel = "capsule.clastix.io/managed-by" LimitRangeLabel = "capsule.clastix.io/limit-range" NetworkPolicyLabel = "capsule.clastix.io/network-policy" ResourceQuotaLabel = "capsule.clastix.io/resource-quota" RuleQuotaLabel = "projectcapsule.dev/rule-quota" RolebindingLabel = "capsule.clastix.io/role-binding" )
const ( FieldManagerCapsulePrefix = "projectcapsule.dev" FieldManagerCapsuleController = "projectcapsule.dev/controller" )
Variables ¶
var EmptyFinalizersMergePatch = []byte(`{"metadata":{"finalizers":[]}}`)
var WithCapsuleManagedResourcesLabelSelector = func() string { req, _ := labels.NewRequirement( NewManagedByCapsuleLabel, selection.In, []string{ ValueController, }, ) return labels.NewSelector().Add(*req).String() }()
var WithoutCapsuleManagedResourcesLabelSelector = func() string { req, _ := labels.NewRequirement( NewManagedByCapsuleLabel, selection.NotIn, []string{ ValueController, }, ) return labels.NewSelector().Add(*req).String() }()
Functions ¶
func BuildFinalizersMergePatch ¶ added in v0.13.0
func CapsuleFieldOwners ¶ added in v0.13.0
func CapsuleFieldOwners(obj *unstructured.Unstructured, prefix string) map[string]struct{}
CapsuleFieldOwners returns the set of managers that start with the Capsule prefix.
func ControllerFieldOwner ¶
func ControllerFieldOwner() string
func FilterFinalizers ¶ added in v0.13.0
func FreezeLabelRemove ¶
func FreezeLabelTriggers ¶
func GetLooseOwnerReference ¶ added in v0.13.0
func GetLooseOwnerReference( obj client.Object, ) metav1.OwnerReference
func HasExactlyCapsuleOwners ¶ added in v0.13.0
func HasExactlyCapsuleOwners(obj *unstructured.Unstructured, prefix string, allowed []string) bool
func HasLooseOwnerReference ¶
func HasLooseOwnerReference( obj client.Object, owner metav1.OwnerReference, ) bool
If not returns false.
func IsStatusConditionTrue ¶ added in v0.13.0
func IsStatusConditionTrue(conditions ConditionList, conditionType string) bool
func LabelSelectorKeys ¶ added in v0.13.0
func LabelSelectorKeys(sel *metav1.LabelSelector) map[string]struct{}
Collect all mentioned keys from a LabelSelector.
func LabelsChanged ¶ added in v0.13.0
LabelsChanged indicates if the given label keys have changed.
func LabelsChangedUnstructured ¶ added in v0.13.0
func LabelsChangedUnstructured(oldObj, newObj unstructured.Unstructured) bool
func LooseOwnerReferenceEqual ¶ added in v0.13.0
func LooseOwnerReferenceEqual(a, b metav1.OwnerReference) bool
func NameForManagedPoolResourceQuota ¶ added in v0.13.0
func NameForManagedRoleBindings ¶ added in v0.13.0
func NameForManagedRuleStatus ¶ added in v0.13.0
func NameForManagedRuleStatus() string
func ReleaseAnnotationRemove ¶
func RemoveLooseOwnerReference ¶
func RemoveLooseOwnerReference( obj client.Object, owner metav1.OwnerReference, )
Removes a Loose Ownerreference based on UID.
func RemoveLooseOwnerReferenceForKindExceptGiven ¶ added in v0.13.0
func RemoveLooseOwnerReferenceForKindExceptGiven( obj client.Object, owner metav1.OwnerReference, )
RemoveLooseOwnerReferenceForKindExceptGiven removes all ownerReferences that have the same APIVersion and Kind as the given owner, except the given owner itself (matched by UID). OwnerReferences with different APIVersion/Kind are preserved.
If the given owner is not present on the object, all ownerReferences with that APIVersion/Kind are removed.
func RemoveReconcileTriggerAnnotation ¶ added in v0.13.5
func ResourceControllerFieldOwnerPrefix ¶ added in v0.13.0
func ResourceControllerFieldOwnerPrefix() string
func SetFilteredLabels ¶ added in v0.13.0
func SetFilteredLabels(obj *unstructured.Unstructured, filter map[string]struct{})
SetFilteredLabels Removes given labels by key.
func SetLooseOwnerReference ¶
func SetLooseOwnerReference(obj client.Object, owner metav1.OwnerReference) error
Adds an ownerreferences, which does not delete the object when the owner is deleted.
func ShouldSkipObjectByRules ¶ added in v0.13.8
func ShouldSkipObjectByRules( obj *metav1.PartialObjectMetadata, rules []ObjectSkipRule, ) bool
func TriggerRequestReconcileAnnotation ¶ added in v0.13.0
func TriggerRequestReconcileAnnotation( ctx context.Context, c client.Client, gvk schema.GroupVersionKind, key types.NamespacedName, ) error
Types ¶
type Condition ¶
+kubebuilder:object:generate=true
func NewAssignedCondition ¶
func NewBoundCondition ¶
func NewCordonedCondition ¶
func NewExhaustedCondition ¶ added in v0.13.0
func NewReadyCondition ¶
func NewReadyConditionReconcilingReason ¶ added in v0.13.0
func NewTerminatingConditionReason ¶ added in v0.13.0
func (*Condition) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Condition.
func (*Condition) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*Condition) UpdateCondition ¶
Disregards fields like LastTransitionTime and Version, which are not relevant for the API.
type ConditionList ¶
type ConditionList []Condition
func (ConditionList) DeepCopy ¶
func (in ConditionList) DeepCopy() ConditionList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ConditionList.
func (ConditionList) DeepCopyInto ¶
func (in ConditionList) DeepCopyInto(out *ConditionList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*ConditionList) GetConditionByType ¶
func (c *ConditionList) GetConditionByType(conditionType string) *Condition
Adds a condition by type.
func (*ConditionList) RemoveConditionByType ¶
func (c *ConditionList) RemoveConditionByType(condition string)
Removes a condition by type.
func (*ConditionList) UpdateConditionByType ¶
func (c *ConditionList) UpdateConditionByType(condition Condition)
Adds a condition by type.
func (*ConditionList) UpdateConditionByTypeWithStatus ¶ added in v0.13.0
func (c *ConditionList) UpdateConditionByTypeWithStatus(condition Condition) (updated bool)
type LocalObjectReference ¶ added in v0.13.0
type LocalObjectReference struct {
// Name of the referent.
// +required
Name string `json:"name"`
}
LocalObjectReference contains enough information to locate the referenced Kubernetes resource object. +kubebuilder:object:generate=true
func (*LocalObjectReference) DeepCopy ¶ added in v0.13.0
func (in *LocalObjectReference) DeepCopy() *LocalObjectReference
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LocalObjectReference.
func (*LocalObjectReference) DeepCopyInto ¶ added in v0.13.0
func (in *LocalObjectReference) DeepCopyInto(out *LocalObjectReference)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type LocalRFC1123ObjectReference ¶ added in v0.13.0
type LocalRFC1123ObjectReference struct {
// Name of the referent.
// +required
Name RFC1123Name `json:"name"`
}
LocalObjectReference contains enough information to locate the referenced Kubernetes resource object. +kubebuilder:object:generate=true
func (*LocalRFC1123ObjectReference) DeepCopy ¶ added in v0.13.0
func (in *LocalRFC1123ObjectReference) DeepCopy() *LocalRFC1123ObjectReference
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LocalRFC1123ObjectReference.
func (*LocalRFC1123ObjectReference) DeepCopyInto ¶ added in v0.13.0
func (in *LocalRFC1123ObjectReference) DeepCopyInto(out *LocalRFC1123ObjectReference)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type LocalRFC1123ObjectReferenceWithUID ¶ added in v0.13.0
type LocalRFC1123ObjectReferenceWithUID struct {
// UID of the tracked Tenant to pin point tracking
// +required
k8stypes.UID `json:"uid,omitempty" protobuf:"bytes,5,opt,name=uid"`
// Name of the referent.
// +required
Name RFC1123Name `json:"name,omitempty"`
}
type ManagedMetadata ¶ added in v0.13.8
type ManagedMetadata struct {
// contains filtered or unexported fields
}
func NewManagedMetadata ¶ added in v0.13.8
func NewManagedMetadata( labels []string, annotations []string, ) ManagedMetadata
func (ManagedMetadata) HasAnnotation ¶ added in v0.13.8
func (m ManagedMetadata) HasAnnotation(key string) bool
func (ManagedMetadata) HasLabel ¶ added in v0.13.8
func (m ManagedMetadata) HasLabel(key string) bool
type NamespacedObjectReference ¶ added in v0.13.0
type NamespacedObjectReference struct {
// Name of the referent.
// +required
Name string `json:"name"`
// Namespace of the referent, when not specified it acts as LocalObjectReference.
// +optional
Namespace RFC1123SubdomainName `json:"namespace,omitempty"`
}
NamespacedObjectReference contains enough information to locate the referenced Kubernetes resource object in any namespace. +kubebuilder:object:generate=true
func (*NamespacedObjectReference) DeepCopy ¶ added in v0.13.0
func (in *NamespacedObjectReference) DeepCopy() *NamespacedObjectReference
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NamespacedObjectReference.
func (*NamespacedObjectReference) DeepCopyInto ¶ added in v0.13.0
func (in *NamespacedObjectReference) DeepCopyInto(out *NamespacedObjectReference)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type NamespacedObjectReferenceWithNamespace ¶ added in v0.13.0
type NamespacedObjectReferenceWithNamespace struct {
// Name of the referent.
// +required
Name string `json:"name"`
// Namespace of the referent.
// +required
Namespace RFC1123SubdomainName `json:"namespace,omitempty"`
}
NamespacedObjectReference contains enough information to locate the referenced Kubernetes resource object in any namespace. But the namespace is required. +kubebuilder:object:generate=true
func (*NamespacedObjectReferenceWithNamespace) DeepCopy ¶ added in v0.13.0
func (in *NamespacedObjectReferenceWithNamespace) DeepCopy() *NamespacedObjectReferenceWithNamespace
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NamespacedObjectReferenceWithNamespace.
func (*NamespacedObjectReferenceWithNamespace) DeepCopyInto ¶ added in v0.13.0
func (in *NamespacedObjectReferenceWithNamespace) DeepCopyInto(out *NamespacedObjectReferenceWithNamespace)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type NamespacedObjectWithUIDReference ¶ added in v0.13.0
type NamespacedObjectWithUIDReference struct {
// UID of the tracked Tenant to pin point tracking
// +required
k8stypes.UID `json:"uid,omitempty" protobuf:"bytes,5,opt,name=uid"`
// Name of the referent.
// +required
Name string `json:"name"`
// Namespace of the referent, when not specified it acts as LocalObjectReference.
// +optional
Namespace RFC1123SubdomainName `json:"namespace,omitempty"`
}
NamespacedObjectReference contains enough information to locate the referenced Kubernetes resource object in any namespace. +kubebuilder:object:generate=true
func (*NamespacedObjectWithUIDReference) DeepCopy ¶ added in v0.13.0
func (in *NamespacedObjectWithUIDReference) DeepCopy() *NamespacedObjectWithUIDReference
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NamespacedObjectWithUIDReference.
func (*NamespacedObjectWithUIDReference) DeepCopyInto ¶ added in v0.13.0
func (in *NamespacedObjectWithUIDReference) DeepCopyInto(out *NamespacedObjectWithUIDReference)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type NamespacedRFC1123ObjectReference ¶ added in v0.13.0
type NamespacedRFC1123ObjectReference struct {
// Name of the referent.
// +required
Name RFC1123Name `json:"name"`
// Namespace of the referent, when not specified it acts as LocalObjectReference.
// +optional
Namespace RFC1123SubdomainName `json:"namespace,omitempty"`
}
NamespacedObjectReference contains enough information to locate the referenced Kubernetes resource object in any namespace. +kubebuilder:object:generate=true
func (*NamespacedRFC1123ObjectReference) DeepCopy ¶ added in v0.13.0
func (in *NamespacedRFC1123ObjectReference) DeepCopy() *NamespacedRFC1123ObjectReference
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NamespacedRFC1123ObjectReference.
func (*NamespacedRFC1123ObjectReference) DeepCopyInto ¶ added in v0.13.0
func (in *NamespacedRFC1123ObjectReference) DeepCopyInto(out *NamespacedRFC1123ObjectReference)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type NamespacedRFC1123ObjectReferenceWithNamespace ¶ added in v0.13.0
type NamespacedRFC1123ObjectReferenceWithNamespace struct {
// Name of the referent.
// +required
Name RFC1123Name `json:"name"`
// Namespace of the referent.
// +required
Namespace RFC1123SubdomainName `json:"namespace,omitempty"`
}
NamespacedObjectReference contains enough information to locate the referenced Kubernetes resource object in any namespace. But the namespace is required. +kubebuilder:object:generate=true
func (*NamespacedRFC1123ObjectReferenceWithNamespace) DeepCopy ¶ added in v0.13.0
func (in *NamespacedRFC1123ObjectReferenceWithNamespace) DeepCopy() *NamespacedRFC1123ObjectReferenceWithNamespace
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NamespacedRFC1123ObjectReferenceWithNamespace.
func (*NamespacedRFC1123ObjectReferenceWithNamespace) DeepCopyInto ¶ added in v0.13.0
func (in *NamespacedRFC1123ObjectReferenceWithNamespace) DeepCopyInto(out *NamespacedRFC1123ObjectReferenceWithNamespace)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type NamespacedRFC1123ObjectReferenceWithNamespaceWithUID ¶ added in v0.13.0
type NamespacedRFC1123ObjectReferenceWithNamespaceWithUID struct {
// UID of the tracked Tenant to pin point tracking
// +required
k8stypes.UID `json:"uid,omitempty" protobuf:"bytes,5,opt,name=uid"`
// Name of the referent.
// +required
Name RFC1123Name `json:"name"`
// Namespace of the referent.
// +required
Namespace RFC1123SubdomainName `json:"namespace,omitempty"`
}
NamespacedObjectReference contains enough information to locate the referenced Kubernetes resource object in any namespace. But the namespace is required. +kubebuilder:object:generate=true
func (*NamespacedRFC1123ObjectReferenceWithNamespaceWithUID) DeepCopy ¶ added in v0.13.0
func (in *NamespacedRFC1123ObjectReferenceWithNamespaceWithUID) DeepCopy() *NamespacedRFC1123ObjectReferenceWithNamespaceWithUID
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NamespacedRFC1123ObjectReferenceWithNamespaceWithUID.
func (*NamespacedRFC1123ObjectReferenceWithNamespaceWithUID) DeepCopyInto ¶ added in v0.13.0
func (in *NamespacedRFC1123ObjectReferenceWithNamespaceWithUID) DeepCopyInto(out *NamespacedRFC1123ObjectReferenceWithNamespaceWithUID)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ObjectReferenceStatus ¶ added in v0.13.0
type ObjectReferenceStatus struct {
gvk.ResourceID `json:",inline"`
ObjectReferenceStatusCondition `json:"status,omitempty"`
}
Advanced Status Item for pin pointing items in tenants/namespaces. +kubebuilder:object:generate=true
func (*ObjectReferenceStatus) DeepCopy ¶ added in v0.13.0
func (in *ObjectReferenceStatus) DeepCopy() *ObjectReferenceStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ObjectReferenceStatus.
func (*ObjectReferenceStatus) DeepCopyInto ¶ added in v0.13.0
func (in *ObjectReferenceStatus) DeepCopyInto(out *ObjectReferenceStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ObjectReferenceStatusCondition ¶ added in v0.13.0
type ObjectReferenceStatusCondition struct {
// status of the condition, one of True, False, Unknown.
// +required
// +kubebuilder:validation:Required
// +kubebuilder:validation:Enum=True;False;Unknown
Status metav1.ConditionStatus `json:"status" protobuf:"bytes,2,opt,name=status"`
// message is a human readable message indicating details about the transition.
// This may be an empty string.
// +kubebuilder:validation:MaxLength=32768
Message string `json:"message,omitempty" protobuf:"bytes,6,opt,name=message"`
// type of condition in CamelCase or in foo.example.com/CamelCase.
// ---
// Many .condition.type values are consistent across resources like Available, but because arbitrary conditions can be
// useful (see .node.status.conditions), the ability to deconflict is important.
// The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt)
// +required
// +kubebuilder:validation:Required
// +kubebuilder:validation:Pattern=`^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$`
// +kubebuilder:validation:MaxLength=316
Type string `json:"type" protobuf:"bytes,1,opt,name=type"`
// An opaque value that represents the internal version of this object that can
// be used by clients to determine when objects have changed. May be used for optimistic
// concurrency, change detection, and the watch operation on a resource or set of resources.
// Clients must treat these values as opaque and passed unmodified back to the server.
// They may only be valid for a particular resource or set of resources.
//
// Populated by the system.
// Read-only.
// Value must be treated as opaque by clients and .
// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency
// +optional
LastApply metav1.Time `json:"lastApply,omitempty,omitzero" protobuf:"bytes,8,opt,name=lastApply"`
// Indicates wether the resource was created or adopted
Created bool `json:"created,omitempty"`
// Indicates whether the referenced resource is cluster-scoped.
ClusterScoped bool `json:"clusterScoped,omitempty"`
}
+kubebuilder:object:generate=true
func (*ObjectReferenceStatusCondition) DeepCopy ¶ added in v0.13.0
func (in *ObjectReferenceStatusCondition) DeepCopy() *ObjectReferenceStatusCondition
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ObjectReferenceStatusCondition.
func (*ObjectReferenceStatusCondition) DeepCopyInto ¶ added in v0.13.0
func (in *ObjectReferenceStatusCondition) DeepCopyInto(out *ObjectReferenceStatusCondition)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ObjectSkipRule ¶ added in v0.13.8
type ObjectSkipRule struct {
// Labels with values which indicate a skip condition.
Labels map[string]string
// Annotations with values which indicate a skip condition.
Annotations map[string]string
}
func DefaultObjectSkipRules ¶ added in v0.13.8
func DefaultObjectSkipRules() []ObjectSkipRule
func (*ObjectSkipRule) ShouldSkip ¶ added in v0.13.8
type ProcessedItems ¶ added in v0.13.0
type ProcessedItems []ObjectReferenceStatus
func (*ProcessedItems) GetItem ¶ added in v0.13.0
func (p *ProcessedItems) GetItem(ref gvk.ResourceID) *ObjectReferenceStatus
Removes a condition by type. Returns actual item pointer, not a copy.
func (ProcessedItems) InScope ¶ added in v0.14.0
func (p ProcessedItems) InScope(tenant, namespace string) ProcessedItems
InScope returns a copy of the items replicated into the given Tenant Namespace. The result shares no backing array with the receiver, thus it can be freely mutated through UpdateItem or RemoveItem.
func (*ProcessedItems) RemoveItem ¶ added in v0.13.0
func (p *ProcessedItems) RemoveItem(item ObjectReferenceStatus)
Removes a condition by type.
func (*ProcessedItems) ReplaceScope ¶ added in v0.14.0
func (p *ProcessedItems) ReplaceScope(tenant, namespace string, items ProcessedItems)
ReplaceScope swaps the items belonging to the given Tenant Namespace with the provided ones, leaving the items of any other scope untouched: this allows a Namespace scoped reconciliation to report its outcome without dropping what has been processed for the remaining Namespaces.
Items which are already tracked keep their position to avoid pointless status churn, whereas the ones missing from the given list are dropped, since the scope is no longer processing them. Provided items out of the given scope are ignored.
func (ProcessedItems) SortDeterministic ¶ added in v0.13.0
func (p ProcessedItems) SortDeterministic()
func (*ProcessedItems) UpdateItem ¶ added in v0.13.0
func (p *ProcessedItems) UpdateItem(item ObjectReferenceStatus)
Adds a condition by type.
type RFC1123Name ¶ added in v0.13.0
type RFC1123Name string
NamespaceName must be a lowercase RFC1123 label. +kubebuilder:validation:Pattern=^[a-z0-9]([-a-z0-9]*[a-z0-9])?$ +kubebuilder:validation:MaxLength=63
func (RFC1123Name) String ¶ added in v0.13.0
func (n RFC1123Name) String() string
type RFC1123SubdomainName ¶ added in v0.13.0
type RFC1123SubdomainName string
Name must be unique within a namespace. +kubebuilder:validation:Pattern=^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$ +kubebuilder:validation:MaxLength=253 +kubebuilder:object:generate=true
func (RFC1123SubdomainName) String ¶ added in v0.13.0
func (n RFC1123SubdomainName) String() string