v1beta1

package
v1.32.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jul 5, 2023 License: Apache-2.0 Imports: 5 Imported by: 2

Documentation

Overview

Copyright 2018 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.

Copyright 2019, 2021 The Multi-Cluster App Dispatcher 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.

Copyright 2017 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.

Copyright 2019, 2021 The Multi-Cluster App Dispatcher 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.

+k8s:deepcopy-gen=package

Copyright 2018 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.

Copyright 2019, 2021 The Multi-Cluster App Dispatcher 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.

Copyright 2017 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.

Copyright 2019, 2021 The Multi-Cluster App Dispatcher 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.

Copyright 2017 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.

Copyright 2019, 2021 The Multi-Cluster App Dispatcher 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.

Index

Constants

View Source
const AppWrapperAnnotationKey = "appwrapper.mcad.ibm.com/appwrapper-name"

AppWrapperAnnotationKey is the annotation key of Pod to identify which AppWrapper it belongs to.

View Source
const AppWrapperPlural string = "appwrappers"
View Source
const GroupName = "mcad.ibm.com"

GroupName is the group name used in this package.

View Source
const QueueJobPlural = "queuejobs"
View Source
const SchedulingSpecPlural = "schedulingspecs"

SchedulingSpecPlural is the plural of SchedulingSpec

Variables

View Source
var (
	SchemeBuilder = runtime.NewSchemeBuilder(addKnownTypes)
	AddToScheme   = SchemeBuilder.AddToScheme
)
View Source
var SchemeGroupVersion = schema.GroupVersion{Group: GroupName, Version: "v1beta1"}

SchemeGroupVersion is the group version used to register these objects.

View Source
var Versions = []apiextensionsv1.CustomResourceDefinitionVersion{
	{
		Name:    SchemeGroupVersion.Version,
		Served:  true,
		Storage: true,
	},
}

Functions

func Resource

func Resource(resource string) schema.GroupResource

Resource takes an unqualified resource and returns a Group-qualified GroupResource.

Types

type AppWrapper

type AppWrapper struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"`
	Spec              AppWrapperSpec   `json:"spec"`
	Status            AppWrapperStatus `json:"status,omitempty"`
}

Definition of AppWrapper class +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object

func (*AppWrapper) DeepCopy

func (in *AppWrapper) DeepCopy() *AppWrapper

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AppWrapper.

func (*AppWrapper) DeepCopyInto

func (in *AppWrapper) DeepCopyInto(out *AppWrapper)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*AppWrapper) DeepCopyObject

func (in *AppWrapper) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type AppWrapperCondition

type AppWrapperCondition struct {
	// Type of appwrapper condition.
	Type AppWrapperConditionType `json:"type"`
	// Status of the condition, one of True, False, Unknown.
	Status v1.ConditionStatus `json:"status"`
	// The last time this condition was updated.
	LastUpdateMicroTime metav1.MicroTime `json:"lastUpdateMicroTime,omitempty"`
	// Last time the condition transitioned from one status to another.
	LastTransitionMicroTime metav1.MicroTime `json:"lastTransitionMicroTime,omitempty"`
	// The reason for the condition's last transition.
	Reason string `json:"reason,omitempty"`
	// A human readable message indicating details about the transition.
	Message string `json:"message,omitempty"`
}

DeploymentCondition describes the state of a deployment at a certain point.

func (*AppWrapperCondition) DeepCopy

func (in *AppWrapperCondition) DeepCopy() *AppWrapperCondition

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AppWrapperCondition.

func (*AppWrapperCondition) DeepCopyInto

func (in *AppWrapperCondition) DeepCopyInto(out *AppWrapperCondition)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type AppWrapperConditionType

type AppWrapperConditionType string
const (
	AppWrapperCondInit                  AppWrapperConditionType = "Init"
	AppWrapperCondQueueing              AppWrapperConditionType = "Queueing"
	AppWrapperCondHeadOfLine            AppWrapperConditionType = "HeadOfLine"
	AppWrapperCondBackoff               AppWrapperConditionType = "Backoff"
	AppWrapperCondDispatched            AppWrapperConditionType = "Dispatched"
	AppWrapperCondRunning               AppWrapperConditionType = "Running"
	AppWrapperCondPreemptCandidate      AppWrapperConditionType = "PreemptCandidate"
	AppWrapperCondPreempted             AppWrapperConditionType = "Preempted"
	AppWrapperCondDeleted               AppWrapperConditionType = "Deleted"
	AppWrapperCondFailed                AppWrapperConditionType = "Failed"
	AppWrapperCondCompleted             AppWrapperConditionType = "Completed"
	AppWrapperCondRunningHoldCompletion AppWrapperConditionType = "RunningHoldCompletion"
)

type AppWrapperGenericResource

type AppWrapperGenericResource struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata"`
	// Replicas is the number of desired replicas
	DesiredAvailable int32 `json:"replicas,omitempty" protobuf:"bytes,2,opt,name=desiredavailable"`

	// The minimal available pods to run for this AppWrapper; the default value is nil
	MinAvailable *int32 `json:"minavailable,omitempty" protobuf:"bytes,3,opt,name=minavailable"`

	// The number of allocated replicas from this resource type
	// +optional
	Allocated int32 `json:"allocated"`

	// The priority of this resource
	// +optional
	// +kubebuilder:validation:Type=number
	// +kubebuilder:validation:Format=float
	Priority float64 `json:"priority"`

	// The increasing rate of priority value for this resource
	// +optional
	// +kubebuilder:validation:Type=number
	// +kubebuilder:validation:Format=float
	PrioritySlope float64 `json:"priorityslope"`

	//The template for the resource; it is now a raw text because we don't know for what resource
	//it should be instantiated
	// +optional
	// +kubebuilder:pruning:PreserveUnknownFields
	// +kubebuilder:validation:EmbeddedResource
	GenericTemplate runtime.RawExtension `json:"generictemplate"`

	//Optional section that specifies resource requirements for non-standard k8s resources, follows same format as that
	// of standard k8s resources
	CustomPodResources []CustomPodResourceTemplate `json:"custompodresources,omitempty"`

	//Optional field for users to determine completion status of item
	CompletionStatus string `json:"completionstatus,omitempty"`
}

AppWrapperResource is App Wrapper aggregation resource

func (*AppWrapperGenericResource) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AppWrapperGenericResource.

func (*AppWrapperGenericResource) DeepCopyInto

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type AppWrapperList

type AppWrapperList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata"`
	Items           []AppWrapper `json:"items"`
}

AppWrapperList is a collection of AppWrappers. +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object

func (*AppWrapperList) DeepCopy

func (in *AppWrapperList) DeepCopy() *AppWrapperList

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AppWrapperList.

func (*AppWrapperList) DeepCopyInto

func (in *AppWrapperList) DeepCopyInto(out *AppWrapperList)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*AppWrapperList) DeepCopyObject

func (in *AppWrapperList) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type AppWrapperResource

type AppWrapperResource struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata"`
	// Replicas is the number of desired replicas
	Replicas int32 `json:"replicas,omitempty" protobuf:"bytes,2,opt,name=replicas"`

	// The minimal available pods to run for this AppWrapper; the default value is nil
	MinAvailable *int32 `json:"minavailable,omitempty" protobuf:"bytes,3,opt,name=minavailable"`

	// The number of allocated replicas from this resource type
	// +optional
	AllocatedReplicas int32 `json:"allocatedreplicas"`

	// +kubebuilder:validation:Type=number
	// +kubebuilder:validation:Format=float
	// +optional
	Priority float64 `json:"priority,omitempty"`

	// The increasing rate of priority value for this resource
	// +kubebuilder:validation:Type=number
	// +kubebuilder:validation:Format=float
	PrioritySlope float64 `json:"priorityslope"`

	//The type of the resource (is the resource a Pod, a ReplicaSet, a ... ?)
	// +optional
	Type ResourceType `json:"type"`

	//The template for the resource; it is now a raw text because we don't know for what resource
	//it should be instantiated
	// +kubebuilder:pruning:PreserveUnknownFields
	Template runtime.RawExtension `json:"template"`
}

AppWrapperResource is App Wrapper aggregation resource todo: To be depricated

func (*AppWrapperResource) DeepCopy

func (in *AppWrapperResource) DeepCopy() *AppWrapperResource

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AppWrapperResource.

func (*AppWrapperResource) DeepCopyInto

func (in *AppWrapperResource) DeepCopyInto(out *AppWrapperResource)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type AppWrapperResourceList

type AppWrapperResourceList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata"`

	// +optional
	Items []AppWrapperResource `json:"Items"`
	// +optional
	GenericItems []AppWrapperGenericResource `json:"GenericItems"`
}

a collection of AppWrapperResource

func (*AppWrapperResourceList) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AppWrapperResourceList.

func (*AppWrapperResourceList) DeepCopyInto

func (in *AppWrapperResourceList) DeepCopyInto(out *AppWrapperResourceList)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type AppWrapperService

type AppWrapperService struct {
	Spec v1.ServiceSpec `json:"spec"`
}

AppWrapperService is App Wrapper service definition

func (*AppWrapperService) DeepCopy

func (in *AppWrapperService) DeepCopy() *AppWrapperService

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AppWrapperService.

func (*AppWrapperService) DeepCopyInto

func (in *AppWrapperService) DeepCopyInto(out *AppWrapperService)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type AppWrapperSpec

type AppWrapperSpec struct {
	// +optional
	Priority int32 `json:"priority,omitempty"`

	// +kubebuilder:validation:Type=number
	// +kubebuilder:validation:Format=float
	// +optional
	PrioritySlope float64 `json:"priorityslope,omitempty"`

	// +optional
	Service       AppWrapperService      `json:"service"`
	AggrResources AppWrapperResourceList `json:"resources"`

	Selector *metav1.LabelSelector `json:"selector,omitempty" protobuf:"bytes,1,opt,name=selector"`

	// SchedSpec specifies the parameters for scheduling.
	SchedSpec SchedulingSpecTemplate `json:"schedulingSpec,omitempty" protobuf:"bytes,2,opt,name=schedulingSpec"`
}

AppWrapperSpec describes how the App Wrapper will look like.

func (*AppWrapperSpec) DeepCopy

func (in *AppWrapperSpec) DeepCopy() *AppWrapperSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AppWrapperSpec.

func (*AppWrapperSpec) DeepCopyInto

func (in *AppWrapperSpec) DeepCopyInto(out *AppWrapperSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type AppWrapperState

type AppWrapperState string
const (
	AppWrapperStateEnqueued              AppWrapperState = "Pending"
	AppWrapperStateActive                AppWrapperState = "Running"
	AppWrapperStateDeleted               AppWrapperState = "Deleted"
	AppWrapperStateFailed                AppWrapperState = "Failed"
	AppWrapperStateCompleted             AppWrapperState = "Completed"
	AppWrapperStateRunningHoldCompletion AppWrapperState = "RunningHoldCompletion"
)

enqueued, active, deleting, succeeded, failed

type AppWrapperStatus

type AppWrapperStatus struct {
	// The number of pending pods.
	// +optional
	Pending int32 `json:"pending,omitempty" protobuf:"bytes,1,opt,name=pending"`

	// +optional
	Running int32 `json:"running,omitempty" protobuf:"bytes,1,opt,name=running"`

	// The number of resources which reached phase Succeeded.
	// +optional
	Succeeded int32 `json:"Succeeded,omitempty" protobuf:"bytes,2,opt,name=succeeded"`

	// The number of resources which reached phase Failed.
	// +optional
	Failed int32 `json:"failed,omitempty" protobuf:"bytes,3,opt,name=failed"`

	// The minimal available resources to run for this AppWrapper (is this different from the MinAvailable from JobStatus)
	// +optional
	MinAvailable int32 `json:"template,omitempty" protobuf:"bytes,4,opt,name=template"`

	//Can run?
	CanRun bool `json:"canrun,omitempty" protobuf:"bytes,1,opt,name=canrun"`

	//Is Dispatched?
	IsDispatched bool `json:"isdispatched,omitempty" protobuf:"bytes,1,opt,name=isdispatched"`

	//State - Pending, Running, Failed, Deleted
	State AppWrapperState `json:"state,omitempty"`

	Message string `json:"message,omitempty"`

	// System defined Priority
	// +kubebuilder:validation:Type=number
	// +kubebuilder:validation:Format=float
	SystemPriority float64 `json:"systempriority,omitempty"`

	// State of QueueJob - Init, Queueing, HeadOfLine, Rejoining, ...
	QueueJobState AppWrapperConditionType `json:"queuejobstate,omitempty"`

	// Microsecond level timestamp when controller first sees QueueJob (by Informer)
	ControllerFirstTimestamp metav1.MicroTime `json:"controllerfirsttimestamp,omitempty"`

	// Microsecond level timestamp when controller first sets appwrapper in state Running
	ControllerFirstDispatchTimestamp metav1.MicroTime `json:"controllerfirstdispatchtimestamp,omitempty"`

	// Tell Informer to ignore this update message (do not generate a controller event)
	FilterIgnore bool `json:"filterignore,omitempty"`

	// Indicate sender of this message (extremely useful for debugging)
	Sender string `json:"sender,omitempty"`

	// Indicate if message is a duplicate (for Informer to recognize duplicate messages)
	Local bool `json:"local,omitempty"`

	// Represents the latest available observations of a appwrapper's current condition.
	Conditions []AppWrapperCondition `json:"conditions,omitempty"`

	// Represents the latest available observations of pods under appwrapper
	PendingPodConditions []PendingPodSpec `json:"pendingpodconditions"`

	TotalCPU float64 `json:"totalcpu,omitempty"`

	TotalMemory float64 `json:"totalmemory,omitempty"`

	TotalGPU int64 `json:"totalgpu,omitempty"`
}

AppWrapperStatus represents the current state of a AppWrapper

func (*AppWrapperStatus) DeepCopy

func (in *AppWrapperStatus) DeepCopy() *AppWrapperStatus

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AppWrapperStatus.

func (*AppWrapperStatus) DeepCopyInto

func (in *AppWrapperStatus) DeepCopyInto(out *AppWrapperStatus)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ClusterReference

type ClusterReference struct {
	Name string `json:"name"`
}

func (*ClusterReference) DeepCopy

func (in *ClusterReference) DeepCopy() *ClusterReference

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterReference.

func (*ClusterReference) DeepCopyInto

func (in *ClusterReference) DeepCopyInto(out *ClusterReference)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ClusterSchedulingSpec

type ClusterSchedulingSpec struct {
	Clusters        []ClusterReference    `json:"clusters,omitempty"`
	ClusterSelector *metav1.LabelSelector `json:"clusterSelector,omitempty"`
}

func (*ClusterSchedulingSpec) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterSchedulingSpec.

func (*ClusterSchedulingSpec) DeepCopyInto

func (in *ClusterSchedulingSpec) DeepCopyInto(out *ClusterSchedulingSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type CustomPodResourceTemplate

type CustomPodResourceTemplate struct {
	Replicas int `json:"replicas"`
	//todo: replace with
	//Containers []Container Contain v1.ResourceRequirements
	Requests v1.ResourceList `json:"requests"`

	// +optional
	Limits v1.ResourceList `json:"limits"`
}

func (*CustomPodResourceTemplate) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CustomPodResourceTemplate.

func (*CustomPodResourceTemplate) DeepCopyInto

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type DispatchDurationSpec

type DispatchDurationSpec struct {
	Expected int  `json:"expected,omitempty"`
	Limit    int  `json:"limit,omitempty"`
	Overrun  bool `json:"overrun,omitempty"`
}

func (*DispatchDurationSpec) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DispatchDurationSpec.

func (*DispatchDurationSpec) DeepCopyInto

func (in *DispatchDurationSpec) DeepCopyInto(out *DispatchDurationSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type DispatchingWindowSpec

type DispatchingWindowSpec struct {
	Start ScheduleTimeSpec `json:"start,omitempty"`
	End   ScheduleTimeSpec `json:"end,omitempty"`
}

func (*DispatchingWindowSpec) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DispatchingWindowSpec.

func (*DispatchingWindowSpec) DeepCopyInto

func (in *DispatchingWindowSpec) DeepCopyInto(out *DispatchingWindowSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type PendingPodSpec

type PendingPodSpec struct {
	PodName    string            `json:"podname,omitempty"`
	Conditions []v1.PodCondition `json:"conditions,omitempty"`
}

func (*PendingPodSpec) DeepCopy

func (in *PendingPodSpec) DeepCopy() *PendingPodSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PendingPodSpec.

func (*PendingPodSpec) DeepCopyInto

func (in *PendingPodSpec) DeepCopyInto(out *PendingPodSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type QueueJob

type QueueJob struct {
	metav1.TypeMeta `json:",inline"`

	metav1.ObjectMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"`

	// Specification of the desired behavior of a cron job, including the minAvailable
	Spec QueueJobSpec `json:"spec,omitempty" protobuf:"bytes,2,opt,name=spec"`

	// Current status of QueueJob
	Status QueueJobStatus `json:"status,omitempty" protobuf:"bytes,3,opt,name=status"`
}

+k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object

func (*QueueJob) DeepCopy

func (in *QueueJob) DeepCopy() *QueueJob

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new QueueJob.

func (*QueueJob) DeepCopyInto

func (in *QueueJob) DeepCopyInto(out *QueueJob)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*QueueJob) DeepCopyObject

func (in *QueueJob) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type QueueJobList

type QueueJobList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"`

	Items []QueueJob `json:"items" protobuf:"bytes,2,rep,name=items"`
}

+k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object

func (*QueueJobList) DeepCopy

func (in *QueueJobList) DeepCopy() *QueueJobList

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new QueueJobList.

func (*QueueJobList) DeepCopyInto

func (in *QueueJobList) DeepCopyInto(out *QueueJobList)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*QueueJobList) DeepCopyObject

func (in *QueueJobList) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type QueueJobSpec

type QueueJobSpec struct {
	SchedulerName string `json:"schedulerName,omitempty" protobuf:"bytes,1,opt,name=schedulerName"`

	// SchedSpec specifies the parameters for scheduling.
	SchedSpec SchedulingSpecTemplate `json:"schedulingSpec,omitempty" protobuf:"bytes,2,opt,name=schedulingSpec"`

	// TaskSpecs specifies the task specification of QueueJob
	TaskSpecs []TaskSpec `json:"taskSpecs,omitempty" protobuf:"bytes,3,opt,name=taskSpecs"`
}

QueueJobSpec describes how the job execution will look like and when it will actually run

func (*QueueJobSpec) DeepCopy

func (in *QueueJobSpec) DeepCopy() *QueueJobSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new QueueJobSpec.

func (*QueueJobSpec) DeepCopyInto

func (in *QueueJobSpec) DeepCopyInto(out *QueueJobSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type QueueJobStatus

type QueueJobStatus struct {
	// The number of pending pods.
	// +optional
	Pending int32 `json:"pending,omitempty" protobuf:"bytes,1,opt,name=pending"`

	// The number of running pods.
	// +optional
	Running int32 `json:"running,omitempty" protobuf:"bytes,2,opt,name=running"`

	// The number of pods which reached phase Succeeded.
	// +optional
	Succeeded int32 `json:"Succeeded,omitempty" protobuf:"bytes,3,opt,name=succeeded"`

	// The number of pods which reached phase Failed.
	// +optional
	Failed int32 `json:"failed,omitempty" protobuf:"bytes,4,opt,name=failed"`

	// The minimal available pods to run for this QueueJob
	// +optional
	MinAvailable int32 `json:"minAvailable,omitempty" protobuf:"bytes,5,opt,name=minAvailable"`
}

QueueJobStatus represents the current state of a QueueJob

func (*QueueJobStatus) DeepCopy

func (in *QueueJobStatus) DeepCopy() *QueueJobStatus

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new QueueJobStatus.

func (*QueueJobStatus) DeepCopyInto

func (in *QueueJobStatus) DeepCopyInto(out *QueueJobStatus)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type RequeuingTemplate

type RequeuingTemplate struct {
	InitialTimeInSeconds int    `json:"initialTimeInSeconds,omitempty" protobuf:"bytes,1,rep,name=initialTimeInSeconds"`
	TimeInSeconds        int    `json:"timeInSeconds,omitempty" protobuf:"bytes,2,rep,name=timeInSeconds"`
	MaxTimeInSeconds     int    `json:"maxTimeInSeconds,omitempty" protobuf:"bytes,3,rep,name=maxTimeInSeconds"`
	GrowthType           string `json:"growthType,omitempty" protobuf:"bytes,4,rep,name=growthType"`
	NumRequeuings        int    `json:"numRequeuings,omitempty" protobuf:"bytes,5,rep,name=numRequeuings"`
	MaxNumRequeuings     int    `json:"maxNumRequeuings,omitempty" protobuf:"bytes,6,rep,name=maxNumRequeuings"`
}

func (*RequeuingTemplate) DeepCopy

func (in *RequeuingTemplate) DeepCopy() *RequeuingTemplate

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RequeuingTemplate.

func (*RequeuingTemplate) DeepCopyInto

func (in *RequeuingTemplate) DeepCopyInto(out *RequeuingTemplate)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ResourceName

type ResourceName string

type ResourceType

type ResourceType string

App Wrapper resources type

const (
	ResourceTypePod                   ResourceType = "Pod"
	ResourceTypeService               ResourceType = "Service"
	ResourceTypeSecret                ResourceType = "Secret"
	ResourceTypeStatefulSet           ResourceType = "StatefulSet"
	ResourceTypeDeployment            ResourceType = "Deployment"
	ResourceTypeReplicaSet            ResourceType = "ReplicaSet"
	ResourceTypePersistentVolume      ResourceType = "PersistentVolume"
	ResourceTypePersistentVolumeClaim ResourceType = "PersistentVolumeClaim"
	ResourceTypeNamespace             ResourceType = "Namespace"
	ResourceTypeConfigMap             ResourceType = "ConfigMap"
	ResourceTypeNetworkPolicy         ResourceType = "NetworkPolicy"
)

type ScheduleTimeSpec

type ScheduleTimeSpec struct {
	Min     metav1.Time `json:"minTimestamp,omitempty"`
	Desired metav1.Time `json:"desiredTimestamp,omitempty"`
	Max     metav1.Time `json:"maxTimestamp,omitempty"`
}

func (*ScheduleTimeSpec) DeepCopy

func (in *ScheduleTimeSpec) DeepCopy() *ScheduleTimeSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ScheduleTimeSpec.

func (*ScheduleTimeSpec) DeepCopyInto

func (in *ScheduleTimeSpec) DeepCopyInto(out *ScheduleTimeSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type SchedulingSpec

type SchedulingSpec struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata"`

	Spec SchedulingSpecTemplate `json:"spec,omitempty" protobuf:"bytes,1,rep,name=spec"`
}

+k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object

func (*SchedulingSpec) DeepCopy

func (in *SchedulingSpec) DeepCopy() *SchedulingSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SchedulingSpec.

func (*SchedulingSpec) DeepCopyInto

func (in *SchedulingSpec) DeepCopyInto(out *SchedulingSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*SchedulingSpec) DeepCopyObject

func (in *SchedulingSpec) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type SchedulingSpecList

type SchedulingSpecList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata"`

	Items []SchedulingSpec `json:"items"`
}

+k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object

func (*SchedulingSpecList) DeepCopy

func (in *SchedulingSpecList) DeepCopy() *SchedulingSpecList

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SchedulingSpecList.

func (*SchedulingSpecList) DeepCopyInto

func (in *SchedulingSpecList) DeepCopyInto(out *SchedulingSpecList)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*SchedulingSpecList) DeepCopyObject

func (in *SchedulingSpecList) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type SchedulingSpecTemplate

type SchedulingSpecTemplate struct {
	NodeSelector      map[string]string     `json:"nodeSelector,omitempty" protobuf:"bytes,1,rep,name=nodeSelector"`
	MinAvailable      int                   `json:"minAvailable,omitempty" protobuf:"bytes,2,rep,name=minAvailable"`
	Requeuing         RequeuingTemplate     `json:"requeuing,omitempty" protobuf:"bytes,1,rep,name=requeuing"`
	ClusterScheduling ClusterSchedulingSpec `json:"clusterScheduling,omitempty"`
	DispatchingWindow DispatchingWindowSpec `json:"dispatchingWindow,omitempty"`
	DispatchDuration  DispatchDurationSpec  `json:"dispatchDuration,omitempty"`
}

func (*SchedulingSpecTemplate) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SchedulingSpecTemplate.

func (*SchedulingSpecTemplate) DeepCopyInto

func (in *SchedulingSpecTemplate) DeepCopyInto(out *SchedulingSpecTemplate)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type TaskSpec

type TaskSpec struct {
	// A label query over pods that should match the pod count.
	// Normally, the system sets this field for you.
	// +optional
	Selector *metav1.LabelSelector `json:"selector,omitempty" protobuf:"bytes,1,opt,name=selector"`

	// Replicas specifies the replicas of this TaskSpec in QueueJob.
	Replicas int32 `json:"replicas,omitempty" protobuf:"bytes,2,opt,name=replicas"`

	// Specifies the pod that will be created for this TaskSpec
	// when executing a QueueJob
	Template v1.PodTemplateSpec `json:"template,omitempty" protobuf:"bytes,3,opt,name=template"`
}

TaskSpec specifies the task specification of QueueJob

func (*TaskSpec) DeepCopy

func (in *TaskSpec) DeepCopy() *TaskSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TaskSpec.

func (*TaskSpec) DeepCopyInto

func (in *TaskSpec) DeepCopyInto(out *TaskSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL