2019-01-18 01:50:10 +00:00
|
|
|
/*
|
|
|
|
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.
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
|
|
// This file was autogenerated by go-to-protobuf. Do not edit it manually!
|
|
|
|
|
2021-05-15 10:08:31 +00:00
|
|
|
syntax = "proto2";
|
2019-01-18 01:50:10 +00:00
|
|
|
|
|
|
|
package k8s.io.api.batch.v1;
|
|
|
|
|
|
|
|
import "k8s.io/api/core/v1/generated.proto";
|
|
|
|
import "k8s.io/apimachinery/pkg/apis/meta/v1/generated.proto";
|
|
|
|
import "k8s.io/apimachinery/pkg/runtime/generated.proto";
|
|
|
|
import "k8s.io/apimachinery/pkg/runtime/schema/generated.proto";
|
|
|
|
|
|
|
|
// Package-wide variables from generator "generated".
|
|
|
|
option go_package = "v1";
|
|
|
|
|
2021-05-15 10:08:31 +00:00
|
|
|
// CronJob represents the configuration of a single cron job.
|
|
|
|
message CronJob {
|
|
|
|
// Standard object's metadata.
|
|
|
|
// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata
|
|
|
|
// +optional
|
|
|
|
optional k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;
|
|
|
|
|
|
|
|
// Specification of the desired behavior of a cron job, including the schedule.
|
|
|
|
// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status
|
|
|
|
// +optional
|
|
|
|
optional CronJobSpec spec = 2;
|
|
|
|
|
|
|
|
// Current status of a cron job.
|
|
|
|
// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status
|
|
|
|
// +optional
|
|
|
|
optional CronJobStatus status = 3;
|
|
|
|
}
|
|
|
|
|
|
|
|
// CronJobList is a collection of cron jobs.
|
|
|
|
message CronJobList {
|
|
|
|
// Standard list metadata.
|
|
|
|
// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata
|
|
|
|
// +optional
|
|
|
|
optional k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;
|
|
|
|
|
|
|
|
// items is the list of CronJobs.
|
|
|
|
repeated CronJob items = 2;
|
|
|
|
}
|
|
|
|
|
|
|
|
// CronJobSpec describes how the job execution will look like and when it will actually run.
|
|
|
|
message CronJobSpec {
|
|
|
|
// The schedule in Cron format, see https://en.wikipedia.org/wiki/Cron.
|
|
|
|
optional string schedule = 1;
|
|
|
|
|
|
|
|
// Optional deadline in seconds for starting the job if it misses scheduled
|
|
|
|
// time for any reason. Missed jobs executions will be counted as failed ones.
|
|
|
|
// +optional
|
|
|
|
optional int64 startingDeadlineSeconds = 2;
|
|
|
|
|
|
|
|
// Specifies how to treat concurrent executions of a Job.
|
|
|
|
// Valid values are:
|
|
|
|
// - "Allow" (default): allows CronJobs to run concurrently;
|
|
|
|
// - "Forbid": forbids concurrent runs, skipping next run if previous run hasn't finished yet;
|
|
|
|
// - "Replace": cancels currently running job and replaces it with a new one
|
|
|
|
// +optional
|
|
|
|
optional string concurrencyPolicy = 3;
|
|
|
|
|
|
|
|
// This flag tells the controller to suspend subsequent executions, it does
|
|
|
|
// not apply to already started executions. Defaults to false.
|
|
|
|
// +optional
|
|
|
|
optional bool suspend = 4;
|
|
|
|
|
|
|
|
// Specifies the job that will be created when executing a CronJob.
|
|
|
|
optional JobTemplateSpec jobTemplate = 5;
|
|
|
|
|
|
|
|
// The number of successful finished jobs to retain. Value must be non-negative integer.
|
|
|
|
// Defaults to 3.
|
|
|
|
// +optional
|
|
|
|
optional int32 successfulJobsHistoryLimit = 6;
|
|
|
|
|
|
|
|
// The number of failed finished jobs to retain. Value must be non-negative integer.
|
|
|
|
// Defaults to 1.
|
|
|
|
// +optional
|
|
|
|
optional int32 failedJobsHistoryLimit = 7;
|
|
|
|
}
|
|
|
|
|
|
|
|
// CronJobStatus represents the current state of a cron job.
|
|
|
|
message CronJobStatus {
|
|
|
|
// A list of pointers to currently running jobs.
|
|
|
|
// +optional
|
|
|
|
// +listType=atomic
|
|
|
|
repeated k8s.io.api.core.v1.ObjectReference active = 1;
|
|
|
|
|
|
|
|
// Information when was the last time the job was successfully scheduled.
|
|
|
|
// +optional
|
|
|
|
optional k8s.io.apimachinery.pkg.apis.meta.v1.Time lastScheduleTime = 4;
|
|
|
|
|
|
|
|
// Information when was the last time the job successfully completed.
|
|
|
|
// +optional
|
|
|
|
optional k8s.io.apimachinery.pkg.apis.meta.v1.Time lastSuccessfulTime = 5;
|
|
|
|
}
|
|
|
|
|
2019-01-18 01:50:10 +00:00
|
|
|
// Job represents the configuration of a single job.
|
|
|
|
message Job {
|
|
|
|
// Standard object's metadata.
|
2021-05-15 10:08:31 +00:00
|
|
|
// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata
|
2019-01-18 01:50:10 +00:00
|
|
|
// +optional
|
|
|
|
optional k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;
|
|
|
|
|
|
|
|
// Specification of the desired behavior of a job.
|
2021-05-15 10:08:31 +00:00
|
|
|
// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status
|
2019-01-18 01:50:10 +00:00
|
|
|
// +optional
|
|
|
|
optional JobSpec spec = 2;
|
|
|
|
|
|
|
|
// Current status of a job.
|
2021-05-15 10:08:31 +00:00
|
|
|
// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status
|
2019-01-18 01:50:10 +00:00
|
|
|
// +optional
|
|
|
|
optional JobStatus status = 3;
|
|
|
|
}
|
|
|
|
|
|
|
|
// JobCondition describes current state of a job.
|
|
|
|
message JobCondition {
|
|
|
|
// Type of job condition, Complete or Failed.
|
|
|
|
optional string type = 1;
|
|
|
|
|
|
|
|
// Status of the condition, one of True, False, Unknown.
|
|
|
|
optional string status = 2;
|
|
|
|
|
|
|
|
// Last time the condition was checked.
|
|
|
|
// +optional
|
|
|
|
optional k8s.io.apimachinery.pkg.apis.meta.v1.Time lastProbeTime = 3;
|
|
|
|
|
|
|
|
// Last time the condition transit from one status to another.
|
|
|
|
// +optional
|
|
|
|
optional k8s.io.apimachinery.pkg.apis.meta.v1.Time lastTransitionTime = 4;
|
|
|
|
|
|
|
|
// (brief) reason for the condition's last transition.
|
|
|
|
// +optional
|
|
|
|
optional string reason = 5;
|
|
|
|
|
|
|
|
// Human readable message indicating details about last transition.
|
|
|
|
// +optional
|
|
|
|
optional string message = 6;
|
|
|
|
}
|
|
|
|
|
|
|
|
// JobList is a collection of jobs.
|
|
|
|
message JobList {
|
|
|
|
// Standard list metadata.
|
2021-05-15 10:08:31 +00:00
|
|
|
// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata
|
2019-01-18 01:50:10 +00:00
|
|
|
// +optional
|
|
|
|
optional k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;
|
|
|
|
|
|
|
|
// items is the list of Jobs.
|
|
|
|
repeated Job items = 2;
|
|
|
|
}
|
|
|
|
|
|
|
|
// JobSpec describes how the job execution will look like.
|
|
|
|
message JobSpec {
|
|
|
|
// 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/
|
|
|
|
// +optional
|
|
|
|
optional int32 parallelism = 1;
|
|
|
|
|
|
|
|
// Specifies the desired number of successfully finished pods the
|
|
|
|
// job should be run with. Setting to nil 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/
|
|
|
|
// +optional
|
|
|
|
optional int32 completions = 2;
|
|
|
|
|
2021-05-15 10:08:31 +00:00
|
|
|
// 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.
|
2019-01-18 01:50:10 +00:00
|
|
|
// +optional
|
|
|
|
optional int64 activeDeadlineSeconds = 3;
|
|
|
|
|
|
|
|
// Specifies the number of retries before marking this job failed.
|
|
|
|
// Defaults to 6
|
|
|
|
// +optional
|
|
|
|
optional int32 backoffLimit = 7;
|
|
|
|
|
|
|
|
// 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
|
|
|
|
// +optional
|
|
|
|
optional k8s.io.apimachinery.pkg.apis.meta.v1.LabelSelector selector = 4;
|
|
|
|
|
|
|
|
// 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
|
|
|
|
// +optional
|
|
|
|
optional bool manualSelector = 5;
|
|
|
|
|
|
|
|
// Describes the pod that will be created when executing a job.
|
|
|
|
// More info: https://kubernetes.io/docs/concepts/workloads/controllers/jobs-run-to-completion/
|
|
|
|
optional k8s.io.api.core.v1.PodTemplateSpec template = 6;
|
|
|
|
|
|
|
|
// 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.
|
|
|
|
// This field is alpha-level and is only honored by servers that enable the
|
|
|
|
// TTLAfterFinished feature.
|
|
|
|
// +optional
|
|
|
|
optional int32 ttlSecondsAfterFinished = 8;
|
2021-05-15 10:08:31 +00:00
|
|
|
|
|
|
|
// 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.
|
|
|
|
//
|
|
|
|
// This field is alpha-level and is only honored by servers that enable the
|
|
|
|
// IndexedJob feature gate. More completion modes can be added in the future.
|
|
|
|
// If the Job controller observes a mode that it doesn't recognize, the
|
|
|
|
// controller skips updates for the Job.
|
|
|
|
// +optional
|
|
|
|
optional string completionMode = 9;
|
|
|
|
|
|
|
|
// 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. This is an alpha field and
|
|
|
|
// requires the SuspendJob feature gate to be enabled; otherwise this field
|
|
|
|
// may not be set to true. Defaults to false.
|
|
|
|
// +optional
|
|
|
|
optional bool suspend = 10;
|
2019-01-18 01:50:10 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
// JobStatus represents the current state of a Job.
|
|
|
|
message JobStatus {
|
2021-05-15 10:08:31 +00:00
|
|
|
// The latest available observations of an object's current state. When a Job
|
|
|
|
// fails, one of the conditions will have type "Failed" and status true. When
|
|
|
|
// a Job is suspended, one of the conditions will have type "Suspended" and
|
|
|
|
// status true; when the Job is resumed, the status of this condition will
|
|
|
|
// become false. When a Job is completed, one of the conditions will have
|
|
|
|
// type "Complete" and status true.
|
2019-01-18 01:50:10 +00:00
|
|
|
// More info: https://kubernetes.io/docs/concepts/workloads/controllers/jobs-run-to-completion/
|
|
|
|
// +optional
|
|
|
|
// +patchMergeKey=type
|
|
|
|
// +patchStrategy=merge
|
2021-05-15 10:08:31 +00:00
|
|
|
// +listType=atomic
|
2019-01-18 01:50:10 +00:00
|
|
|
repeated JobCondition conditions = 1;
|
|
|
|
|
2021-05-15 10:08:31 +00:00
|
|
|
// Represents time when the job controller started processing a job. When a
|
|
|
|
// Job is created in the suspended state, this field is not set until the
|
|
|
|
// first time it is resumed. This field is reset every time a Job is resumed
|
|
|
|
// from suspension. It is represented in RFC3339 form and is in UTC.
|
2019-01-18 01:50:10 +00:00
|
|
|
// +optional
|
|
|
|
optional k8s.io.apimachinery.pkg.apis.meta.v1.Time startTime = 2;
|
|
|
|
|
|
|
|
// Represents time when the job was completed. It is not guaranteed to
|
|
|
|
// be set in happens-before order across separate operations.
|
|
|
|
// It is represented in RFC3339 form and is in UTC.
|
2021-05-15 10:08:31 +00:00
|
|
|
// The completion time is only set when the job finishes successfully.
|
2019-01-18 01:50:10 +00:00
|
|
|
// +optional
|
|
|
|
optional k8s.io.apimachinery.pkg.apis.meta.v1.Time completionTime = 3;
|
|
|
|
|
|
|
|
// The number of actively running pods.
|
|
|
|
// +optional
|
|
|
|
optional int32 active = 4;
|
|
|
|
|
|
|
|
// The number of pods which reached phase Succeeded.
|
|
|
|
// +optional
|
|
|
|
optional int32 succeeded = 5;
|
|
|
|
|
|
|
|
// The number of pods which reached phase Failed.
|
|
|
|
// +optional
|
|
|
|
optional int32 failed = 6;
|
2021-05-15 10:08:31 +00:00
|
|
|
|
|
|
|
// CompletedIndexes holds the completed indexes when .spec.completionMode =
|
|
|
|
// "Indexed" in a text format. The indexes are represented as decimal integers
|
|
|
|
// separated by commas. The numbers are listed in increasing order. Three or
|
|
|
|
// more consecutive numbers are compressed and represented by the first and
|
|
|
|
// last element of the series, separated by a hyphen.
|
|
|
|
// For example, if the completed indexes are 1, 3, 4, 5 and 7, they are
|
|
|
|
// represented as "1,3-5,7".
|
|
|
|
// +optional
|
|
|
|
optional string completedIndexes = 7;
|
|
|
|
}
|
|
|
|
|
|
|
|
// JobTemplateSpec describes the data a Job should have when created from a template
|
|
|
|
message JobTemplateSpec {
|
|
|
|
// Standard object's metadata of the jobs created from this template.
|
|
|
|
// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata
|
|
|
|
// +optional
|
|
|
|
optional k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;
|
|
|
|
|
|
|
|
// Specification of the desired behavior of the job.
|
|
|
|
// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status
|
|
|
|
// +optional
|
|
|
|
optional JobSpec spec = 2;
|
2019-01-18 01:50:10 +00:00
|
|
|
}
|
|
|
|
|