pub struct Store<K: 'static + Lookup>{ /* private fields */ }Expand description
A readable cache of Kubernetes objects of kind K
Cloning will produce a new reference to the same backing store.
Cannot be constructed directly since one writer handle is required,
use Writer::as_reader() instead.
Implementations§
Source§impl<K: 'static + Clone + Lookup> Store<K>
impl<K: 'static + Clone + Lookup> Store<K>
Sourcepub async fn wait_until_ready(&self) -> Result<(), WriterDropped>
pub async fn wait_until_ready(&self) -> Result<(), WriterDropped>
Sourcepub fn get(&self, key: &ObjectRef<K>) -> Option<Arc<K>>
pub fn get(&self, key: &ObjectRef<K>) -> Option<Arc<K>>
Retrieve a clone() of the entry referred to by key, if it is in the cache.
key.namespace is ignored for cluster-scoped resources.
Note that this is a cache and may be stale. Deleted objects may still exist in the cache
despite having been deleted in the cluster, and new objects may not yet exist in the cache.
If any of these are a problem for you then you should abort your reconciler and retry later.
If you use kube_rt::controller then you can do this by returning an error and specifying a
reasonable error_policy.
Sourcepub fn find<P>(&self, predicate: P) -> Option<Arc<K>>
pub fn find<P>(&self, predicate: P) -> Option<Arc<K>>
Retrieve a clone() of the entry found by the given predicate
Sourcepub fn state_filter<P>(&self, predicate: P) -> Vec<Arc<K>>
pub fn state_filter<P>(&self, predicate: P) -> Vec<Arc<K>>
Return a filtered snapshot of the current values, retaining only objects matching predicate
Note: the store read lock is held for the entire duration of predicate evaluation. Avoid blocking or expensive operations inside the predicate.
Sourcepub fn state_filter_selector(&self, selector: &Selector) -> Vec<Arc<K>>where
K: ResourceExt,
pub fn state_filter_selector(&self, selector: &Selector) -> Vec<Arc<K>>where
K: ResourceExt,
Return a filtered snapshot of the current values, retaining only objects whose labels match selector
§Example
let selector: Selector = Expression::Equal("app".into(), "nginx".into()).into();
let result = reader.state_filter_selector(&selector);Trait Implementations§
Auto Trait Implementations§
impl<K> !RefUnwindSafe for Store<K>
impl<K> !UnwindSafe for Store<K>
impl<K> Freeze for Store<K>
impl<K> Send for Store<K>
impl<K> Sync for Store<K>
impl<K> Unpin for Store<K>
impl<K> UnsafeUnpin for Store<K>
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreimpl<T> Read<Exclusive, BecauseExclusive> for Twhere
T: ?Sized,
Source§impl<T> ServiceExt for T
impl<T> ServiceExt for T
Source§fn map_response_body<F>(self, f: F) -> MapResponseBody<Self, F>where
Self: Sized,
fn map_response_body<F>(self, f: F) -> MapResponseBody<Self, F>where
Self: Sized,
map-response-body only.Source§fn trace_for_http(self) -> Trace<Self, SharedClassifier<ServerErrorsAsFailures>>where
Self: Sized,
fn trace_for_http(self) -> Trace<Self, SharedClassifier<ServerErrorsAsFailures>>where
Self: Sized,
trace only.Source§fn trace_for_grpc(self) -> Trace<Self, SharedClassifier<GrpcErrorsAsFailures>>where
Self: Sized,
fn trace_for_grpc(self) -> Trace<Self, SharedClassifier<GrpcErrorsAsFailures>>where
Self: Sized,
trace only.