pub struct PodSpecGenerator {Show 42 fields
pub networks: Option<HashMap<String, PerNetworkOptions>>,
pub cgroup_parent: Option<String>,
pub cni_networks: Option<Vec<String>>,
pub cpu_period: Option<u64>,
pub cpu_quota: Option<i64>,
pub dns_option: Option<Vec<String>>,
pub dns_search: Option<Vec<String>>,
pub dns_server: Option<Vec<String>>,
pub exit_policy: Option<String>,
pub hostadd: Option<Vec<String>>,
pub hostname: Option<String>,
pub idmappings: Option<IdMappingOptions>,
pub image_volumes: Option<Vec<ImageVolume>>,
pub infra_command: Option<Vec<String>>,
pub infra_conmon_pid_file: Option<String>,
pub infra_image: Option<String>,
pub infra_name: Option<String>,
pub labels: Option<HashMap<String, String>>,
pub mounts: Option<Vec<Mount>>,
pub name: Option<String>,
pub netns: Option<Namespace>,
pub network_options: Option<HashMap<String, Vec<String>>>,
pub no_infra: Option<bool>,
pub no_manage_hosts: Option<bool>,
pub no_manage_resolv_conf: Option<bool>,
pub overlay_volumes: Option<Vec<OverlayVolume>>,
pub pidns: Option<Namespace>,
pub pod_create_command: Option<Vec<String>>,
pub pod_devices: Option<Vec<String>>,
pub portmappings: Option<Vec<PortMapping>>,
pub resource_limits: Option<LinuxResources>,
pub security_opt: Option<Vec<String>>,
pub service_container_id: Option<String>,
pub share_parent: Option<bool>,
pub shared_namespaces: Option<Vec<String>>,
pub shm_size: Option<i64>,
pub sysctl: Option<HashMap<String, String>>,
pub throttle_read_bps_device: Option<HashMap<String, LinuxThrottleDevice>>,
pub userns: Option<Namespace>,
pub utsns: Option<Namespace>,
pub volumes: Option<Vec<NamedVolume>>,
pub volumes_from: Option<Vec<String>>,
}
Expand description
PodSpecGenerator describes options to create a pod
Fields§
§networks: Option<HashMap<String, PerNetworkOptions>>
Map of networks names to ids the container should join to. You can request additional settings for each network, you can set network aliases, static ips, static mac address and the network interface name for this container on the specific network. If the map is empty and the bridge network mode is set the container will be joined to the default network.
cgroup_parent: Option<String>
CgroupParent is the parent for the Cgroup that the pod will create. This pod cgroup will, in turn, be the default cgroup parent for all containers in the pod. Optional.
cni_networks: Option<Vec<String>>
CNINetworks is a list of CNI networks to join the container to. If this list is empty, the default CNI network will be joined instead. If at least one entry is present, we will not join the default network (unless it is part of this list). Only available if NetNS is set to bridge. Optional. Deprecated: as of podman 4.0 use “Networks” instead.
cpu_period: Option<u64>
CPU period of the cpuset, determined by –cpus
cpu_quota: Option<i64>
CPU quota of the cpuset, determined by –cpus
dns_option: Option<Vec<String>>
DNSOption is a set of DNS options that will be used in the infra container’s resolv.conf, which will, by default, be shared with all containers in the pod. Conflicts with NoInfra=true. Optional.
dns_search: Option<Vec<String>>
DNSSearch is a set of DNS search domains that will be used in the infra container’s resolv.conf, which will, by default, be shared with all containers in the pod. If not provided, DNS search domains from the host’s resolv.conf will be used. Conflicts with NoInfra=true. Optional.
dns_server: Option<Vec<String>>
DNSServer is a set of DNS servers that will be used in the infra container’s resolv.conf, which will, by default, be shared with all containers in the pod. If not provided, the host’s DNS servers will be used, unless the only server set is a localhost address. As the container cannot connect to the host’s localhost, a default server will instead be set. Conflicts with NoInfra=true. Optional.
exit_policy: Option<String>
ExitPolicy determines the pod’s exit and stop behaviour.
hostadd: Option<Vec<String>>
HostAdd is a set of hosts that will be added to the infra container’s etc/hosts that will, by default, be shared with all containers in the pod. Conflicts with NoInfra=true and NoManageHosts. Optional.
hostname: Option<String>
Hostname is the pod’s hostname. If not set, the name of the pod will be used (if a name was not provided here, the name auto-generated for the pod will be used). This will be used by the infra container and all containers in the pod as long as the UTS namespace is shared. Optional.
idmappings: Option<IdMappingOptions>
§image_volumes: Option<Vec<ImageVolume>>
Image volumes bind-mount a container-image mount into the pod’s infra container. Optional.
infra_command: Option<Vec<String>>
InfraCommand sets the command that will be used to start the infra container. If not set, the default set in the Libpod configuration file will be used. Conflicts with NoInfra=true. Optional.
infra_conmon_pid_file: Option<String>
InfraConmonPidFile is a custom path to store the infra container’s conmon PID.
infra_image: Option<String>
InfraImage is the image that will be used for the infra container. If not set, the default set in the Libpod configuration file will be used. Conflicts with NoInfra=true. Optional.
infra_name: Option<String>
InfraName is the name that will be used for the infra container. If not set, the default set in the Libpod configuration file will be used. Conflicts with NoInfra=true. Optional.
labels: Option<HashMap<String, String>>
Labels are key-value pairs that are used to add metadata to pods. Optional.
mounts: Option<Vec<Mount>>
Mounts are mounts that will be added to the pod. These will supersede Image Volumes and VolumesFrom volumes where there are conflicts. Optional.
name: Option<String>
Name is the name of the pod. If not provided, a name will be generated when the pod is created. Optional.
netns: Option<Namespace>
§network_options: Option<HashMap<String, Vec<String>>>
NetworkOptions are additional options for each network Optional.
no_infra: Option<bool>
NoInfra tells the pod not to create an infra container. If this is done, many networking-related options will become unavailable. Conflicts with setting any options in PodNetworkConfig, and the InfraCommand and InfraImages in this struct. Optional.
no_manage_hosts: Option<bool>
NoManageHosts indicates that /etc/hosts should not be managed by the pod. Instead, each container will create a separate /etc/hosts as they would if not in a pod. Conflicts with HostAdd.
no_manage_resolv_conf: Option<bool>
NoManageResolvConf indicates that /etc/resolv.conf should not be managed by the pod. Instead, each container will create and manage a separate resolv.conf as if they had not joined a pod. Conflicts with NoInfra=true and DNSServer, DNSSearch, DNSOption. Optional.
overlay_volumes: Option<Vec<OverlayVolume>>
Overlay volumes are named volumes that will be added to the pod. Optional.
pidns: Option<Namespace>
§pod_create_command: Option<Vec<String>>
§pod_devices: Option<Vec<String>>
Devices contains user specified Devices to be added to the Pod
portmappings: Option<Vec<PortMapping>>
PortMappings is a set of ports to map into the infra container. As, by default, containers share their network with the infra container, this will forward the ports to the entire pod. Only available if NetNS is set to Bridge or Slirp. Optional.
resource_limits: Option<LinuxResources>
§security_opt: Option<Vec<String>>
§service_container_id: Option<String>
The ID of the pod’s service container.
PodCreateCommand is the command used to create this pod.
This will be shown in the output of Inspect() on the pod, and may
also be used by some tools that wish to recreate the pod
(e.g. podman generate systemd --new
).
Optional.
ShareParent determines if all containers in the pod will share the pod’s cgroup as the cgroup parent
SharedNamespaces instructs the pod to share a set of namespaces. Shared namespaces will be joined (by default) by every container which joins the pod. If not set and NoInfra is false, the pod will set a default set of namespaces to share. Conflicts with NoInfra=true. Optional.
shm_size: Option<i64>
ShmSize is the size of the tmpfs to mount in at /dev/shm, in bytes. Conflicts with ShmSize if IpcNS is not private. Optional.
sysctl: Option<HashMap<String, String>>
Sysctl sets kernel parameters for the pod
throttle_read_bps_device: Option<HashMap<String, LinuxThrottleDevice>>
ThrottleReadBpsDevice contains the rate at which the devices in the pod can be read from/accessed
userns: Option<Namespace>
§utsns: Option<Namespace>
§volumes: Option<Vec<NamedVolume>>
Volumes are named volumes that will be added to the pod. These will supersede Image Volumes and VolumesFrom volumes where there are conflicts. Optional.
volumes_from: Option<Vec<String>>
VolumesFrom is a set of containers whose volumes will be added to this pod. The name or ID of the container must be provided, and may optionally be followed by a : and then one or more comma-separated options. Valid options are ‘ro’, ‘rw’, and ‘z’. Options will be used for all volumes sourced from the container.
Trait Implementations§
Source§impl Clone for PodSpecGenerator
impl Clone for PodSpecGenerator
Source§fn clone(&self) -> PodSpecGenerator
fn clone(&self) -> PodSpecGenerator
1.0.0 · Source§const fn clone_from(&mut self, source: &Self)
const fn clone_from(&mut self, source: &Self)
source
. Read more