pub struct WatchParams {
pub label_selector: Option<String>,
pub field_selector: Option<String>,
pub timeout: Option<u32>,
pub bookmarks: bool,
pub send_initial_events: bool,
}
client
only.Expand description
Common query parameters used in watch calls on collections
Fields§
§label_selector: Option<String>
A selector to restrict returned objects by their labels.
Defaults to everything if None
.
field_selector: Option<String>
A selector to restrict returned objects by their fields.
Defaults to everything if None
.
timeout: Option<u32>
Timeout for the watch call.
This limits the duration of the call, regardless of any activity or inactivity. If unset for a watch call, we will use 290s. We limit this to 295s due to inherent watch limitations.
bookmarks: bool
Enables watch events with type “BOOKMARK”.
Servers that do not implement bookmarks ignore this flag and bookmarks are sent at the server’s discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.
send_initial_events: bool
Kubernetes 1.27 Streaming Lists
sendInitialEvents=true
may be set together with watch=true
.
In that case, the watch stream will begin with synthetic events to
produce the current state of objects in the collection. Once all such
events have been sent, a synthetic “Bookmark” event will be sent.
The bookmark will report the ResourceVersion (RV) corresponding to the
set of objects, and be marked with "k8s.io/initial-events-end": "true"
annotation.
Afterwards, the watch stream will proceed as usual, sending watch events
corresponding to changes (subsequent to the RV) to objects watched.
When sendInitialEvents
option is set, we require resourceVersionMatch
option to also be set. The semantic of the watch request is as following:
resourceVersionMatch
= NotOlderThan is interpreted as “data at least as new as the providedresourceVersion
” and the bookmark event is send when the state is synced to aresourceVersion
at least as fresh as the one provided by the ListOptions. IfresourceVersion
is unset, this is interpreted as “consistent read” and the bookmark event is send when the state is synced at least to the moment when request started being processed.resourceVersionMatch
set to any other value or unset Invalid error is returned.
Implementations§
Source§impl WatchParams
impl WatchParams
Builder interface to WatchParams
Usage:
use kube::api::WatchParams;
let lp = WatchParams::default()
.timeout(60)
.labels("kubernetes.io/lifecycle=spot");
Sourcepub fn timeout(self, timeout_secs: u32) -> WatchParams
pub fn timeout(self, timeout_secs: u32) -> WatchParams
Configure the timeout for watch calls
This limits the duration of the call, regardless of any activity or inactivity. Defaults to 290s
Sourcepub fn fields(self, field_selector: &str) -> WatchParams
pub fn fields(self, field_selector: &str) -> WatchParams
Configure the selector to restrict the list of returned objects by their fields.
Defaults to everything.
Supports =
, ==
, !=
, and can be comma separated: key1=value1,key2=value2
.
The server only supports a limited number of field queries per type.
Sourcepub fn labels(self, label_selector: &str) -> WatchParams
pub fn labels(self, label_selector: &str) -> WatchParams
Configure the selector to restrict the list of returned objects by their labels.
Defaults to everything.
Supports =
, ==
, !=
, and can be comma separated: key1=value1,key2=value2
.
Sourcepub fn labels_from(self, selector: &Selector) -> WatchParams
pub fn labels_from(self, selector: &Selector) -> WatchParams
Configure typed label selectors
Configure typed selectors from Selector
and Expression
lists.
use kube::core::{Expression, Selector, ParseExpressionError};
use k8s_openapi::apimachinery::pkg::apis::meta::v1::LabelSelector;
// From expressions
let selector: Selector = Expression::In("env".into(), ["development".into(), "sandbox".into()].into()).into();
let wp = WatchParams::default().labels_from(&selector);
let wp = WatchParams::default().labels_from(&Expression::Exists("foo".into()).into());
// Native LabelSelector
let selector: Selector = LabelSelector::default().try_into()?;
let wp = WatchParams::default().labels_from(&selector);
Sourcepub fn disable_bookmarks(self) -> WatchParams
pub fn disable_bookmarks(self) -> WatchParams
Disables watch bookmarks to simplify watch handling
This is not recommended to use with production watchers as it can cause desyncs. See #219 for details.
Sourcepub fn initial_events(self) -> WatchParams
pub fn initial_events(self) -> WatchParams
Kubernetes 1.27 Streaming Lists
sendInitialEvents=true
may be set together with watch=true
.
In that case, the watch stream will begin with synthetic events to
produce the current state of objects in the collection. Once all such
events have been sent, a synthetic “Bookmark” event will be sent.
The bookmark will report the ResourceVersion (RV) corresponding to the
set of objects, and be marked with "k8s.io/initial-events-end": "true"
annotation.
Afterwards, the watch stream will proceed as usual, sending watch events
corresponding to changes (subsequent to the RV) to objects watched.
When sendInitialEvents
option is set, we require resourceVersionMatch
option to also be set. The semantic of the watch request is as following:
resourceVersionMatch
= NotOlderThan is interpreted as “data at least as new as the providedresourceVersion
” and the bookmark event is send when the state is synced to aresourceVersion
at least as fresh as the one provided by the ListOptions. IfresourceVersion
is unset, this is interpreted as “consistent read” and the bookmark event is send when the state is synced at least to the moment when request started being processed.resourceVersionMatch
set to any other value or unset Invalid error is returned.
Defaults to true if resourceVersion=""
or resourceVersion="0"
(for backward
compatibility reasons) and to false otherwise.
Sourcepub fn streaming_lists() -> WatchParams
pub fn streaming_lists() -> WatchParams
Constructor for doing Kubernetes 1.27 Streaming List watches
Enables VersionMatch::NotOlderThan
semantics and WatchParams::send_initial_events
.
Trait Implementations§
Source§impl Clone for WatchParams
impl Clone for WatchParams
Source§fn clone(&self) -> WatchParams
fn clone(&self) -> WatchParams
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moreSource§impl Debug for WatchParams
impl Debug for WatchParams
Source§impl Default for WatchParams
impl Default for WatchParams
Source§fn default() -> WatchParams
fn default() -> WatchParams
Default WatchParams
without any constricting selectors
Source§impl PartialEq for WatchParams
impl PartialEq for WatchParams
impl StructuralPartialEq for WatchParams
Auto Trait Implementations§
impl Freeze for WatchParams
impl RefUnwindSafe for WatchParams
impl Send for WatchParams
impl Sync for WatchParams
impl Unpin for WatchParams
impl UnwindSafe for WatchParams
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
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 more