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,
}
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) -> Self
pub fn timeout(self, timeout_secs: u32) -> Self
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) -> Self
pub fn fields(self, field_selector: &str) -> Self
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) -> Self
pub fn labels(self, label_selector: &str) -> Self
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) -> Self
pub fn labels_from(self, selector: &Selector) -> Self
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) -> Self
pub fn disable_bookmarks(self) -> Self
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) -> Self
pub fn initial_events(self) -> Self
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() -> Self
pub fn streaming_lists() -> Self
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 more