Documentation ¶
Index ¶
- Constants
- func CreateVirtualJob(ctx context.Context, reconciler common.Reconciler, parent client.Object, ...) error
- func Failed(ctx context.Context, reconciler common.Reconciler, obj client.Object, ...) (reconcile.Result, error)
- func GroupedJobs(totalJobs int, state ClassifierReader, lf *v1alpha1.Lifecycle, ...) bool
- func Pending(ctx context.Context, reconciler common.Reconciler, obj client.Object, ...) (reconcile.Result, error)
- func SingleJob(state ClassifierReader, lf *v1alpha1.Lifecycle) bool
- func Success(ctx context.Context, reconciler common.Reconciler, obj client.Object, ...) (reconcile.Result, error)
- type Classifier
- func (in *Classifier) Classify(name string, obj client.Object)
- func (in *Classifier) ClassifyExternal(name string, obj client.Object, conv Convertor)
- func (in *Classifier) Count() int
- func (in *Classifier) GetFailedJobs(jobNames ...string) []client.Object
- func (in *Classifier) GetPendingJobs(jobNames ...string) []client.Object
- func (in *Classifier) GetRunningJobs(jobNames ...string) []client.Object
- func (in *Classifier) GetSuccessfulJobs(jobNames ...string) []client.Object
- func (in *Classifier) IsFailed(job ...string) bool
- func (in *Classifier) IsPending(job ...string) bool
- func (in *Classifier) IsRunning(job ...string) bool
- func (in *Classifier) IsSuccessful(job ...string) bool
- func (in *Classifier) ListAll() string
- func (in *Classifier) ListFailedJobs() []string
- func (in *Classifier) ListPendingJobs() []string
- func (in *Classifier) ListRunningJobs() []string
- func (in *Classifier) ListSuccessfulJobs() []string
- func (in *Classifier) NumAll() string
- func (in Classifier) NumFailedJobs() int
- func (in *Classifier) NumPendingJobs() int
- func (in *Classifier) NumRunningJobs() int
- func (in *Classifier) NumSuccessfulJobs() int
- func (in *Classifier) Reset()
- func (in *Classifier) SystemState() (abort bool, err error)
- type ClassifierReader
- type Convertor
Constants ¶
const ( // AtLeastOneJobHasFailed is used when at least one job has failed, and there is toleration defined. AtLeastOneJobHasFailed = "AtLeastOneJobHasFailed" // TooManyJobsHaveFailed is used when the number of failures exceed the number of toleration. TooManyJobsHaveFailed = "TooManyJobsHaveFailed" // ExactlyOneJobIsFailed indicate that the only scheduled job is in the Failed Phase. ExactlyOneJobIsFailed = "ExactlyOneJobIsFailed" )
Reasons for Failure.
const ( // AllJobsAreSuccessful is when all the scheduled jobs are successfully completed. AllJobsAreSuccessful = "AllJobsAreSuccessful" // ExactlyOneJobIsSuccessful indicate that the only scheduled job is in the Success Phase. ExactlyOneJobIsSuccessful = "ExactlyOneJobIsSuccessful" // ToleratedJobsAreSuccessful indicate that despite (tolerated) failures, a required number of jobs are successful. ToleratedJobsAreSuccessful = "JobSuccessfulDespiteErrors" )
Reasons for Success.
const ( // AtLeastOneJobIsRunning indicate that all jobs are created, and at least one is still running. AtLeastOneJobIsRunning = "AtLeastOneJobIsRunning" // ExactlyOneJobIsRunning indicate that the only scheduled job is in the Running phase. ExactlyOneJobIsRunning = "ExactlyOneJobIsRunning" )
Reasons for Running.
const ( // AtLeastOneJobIsNotScheduled indicate that there is at least one job that is not yet scheduled. AtLeastOneJobIsNotScheduled = "AtLeastOneJobIsNotScheduled" // ExactlyOneJobIsPending indicate that the only scheduled job is in the Pending phase. ExactlyOneJobIsPending = "ExactlyOneJobIsPending" )
Reasons for Pending.
Variables ¶
This section is empty.
Functions ¶
func CreateVirtualJob ¶ added in v1.0.39
func CreateVirtualJob(ctx context.Context, reconciler common.Reconciler, parent client.Object, jobName string, callback func(vobj *v1alpha1.VirtualObject) error, ) error
CreateVirtualJob wraps a call into a virtual object. This is used for operations that do not create external resources. Examples: Deletions, Calls, ... If the callback function fails, it will be reflected in the created virtual jobs and should be captured by the parent's lifecycle. If this function cannot create a virtual object (e.g, cannot create a virtual object), it will return an error.
func Failed ¶
func Failed(ctx context.Context, reconciler common.Reconciler, obj client.Object, issue error) (reconcile.Result, error)
Failed is a wrap that logs the error, updates the status, and does not requeue the request.
func GroupedJobs ¶
func GroupedJobs(totalJobs int, state ClassifierReader, lf *v1alpha1.Lifecycle, tolerate *v1alpha1.TolerateSpec) bool
GroupedJobs calculate the lifecycle for action with multiple sub-jobs, such as Clusters, Cascade, Calls, ...
Types ¶
type Classifier ¶
type Classifier struct {
// contains filtered or unexported fields
}
Classifier splits jobs into Pending, Running, Successful, and Failed. To relief the garbage collector, we use an embeddable structure that we reset at every reconciliation cycle.
func (*Classifier) Classify ¶
func (in *Classifier) Classify(name string, obj client.Object)
Classify the object based on the standard Frisbee lifecycle.
func (*Classifier) ClassifyExternal ¶
func (in *Classifier) ClassifyExternal(name string, obj client.Object, conv Convertor)
ClassifyExternal classifies the object based on the custom lifecycle.
func (*Classifier) Count ¶
func (in *Classifier) Count() int
func (*Classifier) GetFailedJobs ¶
func (in *Classifier) GetFailedJobs(jobNames ...string) []client.Object
func (*Classifier) GetPendingJobs ¶
func (in *Classifier) GetPendingJobs(jobNames ...string) []client.Object
func (*Classifier) GetRunningJobs ¶
func (in *Classifier) GetRunningJobs(jobNames ...string) []client.Object
func (*Classifier) GetSuccessfulJobs ¶
func (in *Classifier) GetSuccessfulJobs(jobNames ...string) []client.Object
func (*Classifier) IsFailed ¶
func (in *Classifier) IsFailed(job ...string) bool
func (*Classifier) IsPending ¶
func (in *Classifier) IsPending(job ...string) bool
func (*Classifier) IsRunning ¶
func (in *Classifier) IsRunning(job ...string) bool
func (*Classifier) IsSuccessful ¶
func (in *Classifier) IsSuccessful(job ...string) bool
func (*Classifier) ListAll ¶
func (in *Classifier) ListAll() string
func (*Classifier) ListFailedJobs ¶
func (in *Classifier) ListFailedJobs() []string
func (*Classifier) ListPendingJobs ¶
func (in *Classifier) ListPendingJobs() []string
func (*Classifier) ListRunningJobs ¶
func (in *Classifier) ListRunningJobs() []string
func (*Classifier) ListSuccessfulJobs ¶
func (in *Classifier) ListSuccessfulJobs() []string
func (*Classifier) NumAll ¶
func (in *Classifier) NumAll() string
func (Classifier) NumFailedJobs ¶
func (in Classifier) NumFailedJobs() int
func (*Classifier) NumPendingJobs ¶
func (in *Classifier) NumPendingJobs() int
func (*Classifier) NumRunningJobs ¶
func (in *Classifier) NumRunningJobs() int
func (*Classifier) NumSuccessfulJobs ¶
func (in *Classifier) NumSuccessfulJobs() int
func (*Classifier) Reset ¶
func (in *Classifier) Reset()
func (*Classifier) SystemState ¶
func (in *Classifier) SystemState() (abort bool, err error)
type ClassifierReader ¶
type ClassifierReader interface { v1alpha1.StateAggregationFunctions // ListAll returns a printable form of the names of classified objects ListAll() string // NumAll returns a printable form of the cardinality of classified objects NumAll() string // Count returns the number of all registered entities. Count() int // SystemState returns the state of the SYS services. If all services are running, it should return (false, nil). SystemState() (abort bool, err error) GetPendingJobs(jobName ...string) []client.Object GetRunningJobs(jobName ...string) []client.Object GetSuccessfulJobs(jobName ...string) []client.Object GetFailedJobs(jobName ...string) []client.Object }