297 lines
17 KiB
Go
297 lines
17 KiB
Go
/*
|
|
Copyright The Kubernetes Authors.
|
|
|
|
Licensed under the Apache License, Version 2.0 (the "License");
|
|
you may not use this file except in compliance with the License.
|
|
You may obtain a copy of the License at
|
|
|
|
http://www.apache.org/licenses/LICENSE-2.0
|
|
|
|
Unless required by applicable law or agreed to in writing, software
|
|
distributed under the License is distributed on an "AS IS" BASIS,
|
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
See the License for the specific language governing permissions and
|
|
limitations under the License.
|
|
*/
|
|
|
|
// Code generated by applyconfiguration-gen. DO NOT EDIT.
|
|
|
|
package v1
|
|
|
|
import (
|
|
batchv1 "k8s.io/api/batch/v1"
|
|
corev1 "k8s.io/client-go/applyconfigurations/core/v1"
|
|
metav1 "k8s.io/client-go/applyconfigurations/meta/v1"
|
|
)
|
|
|
|
// JobSpecApplyConfiguration represents a declarative configuration of the JobSpec type for use
|
|
// with apply.
|
|
//
|
|
// JobSpec describes how the job execution will look like.
|
|
type JobSpecApplyConfiguration struct {
|
|
// Specifies the maximum desired number of pods the job should
|
|
// run at any given time. The actual number of pods running in steady state will
|
|
// be less than this number when ((.spec.completions - .status.successful) < .spec.parallelism),
|
|
// i.e. when the work left to do is less than max parallelism.
|
|
// More info: https://kubernetes.io/docs/concepts/workloads/controllers/jobs-run-to-completion/
|
|
Parallelism *int32 `json:"parallelism,omitempty"`
|
|
// 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/
|
|
Completions *int32 `json:"completions,omitempty"`
|
|
// 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.
|
|
ActiveDeadlineSeconds *int64 `json:"activeDeadlineSeconds,omitempty"`
|
|
// 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.
|
|
PodFailurePolicy *PodFailurePolicyApplyConfiguration `json:"podFailurePolicy,omitempty"`
|
|
// 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.
|
|
SuccessPolicy *SuccessPolicyApplyConfiguration `json:"successPolicy,omitempty"`
|
|
// 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.
|
|
BackoffLimit *int32 `json:"backoffLimit,omitempty"`
|
|
// 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.
|
|
BackoffLimitPerIndex *int32 `json:"backoffLimitPerIndex,omitempty"`
|
|
// 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.
|
|
MaxFailedIndexes *int32 `json:"maxFailedIndexes,omitempty"`
|
|
// A label query over pods that should match the pod count.
|
|
// Normally, the system sets this field for you.
|
|
// More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors
|
|
Selector *metav1.LabelSelectorApplyConfiguration `json:"selector,omitempty"`
|
|
// 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
|
|
ManualSelector *bool `json:"manualSelector,omitempty"`
|
|
// Describes the pod that will be created when executing a job.
|
|
// The only allowed template.spec.restartPolicy values are "Never" or "OnFailure".
|
|
// More info: https://kubernetes.io/docs/concepts/workloads/controllers/jobs-run-to-completion/
|
|
Template *corev1.PodTemplateSpecApplyConfiguration `json:"template,omitempty"`
|
|
// 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.
|
|
TTLSecondsAfterFinished *int32 `json:"ttlSecondsAfterFinished,omitempty"`
|
|
// 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.
|
|
CompletionMode *batchv1.CompletionMode `json:"completionMode,omitempty"`
|
|
// 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.
|
|
Suspend *bool `json:"suspend,omitempty"`
|
|
// 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.
|
|
PodReplacementPolicy *batchv1.PodReplacementPolicy `json:"podReplacementPolicy,omitempty"`
|
|
// 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.
|
|
ManagedBy *string `json:"managedBy,omitempty"`
|
|
}
|
|
|
|
// JobSpecApplyConfiguration constructs a declarative configuration of the JobSpec type for use with
|
|
// apply.
|
|
func JobSpec() *JobSpecApplyConfiguration {
|
|
return &JobSpecApplyConfiguration{}
|
|
}
|
|
|
|
// WithParallelism sets the Parallelism field in the declarative configuration to the given value
|
|
// and returns the receiver, so that objects can be built by chaining "With" function invocations.
|
|
// If called multiple times, the Parallelism field is set to the value of the last call.
|
|
func (b *JobSpecApplyConfiguration) WithParallelism(value int32) *JobSpecApplyConfiguration {
|
|
b.Parallelism = &value
|
|
return b
|
|
}
|
|
|
|
// WithCompletions sets the Completions field in the declarative configuration to the given value
|
|
// and returns the receiver, so that objects can be built by chaining "With" function invocations.
|
|
// If called multiple times, the Completions field is set to the value of the last call.
|
|
func (b *JobSpecApplyConfiguration) WithCompletions(value int32) *JobSpecApplyConfiguration {
|
|
b.Completions = &value
|
|
return b
|
|
}
|
|
|
|
// WithActiveDeadlineSeconds sets the ActiveDeadlineSeconds field in the declarative configuration to the given value
|
|
// and returns the receiver, so that objects can be built by chaining "With" function invocations.
|
|
// If called multiple times, the ActiveDeadlineSeconds field is set to the value of the last call.
|
|
func (b *JobSpecApplyConfiguration) WithActiveDeadlineSeconds(value int64) *JobSpecApplyConfiguration {
|
|
b.ActiveDeadlineSeconds = &value
|
|
return b
|
|
}
|
|
|
|
// WithPodFailurePolicy sets the PodFailurePolicy field in the declarative configuration to the given value
|
|
// and returns the receiver, so that objects can be built by chaining "With" function invocations.
|
|
// If called multiple times, the PodFailurePolicy field is set to the value of the last call.
|
|
func (b *JobSpecApplyConfiguration) WithPodFailurePolicy(value *PodFailurePolicyApplyConfiguration) *JobSpecApplyConfiguration {
|
|
b.PodFailurePolicy = value
|
|
return b
|
|
}
|
|
|
|
// WithSuccessPolicy sets the SuccessPolicy field in the declarative configuration to the given value
|
|
// and returns the receiver, so that objects can be built by chaining "With" function invocations.
|
|
// If called multiple times, the SuccessPolicy field is set to the value of the last call.
|
|
func (b *JobSpecApplyConfiguration) WithSuccessPolicy(value *SuccessPolicyApplyConfiguration) *JobSpecApplyConfiguration {
|
|
b.SuccessPolicy = value
|
|
return b
|
|
}
|
|
|
|
// WithBackoffLimit sets the BackoffLimit field in the declarative configuration to the given value
|
|
// and returns the receiver, so that objects can be built by chaining "With" function invocations.
|
|
// If called multiple times, the BackoffLimit field is set to the value of the last call.
|
|
func (b *JobSpecApplyConfiguration) WithBackoffLimit(value int32) *JobSpecApplyConfiguration {
|
|
b.BackoffLimit = &value
|
|
return b
|
|
}
|
|
|
|
// WithBackoffLimitPerIndex sets the BackoffLimitPerIndex field in the declarative configuration to the given value
|
|
// and returns the receiver, so that objects can be built by chaining "With" function invocations.
|
|
// If called multiple times, the BackoffLimitPerIndex field is set to the value of the last call.
|
|
func (b *JobSpecApplyConfiguration) WithBackoffLimitPerIndex(value int32) *JobSpecApplyConfiguration {
|
|
b.BackoffLimitPerIndex = &value
|
|
return b
|
|
}
|
|
|
|
// WithMaxFailedIndexes sets the MaxFailedIndexes field in the declarative configuration to the given value
|
|
// and returns the receiver, so that objects can be built by chaining "With" function invocations.
|
|
// If called multiple times, the MaxFailedIndexes field is set to the value of the last call.
|
|
func (b *JobSpecApplyConfiguration) WithMaxFailedIndexes(value int32) *JobSpecApplyConfiguration {
|
|
b.MaxFailedIndexes = &value
|
|
return b
|
|
}
|
|
|
|
// WithSelector sets the Selector field in the declarative configuration to the given value
|
|
// and returns the receiver, so that objects can be built by chaining "With" function invocations.
|
|
// If called multiple times, the Selector field is set to the value of the last call.
|
|
func (b *JobSpecApplyConfiguration) WithSelector(value *metav1.LabelSelectorApplyConfiguration) *JobSpecApplyConfiguration {
|
|
b.Selector = value
|
|
return b
|
|
}
|
|
|
|
// WithManualSelector sets the ManualSelector field in the declarative configuration to the given value
|
|
// and returns the receiver, so that objects can be built by chaining "With" function invocations.
|
|
// If called multiple times, the ManualSelector field is set to the value of the last call.
|
|
func (b *JobSpecApplyConfiguration) WithManualSelector(value bool) *JobSpecApplyConfiguration {
|
|
b.ManualSelector = &value
|
|
return b
|
|
}
|
|
|
|
// WithTemplate sets the Template field in the declarative configuration to the given value
|
|
// and returns the receiver, so that objects can be built by chaining "With" function invocations.
|
|
// If called multiple times, the Template field is set to the value of the last call.
|
|
func (b *JobSpecApplyConfiguration) WithTemplate(value *corev1.PodTemplateSpecApplyConfiguration) *JobSpecApplyConfiguration {
|
|
b.Template = value
|
|
return b
|
|
}
|
|
|
|
// WithTTLSecondsAfterFinished sets the TTLSecondsAfterFinished field in the declarative configuration to the given value
|
|
// and returns the receiver, so that objects can be built by chaining "With" function invocations.
|
|
// If called multiple times, the TTLSecondsAfterFinished field is set to the value of the last call.
|
|
func (b *JobSpecApplyConfiguration) WithTTLSecondsAfterFinished(value int32) *JobSpecApplyConfiguration {
|
|
b.TTLSecondsAfterFinished = &value
|
|
return b
|
|
}
|
|
|
|
// WithCompletionMode sets the CompletionMode field in the declarative configuration to the given value
|
|
// and returns the receiver, so that objects can be built by chaining "With" function invocations.
|
|
// If called multiple times, the CompletionMode field is set to the value of the last call.
|
|
func (b *JobSpecApplyConfiguration) WithCompletionMode(value batchv1.CompletionMode) *JobSpecApplyConfiguration {
|
|
b.CompletionMode = &value
|
|
return b
|
|
}
|
|
|
|
// WithSuspend sets the Suspend field in the declarative configuration to the given value
|
|
// and returns the receiver, so that objects can be built by chaining "With" function invocations.
|
|
// If called multiple times, the Suspend field is set to the value of the last call.
|
|
func (b *JobSpecApplyConfiguration) WithSuspend(value bool) *JobSpecApplyConfiguration {
|
|
b.Suspend = &value
|
|
return b
|
|
}
|
|
|
|
// WithPodReplacementPolicy sets the PodReplacementPolicy field in the declarative configuration to the given value
|
|
// and returns the receiver, so that objects can be built by chaining "With" function invocations.
|
|
// If called multiple times, the PodReplacementPolicy field is set to the value of the last call.
|
|
func (b *JobSpecApplyConfiguration) WithPodReplacementPolicy(value batchv1.PodReplacementPolicy) *JobSpecApplyConfiguration {
|
|
b.PodReplacementPolicy = &value
|
|
return b
|
|
}
|
|
|
|
// WithManagedBy sets the ManagedBy field in the declarative configuration to the given value
|
|
// and returns the receiver, so that objects can be built by chaining "With" function invocations.
|
|
// If called multiple times, the ManagedBy field is set to the value of the last call.
|
|
func (b *JobSpecApplyConfiguration) WithManagedBy(value string) *JobSpecApplyConfiguration {
|
|
b.ManagedBy = &value
|
|
return b
|
|
}
|