Documentation ¶
Overview ¶
Package v1beta1 contains API Schema definitions for the flinkoperator v1beta1 API group +kubebuilder:object:generate=true +groupName=flinkoperator.k8s.io
Index ¶
- Constants
- Variables
- type BatchSchedulerSpec
- type CleanupAction
- type CleanupPolicy
- type FlinkCluster
- func (in *FlinkCluster) DeepCopy() *FlinkCluster
- func (in *FlinkCluster) DeepCopyInto(out *FlinkCluster)
- func (in *FlinkCluster) DeepCopyObject() runtime.Object
- func (cluster *FlinkCluster) Default()
- func (cluster *FlinkCluster) SetupWebhookWithManager(mgr ctrl.Manager) error
- func (cluster *FlinkCluster) ValidateCreate() error
- func (cluster *FlinkCluster) ValidateDelete() error
- func (cluster *FlinkCluster) ValidateUpdate(old runtime.Object) error
- type FlinkClusterComponentState
- type FlinkClusterComponentsStatus
- type FlinkClusterControlStatus
- type FlinkClusterList
- type FlinkClusterSpec
- type FlinkClusterStatus
- type GCPConfig
- type GCPServiceAccount
- type HadoopConfig
- type ImageSpec
- type JobManagerIngressSpec
- type JobManagerIngressStatus
- type JobManagerPorts
- type JobManagerServiceStatus
- type JobManagerSpec
- type JobMode
- type JobRestartPolicy
- type JobSpec
- type JobStatus
- func (in *JobStatus) DeepCopy() *JobStatus
- func (in *JobStatus) DeepCopyInto(out *JobStatus)
- func (j *JobStatus) IsActive() bool
- func (j *JobStatus) IsFailed() bool
- func (j *JobStatus) IsPending() bool
- func (j *JobStatus) IsSavepointUpToDate(spec *JobSpec, compareTime time.Time) bool
- func (j *JobStatus) IsStopped() bool
- func (j *JobStatus) IsTerminated(spec *JobSpec) bool
- func (j *JobStatus) ShouldRestart(spec *JobSpec) bool
- func (j *JobStatus) UpdateReady(spec *JobSpec, observeTime time.Time) bool
- type NamedPort
- type RevisionStatus
- type SavepointReason
- type SavepointStatus
- type TaskManagerPorts
- type TaskManagerSpec
- type TimeConverter
- type Validator
Constants ¶
const ( ClusterStateCreating = "Creating" ClusterStateRunning = "Running" ClusterStateReconciling = "Reconciling" ClusterStateUpdating = "Updating" ClusterStateStopping = "Stopping" ClusterStatePartiallyStopped = "PartiallyStopped" ClusterStateStopped = "Stopped" )
ClusterState defines states for a cluster.
const ( ComponentStateNotReady = "NotReady" ComponentStateReady = "Ready" ComponentStateUpdating = "Updating" ComponentStateDeleted = "Deleted" )
ComponentState defines states for a cluster component.
const ( JobModeBlocking = "Blocking" JobModeDetached = "Detached" )
JobMode defines the running mode for the job.
const ( JobStatePending = "Pending" JobStateUpdating = "Updating" JobStateRestarting = "Restarting" JobStateDeploying = "Deploying" JobStateDeployFailed = "DeployFailed" JobStateRunning = "Running" JobStateSucceeded = "Succeeded" JobStateCancelled = "Cancelled" JobStateFailed = "Failed" JobStateLost = "Lost" JobStateUnknown = "Unknown" )
JobState defines states for a Flink job deployment.
const ( AccessScopeCluster = "Cluster" AccessScopeVPC = "VPC" AccessScopeExternal = "External" AccessScopeNodePort = "NodePort" AccessScopeHeadless = "Headless" )
AccessScope defines the access scope of JobManager service.
const ( // control annotation key ControlAnnotation = "flinkclusters.flinkoperator.k8s.io/user-control" // control name ControlNameSavepoint = "savepoint" ControlNameJobCancel = "job-cancel" // control state ControlStateRequested = "Requested" ControlStateInProgress = "InProgress" ControlStateSucceeded = "Succeeded" ControlStateFailed = "Failed" )
User requested control
const ( SavepointStateInProgress = "InProgress" SavepointStateTriggerFailed = "TriggerFailed" SavepointStateFailed = "Failed" SavepointStateSucceeded = "Succeeded" SavepointReasonUserRequested SavepointReason = "user requested" SavepointReasonJobCancel SavepointReason = "job cancel" SavepointReasonScheduled SavepointReason = "scheduled" SavepointReasonUpdate SavepointReason = "update" )
const ( // CleanupActionKeepCluster - keep the entire cluster. CleanupActionKeepCluster = "KeepCluster" // CleanupActionDeleteCluster - delete the entire cluster. CleanupActionDeleteCluster = "DeleteCluster" // CleanupActionDeleteTaskManager - delete task manager, keep job manager. CleanupActionDeleteTaskManager = "DeleteTaskManager" )
const ( InvalidControlAnnMsg = "invalid value for annotation key: %v, value: %v, available values: savepoint, job-cancel" InvalidJobStateForJobCancelMsg = "job-cancel is not allowed because job is not started yet or already terminated, annotation: %v" InvalidJobStateForSavepointMsg = "savepoint is not allowed because job is not started yet or already stopped, annotation: %v" InvalidSavepointDirMsg = "savepoint is not allowed without spec.job.savepointsDir, annotation: %v" SessionClusterWarnMsg = "%v is not allowed for session cluster, annotation: %v" ControlChangeWarnMsg = "change is not allowed for control in progress, annotation: %v" )
Variables ¶
var ( // GroupVersion is group version used to register these objects GroupVersion = schema.GroupVersion{Group: "flinkoperator.k8s.io", Version: "v1beta1"} // 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 )
var ( DefaultResources = corev1.ResourceRequirements{ Limits: corev1.ResourceList{ corev1.ResourceCPU: resource.MustParse("2"), corev1.ResourceMemory: resource.MustParse("2Gi"), }, } )
Functions ¶
This section is empty.
Types ¶
type BatchSchedulerSpec ¶ added in v0.3.2
type BatchSchedulerSpec struct { // BatchScheduler name. Name string `json:"name"` // _(Optional)_ Queue defines the queue in which resources will be allocates; if queue is // not specified, resources will be allocated in the schedulers default queue. // +optional Queue string `json:"queue,omitempty"` // _(Optional)_ If specified, indicates the PodGroup's priority. "system-node-critical" and // "system-cluster-critical" are two special keywords which indicate the // highest priorities with the former being the highest priority. Any other // name must be defined by creating a PriorityClass object with that name. // If not specified, the priority will be default or zero if there is no // default. // +optional PriorityClassName string `json:"priorityClassName,omitempty"` }
func (*BatchSchedulerSpec) DeepCopy ¶ added in v0.3.2
func (in *BatchSchedulerSpec) DeepCopy() *BatchSchedulerSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BatchSchedulerSpec.
func (*BatchSchedulerSpec) DeepCopyInto ¶ added in v0.3.2
func (in *BatchSchedulerSpec) DeepCopyInto(out *BatchSchedulerSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type CleanupAction ¶
type CleanupAction string
CleanupAction defines the action to take after job finishes.
type CleanupPolicy ¶
type CleanupPolicy struct { // Action to take after job succeeds, default: `DeleteCluster`. AfterJobSucceeds CleanupAction `json:"afterJobSucceeds,omitempty"` // Action to take after job fails, default: `KeepCluster`. AfterJobFails CleanupAction `json:"afterJobFails,omitempty"` // Action to take after job is cancelled, default: `DeleteCluster`. AfterJobCancelled CleanupAction `json:"afterJobCancelled,omitempty"` }
CleanupPolicy defines the action to take after job finishes. Use one of `KeepCluster, DeleteCluster, DeleteTaskManager` for the below fields.
func (*CleanupPolicy) DeepCopy ¶
func (in *CleanupPolicy) DeepCopy() *CleanupPolicy
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CleanupPolicy.
func (*CleanupPolicy) DeepCopyInto ¶
func (in *CleanupPolicy) DeepCopyInto(out *CleanupPolicy)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type FlinkCluster ¶
type FlinkCluster struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` Spec FlinkClusterSpec `json:"spec"` Status FlinkClusterStatus `json:"status,omitempty"` }
FlinkCluster is the Schema for the flinkclusters API
func (*FlinkCluster) DeepCopy ¶
func (in *FlinkCluster) DeepCopy() *FlinkCluster
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FlinkCluster.
func (*FlinkCluster) DeepCopyInto ¶
func (in *FlinkCluster) DeepCopyInto(out *FlinkCluster)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*FlinkCluster) DeepCopyObject ¶
func (in *FlinkCluster) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (*FlinkCluster) Default ¶
func (cluster *FlinkCluster) Default()
Default implements webhook.Defaulter so a webhook will be registered for the type.
func (*FlinkCluster) SetupWebhookWithManager ¶
func (cluster *FlinkCluster) SetupWebhookWithManager(mgr ctrl.Manager) error
SetupWebhookWithManager adds webhook for FlinkCluster.
func (*FlinkCluster) ValidateCreate ¶
func (cluster *FlinkCluster) ValidateCreate() error
ValidateCreate implements webhook.Validator so a webhook will be registered for the type.
func (*FlinkCluster) ValidateDelete ¶
func (cluster *FlinkCluster) ValidateDelete() error
ValidateDelete implements webhook.Validator so a webhook will be registered for the type.
func (*FlinkCluster) ValidateUpdate ¶
func (cluster *FlinkCluster) ValidateUpdate(old runtime.Object) error
ValidateUpdate implements webhook.Validator so a webhook will be registered for the type.
type FlinkClusterComponentState ¶
type FlinkClusterComponentState struct { // The resource name of the component. Name string `json:"name"` // The state of the component. State string `json:"state"` }
FlinkClusterComponentState defines the observed state of a component of a FlinkCluster.
func (*FlinkClusterComponentState) DeepCopy ¶
func (in *FlinkClusterComponentState) DeepCopy() *FlinkClusterComponentState
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FlinkClusterComponentState.
func (*FlinkClusterComponentState) DeepCopyInto ¶
func (in *FlinkClusterComponentState) DeepCopyInto(out *FlinkClusterComponentState)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type FlinkClusterComponentsStatus ¶
type FlinkClusterComponentsStatus struct { // The state of configMap. ConfigMap FlinkClusterComponentState `json:"configMap"` // The state of JobManager StatefulSet. JobManagerStatefulSet FlinkClusterComponentState `json:"jobManagerStatefulSet"` // The state of JobManager service. JobManagerService JobManagerServiceStatus `json:"jobManagerService"` // The state of JobManager ingress. JobManagerIngress *JobManagerIngressStatus `json:"jobManagerIngress,omitempty"` // The state of TaskManager StatefulSet. TaskManagerStatefulSet FlinkClusterComponentState `json:"taskManagerStatefulSet"` // The status of the job, available only when JobSpec is provided. Job *JobStatus `json:"job,omitempty"` }
FlinkClusterComponentsStatus defines the observed status of the components of a FlinkCluster.
func (*FlinkClusterComponentsStatus) DeepCopy ¶
func (in *FlinkClusterComponentsStatus) DeepCopy() *FlinkClusterComponentsStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FlinkClusterComponentsStatus.
func (*FlinkClusterComponentsStatus) DeepCopyInto ¶
func (in *FlinkClusterComponentsStatus) DeepCopyInto(out *FlinkClusterComponentsStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type FlinkClusterControlStatus ¶
type FlinkClusterControlStatus struct { // Control name Name string `json:"name"` // Control data Details map[string]string `json:"details,omitempty"` // State State string `json:"state"` // Message Message string `json:"message,omitempty"` // State update time UpdateTime string `json:"updateTime"` }
Control state
func (*FlinkClusterControlStatus) DeepCopy ¶
func (in *FlinkClusterControlStatus) DeepCopy() *FlinkClusterControlStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FlinkClusterControlStatus.
func (*FlinkClusterControlStatus) DeepCopyInto ¶
func (in *FlinkClusterControlStatus) DeepCopyInto(out *FlinkClusterControlStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type FlinkClusterList ¶
type FlinkClusterList struct { metav1.TypeMeta `json:",inline"` metav1.ListMeta `json:"metadata,omitempty"` Items []FlinkCluster `json:"items"` }
FlinkClusterList contains a list of FlinkCluster
func (*FlinkClusterList) DeepCopy ¶
func (in *FlinkClusterList) DeepCopy() *FlinkClusterList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FlinkClusterList.
func (*FlinkClusterList) DeepCopyInto ¶
func (in *FlinkClusterList) DeepCopyInto(out *FlinkClusterList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*FlinkClusterList) DeepCopyObject ¶
func (in *FlinkClusterList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type FlinkClusterSpec ¶
type FlinkClusterSpec struct { // The version of Flink to be managed. This version must match the version in the image. FlinkVersion string `json:"flinkVersion"` // Flink image for JobManager, TaskManager and job containers. Image ImageSpec `json:"image"` // _(Optional)_ The service account assigned to JobManager, TaskManager and Job submitter Pods. If empty, the default service account in the namespace will be used. ServiceAccountName *string `json:"serviceAccountName,omitempty"` // _*(Deprecated)*_ BatchSchedulerName specifies the batch scheduler name for JobManager, TaskManager. // If empty, no batch scheduling is enabled. BatchSchedulerName *string `json:"batchSchedulerName,omitempty"` // _(Optional)_ BatchScheduler specifies the batch scheduler for JobManager, TaskManager. // If empty, no batch scheduling is enabled. BatchScheduler *BatchSchedulerSpec `json:"batchScheduler,omitempty"` // Flink JobManager spec. JobManager JobManagerSpec `json:"jobManager"` // Flink TaskManager spec. TaskManager TaskManagerSpec `json:"taskManager"` // _(Optional)_ Job spec. If specified, this cluster is an ephemeral Job // Cluster, which will be automatically terminated after the job finishes; // otherwise, it is a long-running Session Cluster. Job *JobSpec `json:"job,omitempty"` // _(Optional)_ Environment variables shared by all JobManager, TaskManager and job // containers. // [More info](https://kubernetes.io/docs/tasks/inject-data-application/define-environment-variable-container/) EnvVars []corev1.EnvVar `json:"envVars,omitempty"` // _(Optional)_ Environment variables injected from a source, shared by all JobManager, // TaskManager and job containers. // [More info](https://kubernetes.io/docs/tasks/configure-pod-container/configure-pod-configmap/#configure-all-key-value-pairs-in-a-configmap-as-container-environment-variables) EnvFrom []corev1.EnvFromSource `json:"envFrom,omitempty"` // _(Optional)_ Flink properties which are appened to flink-conf.yaml. FlinkProperties map[string]string `json:"flinkProperties,omitempty"` // _(Optional)_ Config for Hadoop. HadoopConfig *HadoopConfig `json:"hadoopConfig,omitempty"` // _(Optional)_ Config for GCP. GCPConfig *GCPConfig `json:"gcpConfig,omitempty"` // _(Optional)_ The logging configuration, which should have keys 'log4j-console.properties' and 'logback-console.xml'. // These will end up in the 'flink-config-volume' ConfigMap, which gets mounted at /opt/flink/conf. // If not provided, defaults that log to console only will be used. // <br> - log4j-console.properties: The contents of the log4j properties file to use. If not provided, a default that logs only to stdout will be provided. // <br> - logback-console.xml: The contents of the logback XML file to use. If not provided, a default that logs only to stdout will be provided. // <br> - Other arbitrary keys are also allowed, and will become part of the ConfigMap. LogConfig map[string]string `json:"logConfig,omitempty"` // The maximum number of revision history to keep, default: 10. RevisionHistoryLimit *int32 `json:"revisionHistoryLimit,omitempty"` // Recreate components when updating flinkcluster, default: true. RecreateOnUpdate *bool `json:"recreateOnUpdate,omitempty"` }
FlinkClusterSpec defines the desired state of FlinkCluster
func (*FlinkClusterSpec) DeepCopy ¶
func (in *FlinkClusterSpec) DeepCopy() *FlinkClusterSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FlinkClusterSpec.
func (*FlinkClusterSpec) DeepCopyInto ¶
func (in *FlinkClusterSpec) DeepCopyInto(out *FlinkClusterSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type FlinkClusterStatus ¶
type FlinkClusterStatus struct { // The overall state of the Flink cluster. State string `json:"state"` // The status of the components. Components FlinkClusterComponentsStatus `json:"components"` // The status of control requested by user. Control *FlinkClusterControlStatus `json:"control,omitempty"` // The status of savepoint progress. Savepoint *SavepointStatus `json:"savepoint,omitempty"` // The status of revision. Revision RevisionStatus `json:"revision,omitempty"` // Last update timestamp for this status. LastUpdateTime string `json:"lastUpdateTime,omitempty"` }
FlinkClusterStatus defines the observed state of FlinkCluster
func (*FlinkClusterStatus) DeepCopy ¶
func (in *FlinkClusterStatus) DeepCopy() *FlinkClusterStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FlinkClusterStatus.
func (*FlinkClusterStatus) DeepCopyInto ¶
func (in *FlinkClusterStatus) DeepCopyInto(out *FlinkClusterStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type GCPConfig ¶
type GCPConfig struct { // GCP service account. ServiceAccount *GCPServiceAccount `json:"serviceAccount,omitempty"` }
GCPConfig defines configs for GCP.
func (*GCPConfig) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GCPConfig.
func (*GCPConfig) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type GCPServiceAccount ¶
type GCPServiceAccount struct { // The name of the Secret holding the GCP service account key file. // The Secret must be in the same namespace as the FlinkCluster. SecretName string `json:"secretName,omitempty"` // The name of the service account key file. KeyFile string `json:"keyFile,omitempty"` // The path where to mount the Volume of the Secret. MountPath string `json:"mountPath,omitempty"` }
GCPServiceAccount defines the config about GCP service account.
func (*GCPServiceAccount) DeepCopy ¶
func (in *GCPServiceAccount) DeepCopy() *GCPServiceAccount
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GCPServiceAccount.
func (*GCPServiceAccount) DeepCopyInto ¶
func (in *GCPServiceAccount) DeepCopyInto(out *GCPServiceAccount)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type HadoopConfig ¶
type HadoopConfig struct { // The name of the ConfigMap which contains the Hadoop config files. // The ConfigMap must be in the same namespace as the FlinkCluster. ConfigMapName string `json:"configMapName,omitempty"` // The path where to mount the Volume of the ConfigMap. // default: `/etc/hadoop/conf`. MountPath string `json:"mountPath,omitempty"` }
HadoopConfig defines configs for Hadoop.
func (*HadoopConfig) DeepCopy ¶
func (in *HadoopConfig) DeepCopy() *HadoopConfig
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HadoopConfig.
func (*HadoopConfig) DeepCopyInto ¶
func (in *HadoopConfig) DeepCopyInto(out *HadoopConfig)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ImageSpec ¶
type ImageSpec struct { // Flink image name. Name string `json:"name"` // Image pull policy. One of `Always, Never, IfNotPresent`, default: `Always`. // if :latest tag is specified, or IfNotPresent otherwise. // [More info](https://kubernetes.io/docs/concepts/containers/images/#image-pull-policy) PullPolicy corev1.PullPolicy `json:"pullPolicy,omitempty"` // _(Optional)_ Secrets for image pull. // [More info](https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/#create-a-pod-that-uses-your-secret) PullSecrets []corev1.LocalObjectReference `json:"pullSecrets,omitempty"` }
ImageSpec defines Flink image of JobManager and TaskManager containers.
func (*ImageSpec) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ImageSpec.
func (*ImageSpec) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type JobManagerIngressSpec ¶
type JobManagerIngressSpec struct { // _(Optional)_ Ingress host format. ex) {{$clusterName}}.example.com HostFormat *string `json:"hostFormat,omitempty"` // _(Optional)_Annotations for ingress configuration. // [More info](https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/) Annotations map[string]string `json:"annotations,omitempty"` // TLS use, default: `false`. UseTLS *bool `json:"useTls,omitempty"` // _(Optional)_TLS secret name. TLSSecretName *string `json:"tlsSecretName,omitempty"` }
JobManagerIngressSpec defines ingress of JobManager
func (*JobManagerIngressSpec) DeepCopy ¶
func (in *JobManagerIngressSpec) DeepCopy() *JobManagerIngressSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new JobManagerIngressSpec.
func (*JobManagerIngressSpec) DeepCopyInto ¶
func (in *JobManagerIngressSpec) DeepCopyInto(out *JobManagerIngressSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type JobManagerIngressStatus ¶
type JobManagerIngressStatus struct { // The name of the Kubernetes ingress resource. Name string `json:"name"` // The state of the component. State string `json:"state"` // The URLs of ingress. URLs []string `json:"urls,omitempty"` }
JobManagerIngressStatus defines the status of a JobManager ingress.
func (*JobManagerIngressStatus) DeepCopy ¶
func (in *JobManagerIngressStatus) DeepCopy() *JobManagerIngressStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new JobManagerIngressStatus.
func (*JobManagerIngressStatus) DeepCopyInto ¶
func (in *JobManagerIngressStatus) DeepCopyInto(out *JobManagerIngressStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type JobManagerPorts ¶
type JobManagerPorts struct { // RPC port, default: `6123`. RPC *int32 `json:"rpc,omitempty"` // Blob port, default: `6124`. Blob *int32 `json:"blob,omitempty"` // Query port, default: `6125`. Query *int32 `json:"query,omitempty"` // UI port, default: `8081`. UI *int32 `json:"ui,omitempty"` }
JobManagerPorts defines ports of JobManager.
func (*JobManagerPorts) DeepCopy ¶
func (in *JobManagerPorts) DeepCopy() *JobManagerPorts
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new JobManagerPorts.
func (*JobManagerPorts) DeepCopyInto ¶
func (in *JobManagerPorts) DeepCopyInto(out *JobManagerPorts)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type JobManagerServiceStatus ¶
type JobManagerServiceStatus struct { // The name of the Kubernetes jobManager service. Name string `json:"name"` // The state of the component. State string `json:"state"` // (Optional) The node port, present when `accessScope` is `NodePort`. NodePort int32 `json:"nodePort,omitempty"` // (Optional) The load balancer ingress, present when `accessScope` is `VPC` or `External` LoadBalancerIngress []corev1.LoadBalancerIngress `json:"loadBalancerIngress,omitempty"` }
JobManagerServiceStatus defines the observed state of FlinkCluster
func (*JobManagerServiceStatus) DeepCopy ¶
func (in *JobManagerServiceStatus) DeepCopy() *JobManagerServiceStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new JobManagerServiceStatus.
func (*JobManagerServiceStatus) DeepCopyInto ¶
func (in *JobManagerServiceStatus) DeepCopyInto(out *JobManagerServiceStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type JobManagerSpec ¶
type JobManagerSpec struct { // The number of JobManager replicas, default: `1` Replicas *int32 `json:"replicas,omitempty"` // Access scope, default: `Cluster`. // `Cluster`: accessible from within the same cluster. // `VPC`: accessible from within the same VPC. // `External`: accessible from the internet. // `NodePort`: accessible through node port. // `Headless`: pod IPs assumed to be routable and advertised directly with `clusterIP: None“. // Currently `VPC, External` are only available for GKE. AccessScope string `json:"accessScope"` // _(Optional)_ Provide external access to JobManager UI/API. Ingress *JobManagerIngressSpec `json:"ingress,omitempty"` // Ports that JobManager listening on. Ports JobManagerPorts `json:"ports,omitempty"` // _(Optional)_ Extra ports to be exposed. For example, Flink metrics reporter ports: Prometheus, JMX and so on. // Each port number and name must be unique among ports and extraPorts. ExtraPorts []NamedPort `json:"extraPorts,omitempty"` // Compute resources required by each JobManager container. // default: 2 CPUs with 2Gi Memory. // It Cannot be updated. // [More info](https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/) Resources corev1.ResourceRequirements `json:"resources,omitempty"` // Percentage of off-heap memory in containers, as a safety margin to avoid OOM kill, default: `25` MemoryOffHeapRatio *int32 `json:"memoryOffHeapRatio,omitempty"` // Minimum amount of off-heap memory in containers, as a safety margin to avoid OOM kill, default: `600M` // You can express this value like 600M, 572Mi and 600e6 // [More info](https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/#meaning-of-memory) MemoryOffHeapMin resource.Quantity `json:"memoryOffHeapMin,omitempty"` // For Flink 1.10+. Percentage of memory process, as a safety margin to avoid OOM kill, default: `80` MemoryProcessRatio *int32 `json:"memoryProcessRatio,omitempty"` // _(Optional)_ Volumes in the JobManager pod. // [More info](https://kubernetes.io/docs/concepts/storage/volumes/) Volumes []corev1.Volume `json:"volumes,omitempty"` // _(Optional)_ Volume mounts in the JobManager container. // [More info](https://kubernetes.io/docs/concepts/storage/volumes/) VolumeMounts []corev1.VolumeMount `json:"volumeMounts,omitempty"` // _(Optional)_ A template for persistent volume claim each requested and mounted to JobManager pod, // This can be used to mount an external volume with a specific storageClass or larger captivity (for larger/faster state backend). // [More info](https://kubernetes.io/docs/concepts/storage/persistent-volumes/#persistentvolumeclaims) VolumeClaimTemplates []corev1.PersistentVolumeClaim `json:"volumeClaimTemplates,omitempty"` // _(Optional)_ Init containers of the Job Manager pod. // [More info](https://kubernetes.io/docs/concepts/workloads/pods/init-containers/) InitContainers []corev1.Container `json:"initContainers,omitempty"` // _(Optional)_ Selector which must match a node's labels for the JobManager pod to be // scheduled on that node. // [More info](https://kubernetes.io/docs/concepts/configuration/assign-pod-node/) NodeSelector map[string]string `json:"nodeSelector,omitempty"` // _(Optional)_ Defines the node affinity of the pod // [More info](https://kubernetes.io/docs/concepts/scheduling-eviction/taint-and-toleration/) Tolerations []corev1.Toleration `json:"tolerations,omitempty"` // _(Optional)_ Sidecar containers running alongside with the JobManager container in the pod. // [More info](https://kubernetes.io/docs/concepts/containers/) Sidecars []corev1.Container `json:"sidecars,omitempty"` // _(Optional)_ JobManager StatefulSet pod template annotations. // [More info](https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/) PodAnnotations map[string]string `json:"podAnnotations,omitempty"` // _(Optional)_ SecurityContext of the JobManager pod. // [More info](https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-pod) SecurityContext *corev1.PodSecurityContext `json:"securityContext,omitempty"` // _(Optional)_ JobManager StatefulSet pod template labels. // [More info](https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/) PodLabels map[string]string `json:"podLabels,omitempty"` // Container liveness probe // If omitted, a [default value](https://github.com/spotify/flink-on-k8s-operator/blob/a88ed2b/api/v1beta1/flinkcluster_default.go#L113-L123) will be used. // [More info](https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/) LivenessProbe *corev1.Probe `json:"livenessProbe,omitempty"` // Container readiness probe // If omitted, a [default value](https://github.com/spotify/flink-on-k8s-operator/blob/a88ed2b/api/v1beta1/flinkcluster_default.go#L129-L139) will be used. // [More info](https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/) ReadinessProbe *corev1.Probe `json:"readinessProbe,omitempty"` }
JobManagerSpec defines properties of JobManager.
func (*JobManagerSpec) DeepCopy ¶
func (in *JobManagerSpec) DeepCopy() *JobManagerSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new JobManagerSpec.
func (*JobManagerSpec) DeepCopyInto ¶
func (in *JobManagerSpec) DeepCopyInto(out *JobManagerSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type JobRestartPolicy ¶
type JobRestartPolicy string
JobRestartPolicy defines the restart policy when a job fails.
const ( // JobRestartPolicyNever - never restarts a failed job. JobRestartPolicyNever JobRestartPolicy = "Never" // JobRestartPolicyFromSavepointOnFailure - restart the job from the latest // savepoint if available, otherwise do not restart. JobRestartPolicyFromSavepointOnFailure JobRestartPolicy = "FromSavepointOnFailure" )
type JobSpec ¶
type JobSpec struct { // _(Optional)_ JAR file of the job. It could be a local file or remote URI, // depending on which protocols (e.g., `https://, gs://`) are supported by the Flink image. JarFile *string `json:"jarFile,omitempty"` // _(Optional)_ Fully qualified Java class name of the job. ClassName *string `json:"className,omitempty"` // _(Optional)_ Python file of the job. It could be a local file or remote URI (e.g.,`https://`, `gs://`). PyFile *string `json:"pyFile,omitempty"` // _(Optional)_ Python files of the job. It could be a local file (with .py/.egg/.zip/.whl), directory or remote URI (e.g.,`https://`, `gs://`). // See the Flink argument `--pyFiles` for the detail. PyFiles *string `json:"pyFiles,omitempty"` // _(Optional)_ Python module path of the job entry point. Must use with pythonFiles. PyModule *string `json:"pyModule,omitempty"` // _(Optional)_ Command-line args of the job. Args []string `json:"args,omitempty"` // _(Optional)_ FromSavepoint where to restore the job from // Savepoint where to restore the job from (e.g., gs://my-savepoint/1234). // If flink job must be restored from the latest available savepoint when Flink job updating, this field must be unspecified. FromSavepoint *string `json:"fromSavepoint,omitempty"` // Allow non-restored state, default: `false`. AllowNonRestoredState *bool `json:"allowNonRestoredState,omitempty"` // _(Optional)_ Savepoints dir where to store savepoints of the job. SavepointsDir *string `json:"savepointsDir,omitempty"` // _(Optional)_ Should take savepoint before updating job, default: `true`. // If this is set as false, maxStateAgeToRestoreSeconds must be provided to limit the savepoint age to restore. TakeSavepointOnUpdate *bool `json:"takeSavepointOnUpdate,omitempty"` // _(Optional)_ Maximum age of the savepoint that allowed to restore state. // This is applied to auto restart on failure, update from stopped state and update without taking savepoint. // If nil, job can be restarted only when the latest savepoint is the final job state (created by "stop with savepoint") // - that is, only when job can be resumed from the suspended state. // +kubebuilder:validation:Minimum=0 MaxStateAgeToRestoreSeconds *int32 `json:"maxStateAgeToRestoreSeconds,omitempty"` // _(Optional)_ Automatically take a savepoint to the `savepointsDir` every n seconds. AutoSavepointSeconds *int32 `json:"autoSavepointSeconds,omitempty"` // _(Optional)_ Update this field to `jobStatus.savepointGeneration + 1` for a running job // cluster to trigger a new savepoint to `savepointsDir` on demand. SavepointGeneration int32 `json:"savepointGeneration,omitempty"` // Job parallelism, default: `1`. Parallelism *int32 `json:"parallelism,omitempty"` // No logging output to STDOUT, default: `false`. NoLoggingToStdout *bool `json:"noLoggingToStdout,omitempty"` // _(Optional)_ Volumes in the Job pod. // [More info](https://kubernetes.io/docs/concepts/storage/volumes/) Volumes []corev1.Volume `json:"volumes,omitempty"` // _(Optional)_ Volume mounts in the Job container. // [More info](https://kubernetes.io/docs/concepts/storage/volumes/) VolumeMounts []corev1.VolumeMount `json:"volumeMounts,omitempty"` // _(Optional)_ Init containers of the Job pod. A typical use case could be using an init // container to download a remote job jar to a local path which is // referenced by the `jarFile` property. // [More info](https://kubernetes.io/docs/concepts/workloads/pods/init-containers/) InitContainers []corev1.Container `json:"initContainers,omitempty"` // Restart policy when the job fails, one of `Never, FromSavepointOnFailure`, // default: `Never`. // `Never` means the operator will never try to restart a failed job, manual // cleanup and restart is required. // `FromSavepointOnFailure` means the operator will try to restart the failed // job from the savepoint recorded in the job status if available; otherwise, // the job will stay in failed state. This option is usually used together // with `autoSavepointSeconds` and `savepointsDir`. RestartPolicy *JobRestartPolicy `json:"restartPolicy"` // The action to take after job finishes. CleanupPolicy *CleanupPolicy `json:"cleanupPolicy,omitempty"` // _(Optional)_ Request the job to be cancelled. Only applies to running jobs. If // `savePointsDir` is provided, a savepoint will be taken before stopping the // job. CancelRequested *bool `json:"cancelRequested,omitempty"` // _(Optional)_ Job pod template annotations. // [More info](https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/) PodAnnotations map[string]string `json:"podAnnotations,omitempty"` // _(Optional)_ Job pod template labels. // [More info](https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/) PodLabels map[string]string `json:"podLabels,omitempty"` // _(Optional)_ Compute resources required by each Job container. // If omitted, a default value will be used. // It Cannot be updated. // More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/ Resources corev1.ResourceRequirements `json:"resources,omitempty"` // _(Optional)_ SecurityContext of the Job pod. // [More info](https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-pod) SecurityContext *corev1.PodSecurityContext `json:"securityContext,omitempty"` // Job running mode, `"Blocking", "Detached"`, default: `"Detached"` Mode *JobMode `json:"mode,omitempty"` }
JobSpec defines properties of a Flink job.
func (*JobSpec) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new JobSpec.
func (*JobSpec) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type JobStatus ¶
type JobStatus struct { // The ID of the Flink job. ID string `json:"id,omitempty"` // The Name of the Flink job. Name string `json:"name,omitempty"` // The name of the Kubernetes job resource. SubmitterName string `json:"submitterName,omitempty"` // The state of the Flink job deployment. State string `json:"state"` // The actual savepoint from which this job started. // In case of restart, it might be different from the savepoint in the job // spec. FromSavepoint string `json:"fromSavepoint,omitempty"` // The generation of the savepoint in `savepointsDir` taken by the operator. // The value starts from 0 when there is no savepoint and increases by 1 for // each successful savepoint. SavepointGeneration int32 `json:"savepointGeneration,omitempty"` // Savepoint location. SavepointLocation string `json:"savepointLocation,omitempty"` // Last successful savepoint completed timestamp. SavepointTime string `json:"savepointTime,omitempty"` // The savepoint recorded in savepointLocation is the final state of the job. FinalSavepoint bool `json:"finalSavepoint,omitempty"` // The timestamp of the Flink job deployment that creating job submitter. DeployTime string `json:"deployTime,omitempty"` // The Flink job started timestamp. StartTime string `json:"startTime,omitempty"` // The number of restarts. RestartCount int32 `json:"restartCount,omitempty"` // Job completion time. Present when job is terminated regardless of its state. CompletionTime *metav1.Time `json:"completionTime,omitempty"` // Reasons for the job failure. Present if job state is Failure FailureReasons []string `json:"failureReasons,omitempty"` }
JobStatus defines the status of a job.
func (*JobStatus) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new JobStatus.
func (*JobStatus) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*JobStatus) IsSavepointUpToDate ¶ added in v0.2.0
IsSavepointUpToDate check if the recorded savepoint is up-to-date compared to maxStateAgeToRestoreSeconds. If maxStateAgeToRestoreSeconds is not set, the savepoint is up-to-date only when the recorded savepoint is the final job state.
func (*JobStatus) IsTerminated ¶ added in v0.2.0
func (*JobStatus) ShouldRestart ¶ added in v0.2.0
ShouldRestart returns true if the controller should restart failed job. The controller can restart the job only if there is a savepoint that is close to the end time of the job.
type NamedPort ¶
type NamedPort struct { // _(Optional)_ If specified, this must be an IANA_SVC_NAME and unique within the pod. Each // named port in a pod must have a unique name. Name for the port that can be // referred to by services. Name string `json:"name,omitempty"` // Number of port to expose on the pod's IP address. // This must be a valid port number, 0 < x < 65536. // +kubebuilder:validation:Minimum=1 // +kubebuilder:validation:Maximum=65535 ContainerPort int32 `json:"containerPort"` // Protocol for port. One of `UDP, TCP, or SCTP`, default: `TCP`. // +kubebuilder:validation:Enum=TCP;UDP;SCTP Protocol string `json:"protocol,omitempty"` }
NamedPort defines the container port properties.
func (*NamedPort) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NamedPort.
func (*NamedPort) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type RevisionStatus ¶ added in v0.2.0
type RevisionStatus struct { // CurrentRevision indicates the version of FlinkCluster. CurrentRevision string `json:"currentRevision,omitempty"` // NextRevision indicates the version of FlinkCluster updating. NextRevision string `json:"nextRevision,omitempty"` // collisionCount is the count of hash collisions for the FlinkCluster. The controller // uses this field as a collision avoidance mechanism when it needs to create the name for the // newest ControllerRevision. CollisionCount *int32 `json:"collisionCount,omitempty"` }
func (*RevisionStatus) DeepCopy ¶ added in v0.2.0
func (in *RevisionStatus) DeepCopy() *RevisionStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RevisionStatus.
func (*RevisionStatus) DeepCopyInto ¶ added in v0.2.0
func (in *RevisionStatus) DeepCopyInto(out *RevisionStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*RevisionStatus) IsUpdateTriggered ¶ added in v0.2.0
func (r *RevisionStatus) IsUpdateTriggered() bool
type SavepointStatus ¶
type SavepointStatus struct { // The ID of the Flink job. JobID string `json:"jobID,omitempty"` // Savepoint trigger ID. TriggerID string `json:"triggerID,omitempty"` // Savepoint triggered time. TriggerTime string `json:"triggerTime,omitempty"` // Savepoint triggered reason. TriggerReason SavepointReason `json:"triggerReason,omitempty"` // Savepoint status update time. UpdateTime string `json:"requestTime,omitempty"` // Savepoint state. State string `json:"state"` // Savepoint message. Message string `json:"message,omitempty"` }
SavepointStatus is the status of savepoint progress.
func (*SavepointStatus) DeepCopy ¶
func (in *SavepointStatus) DeepCopy() *SavepointStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SavepointStatus.
func (*SavepointStatus) DeepCopyInto ¶
func (in *SavepointStatus) DeepCopyInto(out *SavepointStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*SavepointStatus) IsFailed ¶ added in v0.2.0
func (s *SavepointStatus) IsFailed() bool
type TaskManagerPorts ¶
type TaskManagerPorts struct { // Data port, default: `6121`. Data *int32 `json:"data,omitempty"` // RPC port, default: `6122`. RPC *int32 `json:"rpc,omitempty"` // Query port, default: `6125`. Query *int32 `json:"query,omitempty"` }
TaskManagerPorts defines ports of TaskManager.
func (*TaskManagerPorts) DeepCopy ¶
func (in *TaskManagerPorts) DeepCopy() *TaskManagerPorts
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TaskManagerPorts.
func (*TaskManagerPorts) DeepCopyInto ¶
func (in *TaskManagerPorts) DeepCopyInto(out *TaskManagerPorts)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type TaskManagerSpec ¶
type TaskManagerSpec struct { // The number of replicas. Replicas int32 `json:"replicas"` // Ports that TaskManager listening on. Ports TaskManagerPorts `json:"ports,omitempty"` // _(Optional)_ Extra ports to be exposed. For example, Flink metrics reporter ports: Prometheus, JMX and so on. ExtraPorts []NamedPort `json:"extraPorts,omitempty"` // Compute resources required by each TaskManager container. // default: 2 CPUs with 2Gi Memory. // It Cannot be updated. // [More info](https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/) Resources corev1.ResourceRequirements `json:"resources,omitempty"` // Percentage of off-heap memory in containers, as a safety margin to avoid OOM kill, default: `25` MemoryOffHeapRatio *int32 `json:"memoryOffHeapRatio,omitempty"` // Minimum amount of off-heap memory in containers, as a safety margin to avoid OOM kill, default: `600M` // You can express this value like 600M, 572Mi and 600e6 // [More info](https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/#meaning-of-memory) MemoryOffHeapMin resource.Quantity `json:"memoryOffHeapMin,omitempty"` // For Flink 1.10+. Percentage of process memory, as a safety margin to avoid OOM kill, default: `20` MemoryProcessRatio *int32 `json:"memoryProcessRatio,omitempty"` // _(Optional)_ Volumes in the TaskManager pods. // [More info](https://kubernetes.io/docs/concepts/storage/volumes/) Volumes []corev1.Volume `json:"volumes,omitempty"` // _(Optional)_ Volume mounts in the TaskManager containers. // [More info](https://kubernetes.io/docs/concepts/storage/volumes/) VolumeMounts []corev1.VolumeMount `json:"volumeMounts,omitempty"` // _(Optional)_ A template for persistent volume claim each requested and mounted to JobManager pod, // This can be used to mount an external volume with a specific storageClass or larger captivity (for larger/faster state backend). // [More info](https://kubernetes.io/docs/concepts/storage/persistent-volumes/#persistentvolumeclaims) VolumeClaimTemplates []corev1.PersistentVolumeClaim `json:"volumeClaimTemplates,omitempty"` // _(Optional)_ Init containers of the Task Manager pod. // [More info](https://kubernetes.io/docs/concepts/workloads/pods/init-containers/) InitContainers []corev1.Container `json:"initContainers,omitempty"` // _(Optional)_ Selector which must match a node's labels for the TaskManager pod to be // scheduled on that node. // [More info](https://kubernetes.io/docs/concepts/configuration/assign-pod-node/) NodeSelector map[string]string `json:"nodeSelector,omitempty"` // _(Optional)_ Defines the node affinity of the pod // [More info](https://kubernetes.io/docs/concepts/scheduling-eviction/taint-and-toleration/) Tolerations []corev1.Toleration `json:"tolerations,omitempty"` // _(Optional)_ Sidecar containers running alongside with the TaskManager container in the pod. // [More info](https://kubernetes.io/docs/concepts/containers/) Sidecars []corev1.Container `json:"sidecars,omitempty"` // _(Optional)_ TaskManager StatefulSet pod template annotations. // [More info](https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/) PodAnnotations map[string]string `json:"podAnnotations,omitempty"` // _(Optional)_ SecurityContext of the TaskManager pod. // [More info](https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-pod) SecurityContext *corev1.PodSecurityContext `json:"securityContext,omitempty"` // _(Optional)_ TaskManager StatefulSet pod template labels. // [More info](https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/) PodLabels map[string]string `json:"podLabels,omitempty"` // Container liveness probe // If omitted, a [default value](https://github.com/spotify/flink-on-k8s-operator/blob/a88ed2b/api/v1beta1/flinkcluster_default.go#L177-L187) will be used. // [More info](https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/) LivenessProbe *corev1.Probe `json:"livenessProbe,omitempty"` // Container readiness probe // If omitted, a [default value](https://github.com/spotify/flink-on-k8s-operator/blob/a88ed2b/api/v1beta1/flinkcluster_default.go#L193-L203) will be used. // [More info](https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/) ReadinessProbe *corev1.Probe `json:"readinessProbe,omitempty"` }
TaskManagerSpec defines properties of TaskManager.
func (*TaskManagerSpec) DeepCopy ¶
func (in *TaskManagerSpec) DeepCopy() *TaskManagerSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TaskManagerSpec.
func (*TaskManagerSpec) DeepCopyInto ¶
func (in *TaskManagerSpec) DeepCopyInto(out *TaskManagerSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type TimeConverter ¶ added in v0.2.0
type TimeConverter struct{}
TimeConverter converts between time.Time and string.
func (*TimeConverter) DeepCopy ¶ added in v0.2.0
func (in *TimeConverter) DeepCopy() *TimeConverter
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TimeConverter.
func (*TimeConverter) DeepCopyInto ¶ added in v0.2.0
func (in *TimeConverter) DeepCopyInto(out *TimeConverter)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*TimeConverter) FromString ¶ added in v0.2.0
func (tc *TimeConverter) FromString(timeStr string) time.Time
FromString converts string to time.Time.
type Validator ¶
type Validator struct{}
Validator validates CUD requests for the CR.
func (*Validator) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Validator.
func (*Validator) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*Validator) ValidateCreate ¶
func (v *Validator) ValidateCreate(cluster *FlinkCluster) error
ValidateCreate validates create request.
func (*Validator) ValidateUpdate ¶
func (v *Validator) ValidateUpdate(old *FlinkCluster, new *FlinkCluster) error
ValidateUpdate validates update request.