Class PodSpec.Builder
- java.lang.Object
-
- com.marcnuri.yakc.model.io.k8s.api.core.v1.PodSpec.Builder
-
- Enclosing class:
- PodSpec
public static class PodSpec.Builder extends java.lang.Object
-
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description PodSpec.Builder
activeDeadlineSeconds(java.lang.Number activeDeadlineSeconds)
Optional duration in seconds the pod may be active on the node relative to StartTime before the system will actively try to mark it failed and kill associated containers.PodSpec.Builder
addToContainers(Container addToContainers)
PodSpec.Builder
addToEphemeralContainers(EphemeralContainer addToEphemeralContainers)
PodSpec.Builder
addToHostAliases(HostAlias addToHostAliases)
PodSpec.Builder
addToImagePullSecrets(LocalObjectReference addToImagePullSecrets)
PodSpec.Builder
addToInitContainers(Container addToInitContainers)
PodSpec.Builder
addToReadinessGates(PodReadinessGate addToReadinessGates)
PodSpec.Builder
addToResourceClaims(PodResourceClaim addToResourceClaims)
PodSpec.Builder
addToSchedulingGates(PodSchedulingGate addToSchedulingGates)
PodSpec.Builder
addToTolerations(Toleration addToTolerations)
PodSpec.Builder
addToTopologySpreadConstraints(TopologySpreadConstraint addToTopologySpreadConstraints)
PodSpec.Builder
addToVolumes(Volume addToVolumes)
PodSpec.Builder
affinity(Affinity affinity)
PodSpec.Builder
automountServiceAccountToken(java.lang.Boolean automountServiceAccountToken)
AutomountServiceAccountToken indicates whether a service account token should be automatically mounted.PodSpec
build()
PodSpec.Builder
clearContainers()
PodSpec.Builder
clearEphemeralContainers()
PodSpec.Builder
clearHostAliases()
PodSpec.Builder
clearImagePullSecrets()
PodSpec.Builder
clearInitContainers()
PodSpec.Builder
clearNodeSelector()
PodSpec.Builder
clearOverhead()
PodSpec.Builder
clearReadinessGates()
PodSpec.Builder
clearResourceClaims()
PodSpec.Builder
clearSchedulingGates()
PodSpec.Builder
clearTolerations()
PodSpec.Builder
clearTopologySpreadConstraints()
PodSpec.Builder
clearVolumes()
PodSpec.Builder
containers(java.util.Collection<? extends Container> containers)
PodSpec.Builder
dnsConfig(PodDNSConfig dnsConfig)
PodSpec.Builder
dnsPolicy(java.lang.String dnsPolicy)
Set DNS policy for the pod.PodSpec.Builder
enableServiceLinks(java.lang.Boolean enableServiceLinks)
EnableServiceLinks indicates whether information about services should be injected into pod's environment variables, matching the syntax of Docker links.PodSpec.Builder
ephemeralContainers(java.util.Collection<? extends EphemeralContainer> ephemeralContainers)
PodSpec.Builder
hostAliases(java.util.Collection<? extends HostAlias> hostAliases)
PodSpec.Builder
hostIPC(java.lang.Boolean hostIPC)
Use the host's ipc namespace.PodSpec.Builder
hostname(java.lang.String hostname)
Specifies the hostname of the Pod If not specified, the pod's hostname will be set to a system-defined value.PodSpec.Builder
hostNetwork(java.lang.Boolean hostNetwork)
Host networking requested for this pod.PodSpec.Builder
hostPID(java.lang.Boolean hostPID)
Use the host's pid namespace.PodSpec.Builder
hostUsers(java.lang.Boolean hostUsers)
Use the host's user namespace.PodSpec.Builder
imagePullSecrets(java.util.Collection<? extends LocalObjectReference> imagePullSecrets)
PodSpec.Builder
initContainers(java.util.Collection<? extends Container> initContainers)
PodSpec.Builder
nodeName(java.lang.String nodeName)
NodeName is a request to schedule this pod onto a specific node.PodSpec.Builder
nodeSelector(java.util.Map<? extends java.lang.String,? extends java.lang.String> nodeSelector)
PodSpec.Builder
os(PodOS os)
PodSpec.Builder
overhead(java.util.Map<? extends java.lang.String,? extends java.lang.String> overhead)
PodSpec.Builder
preemptionPolicy(java.lang.String preemptionPolicy)
PreemptionPolicy is the Policy for preempting pods with lower priority.PodSpec.Builder
priority(java.lang.Number priority)
The priority value.PodSpec.Builder
priorityClassName(java.lang.String priorityClassName)
If specified, indicates the pod's priority.PodSpec.Builder
putInNodeSelector(java.lang.String putInNodeSelectorKey, java.lang.String putInNodeSelectorValue)
PodSpec.Builder
putInOverhead(java.lang.String putInOverheadKey, java.lang.String putInOverheadValue)
PodSpec.Builder
readinessGates(java.util.Collection<? extends PodReadinessGate> readinessGates)
PodSpec.Builder
resourceClaims(java.util.Collection<? extends PodResourceClaim> resourceClaims)
PodSpec.Builder
restartPolicy(java.lang.String restartPolicy)
Restart policy for all containers within the pod.PodSpec.Builder
runtimeClassName(java.lang.String runtimeClassName)
RuntimeClassName refers to a RuntimeClass object in the node.k8s.io group, which should be used to run this pod.PodSpec.Builder
schedulerName(java.lang.String schedulerName)
If specified, the pod will be dispatched by specified scheduler.PodSpec.Builder
schedulingGates(java.util.Collection<? extends PodSchedulingGate> schedulingGates)
PodSpec.Builder
securityContext(PodSecurityContext securityContext)
PodSpec.Builder
serviceAccount(java.lang.String serviceAccount)
DeprecatedServiceAccount is a depreciated alias for ServiceAccountName.PodSpec.Builder
serviceAccountName(java.lang.String serviceAccountName)
ServiceAccountName is the name of the ServiceAccount to use to run this pod.PodSpec.Builder
setHostnameAsFQDN(java.lang.Boolean setHostnameAsFQDN)
If true the pod's hostname will be configured as the pod's FQDN, rather than the leaf name (the default).PodSpec.Builder
shareProcessNamespace(java.lang.Boolean shareProcessNamespace)
Share a single process namespace between all of the containers in a pod.PodSpec.Builder
subdomain(java.lang.String subdomain)
If specified, the fully qualified Pod hostname will be "<hostname>.<subdomain>.<pod namespace>.svc.<cluster domain>".PodSpec.Builder
terminationGracePeriodSeconds(java.lang.Number terminationGracePeriodSeconds)
Optional duration in seconds the pod needs to terminate gracefully.PodSpec.Builder
tolerations(java.util.Collection<? extends Toleration> tolerations)
PodSpec.Builder
topologySpreadConstraints(java.util.Collection<? extends TopologySpreadConstraint> topologySpreadConstraints)
java.lang.String
toString()
PodSpec.Builder
volumes(java.util.Collection<? extends Volume> volumes)
-
-
-
Method Detail
-
activeDeadlineSeconds
public PodSpec.Builder activeDeadlineSeconds(java.lang.Number activeDeadlineSeconds)
Optional duration in seconds the pod may be active on the node relative to StartTime before the system will actively try to mark it failed and kill associated containers. Value must be a positive integer.- Returns:
this
.
-
affinity
public PodSpec.Builder affinity(Affinity affinity)
- Returns:
this
.
-
automountServiceAccountToken
public PodSpec.Builder automountServiceAccountToken(java.lang.Boolean automountServiceAccountToken)
AutomountServiceAccountToken indicates whether a service account token should be automatically mounted.- Returns:
this
.
-
addToContainers
public PodSpec.Builder addToContainers(Container addToContainers)
-
containers
public PodSpec.Builder containers(java.util.Collection<? extends Container> containers)
-
clearContainers
public PodSpec.Builder clearContainers()
-
dnsConfig
public PodSpec.Builder dnsConfig(PodDNSConfig dnsConfig)
- Returns:
this
.
-
dnsPolicy
public PodSpec.Builder dnsPolicy(java.lang.String dnsPolicy)
Set DNS policy for the pod. Defaults to "ClusterFirst". Valid values are 'ClusterFirstWithHostNet', 'ClusterFirst', 'Default' or 'None'. DNS parameters given in DNSConfig will be merged with the policy selected with DNSPolicy. To have DNS options set along with hostNetwork, you have to specify DNS policy explicitly to 'ClusterFirstWithHostNet'.- Returns:
this
.
-
enableServiceLinks
public PodSpec.Builder enableServiceLinks(java.lang.Boolean enableServiceLinks)
EnableServiceLinks indicates whether information about services should be injected into pod's environment variables, matching the syntax of Docker links. Optional: Defaults to true.- Returns:
this
.
-
addToEphemeralContainers
public PodSpec.Builder addToEphemeralContainers(EphemeralContainer addToEphemeralContainers)
-
ephemeralContainers
public PodSpec.Builder ephemeralContainers(java.util.Collection<? extends EphemeralContainer> ephemeralContainers)
-
clearEphemeralContainers
public PodSpec.Builder clearEphemeralContainers()
-
addToHostAliases
public PodSpec.Builder addToHostAliases(HostAlias addToHostAliases)
-
hostAliases
public PodSpec.Builder hostAliases(java.util.Collection<? extends HostAlias> hostAliases)
-
clearHostAliases
public PodSpec.Builder clearHostAliases()
-
hostIPC
public PodSpec.Builder hostIPC(java.lang.Boolean hostIPC)
Use the host's ipc namespace. Optional: Default to false.- Returns:
this
.
-
hostNetwork
public PodSpec.Builder hostNetwork(java.lang.Boolean hostNetwork)
Host networking requested for this pod. Use the host's network namespace. If this option is set, the ports that will be used must be specified. Default to false.- Returns:
this
.
-
hostPID
public PodSpec.Builder hostPID(java.lang.Boolean hostPID)
Use the host's pid namespace. Optional: Default to false.- Returns:
this
.
-
hostUsers
public PodSpec.Builder hostUsers(java.lang.Boolean hostUsers)
Use the host's user namespace. Optional: Default to true. If set to true or not present, the pod will be run in the host user namespace, useful for when the pod needs a feature only available to the host user namespace, such as loading a kernel module with CAP_SYS_MODULE. When set to false, a new userns is created for the pod. Setting false is useful for mitigating container breakout vulnerabilities even allowing users to run their containers as root without actually having root privileges on the host. This field is alpha-level and is only honored by servers that enable the UserNamespacesSupport feature.- Returns:
this
.
-
hostname
public PodSpec.Builder hostname(java.lang.String hostname)
Specifies the hostname of the Pod If not specified, the pod's hostname will be set to a system-defined value.- Returns:
this
.
-
addToImagePullSecrets
public PodSpec.Builder addToImagePullSecrets(LocalObjectReference addToImagePullSecrets)
-
imagePullSecrets
public PodSpec.Builder imagePullSecrets(java.util.Collection<? extends LocalObjectReference> imagePullSecrets)
-
clearImagePullSecrets
public PodSpec.Builder clearImagePullSecrets()
-
addToInitContainers
public PodSpec.Builder addToInitContainers(Container addToInitContainers)
-
initContainers
public PodSpec.Builder initContainers(java.util.Collection<? extends Container> initContainers)
-
clearInitContainers
public PodSpec.Builder clearInitContainers()
-
nodeName
public PodSpec.Builder nodeName(java.lang.String nodeName)
NodeName is a request to schedule this pod onto a specific node. If it is non-empty, the scheduler simply schedules this pod onto that node, assuming that it fits resource requirements.- Returns:
this
.
-
putInNodeSelector
public PodSpec.Builder putInNodeSelector(java.lang.String putInNodeSelectorKey, java.lang.String putInNodeSelectorValue)
-
nodeSelector
public PodSpec.Builder nodeSelector(java.util.Map<? extends java.lang.String,? extends java.lang.String> nodeSelector)
-
clearNodeSelector
public PodSpec.Builder clearNodeSelector()
-
os
public PodSpec.Builder os(PodOS os)
- Returns:
this
.
-
putInOverhead
public PodSpec.Builder putInOverhead(java.lang.String putInOverheadKey, java.lang.String putInOverheadValue)
-
overhead
public PodSpec.Builder overhead(java.util.Map<? extends java.lang.String,? extends java.lang.String> overhead)
-
clearOverhead
public PodSpec.Builder clearOverhead()
-
preemptionPolicy
public PodSpec.Builder preemptionPolicy(java.lang.String preemptionPolicy)
PreemptionPolicy is the Policy for preempting pods with lower priority. One of Never, PreemptLowerPriority. Defaults to PreemptLowerPriority if unset.- Returns:
this
.
-
priority
public PodSpec.Builder priority(java.lang.Number priority)
The priority value. Various system components use this field to find the priority of the pod. When Priority Admission Controller is enabled, it prevents users from setting this field. The admission controller populates this field from PriorityClassName. The higher the value, the higher the priority.- Returns:
this
.
-
priorityClassName
public PodSpec.Builder priorityClassName(java.lang.String priorityClassName)
If specified, indicates the pod's priority. "system-node-critical" and "system-cluster-critical" are two special keywords which indicate the highest priorities with the former being the highest priority. Any other name must be defined by creating a PriorityClass object with that name. If not specified, the pod priority will be default or zero if there is no default.- Returns:
this
.
-
addToReadinessGates
public PodSpec.Builder addToReadinessGates(PodReadinessGate addToReadinessGates)
-
readinessGates
public PodSpec.Builder readinessGates(java.util.Collection<? extends PodReadinessGate> readinessGates)
-
clearReadinessGates
public PodSpec.Builder clearReadinessGates()
-
addToResourceClaims
public PodSpec.Builder addToResourceClaims(PodResourceClaim addToResourceClaims)
-
resourceClaims
public PodSpec.Builder resourceClaims(java.util.Collection<? extends PodResourceClaim> resourceClaims)
-
clearResourceClaims
public PodSpec.Builder clearResourceClaims()
-
restartPolicy
public PodSpec.Builder restartPolicy(java.lang.String restartPolicy)
Restart policy for all containers within the pod. One of Always, OnFailure, Never. In some contexts, only a subset of those values may be permitted. Default to Always. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#restart-policy- Returns:
this
.
-
runtimeClassName
public PodSpec.Builder runtimeClassName(java.lang.String runtimeClassName)
RuntimeClassName refers to a RuntimeClass object in the node.k8s.io group, which should be used to run this pod. If no RuntimeClass resource matches the named class, the pod will not be run. If unset or empty, the "legacy" RuntimeClass will be used, which is an implicit class with an empty definition that uses the default runtime handler. More info: https://git.k8s.io/enhancements/keps/sig-node/585-runtime-class- Returns:
this
.
-
schedulerName
public PodSpec.Builder schedulerName(java.lang.String schedulerName)
If specified, the pod will be dispatched by specified scheduler. If not specified, the pod will be dispatched by default scheduler.- Returns:
this
.
-
addToSchedulingGates
public PodSpec.Builder addToSchedulingGates(PodSchedulingGate addToSchedulingGates)
-
schedulingGates
public PodSpec.Builder schedulingGates(java.util.Collection<? extends PodSchedulingGate> schedulingGates)
-
clearSchedulingGates
public PodSpec.Builder clearSchedulingGates()
-
securityContext
public PodSpec.Builder securityContext(PodSecurityContext securityContext)
- Returns:
this
.
-
serviceAccount
public PodSpec.Builder serviceAccount(java.lang.String serviceAccount)
DeprecatedServiceAccount is a depreciated alias for ServiceAccountName. Deprecated: Use serviceAccountName instead.- Returns:
this
.
-
serviceAccountName
public PodSpec.Builder serviceAccountName(java.lang.String serviceAccountName)
ServiceAccountName is the name of the ServiceAccount to use to run this pod. More info: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/- Returns:
this
.
-
setHostnameAsFQDN
public PodSpec.Builder setHostnameAsFQDN(java.lang.Boolean setHostnameAsFQDN)
If true the pod's hostname will be configured as the pod's FQDN, rather than the leaf name (the default). In Linux containers, this means setting the FQDN in the hostname field of the kernel (the nodename field of struct utsname). In Windows containers, this means setting the registry value of hostname for the registry key HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters to FQDN. If a pod does not have FQDN, this has no effect. Default to false.- Returns:
this
.
-
shareProcessNamespace
public PodSpec.Builder shareProcessNamespace(java.lang.Boolean shareProcessNamespace)
Share a single process namespace between all of the containers in a pod. When this is set containers will be able to view and signal processes from other containers in the same pod, and the first process in each container will not be assigned PID 1. HostPID and ShareProcessNamespace cannot both be set. Optional: Default to false.- Returns:
this
.
-
subdomain
public PodSpec.Builder subdomain(java.lang.String subdomain)
If specified, the fully qualified Pod hostname will be "<hostname>.<subdomain>.<pod namespace>.svc.<cluster domain>". If not specified, the pod will not have a domainname at all.- Returns:
this
.
-
terminationGracePeriodSeconds
public PodSpec.Builder terminationGracePeriodSeconds(java.lang.Number terminationGracePeriodSeconds)
Optional duration in seconds the pod needs to terminate gracefully. May be decreased in delete request. Value must be non-negative integer. The value zero indicates stop immediately via the kill signal (no opportunity to shut down). If this value is nil, the default grace period will be used instead. The grace period is the duration in seconds after the processes running in the pod are sent a termination signal and the time when the processes are forcibly halted with a kill signal. Set this value longer than the expected cleanup time for your process. Defaults to 30 seconds.- Returns:
this
.
-
addToTolerations
public PodSpec.Builder addToTolerations(Toleration addToTolerations)
-
tolerations
public PodSpec.Builder tolerations(java.util.Collection<? extends Toleration> tolerations)
-
clearTolerations
public PodSpec.Builder clearTolerations()
-
addToTopologySpreadConstraints
public PodSpec.Builder addToTopologySpreadConstraints(TopologySpreadConstraint addToTopologySpreadConstraints)
-
topologySpreadConstraints
public PodSpec.Builder topologySpreadConstraints(java.util.Collection<? extends TopologySpreadConstraint> topologySpreadConstraints)
-
clearTopologySpreadConstraints
public PodSpec.Builder clearTopologySpreadConstraints()
-
addToVolumes
public PodSpec.Builder addToVolumes(Volume addToVolumes)
-
volumes
public PodSpec.Builder volumes(java.util.Collection<? extends Volume> volumes)
-
clearVolumes
public PodSpec.Builder clearVolumes()
-
build
public PodSpec build()
-
toString
public java.lang.String toString()
- Overrides:
toString
in classjava.lang.Object
-
-