Struct k8s_controller::Controller

source ·
pub struct Controller<Ctx>
where Ctx: Send + Sync + 'static + Context, Ctx::Error: Send + Sync + 'static, for<'de> Ctx::Resource: Send + Sync + 'static + Clone + Debug + Serialize + Deserialize<'de>, <Ctx::Resource as Resource>::DynamicType: Eq + Clone + Hash + Default + Debug + Unpin,
{ /* private fields */ }
Expand description

The Controller watches a set of resources, calling methods on the provided Context when events occur.

Implementations§

source§

impl<Ctx> Controller<Ctx>
where Ctx: Send + Sync + 'static + Context, Ctx::Error: Send + Sync + 'static, for<'de> Ctx::Resource: Send + Sync + 'static + Clone + Debug + Serialize + Deserialize<'de>, <Ctx::Resource as Resource>::DynamicType: Eq + Clone + Hash + Default + Debug + Unpin,

source

pub fn namespaced( client: Client, context: Ctx, namespace: &str, wc: Config, ) -> Self

Creates a new controller for a namespaced resource using the given client. The context given determines the type of resource to watch (via the Context::Resource type provided as part of the trait implementation). The resources to be watched will be limited to resources in the given namespace. A watcher::Config can be given to limit the resources watched (for instance, watcher::Config::default().labels("app=myapp")).

source

pub fn namespaced_all(client: Client, context: Ctx, wc: Config) -> Self

Creates a new controller for a namespaced resource using the given client. The context given determines the type of resource to watch (via the Context::Resource type provided as part of the trait implementation). The resources to be watched will not be limited by namespace. A watcher::Config can be given to limit the resources watched (for instance, watcher::Config::default().labels("app=myapp")).

source

pub fn cluster(client: Client, context: Ctx, wc: Config) -> Self
where Ctx::Resource: Resource<Scope = ClusterResourceScope>,

Creates a new controller for a cluster-scoped resource using the given client. The context given determines the type of resource to watch (via the Context::Resource type provided as part of the trait implementation). A watcher::Config can be given to limit the resources watched (for instance, watcher::Config::default().labels("app=myapp")).

source

pub async fn run(self)

Run the controller. This method will not return. The Context given to the constructor will have its apply method called when a resource is created or updated, and its cleanup method called when a resource is about to be deleted.

source

pub fn with_concurrency(self, concurrency: u16) -> Self

Auto Trait Implementations§

§

impl<Ctx> !Freeze for Controller<Ctx>

§

impl<Ctx> !RefUnwindSafe for Controller<Ctx>

§

impl<Ctx> Send for Controller<Ctx>
where <<Ctx as Context>::Resource as Resource>::DynamicType: Sized, <Ctx as Context>::Resource: for<'de> Sized,

§

impl<Ctx> !Sync for Controller<Ctx>

§

impl<Ctx> Unpin for Controller<Ctx>
where <<Ctx as Context>::Resource as Resource>::DynamicType: Sized, <Ctx as Context>::Resource: for<'de> Sized, Ctx: Unpin,

§

impl<Ctx> !UnwindSafe for Controller<Ctx>

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T> Instrument for T

source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
source§

impl<T, U> Into<U> for T
where U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T> Same for T

§

type Output = T

Should always be Self
source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

source§

fn vzip(self) -> V

source§

impl<T> WithSubscriber for T

source§

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
source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more