Documentation ¶
Index ¶
Constants ¶
const ( // RestartPolicyNever is used to indicate that a pod won't be restarted. RestartPolicyNever = RestartPolicy(corev1.RestartPolicyNever) // RestartPolicyAlways is used to indicate that a pod always will be restarted. RestartPolicyAlways = RestartPolicy(corev1.RestartPolicyAlways) // RestartPolicyOnFailure is used to indicate that a pod will be restarted only on failures. RestartPolicyOnFailure = RestartPolicy(corev1.RestartPolicyOnFailure) )
const ( // HostPathUnset is used for backwards compatibility, leave it empty if unset. HostPathUnset = HostPathType(corev1.HostPathUnset) // HostPathDirectoryOrCreate should be set if nothing exists at the given path, an empty directory will be created // there as needed with file mode 0755. HostPathDirectoryOrCreate = HostPathType(corev1.HostPathDirectoryOrCreate) )
const (
// EnvVarSourcePodIP is used to identify the Pod IP source when getting env vars.
EnvVarSourcePodIP = "status.podIP"
)
const ( // ResourceMemory represents a Memory resource for a container. // (500Gi = 500GiB = 500 * 1024 * 1024 * 1024) ResourceMemory = ResourceName(corev1.ResourceMemory) )
Variables ¶
var ( // ErrPodHasNoIP is returned when Pods.GetIP method is called and there's no IP assigned to the pod. ErrPodHasNoIP = errors.New("pod has no ip") // ErrMissingPods is returned when an empty list of pods is returned while waiting for them to be ready. ErrMissingPods = errors.New("missing pods") )
Functions ¶
This section is empty.
Types ¶
type Container ¶
type Container struct { // Name is the container's name. Name string // Image is the OCI image that this container will run. Image string // Command is the entrypoint array. It's not executed within a shell. // The docker image's ENTRYPOINT is used if this is not provided. Cannot be updated. Command []string // Args passed to the Command. Cannot be updated. Args []string // Privileged defines if the container should run in privileged mode. Privileged *bool // AllowPrivilegeEscalation is used to define if the container is allowed to scale its privileges. AllowPrivilegeEscalation *bool // Ports is the list of ports that should be opened. Ports []int32 // Volumes is the list of volumes that should be mounted in the container. Volumes []Volume // EnvVars is the list of env vars that should be passed into the container. EnvVars map[string]string // EnvVars is the list of env vars that should be gotten before passing them into the container. EnvVarsFrom map[string]string // ResourceRequests defines the minimum resources required for this container to run. ResourceRequests map[ResourceName]string // ResourceLimits defines the maximum amount of resources this container can use. ResourceLimits map[ResourceName]string }
Container is a represents of a standard unit of software.
func NewChownContainer ¶
NewChownContainer generates an init container that sets the owner of volume mount directories to a specific user and group.
type CreatePodInput ¶
type CreatePodInput struct { // Name is the name of the pod that will be created. Name string // Namespace is the namespace where the pod will live in. Namespace string // Labels are the map of labels that will be applied to the pod. Labels map[string]string // ImagePullCredentials contains the names or paths of credentials used to pull OCI images from a container // registry. // For Kubernetes, this is equivalent to a pod's ImagePullSecrets. ImagePullCredentials []string // RestartPolicy defines how the pod should react after an error. RestartPolicy RestartPolicy // TerminationGracePeriodSeconds is the time duration in seconds the pod needs to terminate gracefully. TerminationGracePeriodSeconds time.Duration // NodeSelector defines the node where the pod should run in. NodeSelector resource.Selector // InitContainers is the list of containers that are created during pod initialization. // Init containers are launched before Containers, and are typically used to initialize the pod. InitContainers []Container // Containers is the list of containers that should be created inside the pod. Containers []Container // Volumes are the list of volumes that will be created to persist the data from the Container.Volumes. Volumes []Volume // Nameservers are the list of DNS Nameservers that will be used to expose the pod to the internet. Nameservers []string }
CreatePodInput is the input of Pods.Create method.
type Executor ¶
type Executor interface { // Cmd runs a command inside a container. Cmd(container string, command []string) error // Script runs a script inside a container. // Could be used to run copy_to_s3.sh Script(container, path string) error }
Executor groups a set of methods to run commands and scripts inside a Pod.
type HostPathType ¶
type HostPathType corev1.HostPathType
HostPathType defines the host path type used for volumes.
type PodResource ¶
type PodResource struct { resource.Resource phase.ResourcePhase timestamp.ResourceTimestamp }
PodResource is a Resource used to represent pods. It's composed by a set of interfaces to expose data about a pod.
type Pods ¶
type Pods interface { Create(ctx context.Context, input CreatePodInput) (*PodResource, error) Exec(ctx context.Context, resource resource.Resource) Executor Reader(ctx context.Context, resource resource.Resource) Reader WaitForCondition(ctx context.Context, resource resource.Resource, condition ...resource.Condition) waiter.Waiter Delete(ctx context.Context, resource resource.Resource) (resource.Resource, error) Get(ctx context.Context, name, namespace string) (*PodResource, error) GetIP(ctx context.Context, name string, namespace string) (string, error) List(ctx context.Context, namespace string, selector resource.Selector) ([]PodResource, error) }
Pods groups a set of methods to perform an operation with a Pod.
type Reader ¶
type Reader interface { File(ctx context.Context, container string, paths ...string) (*bytes.Buffer, error) Logs(ctx context.Context, container string, lines int64) (string, error) }
Reader groups a set of methods to read files and logs from a Pod.
type ResourceName ¶
type ResourceName corev1.ResourceName
ResourceName is the name of a certain pod resource like memory or cpu.
type RestartPolicy ¶
type RestartPolicy corev1.RestartPolicy
RestartPolicy defines a restart policy used for pods.
type Volume ¶
type Volume interface { // Base contains generic information about the volume. Base() VolumeBase }
Volume is a storage that can be mounted to allow a Container to access its data.
type VolumeBase ¶
type VolumeBase struct { // Name contains the name of the volume. Name string // MountPath is the path within the container at which the volume should be mounted. MountPath string // SubPath is an optional path within the mounted volume from which the container's volume should be mounted. // If not defined, the volume root will be used. SubPath string // ReadOnly indicates whether the volume should be mounted in read-only mode. Defaults to false. ReadOnly bool }
VolumeBase implements a base Volume. It is intended to be embedded in Volume type implementations.
func (VolumeBase) Base ¶
func (v VolumeBase) Base() VolumeBase
Base contains generic information about the volume.
type VolumeConfiguration ¶
type VolumeConfiguration struct { VolumeBase // ConfigurationName is the name of the configuration file to mount. ConfigurationName string // Items optionally defines the specific set of configuration entries to mount. // Keys indicate the items to mount, while values indicate where to mount them inside the volume. // If not defined the configuration will be mounted as a directory, with a file for each entry where the key of the // entry is the file name and the value the contents of the file. Items map[string]string }
VolumeConfiguration is a Volume implementation that mounts the contents of a configuration inside a container.
type VolumeHostPath ¶
type VolumeHostPath struct { VolumeBase // HostPath represents a pre-existing file or directory on the host machine that is directly exposed to the // container. HostPath string // HostPathType defines the mount type and mounting behavior. HostPathType HostPathType }
VolumeHostPath is a Volume implementation that mounts a directory in the host machine inside a container.