patch

package
v1.8.0 Latest Latest
Warning

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

Go to latest
Published: Feb 22, 2022 License: Apache-2.0 Imports: 19 Imported by: 96

Documentation

Index

Constants

View Source
const LastAppliedConfig = "banzaicloud.com/last-applied"

Variables

View Source
var DefaultAnnotator = NewAnnotator(LastAppliedConfig)

Functions

func DeleteNullInJson

func DeleteNullInJson(jsonBytes []byte) ([]byte, map[string]interface{}, error)

Types

type Annotator

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

func NewAnnotator

func NewAnnotator(key string) *Annotator

func (*Annotator) GetModifiedConfiguration

func (a *Annotator) GetModifiedConfiguration(obj runtime.Object, annotate bool) ([]byte, error)

GetModifiedConfiguration retrieves the modified configuration of the object. If annotate is true, it embeds the result as an annotation in the modified configuration. If an object was read from the command input, it will use that version of the object. Otherwise, it will use the version from the server.

func (*Annotator) GetOriginalConfiguration

func (a *Annotator) GetOriginalConfiguration(obj runtime.Object) ([]byte, error)

GetOriginalConfiguration retrieves the original configuration of the object from the annotation, or nil if no annotation was found.

func (*Annotator) SetLastAppliedAnnotation

func (a *Annotator) SetLastAppliedAnnotation(obj runtime.Object) error

SetLastAppliedAnnotation gets the modified configuration of the object, without embedding it again, and then sets it on the object as the annotation.

func (*Annotator) SetOriginalConfiguration

func (a *Annotator) SetOriginalConfiguration(obj runtime.Object, original []byte) error

SetOriginalConfiguration sets the original configuration of the object as the annotation on the object for later use in computing a three way patch.

type BaseJSONMergePatcher added in v1.8.0

type BaseJSONMergePatcher struct{}

func (*BaseJSONMergePatcher) CreateMergePatch added in v1.8.0

func (p *BaseJSONMergePatcher) CreateMergePatch(originalJSON, modifiedJSON []byte) ([]byte, error)

func (*BaseJSONMergePatcher) CreateThreeWayJSONMergePatch added in v1.8.0

func (p *BaseJSONMergePatcher) CreateThreeWayJSONMergePatch(original, modified, current []byte) ([]byte, error)

func (*BaseJSONMergePatcher) MergePatch added in v1.8.0

func (p *BaseJSONMergePatcher) MergePatch(docData, patchData []byte) ([]byte, error)

type CalculateOption added in v1.2.0

type CalculateOption func([]byte, []byte) ([]byte, []byte, error)

func IgnoreField added in v1.6.0

func IgnoreField(field string) CalculateOption

func IgnorePDBSelector added in v1.5.2

func IgnorePDBSelector() CalculateOption

func IgnoreStatusFields added in v1.2.0

func IgnoreStatusFields() CalculateOption

func IgnoreVolumeClaimTemplateTypeMetaAndStatus added in v1.3.0

func IgnoreVolumeClaimTemplateTypeMetaAndStatus() CalculateOption

type JSONMergePatcher added in v1.8.0

type JSONMergePatcher interface {
	MergePatch(docData, patchData []byte) ([]byte, error)
	CreateMergePatch(originalJSON, modifiedJSON []byte) ([]byte, error)
	CreateThreeWayJSONMergePatch(original, modified, current []byte) ([]byte, error)
}

type K8sStrategicMergePatcher added in v1.8.0

type K8sStrategicMergePatcher struct {
	PreconditionFuncs []mergepatch.PreconditionFunc
}

func (*K8sStrategicMergePatcher) CreateThreeWayMergePatch added in v1.8.0

func (p *K8sStrategicMergePatcher) CreateThreeWayMergePatch(original, modified, current []byte, dataStruct interface{}) ([]byte, error)

func (*K8sStrategicMergePatcher) CreateTwoWayMergePatch added in v1.8.0

func (p *K8sStrategicMergePatcher) CreateTwoWayMergePatch(original, modified []byte, dataStruct interface{}) ([]byte, error)

func (*K8sStrategicMergePatcher) StrategicMergePatch added in v1.8.0

func (p *K8sStrategicMergePatcher) StrategicMergePatch(original, patch []byte, dataStruct interface{}) ([]byte, error)

type Maker added in v1.8.0

type Maker interface {
	Calculate(currentObject, modifiedObject runtime.Object, opts ...CalculateOption) (*PatchResult, error)
}

func NewPatchMaker

func NewPatchMaker(annotator *Annotator, strategicMergePatcher StrategicMergePatcher, jsonMergePatcher JSONMergePatcher) Maker

type PatchMaker

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

func (*PatchMaker) Calculate

func (p *PatchMaker) Calculate(currentObject, modifiedObject runtime.Object, opts ...CalculateOption) (*PatchResult, error)

type PatchResult

type PatchResult struct {
	Patch    []byte
	Current  []byte
	Modified []byte
	Original []byte
}

func (*PatchResult) IsEmpty

func (p *PatchResult) IsEmpty() bool

func (*PatchResult) String

func (p *PatchResult) String() string

type StrategicMergePatcher added in v1.8.0

type StrategicMergePatcher interface {
	StrategicMergePatch(original, patch []byte, dataStruct interface{}) ([]byte, error)
	CreateTwoWayMergePatch(original, modified []byte, dataStruct interface{}) ([]byte, error)
	CreateThreeWayMergePatch(original, modified, current []byte, dataStruct interface{}) ([]byte, error)
}

Jump to

Keyboard shortcuts

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