Class V1JobSpec
JobSpec describes how the job execution will look like.
Assembly: KubernetesClient.dll
Syntax
public record V1JobSpec : IEquatable<V1JobSpec>
Constructors
View Source
V1JobSpec()
Declaration
View Source
V1JobSpec(V1JobSpec)
Declaration
protected V1JobSpec(V1JobSpec original)
Parameters
Properties
View Source
ActiveDeadlineSeconds
Specifies the duration in seconds relative to the startTime that the job may be
continuously active before the system tries to terminate it; value must be
positive integer. If a Job is suspended (at creation or through an update), this
timer will effectively be stopped and reset when the Job is resumed again.
Declaration
[JsonPropertyName("activeDeadlineSeconds")]
public long? ActiveDeadlineSeconds { get; set; }
Property Value
View Source
BackoffLimit
Specifies the number of retries before marking this job failed. Defaults to 6,
unless backoffLimitPerIndex (only Indexed Job) is specified. When
backoffLimitPerIndex is specified, backoffLimit defaults to 2147483647.
Declaration
[JsonPropertyName("backoffLimit")]
public int? BackoffLimit { get; set; }
Property Value
View Source
BackoffLimitPerIndex
Specifies the limit for the number of retries within an index before marking
this index as failed. When enabled the number of failures per index is kept in
the pod's batch.kubernetes.io/job-index-failure-count annotation. It can only be
set when Job's completionMode=Indexed, and the Pod's restart policy is Never.
The field is immutable.
Declaration
[JsonPropertyName("backoffLimitPerIndex")]
public int? BackoffLimitPerIndex { get; set; }
Property Value
View Source
CompletionMode
completionMode specifies how Pod completions are tracked. It can be NonIndexed
(default) or Indexed.
NonIndexed means that the Job is considered complete when there have been
.spec.completions successfully completed Pods. Each Pod completion is homologous
to each other.
Indexed means that the Pods of a Job get an associated completion index from 0
to (.spec.completions - 1), available in the annotation
batch.kubernetes.io/job-completion-index. The Job is considered complete when
there is one successfully completed Pod for each index. When value is Indexed,
.spec.completions must be specified and .spec.parallelism must be less than or
equal to 10^5. In addition, The Pod name takes the form
$(job-name)-$(index)-$(random-string), the Pod hostname takes the form
$(job-name)-$(index).
More completion modes can be added in the future. If the Job controller observes
a mode that it doesn't recognize, which is possible during upgrades due to
version skew, the controller skips updates for the Job.
Declaration
[JsonPropertyName("completionMode")]
public string CompletionMode { get; set; }
Property Value
View Source
Completions
Specifies the desired number of successfully finished pods the job should be run
with. Setting to null means that the success of any pod signals the success of
all pods, and allows parallelism to have any positive value. Setting to 1 means
that parallelism is limited to 1 and the success of that pod signals the success
of the job. More info:
https://kubernetes.io/docs/concepts/workloads/controllers/jobs-run-to-completion/
Declaration
[JsonPropertyName("completions")]
public int? Completions { get; set; }
Property Value
View Source
EqualityContract
Declaration
protected virtual Type EqualityContract { get; }
Property Value
View Source
ManagedBy
ManagedBy field indicates the controller that manages a Job. The k8s Job
controller reconciles jobs which don't have this field at all or the field value
is the reserved string kubernetes.io/job-controller, but skips reconciling
Jobs with a custom value for this field. The value must be a valid
domain-prefixed path (e.g. acme.io/foo) - all characters before the first "/"
must be a valid subdomain as defined by RFC 1123. All characters trailing the
first "/" must be valid HTTP Path characters as defined by RFC 3986. The value
cannot exceed 63 characters. This field is immutable.
This field is beta-level. The job controller accepts setting the field when the
feature gate JobManagedBy is enabled (enabled by default).
Declaration
[JsonPropertyName("managedBy")]
public string ManagedBy { get; set; }
Property Value
View Source
ManualSelector
manualSelector controls generation of pod labels and pod selectors. Leave
manualSelector unset unless you are certain what you are doing. When false or
unset, the system pick labels unique to this job and appends those labels to the
pod template. When true, the user is responsible for picking unique labels and
specifying the selector. Failure to pick a unique label may cause this and
other jobs to not function correctly. However, You may see
manualSelector=true in jobs that were created with the old
extensions/v1beta1 API. More info:
https://kubernetes.io/docs/concepts/workloads/controllers/jobs-run-to-completion/#specifying-your-own-pod-selector
Declaration
[JsonPropertyName("manualSelector")]
public bool? ManualSelector { get; set; }
Property Value
View Source
MaxFailedIndexes
Specifies the maximal number of failed indexes before marking the Job as failed,
when backoffLimitPerIndex is set. Once the number of failed indexes exceeds this
number the entire Job is marked as Failed and its execution is terminated. When
left as null the job continues execution of all of its indexes and is marked
with the Complete Job condition. It can only be specified when
backoffLimitPerIndex is set. It can be null or up to completions. It is required
and must be less than or equal to 10^4 when is completions greater than 10^5.
Declaration
[JsonPropertyName("maxFailedIndexes")]
public int? MaxFailedIndexes { get; set; }
Property Value
View Source
Parallelism
Declaration
[JsonPropertyName("parallelism")]
public int? Parallelism { get; set; }
Property Value
View Source
PodFailurePolicy
Specifies the policy of handling failed pods. In particular, it allows to
specify the set of actions and conditions which need to be satisfied to take the
associated action. If empty, the default behaviour applies - the counter of
failed pods, represented by the jobs's .status.failed field, is incremented and
it is checked against the backoffLimit. This field cannot be used in combination
with restartPolicy=OnFailure.
Declaration
[JsonPropertyName("podFailurePolicy")]
public V1PodFailurePolicy PodFailurePolicy { get; set; }
Property Value
View Source
PodReplacementPolicy
podReplacementPolicy specifies when to create replacement Pods. Possible values
are: - TerminatingOrFailed means that we recreate pods
when they are terminating (has a metadata.deletionTimestamp) or failed.
- Failed means to wait until a previously created Pod is fully terminated (has
phase
Failed or Succeeded) before creating a replacement Pod.
When using podFailurePolicy, Failed is the the only allowed value.
TerminatingOrFailed and Failed are allowed values when podFailurePolicy is not
in use.
Declaration
[JsonPropertyName("podReplacementPolicy")]
public string PodReplacementPolicy { get; set; }
Property Value
View Source
Selector
Declaration
[JsonPropertyName("selector")]
public V1LabelSelector Selector { get; set; }
Property Value
View Source
SuccessPolicy
successPolicy specifies the policy when the Job can be declared as succeeded. If
empty, the default behavior applies - the Job is declared as succeeded only when
the number of succeeded pods equals to the completions. When the field is
specified, it must be immutable and works only for the Indexed Jobs. Once the
Job meets the SuccessPolicy, the lingering pods are terminated.
Declaration
[JsonPropertyName("successPolicy")]
public V1SuccessPolicy SuccessPolicy { get; set; }
Property Value
View Source
Suspend
suspend specifies whether the Job controller should create Pods or not. If a Job
is created with suspend set to true, no Pods are created by the Job controller.
If a Job is suspended after creation (i.e. the flag goes from false to true),
the Job controller will delete all active Pods associated with this Job. Users
must design their workload to gracefully handle this. Suspending a Job will
reset the StartTime field of the Job, effectively resetting the
ActiveDeadlineSeconds timer too. Defaults to false.
Declaration
[JsonPropertyName("suspend")]
public bool? Suspend { get; set; }
Property Value
View Source
Template
Declaration
[JsonPropertyName("template")]
public V1PodTemplateSpec Template { get; set; }
Property Value
View Source
TtlSecondsAfterFinished
ttlSecondsAfterFinished limits the lifetime of a Job that has finished execution
(either Complete or Failed). If this field is set, ttlSecondsAfterFinished after
the Job finishes, it is eligible to be automatically deleted. When the Job is
being deleted, its lifecycle guarantees (e.g. finalizers) will be honored. If
this field is unset, the Job won't be automatically deleted. If this field is
set to zero, the Job becomes eligible to be deleted immediately after it
finishes.
Declaration
[JsonPropertyName("ttlSecondsAfterFinished")]
public int? TtlSecondsAfterFinished { get; set; }
Property Value
Methods
View Source
Equals(object?)
Declaration
public override bool Equals(object? obj)
Parameters
| Type |
Name |
Description |
| object |
obj |
|
Returns
Overrides
View Source
Equals(V1JobSpec?)
Declaration
public virtual bool Equals(V1JobSpec? other)
Parameters
Returns
View Source
GetHashCode()
Declaration
public override int GetHashCode()
Returns
Overrides
View Source
PrintMembers(StringBuilder)
Declaration
protected virtual bool PrintMembers(StringBuilder builder)
Parameters
Returns
View Source
ToString()
Declaration
public override string ToString()
Returns
Overrides
Operators
View Source
operator ==(V1JobSpec?, V1JobSpec?)
Declaration
public static bool operator ==(V1JobSpec? left, V1JobSpec? right)
Parameters
Returns
View Source
operator !=(V1JobSpec?, V1JobSpec?)
Declaration
public static bool operator !=(V1JobSpec? left, V1JobSpec? right)
Parameters
Returns
Implements