Documentation ¶
Overview ¶
Copyright The Velero Contributors.
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
Index ¶
- Constants
- func EnqueueRequestsFromMapUpdateFunc(fn MapUpdateFunc) handler.EventHandler
- func EnsureNamespaceExistsAndIsReady(namespace *corev1api.Namespace, client corev1client.NamespaceInterface, ...) (bool, bool, error)
- func GetSecret(client kbclient.Client, namespace, name string) (*corev1api.Secret, error)
- func GetSecretKey(client kbclient.Client, namespace string, ...) ([]byte, error)
- func GetVolumeDirectory(ctx context.Context, log logrus.FieldLogger, pod *corev1api.Pod, ...) (string, error)
- func IsCRDReady(crd *unstructured.Unstructured) (bool, error)
- func IsPodRunning(pod *corev1api.Pod) error
- func IsPodScheduled(pod *corev1api.Pod) error
- func IsV1Beta1CRDReady(crd *apiextv1beta1.CustomResourceDefinition) bool
- func IsV1CRDReady(crd *apiextv1.CustomResourceDefinition) bool
- func NamespaceAndName(objMeta metav1.Object) string
- func NewAllEventPredicate(f func(object client.Object) bool) predicate.Predicate
- func NewCreateEventPredicate(f func(client.Object) bool) predicate.Predicate
- func NewGenericEventPredicate(f func(object client.Object) bool) predicate.Predicate
- func NewUpdateEventPredicate(f func(client.Object, client.Object) bool) predicate.Predicate
- func ParseResourceRequirements(cpuRequest, memRequest, cpuLimit, memLimit string) (corev1.ResourceRequirements, error)
- func ParseSecurityContext(runAsUser string, runAsGroup string, allowPrivilegeEscalation string, ...) (corev1.SecurityContext, error)
- func PatchResource(original, updated client.Object, kbClient client.Client) error
- func SinglePathMatch(path string, fs filesystem.Interface, log logrus.FieldLogger) (string, error)
- type FalsePredicate
- type MapUpdateFunc
- type PeriodicalEnqueueSource
- type PeriodicalEnqueueSourceOption
- type SpecChangePredicate
Constants ¶
const ( KubeAnnBindCompleted = "pv.kubernetes.io/bind-completed" KubeAnnBoundByController = "pv.kubernetes.io/bound-by-controller" KubeAnnDynamicallyProvisioned = "pv.kubernetes.io/provisioned-by" KubeAnnMigratedTo = "pv.kubernetes.io/migrated-to" )
These annotations are taken from the Kubernetes persistent volume/persistent volume claim controller. They cannot be directly importing because they are part of the kubernetes/kubernetes package, and importing that package is unsupported. Their values are well-known and slow changing. They're duplicated here as constants to provide compile-time checking. Originals can be found in kubernetes/kubernetes/pkg/controller/volume/persistentvolume/util/util.go.
Variables ¶
This section is empty.
Functions ¶
func EnqueueRequestsFromMapUpdateFunc ¶ added in v1.11.0
func EnqueueRequestsFromMapUpdateFunc(fn MapUpdateFunc) handler.EventHandler
EnqueueRequestsFromMapUpdateFunc is for the same purpose with EnqueueRequestsFromMapFunc. Merely, it is more friendly to updating the mapped objects in the MapUpdateFunc, because on Update event, MapUpdateFunc is called for only once with the new object, so if MapUpdateFunc does some update to the mapped objects, the update is done for once
func EnsureNamespaceExistsAndIsReady ¶ added in v0.11.0
func EnsureNamespaceExistsAndIsReady(namespace *corev1api.Namespace, client corev1client.NamespaceInterface, timeout time.Duration) (bool, bool, error)
EnsureNamespaceExistsAndIsReady attempts to create the provided Kubernetes namespace. It returns three values: a bool indicating whether or not the namespace is ready, a bool indicating whether or not the namespace was created and an error if the creation failed for a reason other than that the namespace already exists. Note that in the case where the namespace already exists and is not ready, this function will return (false, false, nil). If the namespace exists and is marked for deletion, this function will wait up to the timeout for it to fully delete.
func GetSecretKey ¶ added in v1.6.0
func GetVolumeDirectory ¶ added in v0.9.0
func GetVolumeDirectory(ctx context.Context, log logrus.FieldLogger, pod *corev1api.Pod, volumeName string, cli client.Client) (string, error)
GetVolumeDirectory gets the name of the directory on the host, under /var/lib/kubelet/pods/<podUID>/volumes/, where the specified volume lives. For volumes with a CSIVolumeSource, append "/mount" to the directory name.
func IsCRDReady ¶ added in v1.3.0
func IsCRDReady(crd *unstructured.Unstructured) (bool, error)
IsCRDReady triggers IsV1Beta1CRDReady/IsV1CRDReady according to the version of the input param
func IsPodRunning ¶ added in v1.10.0
IsPodRunning does a well-rounded check to make sure the specified pod is running stably. If not, return the error found
func IsPodScheduled ¶ added in v1.11.0
IsPodScheduled does a well-rounded check to make sure the specified pod has been scheduled into a node and in a stable status. If not, return the error found
func IsV1Beta1CRDReady ¶ added in v1.6.3
func IsV1Beta1CRDReady(crd *apiextv1beta1.CustomResourceDefinition) bool
IsV1Beta1CRDReady checks a v1beta1 CRD to see if it's ready, with both the Established and NamesAccepted conditions.
func IsV1CRDReady ¶ added in v1.6.3
func IsV1CRDReady(crd *apiextv1.CustomResourceDefinition) bool
IsV1CRDReady checks a v1 CRD to see if it's ready, with both the Established and NamesAccepted conditions.
func NamespaceAndName ¶ added in v0.4.0
NamespaceAndName returns a string in the format <namespace>/<name>
func NewAllEventPredicate ¶ added in v1.10.0
NewAllEventPredicate creates a new Predicate that checks all the events with the provided func
func NewCreateEventPredicate ¶ added in v1.11.0
func NewGenericEventPredicate ¶ added in v1.10.0
NewGenericEventPredicate creates a new Predicate that checks the Generic event with the provided func
func NewUpdateEventPredicate ¶ added in v1.11.0
NewUpdateEventPredicate creates a new Predicate that checks the update events with the provided func and ignore others
func ParseResourceRequirements ¶ added in v1.0.1
func ParseResourceRequirements(cpuRequest, memRequest, cpuLimit, memLimit string) (corev1.ResourceRequirements, error)
ParseResourceRequirements takes a set of CPU and memory requests and limit string values and returns a ResourceRequirements struct to be used in a Container. An error is returned if we cannot parse the request/limit.
func ParseSecurityContext ¶ added in v1.5.0
func PatchResource ¶ added in v1.11.0
func SinglePathMatch ¶ added in v1.9.1
func SinglePathMatch(path string, fs filesystem.Interface, log logrus.FieldLogger) (string, error)
SinglePathMatch function will be called by PVB and PVR controller to check whether pass-in volume path is valid. Check whether there is only one match by the path's pattern (/host_pods/%s/volumes/*/volume_name/[mount|]).
Types ¶
type FalsePredicate ¶ added in v1.10.0
type FalsePredicate struct{}
FalsePredicate always returns false for all kinds of events
func (FalsePredicate) Create ¶ added in v1.10.0
func (f FalsePredicate) Create(event.CreateEvent) bool
Create always returns false
func (FalsePredicate) Delete ¶ added in v1.10.0
func (f FalsePredicate) Delete(event.DeleteEvent) bool
Delete always returns false
func (FalsePredicate) Generic ¶ added in v1.10.0
func (f FalsePredicate) Generic(event.GenericEvent) bool
Generic always returns false
func (FalsePredicate) Update ¶ added in v1.10.0
func (f FalsePredicate) Update(event.UpdateEvent) bool
Update always returns false
type PeriodicalEnqueueSource ¶ added in v1.9.0
PeriodicalEnqueueSource is an implementation of interface sigs.k8s.io/controller-runtime/pkg/source/Source It reads the specific resources from Kubernetes/cache and enqueues them into the queue to trigger the reconcile logic periodically
func NewPeriodicalEnqueueSource ¶ added in v1.9.0
func NewPeriodicalEnqueueSource( logger logrus.FieldLogger, client client.Client, objList client.ObjectList, period time.Duration, option PeriodicalEnqueueSourceOption) *PeriodicalEnqueueSource
func (*PeriodicalEnqueueSource) Start ¶ added in v1.9.0
func (p *PeriodicalEnqueueSource) Start(ctx context.Context, h handler.EventHandler, q workqueue.RateLimitingInterface, predicates ...predicate.Predicate) error
Start enqueue items periodically. The predicates only apply to the GenericEvent
func (*PeriodicalEnqueueSource) String ¶ added in v1.9.3
func (p *PeriodicalEnqueueSource) String() string
type PeriodicalEnqueueSourceOption ¶ added in v1.10.0
type PeriodicalEnqueueSourceOption struct {
OrderFunc func(objList client.ObjectList) client.ObjectList
}
type SpecChangePredicate ¶ added in v1.9.1
SpecChangePredicate implements a default update predicate function on Spec change As Velero doesn't enable subresource in CRDs, we cannot use the object's metadata.generation field to check the spec change More details about the generation field refer to https://github.com/kubernetes-sigs/controller-runtime/blob/v0.12.2/pkg/predicate/predicate.go#L156
func (SpecChangePredicate) Update ¶ added in v1.9.1
func (SpecChangePredicate) Update(e event.UpdateEvent) bool