Class EksContainerDefinition.Builder

java.lang.Object
software.amazon.awscdk.services.batch.EksContainerDefinition.Builder
All Implemented Interfaces:
software.amazon.jsii.Builder<EksContainerDefinition>
Enclosing class:
EksContainerDefinition

@Stability(Stable) public static final class EksContainerDefinition.Builder extends Object implements software.amazon.jsii.Builder<EksContainerDefinition>
A fluent builder for EksContainerDefinition.
  • Method Details

    • create

      @Stability(Stable) public static EksContainerDefinition.Builder create(software.constructs.Construct scope, String id)
      Parameters:
      scope - This parameter is required.
      id - This parameter is required.
      Returns:
      a new instance of EksContainerDefinition.Builder.
    • image

      @Stability(Stable) public EksContainerDefinition.Builder image(ContainerImage image)
      The image that this container will run.

      Parameters:
      image - The image that this container will run. This parameter is required.
      Returns:
      this
    • args

      @Stability(Stable) public EksContainerDefinition.Builder args(List<String> args)
      An array of arguments to the entrypoint.

      If this isn't specified, the CMD of the container image is used. This corresponds to the args member in the Entrypoint portion of the Pod in Kubernetes. Environment variable references are expanded using the container's environment. If the referenced environment variable doesn't exist, the reference in the command isn't changed. For example, if the reference is to "$(NAME1)" and the NAME1 environment variable doesn't exist, the command string will remain "$(NAME1)." $$ is replaced with $, and the resulting string isn't expanded. or example, $$(VAR_NAME) is passed as $(VAR_NAME) whether or not the VAR_NAME environment variable exists.

      Default: - no args

      Parameters:
      args - An array of arguments to the entrypoint. This parameter is required.
      Returns:
      this
      See Also:
    • command

      @Stability(Stable) public EksContainerDefinition.Builder command(List<String> command)
      The entrypoint for the container.

      This isn't run within a shell. If this isn't specified, the ENTRYPOINT of the container image is used. Environment variable references are expanded using the container's environment. If the referenced environment variable doesn't exist, the reference in the command isn't changed. For example, if the reference is to "$(NAME1)" and the NAME1 environment variable doesn't exist, the command string will remain "$(NAME1)." $$ is replaced with $ and the resulting string isn't expanded. For example, $$(VAR_NAME) will be passed as $(VAR_NAME) whether or not the VAR_NAME environment variable exists.

      The entrypoint can't be updated.

      Default: - no command

      Parameters:
      command - The entrypoint for the container. This parameter is required.
      Returns:
      this
      See Also:
    • cpuLimit

      @Stability(Stable) public EksContainerDefinition.Builder cpuLimit(Number cpuLimit)
      The hard limit of CPUs to present to this container. Must be an even multiple of 0.25.

      If your container attempts to exceed this limit, it will be terminated.

      At least one of cpuReservation and cpuLimit is required. If both are specified, then cpuLimit must be at least as large as cpuReservation.

      Default: - No CPU limit

      Parameters:
      cpuLimit - The hard limit of CPUs to present to this container. Must be an even multiple of 0.25. This parameter is required.
      Returns:
      this
      See Also:
    • cpuReservation

      @Stability(Stable) public EksContainerDefinition.Builder cpuReservation(Number cpuReservation)
      The soft limit of CPUs to reserve for the container Must be an even multiple of 0.25.

      The container will given at least this many CPUs, but may consume more.

      At least one of cpuReservation and cpuLimit is required. If both are specified, then cpuLimit must be at least as large as cpuReservation.

      Default: - No CPUs reserved

      Parameters:
      cpuReservation - The soft limit of CPUs to reserve for the container Must be an even multiple of 0.25. This parameter is required.
      Returns:
      this
      See Also:
    • env

      @Stability(Stable) public EksContainerDefinition.Builder env(Map<String,String> env)
      The environment variables to pass to this container.

      Note: Environment variables cannot start with "AWS_BATCH". This naming convention is reserved for variables that AWS Batch sets.

      Default: - no environment variables

      Parameters:
      env - The environment variables to pass to this container. This parameter is required.
      Returns:
      this
    • gpuLimit

      @Stability(Stable) public EksContainerDefinition.Builder gpuLimit(Number gpuLimit)
      The hard limit of GPUs to present to this container.

      If your container attempts to exceed this limit, it will be terminated.

      If both gpuReservation and gpuLimit are specified, then gpuLimit must be equal to gpuReservation.

      Default: - No GPU limit

      Parameters:
      gpuLimit - The hard limit of GPUs to present to this container. This parameter is required.
      Returns:
      this
      See Also:
    • gpuReservation

      @Stability(Stable) public EksContainerDefinition.Builder gpuReservation(Number gpuReservation)
      The soft limit of CPUs to reserve for the container Must be an even multiple of 0.25.

      The container will given at least this many CPUs, but may consume more.

      If both gpuReservation and gpuLimit are specified, then gpuLimit must be equal to gpuReservation.

      Default: - No GPUs reserved

      Parameters:
      gpuReservation - The soft limit of CPUs to reserve for the container Must be an even multiple of 0.25. This parameter is required.
      Returns:
      this
      See Also:
    • imagePullPolicy

      @Stability(Stable) public EksContainerDefinition.Builder imagePullPolicy(ImagePullPolicy imagePullPolicy)
      The image pull policy for this container.

      Default: - `ALWAYS` if the `:latest` tag is specified, `IF_NOT_PRESENT` otherwise

      Parameters:
      imagePullPolicy - The image pull policy for this container. This parameter is required.
      Returns:
      this
      See Also:
    • memoryLimit

      @Stability(Stable) public EksContainerDefinition.Builder memoryLimit(Size memoryLimit)
      The amount (in MiB) of memory to present to the container.

      If your container attempts to exceed the allocated memory, it will be terminated.

      Must be larger that 4 MiB

      At least one of memoryLimit and memoryReservation is required

      Note: To maximize your resource utilization, provide your jobs with as much memory as possible for the specific instance type that you are using.

      Default: - No memory limit

      Parameters:
      memoryLimit - The amount (in MiB) of memory to present to the container. This parameter is required.
      Returns:
      this
      See Also:
    • memoryReservation

      @Stability(Stable) public EksContainerDefinition.Builder memoryReservation(Size memoryReservation)
      The soft limit (in MiB) of memory to reserve for the container.

      Your container will be given at least this much memory, but may consume more.

      Must be larger that 4 MiB

      When system memory is under heavy contention, Docker attempts to keep the container memory to this soft limit. However, your container can consume more memory when it needs to, up to either the hard limit specified with the memory parameter (if applicable), or all of the available memory on the container instance, whichever comes first.

      At least one of memoryLimit and memoryReservation is required. If both are specified, then memoryLimit must be equal to memoryReservation

      Note: To maximize your resource utilization, provide your jobs with as much memory as possible for the specific instance type that you are using.

      Default: - No memory reserved

      Parameters:
      memoryReservation - The soft limit (in MiB) of memory to reserve for the container. This parameter is required.
      Returns:
      this
      See Also:
    • name

      @Stability(Stable) public EksContainerDefinition.Builder name(String name)
      The name of this container.

      Default: : `'Default'`

      Parameters:
      name - The name of this container. This parameter is required.
      Returns:
      this
    • privileged

      @Stability(Stable) public EksContainerDefinition.Builder privileged(Boolean privileged)
      If specified, gives this container elevated permissions on the host container instance.

      The level of permissions are similar to the root user permissions.

      This parameter maps to privileged policy in the Privileged pod security policies in the Kubernetes documentation.

      Note: this is only compatible with Kubernetes < v1.25

      Default: false

      Parameters:
      privileged - If specified, gives this container elevated permissions on the host container instance. This parameter is required.
      Returns:
      this
      See Also:
    • readonlyRootFilesystem

      @Stability(Stable) public EksContainerDefinition.Builder readonlyRootFilesystem(Boolean readonlyRootFilesystem)
      If specified, gives this container readonly access to its root file system.

      This parameter maps to ReadOnlyRootFilesystem policy in the Volumes and file systems pod security policies in the Kubernetes documentation.

      Note: this is only compatible with Kubernetes < v1.25

      Default: false

      Parameters:
      readonlyRootFilesystem - If specified, gives this container readonly access to its root file system. This parameter is required.
      Returns:
      this
      See Also:
    • runAsGroup

      @Stability(Stable) public EksContainerDefinition.Builder runAsGroup(Number runAsGroup)
      If specified, the container is run as the specified group ID (gid).

      If this parameter isn't specified, the default is the group that's specified in the image metadata. This parameter maps to RunAsGroup and MustRunAs policy in the Users and groups pod security policies in the Kubernetes documentation.

      Note: this is only compatible with Kubernetes < v1.25

      Default: none

      Parameters:
      runAsGroup - If specified, the container is run as the specified group ID (gid). This parameter is required.
      Returns:
      this
      See Also:
    • runAsRoot

      @Stability(Stable) public EksContainerDefinition.Builder runAsRoot(Boolean runAsRoot)
      If specified, the container is run as a user with a uid other than 0.

      Otherwise, no such rule is enforced. This parameter maps to RunAsUser and MustRunAsNonRoot policy in the Users and groups pod security policies in the Kubernetes documentation.

      Note: this is only compatible with Kubernetes < v1.25

      Default: - the container is *not* required to run as a non-root user

      Parameters:
      runAsRoot - If specified, the container is run as a user with a uid other than 0. This parameter is required.
      Returns:
      this
      See Also:
    • runAsUser

      @Stability(Stable) public EksContainerDefinition.Builder runAsUser(Number runAsUser)
      If specified, this container is run as the specified user ID (uid).

      This parameter maps to RunAsUser and MustRunAs policy in the Users and groups pod security policies in the Kubernetes documentation.

      Note: this is only compatible with Kubernetes < v1.25

      Default: - the user that is specified in the image metadata.

      Parameters:
      runAsUser - If specified, this container is run as the specified user ID (uid). This parameter is required.
      Returns:
      this
      See Also:
    • volumes

      @Stability(Stable) public EksContainerDefinition.Builder volumes(List<? extends EksVolume> volumes)
      The Volumes to mount to this container.

      Automatically added to the Pod.

      Default: - no volumes

      Parameters:
      volumes - The Volumes to mount to this container. This parameter is required.
      Returns:
      this
      See Also:
    • build

      @Stability(Stable) public EksContainerDefinition build()
      Specified by:
      build in interface software.amazon.jsii.Builder<EksContainerDefinition>
      Returns:
      a newly built instance of EksContainerDefinition.