Enum kube_client::api::Patch
source · [−]#[non_exhaustive]
pub enum Patch<T> where
T: Serialize, {
Apply(T),
Json(Patch),
Merge(T),
Strategic(T),
}
client
only.Expand description
Describes changes that should be applied to a resource
Takes arbitrary serializable data for all strategies except Json
.
We recommend using (server-side) Apply
patches on new kubernetes releases.
See kubernetes patch docs for the older patch types.
Note that patches have different effects on different fields depending on their merge strategies.
These strategies are configurable when deriving your CustomResource
.
Creating a patch via serde_json
use kube::api::Patch;
let patch = serde_json::json!({
"apiVersion": "v1",
"kind": "Pod",
"metadata": {
"name": "blog"
},
"spec": {
"activeDeadlineSeconds": 5
}
});
let patch = Patch::Apply(&patch);
Creating a patch from a type
use kube::api::Patch;
use k8s_openapi::api::rbac::v1::Role;
use k8s_openapi::apimachinery::pkg::apis::meta::v1::ObjectMeta;
let r = Role {
metadata: ObjectMeta { name: Some("user".into()), ..ObjectMeta::default() },
rules: Some(vec![])
};
let patch = Patch::Apply(&r);
Variants (Non-exhaustive)
This enum is marked as non-exhaustive
Apply(T)
Requires kubernetes >= 1.16
Json(Patch)
Using this variant will require you to explicitly provide a type for T
at the moment.
Example
use kube::api::Patch;
let json_patch = json_patch::Patch(vec![]);
let patch = Patch::Json::<()>(json_patch);
Merge(T)
Strategic(T)
Trait Implementations
impl<T> StructuralPartialEq for Patch<T> where
T: Serialize,
Auto Trait Implementations
impl<T> RefUnwindSafe for Patch<T> where
T: RefUnwindSafe,
impl<T> Send for Patch<T> where
T: Send,
impl<T> Sync for Patch<T> where
T: Sync,
impl<T> Unpin for Patch<T> where
T: Unpin,
impl<T> UnwindSafe for Patch<T> where
T: UnwindSafe,
Blanket Implementations
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
sourceimpl<T> Instrument for T
impl<T> Instrument for T
sourcefn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
sourcefn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
sourceimpl<T> ToOwned for T where
T: Clone,
impl<T> ToOwned for T where
T: Clone,
type Owned = T
type Owned = T
The resulting type after obtaining ownership.
sourcefn clone_into(&self, target: &mut T)
fn clone_into(&self, target: &mut T)
toowned_clone_into
)Uses borrowed data to replace owned data, usually by cloning. Read more
impl<V, T> VZip<V> for T where
V: MultiLane<T>,
impl<V, T> VZip<V> for T where
V: MultiLane<T>,
fn vzip(self) -> V
sourceimpl<T> WithSubscriber for T
impl<T> WithSubscriber for T
sourcefn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> where
S: Into<Dispatch>,
fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> where
S: Into<Dispatch>,
Attaches the provided Subscriber
to this type, returning a
WithDispatch
wrapper. Read more
sourcefn with_current_subscriber(self) -> WithDispatch<Self>
fn with_current_subscriber(self) -> WithDispatch<Self>
Attaches the current default Subscriber
to this type, returning a
WithDispatch
wrapper. Read more