Documentation ¶
Index ¶
- Constants
- Variables
- type Blueprint
- type BlueprintList
- type BlueprintSpec
- type BlueprintStatus
- type CleanupSpec
- type ClusterCodeUrl
- type ClustercodeCountStrategy
- type ClustercodeSliceRef
- type ClustercodeStrategy
- type ClustercodeTaskId
- type ContainerTemplate
- type EncodeSpec
- type PodMetadata
- type PodTemplate
- type ScanSpec
- type StorageSpec
- type Task
- type TaskList
- type TaskRef
- type TaskSpec
- type TaskStatus
- type VolumeRef
Constants ¶
const ( MediaFileDoneSuffix = "_done" ConfigMapFileName = "file-list.txt" )
const (
ClustercodeTaskIdLabelKey = "clustercode.github.io/task-id"
)
Variables ¶
var ( // GroupVersion is group version used to register these objects GroupVersion = schema.GroupVersion{Group: "clustercode.github.io", Version: "v1alpha1"} // SchemeBuilder is used to add go types to the GroupVersionKind scheme SchemeBuilder = &scheme.Builder{GroupVersion: GroupVersion} // AddToScheme adds the types in this group-version to the given scheme. AddToScheme = SchemeBuilder.AddToScheme )
Functions ¶
This section is empty.
Types ¶
type Blueprint ¶
type Blueprint struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` Spec BlueprintSpec `json:"spec,omitempty"` Status BlueprintStatus `json:"status,omitempty"` }
Blueprint is the Schema for the Blueprint API
func (*Blueprint) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Blueprint.
func (*Blueprint) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*Blueprint) DeepCopyObject ¶
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (*Blueprint) GetServiceAccountName ¶
GetServiceAccountName retrieves a ServiceAccount name that would go along with this Blueprint.
func (*Blueprint) IsMaxParallelTaskLimitReached ¶
IsMaxParallelTaskLimitReached will return true if the count of current task has reached MaxParallelTasks.
type BlueprintList ¶
type BlueprintList struct { metav1.TypeMeta `json:",inline"` metav1.ListMeta `json:"metadata,omitempty"` Items []Blueprint `json:"items"` }
BlueprintList contains a list of Blueprints.
func (*BlueprintList) DeepCopy ¶
func (in *BlueprintList) DeepCopy() *BlueprintList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BlueprintList.
func (*BlueprintList) DeepCopyInto ¶
func (in *BlueprintList) DeepCopyInto(out *BlueprintList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*BlueprintList) DeepCopyObject ¶
func (in *BlueprintList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type BlueprintSpec ¶
type BlueprintSpec struct { Storage StorageSpec `json:"storage,omitempty"` MaxParallelTasks int `json:"maxParallelTasks,omitempty"` Suspend bool `json:"suspend,omitempty"` TaskConcurrencyStrategy ClustercodeStrategy `json:"taskConcurrencyStrategy,omitempty"` Scan ScanSpec `json:"scan,omitempty"` Encode EncodeSpec `json:"encode,omitempty"` Cleanup CleanupSpec `json:"cleanup,omitempty"` }
BlueprintSpec specifies Clustercode settings
func (*BlueprintSpec) DeepCopy ¶
func (in *BlueprintSpec) DeepCopy() *BlueprintSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BlueprintSpec.
func (*BlueprintSpec) DeepCopyInto ¶
func (in *BlueprintSpec) DeepCopyInto(out *BlueprintSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type BlueprintStatus ¶
type BlueprintStatus struct { Conditions []metav1.Condition `json:"conditions,omitempty"` CurrentTasks []TaskRef `json:"currentTasks,omitempty"` }
func (*BlueprintStatus) DeepCopy ¶
func (in *BlueprintStatus) DeepCopy() *BlueprintStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BlueprintStatus.
func (*BlueprintStatus) DeepCopyInto ¶
func (in *BlueprintStatus) DeepCopyInto(out *BlueprintStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type CleanupSpec ¶
type CleanupSpec struct { // PodTemplate contains a selection of fields to customize the spawned ffmpeg-based pods. // Some fields will be overwritten: // * Volumes and volume mounts will be set based on StorageSpec. // * Container args of the `ffmpeg` container will be set based on SplitCommandArgs, TranscodeCommandArgs, MergeCommandArgs. PodTemplate PodTemplate `json:"podTemplate,omitempty"` }
func (*CleanupSpec) DeepCopy ¶
func (in *CleanupSpec) DeepCopy() *CleanupSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CleanupSpec.
func (*CleanupSpec) DeepCopyInto ¶
func (in *CleanupSpec) DeepCopyInto(out *CleanupSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ClusterCodeUrl ¶
type ClusterCodeUrl string
func ToUrl ¶
func ToUrl(root, path string) ClusterCodeUrl
func (ClusterCodeUrl) GetPath ¶
func (u ClusterCodeUrl) GetPath() string
func (ClusterCodeUrl) GetRoot ¶
func (u ClusterCodeUrl) GetRoot() string
func (ClusterCodeUrl) String ¶
func (u ClusterCodeUrl) String() string
func (ClusterCodeUrl) StripSubPath ¶
func (u ClusterCodeUrl) StripSubPath(subpath string) string
type ClustercodeCountStrategy ¶
type ClustercodeCountStrategy struct {
MaxCount int `json:"maxCount,omitempty"`
}
func (*ClustercodeCountStrategy) DeepCopy ¶
func (in *ClustercodeCountStrategy) DeepCopy() *ClustercodeCountStrategy
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClustercodeCountStrategy.
func (*ClustercodeCountStrategy) DeepCopyInto ¶
func (in *ClustercodeCountStrategy) DeepCopyInto(out *ClustercodeCountStrategy)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ClustercodeSliceRef ¶
type ClustercodeSliceRef struct { JobName string `json:"jobName,omitempty"` SliceIndex int `json:"sliceIndex"` }
func (*ClustercodeSliceRef) DeepCopy ¶
func (in *ClustercodeSliceRef) DeepCopy() *ClustercodeSliceRef
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClustercodeSliceRef.
func (*ClustercodeSliceRef) DeepCopyInto ¶
func (in *ClustercodeSliceRef) DeepCopyInto(out *ClustercodeSliceRef)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ClustercodeStrategy ¶
type ClustercodeStrategy struct {
ConcurrentCountStrategy *ClustercodeCountStrategy `json:"concurrentCountStrategy,omitempty"`
}
func (*ClustercodeStrategy) DeepCopy ¶
func (in *ClustercodeStrategy) DeepCopy() *ClustercodeStrategy
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClustercodeStrategy.
func (*ClustercodeStrategy) DeepCopyInto ¶
func (in *ClustercodeStrategy) DeepCopyInto(out *ClustercodeStrategy)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ClustercodeTaskId ¶
type ClustercodeTaskId string
func (ClustercodeTaskId) AsLabels ¶
func (id ClustercodeTaskId) AsLabels() labels.Set
func (ClustercodeTaskId) String ¶
func (id ClustercodeTaskId) String() string
type ContainerTemplate ¶
type ContainerTemplate struct { // Name of the container specified as a DNS_LABEL. // Each container in a pod must have a unique name (DNS_LABEL). Name string `json:"name"` // Image name. // More info: https://kubernetes.io/docs/concepts/containers/images Image string `json:"image,omitempty"` // Command Entrypoint array. // More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell Command []string `json:"command,omitempty"` // Args to the entrypoint. // More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell Args []string `json:"args,omitempty"` // EnvFrom is a List of sources to populate environment variables in the container. EnvFrom []corev1.EnvFromSource `json:"envFrom,omitempty"` // Env is a list of environment variables to set in the container. Env []corev1.EnvVar `json:"env,omitempty" patchStrategy:"merge" patchMergeKey:"name"` // ImagePullPolicy. // One of Always, Never, IfNotPresent. // Defaults to Always if `latest` tag is specified, or `IfNotPresent` otherwise. // More info: https://kubernetes.io/docs/concepts/containers/images#updating-images ImagePullPolicy corev1.PullPolicy `json:"imagePullPolicy,omitempty"` // VolumeMounts to mount into the container's filesystem. VolumeMounts []corev1.VolumeMount `json:"volumeMounts,omitempty" patchStrategy:"merge" patchMergeKey:"mountPath"` // Compute Resources required by this container. // More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/ Resources corev1.ResourceRequirements `json:"resources,omitempty"` // SecurityContext defines the security options the container should be run with. // If set, the fields of SecurityContext override the equivalent fields of PodSecurityContext. // More info: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/ SecurityContext *corev1.SecurityContext `json:"securityContext,omitempty"` }
func (*ContainerTemplate) DeepCopy ¶
func (in *ContainerTemplate) DeepCopy() *ContainerTemplate
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ContainerTemplate.
func (*ContainerTemplate) DeepCopyInto ¶
func (in *ContainerTemplate) DeepCopyInto(out *ContainerTemplate)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*ContainerTemplate) ToContainer ¶
func (in *ContainerTemplate) ToContainer() corev1.Container
ToContainer returns a native Container based from the template.
type EncodeSpec ¶
type EncodeSpec struct { SplitCommandArgs []string `json:"splitCommandArgs"` TranscodeCommandArgs []string `json:"transcodeCommandArgs"` MergeCommandArgs []string `json:"mergeCommandArgs"` // PodTemplate contains a selection of fields to customize the spawned ffmpeg-based pods. // Some fields will be overwritten: // * Volumes and volume mounts will be set based on StorageSpec, if the claim names are given. // * Container args of the `ffmpeg` container will be set based on SplitCommandArgs, TranscodeCommandArgs, MergeCommandArgs. PodTemplate PodTemplate `json:"podTemplate,omitempty"` // SliceSize is the time in seconds of the slice lengths. // Higher values yield lower parallelization but less overhead. // Lower values yield high parallelization but more overhead. // If SliceSize is higher than the total length of the media, there may be just 1 slice with effectively no parallelization. SliceSize int `json:"sliceSize,omitempty"` }
func (*EncodeSpec) DeepCopy ¶
func (in *EncodeSpec) DeepCopy() *EncodeSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EncodeSpec.
func (*EncodeSpec) DeepCopyInto ¶
func (in *EncodeSpec) DeepCopyInto(out *EncodeSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type PodMetadata ¶
type PodMetadata struct { // Map of string keys and values that can be used to organize and categorize (scope and select) objects. // This will only affect labels on the pod, not the pod selector. // Labels will be merged with internal labels used by crossplane, and labels with a `clustercode.github.io` key might be overwritten. // More info: http://kubernetes.io/docs/user-guide/labels Labels map[string]string `json:"labels,omitempty"` // Annotations is an unstructured key value map stored with a Pod that may be set by external tools to store and retrieve arbitrary metadata. // More info: http://kubernetes.io/docs/user-guide/annotations Annotations map[string]string `json:"annotations,omitempty"` }
func (*PodMetadata) DeepCopy ¶
func (in *PodMetadata) DeepCopy() *PodMetadata
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PodMetadata.
func (*PodMetadata) DeepCopyInto ¶
func (in *PodMetadata) DeepCopyInto(out *PodMetadata)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type PodTemplate ¶
type PodTemplate struct { // Metadata that will be added to the Job's Pod. Metadata *PodMetadata `json:"metadata,omitempty"` // PodSecurityContext holds pod-level security attributes and common container settings. // Defaults to empty. // See type description for default values of each field. PodSecurityContext *corev1.PodSecurityContext `json:"podSecurityContext,omitempty"` // Containers configures the init containers within a Pod. InitContainers []ContainerTemplate `json:"initContainers,omitempty" patchStrategy:"merge" patchMergeKey:"name"` // Containers configures the containers within a Pod. Containers []ContainerTemplate `json:"containers,omitempty" patchStrategy:"merge" patchMergeKey:"name"` // List of volumes that can be mounted by containers belonging to the pod. // More info: https://kubernetes.io/docs/concepts/storage/volumes Volumes []corev1.Volume `json:"volumes,omitempty" patchStrategy:"merge" patchMergeKey:"name"` }
func (*PodTemplate) DeepCopy ¶
func (in *PodTemplate) DeepCopy() *PodTemplate
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PodTemplate.
func (*PodTemplate) DeepCopyInto ¶
func (in *PodTemplate) DeepCopyInto(out *PodTemplate)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ScanSpec ¶
type ScanSpec struct { Schedule string `json:"schedule"` MediaFileExtensions []string `json:"mediaFileExtensions,omitempty"` }
func (*ScanSpec) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ScanSpec.
func (*ScanSpec) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type StorageSpec ¶
type StorageSpec struct { // SourcePvc is a reference to the PVC which contains the source media files to encode. // If `sourcePvc.claimName` is empty, then you need to specify a pod template that configures a volume named "source". SourcePvc VolumeRef `json:"sourcePvc"` // SourcePvc is a reference to the PVC which contains the intermediate media files as part of the splitting and merging. // If `intermediatePvc.claimName` is empty, then you need to specify a pod template that configures a volume named "intermediate". IntermediatePvc VolumeRef `json:"intermediatePvc"` // SourcePvc is a reference to the PVC which contains the final result files. // If `targetPvc.claimName` is empty, then you need to specify a pod template that configures a volume named "target". TargetPvc VolumeRef `json:"targetPvc"` }
func (*StorageSpec) DeepCopy ¶
func (in *StorageSpec) DeepCopy() *StorageSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new StorageSpec.
func (*StorageSpec) DeepCopyInto ¶
func (in *StorageSpec) DeepCopyInto(out *StorageSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type Task ¶
type Task struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` Spec TaskSpec `json:"spec,omitempty"` Status TaskStatus `json:"status,omitempty"` }
Task is a projection out of a Blueprint
func (*Task) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Task.
func (*Task) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*Task) DeepCopyObject ¶
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type TaskList ¶
type TaskList struct { metav1.TypeMeta `json:",inline"` metav1.ListMeta `json:"metadata,omitempty"` Items []Task `json:"items"` }
TaskList contains a list of Task
func (*TaskList) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TaskList.
func (*TaskList) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*TaskList) DeepCopyObject ¶
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type TaskRef ¶
type TaskRef struct {
TaskName string `json:"taskName,omitempty"`
}
func (*TaskRef) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TaskRef.
func (*TaskRef) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type TaskSpec ¶
type TaskSpec struct { TaskId ClustercodeTaskId `json:"taskId,omitempty"` Storage StorageSpec `json:"storage,omitempty"` SourceUrl ClusterCodeUrl `json:"sourceUrl,omitempty"` TargetUrl ClusterCodeUrl `json:"targetUrl,omitempty"` Suspend bool `json:"suspend,omitempty"` Encode EncodeSpec `json:"encode,omitempty"` Cleanup CleanupSpec `json:"cleanup,omitempty"` ServiceAccountName string `json:"serviceAccountName,omitempty"` FileListConfigMapRef string `json:"fileListConfigMapRef,omitempty"` ConcurrencyStrategy ClustercodeStrategy `json:"concurrencyStrategy,omitempty"` SlicesPlannedCount int `json:"slicesPlannedCount,omitempty"` }
TaskSpec defines the desired state of Task.
func (*TaskSpec) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TaskSpec.
func (*TaskSpec) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type TaskStatus ¶
type TaskStatus struct { Conditions []metav1.Condition `json:"conditions,omitempty"` SlicesScheduledCount int `json:"slicesScheduledCount,omitempty"` SlicesFinishedCount int `json:"slicesFinishedCount,omitempty"` SlicesScheduled []ClustercodeSliceRef `json:"slicesScheduled,omitempty"` SlicesFinished []ClustercodeSliceRef `json:"slicesFinished,omitempty"` }
func (*TaskStatus) DeepCopy ¶
func (in *TaskStatus) DeepCopy() *TaskStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TaskStatus.
func (*TaskStatus) DeepCopyInto ¶
func (in *TaskStatus) DeepCopyInto(out *TaskStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type VolumeRef ¶
type VolumeRef struct { // ClaimName is the name of the PVC. ClaimName string `json:"claimName"` // SubPath is an optional path within the referenced PVC. // This is useful if the same PVC is shared. SubPath string `json:"subPath,omitempty"` }
func (*VolumeRef) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VolumeRef.
func (*VolumeRef) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.