patch

package
v1.9.3 Latest Latest
Warning

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

Go to latest
Published: Dec 23, 2024 License: Apache-2.0 Imports: 20 Imported by: 284

Documentation

Overview

Package patch implements patch utilities.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Clusterv1ConditionsFieldPath added in v1.9.0

type Clusterv1ConditionsFieldPath []string

Clusterv1ConditionsFieldPath allows to override the path for the field hosting clusterv1.Conditions. Please note that the default value for this option is inferred from the object struct. The override for this option is considered only if the object implements the conditions.Setter interface.

func (Clusterv1ConditionsFieldPath) ApplyToHelper added in v1.9.0

func (w Clusterv1ConditionsFieldPath) ApplyToHelper(in *HelperOptions)

ApplyToHelper applies this configuration to the given HelperOptions.

type Helper

type Helper struct {
	// contains filtered or unexported fields
}

Helper is a utility for ensuring the proper patching of objects.

func NewHelper

func NewHelper(obj client.Object, crClient client.Client) (*Helper, error)

NewHelper returns an initialized Helper. Use NewHelper before changing obj. After changing obj use Helper.Patch to persist your changes.

Please note that patch helper implements a custom handling for objects implementing the condition.Setter interface or the v1beta2conditions.Setter interface.

It is also possible to implement wrappers for object not implementing those interfaces; in case those objects have custom conditions types the wrapper should take care of conversions. Additionally, if the conditions are not in the canonical place defined by the proposal for improving status in Cluster API conditions, locations of the condition field must be provided explicitly by using Metav1ConditionsFieldPath and Clusterv1ConditionsFieldPath options during the Patch call.

func (*Helper) Patch

func (h *Helper) Patch(ctx context.Context, obj client.Object, opts ...Option) error

Patch will attempt to patch the given object, including its status.

type HelperOptions added in v0.3.7

type HelperOptions struct {
	// IncludeStatusObservedGeneration sets the status.observedGeneration field
	// on the incoming object to match metadata.generation, only if there is a change.
	IncludeStatusObservedGeneration bool

	// ForceOverwriteConditions allows the patch helper to overwrite conditions in case of conflicts.
	// This option should only ever be set in controller managing the object being patched.
	ForceOverwriteConditions bool

	// OwnedConditions defines condition types owned by the controller.
	// In case of conflicts for the owned conditions, the patch helper will always use the value provided by the controller.
	OwnedConditions []clusterv1.ConditionType

	// OwnedV1Beta2Conditions defines condition types owned by the controller.
	// In case of conflicts for the owned conditions, the patch helper will always use the value provided by the controller.
	OwnedV1Beta2Conditions []string

	// Metav1ConditionsFields allows to override the path for the field hosting []metav1.Condition.
	// Please note that the default value for this option is inferred from the object struct.
	// This means, that if the correct path cannot be detected, this option has to be specified. One example
	// is if you pass a wrapper to unstructured.
	// The override for this option is considered only if the object implements the v1beta2conditions.Setter interface.
	Metav1ConditionsFieldPath []string

	// Clusterv1ConditionsFieldPath allows to override the path for the field hosting clusterv1.Conditions.
	// Please note that the default value for this option is inferred from the object struct.
	// This means, that if the correct path cannot be detected, this option has to be specified. One example
	// is if you pass a wrapper to unstructured.
	// The override for this option is considered only if the object implements the conditions.Setter interface.
	Clusterv1ConditionsFieldPath []string
}

HelperOptions contains options for patch options.

type Metav1ConditionsFieldPath added in v1.9.0

type Metav1ConditionsFieldPath []string

Metav1ConditionsFieldPath allows to override the path for the field hosting []metav1.Condition. Please note that the default value for this option is inferred from the object struct. The override for this option is considered only if the object implements the v1beta2conditions.Setter interface.

func (Metav1ConditionsFieldPath) ApplyToHelper added in v1.9.0

func (w Metav1ConditionsFieldPath) ApplyToHelper(in *HelperOptions)

ApplyToHelper applies this configuration to the given HelperOptions.

type Option added in v0.3.7

type Option interface {
	// ApplyToHelper applies this configuration to the given Helper options.
	ApplyToHelper(*HelperOptions)
}

Option is some configuration that modifies options for a patch request.

type WithForceOverwriteConditions added in v0.3.10

type WithForceOverwriteConditions struct{}

WithForceOverwriteConditions allows the patch helper to overwrite conditions in case of conflicts. This option should only ever be set in controller managing the object being patched.

func (WithForceOverwriteConditions) ApplyToHelper added in v0.3.10

func (w WithForceOverwriteConditions) ApplyToHelper(in *HelperOptions)

ApplyToHelper applies this configuration to the given HelperOptions.

type WithOwnedConditions added in v0.3.7

type WithOwnedConditions struct {
	Conditions []clusterv1.ConditionType
}

WithOwnedConditions allows to define condition types owned by the controller. In case of conflicts for the owned conditions, the patch helper will always use the value provided by the controller.

func (WithOwnedConditions) ApplyToHelper added in v0.3.7

func (w WithOwnedConditions) ApplyToHelper(in *HelperOptions)

ApplyToHelper applies this configuration to the given HelperOptions.

type WithOwnedV1Beta2Conditions added in v1.9.0

type WithOwnedV1Beta2Conditions struct {
	Conditions []string
}

WithOwnedV1Beta2Conditions allows to define condition types owned by the controller. In case of conflicts for the owned conditions, the patch helper will always use the value provided by the controller.

func (WithOwnedV1Beta2Conditions) ApplyToHelper added in v1.9.0

func (w WithOwnedV1Beta2Conditions) ApplyToHelper(in *HelperOptions)

ApplyToHelper applies this configuration to the given HelperOptions.

type WithStatusObservedGeneration added in v0.3.7

type WithStatusObservedGeneration struct{}

WithStatusObservedGeneration sets the status.observedGeneration field on the incoming object to match metadata.generation, only if there is a change.

func (WithStatusObservedGeneration) ApplyToHelper added in v0.3.7

func (w WithStatusObservedGeneration) ApplyToHelper(in *HelperOptions)

ApplyToHelper applies this configuration to the given HelperOptions.

Jump to

Keyboard shortcuts

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