EksContainerDefinitionProps Struct
Props to configure an EksContainerDefinition.
Example
const jobDefn = new batch.EksJobDefinition(this, 'eksf2', {
container: new batch.EksContainerDefinition(this, 'container', {
image: ecs.ContainerImage.fromRegistry('amazon/amazon-ecs-sample'),
volumes: [batch.EksVolume.emptyDir({
name: 'myEmptyDirVolume',
mountPath: '/mount/path',
medium: batch.EmptyDirMediumType.MEMORY,
readonly: true,
sizeLimit: cdk.Size.mebibytes(2048),
})],
}),
});
Properties
notes
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 "
commandstring[]commandtyping.List[str]commandList<String>Commandstring[]Command*[]*string= no command#notes
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.
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.
cpuReservationnumbercpu_reservationint | floatcpuReservationNumberCpuReservationdoubleCpuReservation*float64= No CPUs reserved#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.
env{ [key: string]: string }envtyping.Mapping[str, str]envMap<String, String>EnvIDictionary<string, string>Env*map[string]*string= no environment variables#Note: Environment variables cannot start with "AWS_BATCH". This naming convention is reserved for variables that AWS Batch sets.
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.
gpuReservationnumbergpu_reservationint | floatgpuReservationNumberGpuReservationdoubleGpuReservation*float64= No GPUs reserved#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.
imageContainerImageimageContainerImageimageContainerImageImageContainerImageImageContainerImagerequired#imagePullPolicyImagePullPolicyimage_pull_policyImagePullPolicyimagePullPolicyImagePullPolicyImagePullPolicyImagePullPolicyImagePullPolicyImagePullPolicy= `ALWAYS` if the `:latest` tag is…#default
Default: ALWAYS if the :latest tag is specified, IF_NOT_PRESENT otherwise
notes
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.
memoryReservationSizememory_reservationSizememoryReservationSizeMemoryReservationSizeMemoryReservationSize= No memory reserved#notes
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.
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
readonlyRootFilesystembooleanreadonly_root_filesystemboolreadonlyRootFilesystemBooleanReadonlyRootFilesystemboolReadonlyRootFilesystem*bool= false#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
notes
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
runAsRootbooleanrun_as_rootboolrunAsRootBooleanRunAsRootboolRunAsRoot*bool= the container is *not* required …#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
Default: the container is not required to run as a non-root user
runAsUsernumberrun_as_userint | floatrunAsUserNumberRunAsUserdoubleRunAsUser*float64= the user that is specified in th…#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
Default: the user that is specified in the image metadata.