Struct podman_api::Podman

source ·
pub struct Podman { /* private fields */ }
Expand description

Entrypoint interface for communicating with podman daemon

Implementations§

Creates a new Podman instance by automatically choosing appropriate connection type based on provided uri.

Supported schemes are:

  • unix:// only works when build target is unix, otherwise returns an Error
  • tcp://
  • http://

To create a Podman instance utilizing TLS use explicit Podman::tls constructor (this requires tls feature enabled).

Uses LATEST_API_VERSION, to use a specific version see Podman::new_versioned.

Same as Podman::new but the API version can be explicitly specified.

Available on Unix only.

Creates a new podman instance for a podman host listening on a given Unix socket.

socket_path is the part of URI that comes after the unix://. For example a URI unix:///run/podman.sock has a socket_path == “/run/podman.sock”.

Uses LATEST_API_VERSION, to use a specific version see Podman::unix_versioned.

Available on Unix only.

Same as Podman::unix but the API version can be explicitly specified.

Available on crate feature tls only.

Creates a new podman instance for a podman host listening on a given TCP socket host. host is the part of URI that comes after tcp:// or http:// or https:// schemes, also known as authority part.

cert_path specifies the base path in the filesystem containing a certificate (cert.pem) and a key (key.pem) that will be used by the client. If verify is true a CA file will be added (ca.pem) to the connector.

Returns an error if the provided host will fail to parse as URL or reading the certificate files will fail.

Uses LATEST_API_VERSION, to use a specific version see Podman::tls_versioned.

Available on crate feature tls only.

Same as Podman::tls but the API version can be explicitly specified.

Creates a new podman instance for a podman host listening on a given TCP socket host. host is the part of URI that comes after tcp:// or http:// schemes, also known as authority part.

TLS is supported with feature tls enabled through Podman::tls constructor.

Returns an error if the provided host will fail to parse as URL.

Uses LATEST_API_VERSION, to use a specific version see Podman::tcp_versioned.

Same as Podman::tcp but the API version can be explicitly specified.

Verifies the API version returned by the server and adjusts the version used by this client in future requests.

Api Reference

Returns a handle to podman containers that can be used to operate on them.

Api Reference

Returns a handle to podman execs that can be used to operate on them.

Api Reference

Returns a handle to podman images that can be used to operate on them.

Api Reference

Returns a handle to podman manifests that can be used to operate on them.

Api Reference

Returns a handle to podman networks that can be used to operate on them.

Api Reference

Returns a handle to podman pods that can be used to operate on them.

Api Reference

Returns a handle to podman volumes that can be used to operate on them.

Api Reference

Returns a handle to podman secrets that can be used to operate on them.

Api Reference

Returns information on the system and libpod configuration

Example:

async {
    use podman_api::Podman;
    let podman = Podman::unix("/run/user/1000/podman/podman.sock");

    match podman.info().await {
        Ok(info) => println!("{:?}", info),
        Err(e) => eprintln!("{}", e),
    }
};

Api Reference

Return protocol information from libpod.

Example:

async {
    use podman_api::Podman;
    let podman = Podman::unix("/run/user/1000/podman/podman.sock");

    match podman.ping().await {
        Ok(info) => println!("{:?}", info),
        Err(e) => eprintln!("{}", e),
    }
};

Api Reference

Returns component version information.

Example:

async {
    use podman_api::Podman;
    let podman = Podman::unix("/run/user/1000/podman/podman.sock");

    match podman.version().await {
        Ok(info) => println!("{:?}", info),
        Err(e) => eprintln!("{}", e),
    }
};

Api Reference

Return information about disk usage for containers, images, and volumes.

Example:

async {
    use podman_api::Podman;
    let podman = Podman::unix("/run/user/1000/podman/podman.sock");

    match podman.data_usage().await {
        Ok(info) => println!("{:?}", info),
        Err(e) => eprintln!("{}", e),
    }
};

Api Reference

Prune unused data.

Example:

async {
    use podman_api::Podman;
    let podman = Podman::unix("/run/user/1000/podman/podman.sock");

    match podman.prune().await {
        Ok(info) => println!("{:?}", info),
        Err(e) => eprintln!("{}", e),
    }
};

Api Reference

Returns system events

Example:

async {
    use podman_api::Podman;
    use futures_util::StreamExt;
    let podman = Podman::unix("/run/user/1000/podman/podman.sock");

    let mut events = podman.events(&Default::default());

    while let Some(event) = events.next().await {
        match event {
            Ok(event) => println!("{:?}", event),
            Err(e) => eprintln!("{}", e),
        }
    }
};

Api Reference

Create and run pods based on a Kubernetes YAML file (pod or service kind).

Example:

async {
    use podman_api::Podman;

    let podman = Podman::unix("/run/user/1000/podman/podman.sock");

    let yaml = r#"
    apiVersion: v1
    kind: Pod
    metadata:
      name: youthfulwescoff
    spec:
      containers:
      - image: docker.io/library/alpine:latest
        name: youthfulwescoff
        securityContext:
          capabilities:
            drop:
            - CAP_MKNOD
            - CAP_NET_RAW
            - CAP_AUDIT_WRITE
        stdin: true
        tty: true
    "#;

    match podman.play_kubernetes_yaml(&Default::default(), yaml).await {
        Ok(report) => println!("{:?}", report),
        Err(e) => eprintln!("{}", e),
    }
};

Api Reference

Tears down pods defined in a YAML file.

Example:

async {
    use podman_api::Podman;
    let podman = Podman::unix("/run/user/1000/podman/podman.sock");

    match podman.remove_kubernetes_pods().await {
        Ok(report) => println!("{:?}", report),
        Err(e) => eprintln!("{}", e),
    }
};

Trait Implementations§

Returns a copy of the value. Read more
Performs copy-assignment from source. Read more
Formats the value using the given formatter. Read more

Auto Trait Implementations§

Blanket Implementations§

Gets the TypeId of self. Read more
Immutably borrows from an owned value. Read more
Mutably borrows from an owned value. Read more

Returns the argument unchanged.

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

Calls U::from(self).

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

The resulting type after obtaining ownership.
Creates owned data from borrowed data, usually by cloning. Read more
Uses borrowed data to replace owned data, usually by cloning. Read more
The type returned in the event of a conversion error.
Performs the conversion.
The type returned in the event of a conversion error.
Performs the conversion.
Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more