![JAR search and dependency download from the Maven repository](/logo.png)
com.pulumi.awsnative.batch.kotlin.outputs.JobDefinitionPodProperties.kt Maven / Gradle / Ivy
@file:Suppress("NAME_SHADOWING", "DEPRECATION")
package com.pulumi.awsnative.batch.kotlin.outputs
import kotlin.Boolean
import kotlin.String
import kotlin.Suppress
import kotlin.collections.List
/**
*
* @property containers The properties of the container that's used on the Amazon EKS pod.
* @property dnsPolicy The DNS policy for the pod. The default value is `ClusterFirst` . If the `hostNetwork` parameter is not specified, the default is `ClusterFirstWithHostNet` . `ClusterFirst` indicates that any DNS query that does not match the configured cluster domain suffix is forwarded to the upstream nameserver inherited from the node. For more information, see [Pod's DNS policy](https://docs.aws.amazon.com/https://kubernetes.io/docs/concepts/services-networking/dns-pod-service/#pod-s-dns-policy) in the *Kubernetes documentation* .
* Valid values: `Default` | `ClusterFirst` | `ClusterFirstWithHostNet`
* @property hostNetwork Indicates if the pod uses the hosts' network IP address. The default value is `true` . Setting this to `false` enables the Kubernetes pod networking model. Most AWS Batch workloads are egress-only and don't require the overhead of IP allocation for each pod for incoming connections. For more information, see [Host namespaces](https://docs.aws.amazon.com/https://kubernetes.io/docs/concepts/security/pod-security-policy/#host-namespaces) and [Pod networking](https://docs.aws.amazon.com/https://kubernetes.io/docs/concepts/workloads/pods/#pod-networking) in the *Kubernetes documentation* .
* @property imagePullSecrets
* @property initContainers These containers run before application containers, always runs to completion, and must complete successfully before the next container starts. These containers are registered with the Amazon EKS Connector agent and persists the registration information in the Kubernetes backend data store. For more information, see [Init Containers](https://docs.aws.amazon.com/https://kubernetes.io/docs/concepts/workloads/pods/init-containers/) in the *Kubernetes documentation* .
* > This object is limited to 10 elements
* @property metadata Metadata about the Kubernetes pod. For more information, see [Understanding Kubernetes Objects](https://docs.aws.amazon.com/https://kubernetes.io/docs/concepts/overview/working-with-objects/kubernetes-objects/) in the *Kubernetes documentation* .
* @property serviceAccountName The name of the service account that's used to run the pod. For more information, see [Kubernetes service accounts](https://docs.aws.amazon.com/eks/latest/userguide/service-accounts.html) and [Configure a Kubernetes service account to assume an IAM role](https://docs.aws.amazon.com/eks/latest/userguide/associate-service-account-role.html) in the *Amazon EKS User Guide* and [Configure service accounts for pods](https://docs.aws.amazon.com/https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/) in the *Kubernetes documentation* .
* @property shareProcessNamespace Indicates if the processes in a container are shared, or visible, to other containers in the same pod. For more information, see [Share Process Namespace between Containers in a Pod](https://docs.aws.amazon.com/https://kubernetes.io/docs/tasks/configure-pod-container/share-process-namespace/) .
* @property volumes Specifies the volumes for a job definition that uses Amazon EKS resources.
*/
public data class JobDefinitionPodProperties(
public val containers: List? = null,
public val dnsPolicy: String? = null,
public val hostNetwork: Boolean? = null,
public val imagePullSecrets: List? = null,
public val initContainers: List? = null,
public val metadata: JobDefinitionMetadata? = null,
public val serviceAccountName: String? = null,
public val shareProcessNamespace: Boolean? = null,
public val volumes: List? = null,
) {
public companion object {
public fun toKotlin(javaType: com.pulumi.awsnative.batch.outputs.JobDefinitionPodProperties): JobDefinitionPodProperties = JobDefinitionPodProperties(
containers = javaType.containers().map({ args0 ->
args0.let({ args0 ->
com.pulumi.awsnative.batch.kotlin.outputs.JobDefinitionEksContainer.Companion.toKotlin(args0)
})
}),
dnsPolicy = javaType.dnsPolicy().map({ args0 -> args0 }).orElse(null),
hostNetwork = javaType.hostNetwork().map({ args0 -> args0 }).orElse(null),
imagePullSecrets = javaType.imagePullSecrets().map({ args0 ->
args0.let({ args0 ->
com.pulumi.awsnative.batch.kotlin.outputs.JobDefinitionImagePullSecret.Companion.toKotlin(args0)
})
}),
initContainers = javaType.initContainers().map({ args0 ->
args0.let({ args0 ->
com.pulumi.awsnative.batch.kotlin.outputs.JobDefinitionEksContainer.Companion.toKotlin(args0)
})
}),
metadata = javaType.metadata().map({ args0 ->
args0.let({ args0 ->
com.pulumi.awsnative.batch.kotlin.outputs.JobDefinitionMetadata.Companion.toKotlin(args0)
})
}).orElse(null),
serviceAccountName = javaType.serviceAccountName().map({ args0 -> args0 }).orElse(null),
shareProcessNamespace = javaType.shareProcessNamespace().map({ args0 -> args0 }).orElse(null),
volumes = javaType.volumes().map({ args0 ->
args0.let({ args0 ->
com.pulumi.awsnative.batch.kotlin.outputs.JobDefinitionEksVolume.Companion.toKotlin(args0)
})
}),
)
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy