Struct testcontainers_modules::k3s::K3s

source ·
pub struct K3s { /* private fields */ }
Available on crate feature k3s only.
Expand description

Module to work with K3s inside of tests.

Starts an instance of K3s, a single-node server fully-functional Kubernetes cluster so you are able interact with the cluster using standard Kubernetes API exposed at KUBE_SECURE_PORT port

This module is based on the official K3s docker image.

§Example

use std::env::temp_dir;
use testcontainers::RunnableImage;
use testcontainers::runners::SyncRunner;
use testcontainers_modules::k3s::{K3s, KUBE_SECURE_PORT};

let k3s_instance = RunnableImage::from(K3s::default().with_conf_mount(&temp_dir()))
           .with_privileged(true)
           .with_userns_mode("host")
           .start()
           .unwrap();

let kube_port = k3s_instance.get_host_port_ipv4(KUBE_SECURE_PORT);
let kube_conf = k3s_instance.image().read_kube_config().expect("Cannot read kube conf");
// use kube_port and kube_conf to connect and control k3s cluster

Implementations§

source§

impl K3s

source

pub fn with_conf_mount(self, conf_mount_path: impl AsRef<Path>) -> Self

source

pub fn read_kube_config(&self) -> Result<String>

Trait Implementations§

source§

impl Clone for K3s

source§

fn clone(&self) -> K3s

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for K3s

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Default for K3s

source§

fn default() -> K3s

Returns the “default value” for a type. Read more
source§

impl Image for K3s

§

type Args = K3sArgs

A type representing the arguments for an Image. Read more
source§

fn name(&self) -> String

The name of the docker image to pull from the Docker Hub registry.
source§

fn tag(&self) -> String

Implementations are encouraged to include a tag that will not change (i.e. NOT latest) in order to prevent test code from randomly breaking because the underlying docker suddenly changed.
source§

fn ready_conditions(&self) -> Vec<WaitFor>

Returns a list of conditions that need to be met before a started container is considered ready. Read more
source§

fn env_vars(&self) -> Box<dyn Iterator<Item = (&String, &String)> + '_>

There are a couple of things regarding the environment variables of images: Read more
source§

fn mounts(&self) -> Box<dyn Iterator<Item = &Mount> + '_>

There are a couple of things regarding the mounts of images: Read more
source§

fn expose_ports(&self) -> Vec<u16>

Returns the ports that needs to be exposed when a container is created. Read more
source§

fn entrypoint(&self) -> Option<String>

Returns the entrypoint this instance was created with.
source§

fn exec_after_start( &self, cs: ContainerState ) -> Result<Vec<ExecCommand>, TestcontainersError>

Returns the commands that needs to be executed after a container is started i.e. commands to be run in a running container. Read more

Auto Trait Implementations§

§

impl Freeze for K3s

§

impl RefUnwindSafe for K3s

§

impl Send for K3s

§

impl Sync for K3s

§

impl Unpin for K3s

§

impl UnwindSafe for K3s

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, I> AsyncRunner<I> for T
where T: Into<RunnableImage<I>> + Send, I: Image,

source§

fn start<'async_trait>( self ) -> Pin<Box<dyn Future<Output = Result<ContainerAsync<I>, TestcontainersError>> + Send + 'async_trait>>
where T: 'async_trait,

Starts the container and returns an instance of ContainerAsync.
source§

fn pull_image<'async_trait>( self ) -> Pin<Box<dyn Future<Output = Result<RunnableImage<I>, TestcontainersError>> + Send + 'async_trait>>
where T: 'async_trait,

Pulls the image from the registry. Useful if you want to pull the image before starting the container.
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> IntoResult<T> for T

§

type Err = Infallible

source§

fn into_result(self) -> Result<T, <T as IntoResult<T>>::Err>

source§

impl<T, I> SyncRunner<I> for T
where T: Into<RunnableImage<I>> + Send, I: Image,

source§

fn start(self) -> Result<Container<I>, TestcontainersError>

Starts the container and returns an instance of Container.
source§

fn pull_image(self) -> Result<RunnableImage<I>, TestcontainersError>

Pulls the image from the registry. Useful if you want to pull the image before starting the container.
source§

impl<T> ToOwned for T
where T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
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<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