progressive

package
v0.17.0 Latest Latest
Warning

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

Go to latest
Published: Mar 14, 2025 License: Apache-2.0 Imports: 14 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func AreVertexReplicasReady added in v0.17.0

func AreVertexReplicasReady(existingUpgradingChildDef *unstructured.Unstructured) (bool, error)

AreVertexReplicasReady checks if the number of ready replicas of a vertex matches or exceeds the desired replicas.

Parameters:

  • existingUpgradingChildDef: An unstructured object representing the vertex whose replica status is being checked.

Returns:

  • A boolean indicating whether the ready replicas are sufficient.
  • An error if there is an issue retrieving the replica counts.

func AssessUpgradingPipelineType added in v0.15.0

func AssessUpgradingPipelineType(
	ctx context.Context,
	existingUpgradingChildDef *unstructured.Unstructured,
	verifyReplicasFunc func(existingUpgradingChildDef *unstructured.Unstructured) (bool, error),
) (apiv1.AssessmentResult, error)

AssessUpgradingPipelineType makes an assessment of the upgrading child (either Pipeline or MonoVertex) to determine if it was successful, failed, or still not known Assessment: Success: phase must be "Running" and all conditions must be True Failure: phase is "Failed" or any condition is False Unknown: neither of the above if met

func CalculateScaleMinMaxValues added in v0.14.0

func CalculateScaleMinMaxValues(object map[string]any, podsCount int, pathToMin []string) (int64, int64, error)

CalculateScaleMinMaxValues computes new minimum and maximum scale values // for a given object based on the current number of pods.

Numaflow notes: - if max is unset, Numaflow uses DefaultMaxReplicas (50) - if min is unset or negative, Numaflow uses 0

Parameters:

  • object: A map representing the object from which to retrieve min and max values.
  • podsCount: The current number of pods.
  • pathToMin: A slice of strings representing the path to the min value in the object.

Returns:

  • newMin: The adjusted minimum scale value.
  • newMax: The adjusted maximum scale value.
  • error: An error if there is an issue retrieving the min or max values.

func ExtractOriginalScaleMinMaxAsJSONString added in v0.17.0

func ExtractOriginalScaleMinMaxAsJSONString(object map[string]any, pathToScale []string) (string, error)

ExtractOriginalScaleMinMaxAsJSONString returns a JSON string of the scale definition including only min and max fields extracted from the given unstructured object. It returns "null" if the pathToScale is not found.

func ProcessResource added in v0.13.0

func ProcessResource(
	ctx context.Context,
	rolloutObject ProgressiveRolloutObject,
	existingPromotedChild *unstructured.Unstructured,
	promotedDifference bool,
	controller progressiveController,
	c client.Client,
) (bool, bool, time.Duration, error)

return: - whether we're done - whether we just created a new child - duration indicating the requeue delay for the controller to use for next reconciliation - error if any

Types

type ProgressiveRolloutObject added in v0.14.0

type ProgressiveRolloutObject interface {
	ctlrcommon.RolloutObject

	GetProgressiveStrategy() apiv1.ProgressiveStrategy

	GetUpgradingChildStatus() *apiv1.UpgradingChildStatus

	GetPromotedChildStatus() *apiv1.PromotedChildStatus

	SetUpgradingChildStatus(*apiv1.UpgradingChildStatus)

	// note this resets the entire Upgrading status struct which encapsulates the UpgradingChildStatus struct
	ResetUpgradingChildStatus(upgradingChild *unstructured.Unstructured) error

	SetPromotedChildStatus(*apiv1.PromotedChildStatus)

	// note this resets the entire Promoted status struct which encapsulates the PromotedChildStatus struct
	ResetPromotedChildStatus(promotedChild *unstructured.Unstructured) error
}

ProgressiveRolloutObject describes a Rollout instance that supports progressive upgrade

Jump to

Keyboard shortcuts

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