Documentation ¶
Index ¶
- Constants
- func GenerateK8SVolumes(job *apistructs.Job) ([]corev1.Volume, []corev1.VolumeMount, []*corev1.PersistentVolumeClaim)
- type CascadingDeleteOptions
- type ConditionStatus
- type Container
- type EnvVar
- type ExecAction
- type HTTPGetAction
- type HTTPHeader
- type Handler
- type HostPathVolumeSource
- type JobCondition
- type JobConditionType
- type JobSpec
- type JobStatus
- type KubeJob
- type KubeJobList
- type LabelSelector
- type LabelSelectorOperator
- type LabelSelectorRequirement
- type Limits
- type ListMeta
- type ObjectMeta
- type PodSpec
- type PodTemplateSpec
- type Probe
- type Requests
- type Resources
- type RestartPolicy
- type TCPSocketAction
- type Time
- type URIScheme
- type Volume
- type VolumeMount
Constants ¶
const ( ENABLE_SPECIFIED_K8S_NAMESPACE = "ENABLE_SPECIFIED_K8S_NAMESPACE" // Specify Image Pull Policy with IfNotPresent,Always,Never SpecifyImagePullPolicy = "SPECIFY_IMAGE_PULL_POLICY" )
const (
EnvRetainNamespace = "RETAIN_NAMESPACE"
)
Variables ¶
This section is empty.
Functions ¶
func GenerateK8SVolumes ¶
func GenerateK8SVolumes(job *apistructs.Job) ([]corev1.Volume, []corev1.VolumeMount, []*corev1.PersistentVolumeClaim)
GenerateK8SVolumes According to job configuration, production volume related configuration
Types ¶
type CascadingDeleteOptions ¶
type ConditionStatus ¶
type ConditionStatus string
const ( ConditionTrue ConditionStatus = "True" ConditionFalse ConditionStatus = "False" ConditionUnknown ConditionStatus = "Unknown" )
These are valid condition statuses. "ConditionTrue" means a resource is in the condition. "ConditionFalse" means a resource is not in the condition. "ConditionUnknown" means kubernetes can't decide if a resource is in the condition or not. In the future, we could add other intermediate conditions, e.g. ConditionDegraded.
type Container ¶
type Container struct { Name string `json:"name"` Image string `json:"image"` Resources Resources `json:"resources,omitempty"` Command []string `json:"command,omitempty"` LivenessProbe *Probe `json:"livenessProbe,omitempty"` Env []EnvVar `json:"env,omitempty"` VolumeMounts []VolumeMount `json:"volumeMounts,omitempty"` }
type EnvVar ¶
type EnvVar struct { // Name of the environment variable. Must be a C_IDENTIFIER. Name string `json:"name"` Value string `json:"value,omitempty"` }
EnvVar represents an environment variable present in a Container.
type ExecAction ¶
type ExecAction struct { // Command is the command line to execute inside the container, the working directory for the // command is root ('/') in the container's filesystem. The command is simply exec'd, it is // not run inside a shell, so traditional shell instructions ('|', etc) won't work. To use // a shell, you need to explicitly call out to that shell. // Exit status of 0 is treated as live/healthy and non-zero is unhealthy. Command []string `json:"command,omitempty"` }
ExecAction describes a "run in container" action.
type HTTPGetAction ¶
type HTTPGetAction struct { // Path to access on the HTTP server. Path string `json:"path,omitempty"` // Name or number of the port to access on the container. // Number must be in the range 1 to 65535. // Name must be an IANA_SVC_NAME. Port int `json:"port"` // Host name to connect to, defaults to the pod IP. You probably want to set // "Host" in httpHeaders instead. Host string `json:"host,omitempty"` // Scheme to use for connecting to the host. // Defaults to HTTP. Scheme URIScheme `json:"scheme,omitempty"` // Custom headers to set in the request. HTTP allows repeated headers. HTTPHeaders []HTTPHeader `json:"httpHeaders,omitempty"` }
HTTPGetAction describes an action based on HTTP Get requests.
type HTTPHeader ¶
type HTTPHeader struct { // The header field name Name string `json:"name"` // The header field value Value string `json:"value"` }
HTTPHeader describes a custom header to be used in HTTP probes
type Handler ¶
type Handler struct { // One and only one of the following should be specified. // Exec specifies the action to take. Exec *ExecAction `json:"exec,omitempty"` // HTTPGet specifies the http request to perform. HTTPGet *HTTPGetAction `json:"httpGet,omitempty"` // TCPSocket specifies an action involving a TCP port. // TCP hooks not yet supported TCPSocket *TCPSocketAction `json:"tcpSocket,omitempty"` }
Handler defines a specific action that should be taken
type HostPathVolumeSource ¶
type HostPathVolumeSource struct {
Path string `json:"path"`
}
Represents a host path mapped into a pod. Host path volumes do not support ownership management or SELinux relabeling.
type JobCondition ¶
type JobCondition struct { // Type of job condition, Complete or Failed. Type JobConditionType `json:"type"` // Status of the condition, one of True, False, Unknown. Status ConditionStatus `json:"status"` // Last time the condition was checked. // +optional LastProbeTime Time `json:"lastProbeTime,omitempty"` // Last time the condition transit from one status to another. // +optional LastTransitionTime Time `json:"lastTransitionTime,omitempty"` // (brief) reason for the condition's last transition. // +optional Reason string `json:"reason,omitempty"` // Human readable message indicating details about last transition. // +optional Message string `json:"message,omitempty"` }
JobCondition describes current state of a job.
type JobConditionType ¶
type JobConditionType string
const ( // JobComplete means the job has completed its execution. JobComplete JobConditionType = "Complete" // JobFailed means the job has failed its execution. JobFailed JobConditionType = "Failed" )
These are valid conditions of a job.
type JobSpec ¶
type JobSpec 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/ // +optional Parallelism *int32 `json:"parallelism,omitempty"` // 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 Completions *int32 `json:"completions,omitempty"` // Specifies the duration in seconds relative to the startTime that the job may be active // before the system tries to terminate it; value must be positive integer // +optional ActiveDeadlineSeconds *int64 `json:"activeDeadlineSeconds,omitempty"` // Specifies the number of retries before marking this job failed. // Defaults to 6 // +optional BackoffLimit *int32 `json:"backoffLimit,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 // +optional Selector *LabelSelector `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 // +optional ManualSelector *bool `json:"manualSelector,omitempty"` // Describes the pod that will be created when executing a job. // More info: https://kubernetes.io/docs/concepts/workloads/controllers/jobs-run-to-completion/ Template PodTemplateSpec `json:"template"` }
JobSpec describes how the job execution will look like.
type JobStatus ¶
type JobStatus struct { // The latest available observations of an object's current state. // More info: https://kubernetes.io/docs/concepts/workloads/controllers/jobs-run-to-completion/ // +optional // +patchMergeKey=type // +patchStrategy=merge Conditions []JobCondition `json:"conditions,omitempty"` // Represents time when the job was acknowledged by the job controller. // It is not guaranteed to be set in happens-before order across separate operations. // It is represented in RFC3339 form and is in UTC. // +optional StartTime *Time `json:"startTime,omitempty"` // 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. // +optional CompletionTime *Time `json:"completionTime,omitempty"` // The number of actively running pods. // +optional Active int32 `json:"active,omitempty"` // The number of pods which reached phase Succeeded. // +optional Succeeded int32 `json:"succeeded,omitempty"` // The number of pods which reached phase Failed. // +optional Failed int32 `json:"failed,omitempty"` }
JobStatus represents the current state of a Job.
type KubeJob ¶
type KubeJob struct { Kind string `json:"kind"` APIVersion string `json:"apiVersion"` Metadata ObjectMeta `json:"metadata,omitempty"` Spec JobSpec `json:"spec,omitempty"` Status JobStatus `json:"status,omitempty"` }
Job represents the configuration of a single job.
type KubeJobList ¶
type KubeJobList struct { Kind string `json:"kind"` APIVersion string `json:"apiVersion"` Metadata ListMeta `json:"metadata,omitempty"` Items []KubeJob `json:"items"` }
JobList is a collection of jobs.
type LabelSelector ¶
type LabelSelector struct { // matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels // map is equivalent to an element of matchExpressions, whose key field is "key", the // operator is "In", and the values array contains only "value". The requirements are ANDed. // +optional MatchLabels map[string]string `json:"matchLabels,omitempty"` // matchExpressions is a list of label selector requirements. The requirements are ANDed. // +optional MatchExpressions []LabelSelectorRequirement `json:"matchExpressions,omitempty"` }
A label selector is a label query over a set of resources. The result of matchLabels and matchExpressions are ANDed. An empty label selector matches all objects. A null label selector matches no objects.
type LabelSelectorOperator ¶
type LabelSelectorOperator string
A label selector operator is the set of operators that can be used in a selector requirement.
const ( LabelSelectorOpIn LabelSelectorOperator = "In" LabelSelectorOpNotIn LabelSelectorOperator = "NotIn" LabelSelectorOpExists LabelSelectorOperator = "Exists" LabelSelectorOpDoesNotExist LabelSelectorOperator = "DoesNotExist" )
type LabelSelectorRequirement ¶
type LabelSelectorRequirement struct { // key is the label key that the selector applies to. // +patchMergeKey=key // +patchStrategy=merge Key string `json:"key"` // operator represents a key's relationship to a set of values. // Valid operators are In, NotIn, Exists and DoesNotExist. Operator LabelSelectorOperator `json:"operator"` // values is an array of string values. If the operator is In or NotIn, // the values array must be non-empty. If the operator is Exists or DoesNotExist, // the values array must be empty. This array is replaced during a strategic // merge patch. // +optional Values []string `json:"values,omitempty"` }
A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
type ListMeta ¶
type ListMeta struct { SelfLink string `json:"selfLink,omitempty"` ResourceVersion string `json:"resourceVersion,omitempty"` Continue string `json:"continue,omitempty"` }
ListMeta describes metadata that synthetic resources must have, including lists and various status objects. A resource may have only one of {ObjectMeta, ListMeta}.
type ObjectMeta ¶
type PodSpec ¶
type PodSpec struct { Containers []Container `json:"containers"` RestartPolicy RestartPolicy `json:"restartPolicy,omitempty"` Volumes []Volume `json:"volumes,omitempty"` }
type PodTemplateSpec ¶
type PodTemplateSpec struct { Metadata ObjectMeta `json:"metadata,omitempty"` Spec PodSpec `json:"spec,omitempty"` }
type Probe ¶
type Probe struct { // The action taken to determine the health of a container Handler `json:",inline"` // Number of seconds after the container has started before liveness probes are initiated. // More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes InitialDelaySeconds int32 `json:"initialDelaySeconds,omitempty"` // Number of seconds after which the probe times out. // Defaults to 1 second. Minimum value is 1. // More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes TimeoutSeconds int32 `json:"timeoutSeconds,omitempty"` // How often (in seconds) to perform the probe. // Default to 10 seconds. Minimum value is 1. PeriodSeconds int32 `json:"periodSeconds,omitempty"` // Minimum consecutive successes for the probe to be considered successful after having failed. // Defaults to 1. Must be 1 for liveness. Minimum value is 1. SuccessThreshold int32 `json:"successThreshold,omitempty"` // Minimum consecutive failures for the probe to be considered failed after having succeeded. // Defaults to 3. Minimum value is 1. FailureThreshold int32 `json:"failureThreshold,omitempty"` }
Probe describes a health check to be performed against a container to determine whether it is alive or ready to receive traffic.
type RestartPolicy ¶
type RestartPolicy string
const ( RestartPolicyAlways RestartPolicy = "Always" RestartPolicyOnFailure RestartPolicy = "OnFailure" RestartPolicyNever RestartPolicy = "Never" )
type TCPSocketAction ¶
type TCPSocketAction struct { // Number or name of the port to access on the container. // Number must be in the range 1 to 65535. // Name must be an IANA_SVC_NAME. Port int `json:"port"` // Optional: Host name to connect to, defaults to the pod IP. Host string `json:"host,omitempty"` }
TCPSocketAction describes an action based on opening a socket
type Volume ¶
type Volume struct { // Volume's name. // Must be a DNS_LABEL and unique within the pod. // More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names Name string `json:"name"` HostPath *HostPathVolumeSource `json:"hostPath,omitempty"` }
Volume represents a named volume in a pod that may be accessed by any container in the pod.
type VolumeMount ¶
type VolumeMount struct { // This must match the Name of a Volume. Name string `json:"name"` // Mounted read-only if true, read-write otherwise (false or unspecified). // Defaults to false. ReadOnly bool `json:"readOnly,omitempty"` // Path within the container at which the volume should be mounted. Must // not contain ':'. MountPath string `json:"mountPath"` // Path within the volume from which the container's volume should be mounted. // Defaults to "" (volume's root). SubPath string `json:"subPath,omitempty"` }
VolumeMount describes a mounting of a Volume within a container.