merge3

package
v1.0.0-beta.61 Latest Latest
Warning

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

Go to latest
Published: Feb 16, 2026 License: Apache-2.0 Imports: 18 Imported by: 0

Documentation

Overview

Package merge3 executes a 3-way merge update

Index

Constants

View Source
const (
	MergeCommentPrefix = "kpt-merge:"
)

Variables

This section is empty.

Functions

func FilterCrds

func FilterCrds(kos fn.KubeObjects) (filtered fn.KubeObjects, crds fn.KubeObjects)

FilterCrds splits the input between non-CRD and CRD KubeObjects.

func GetHandlingStrategy

func GetHandlingStrategy(original, updated, dest *yaml.RNode) filters.ResourceMergeStrategy

GetHandlingStrategy is an implementation of the ResourceHandler.Handle method from kyaml. It is used to decide how a resource should be handled during the 3-way merge. This differs from the default implementation in that if a resource is deleted from upstream, it will only be deleted from local if there is no diff between origin and local.

func IsCrd

func IsCrd(ko *fn.KubeObject) bool

func Merge

func Merge(original, updated, destination fn.KubeObjects, additionalSchemas []byte) (fn.KubeObjects, error)

func MergeTuples

func MergeTuples(tl tuples) (kio.ResourceNodeSlice, error)

func NsAndNameForMerge

func NsAndNameForMerge(metadataComment string) []string

NsAndNameForMerge returns the namespace and name for merge from the line comment on the metadata field e.g. metadata: # kpt-merge: default/foo returns [default, foo]

func SchemasFromCrdKubeObject

func SchemasFromCrdKubeObject(ko *fn.KubeObject) (map[string]spec.Schema, error)

SchemasFromCrdKubeObject extracts the Kustomize OpenApi definitions keyed with their GVK from a single CRD KubeObject

func SchemasFromCrdKubeObjects

func SchemasFromCrdKubeObjects(kos fn.KubeObjects) (map[string]spec.Schema, error)

SchemasFromCrdKubeObjects extracts the Kustomize OpenApi definitions keyed with their GVK from multiple CRD KubeObjects

func SchemasFromCrdRNode

func SchemasFromCrdRNode(node *kyaml.RNode) (map[string]spec.Schema, error)

SchemasFromCrdRNode extracts all the Kustomize OpenApi definitions keyed with their GVK from a single CRD RNode

func SchemasFromCrdRNodes

func SchemasFromCrdRNodes(nodes []*kyaml.RNode) (map[string]spec.Schema, error)

SchemasFromCrdRNodes extracts all the Kustomize OpenApi definitions keyed with their GVK from multiple CRD RNodes

Types

type MergeTestResources

type MergeTestResources struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata,omitempty"`

	Spec MergeTestResourcesSpec `json:"spec,omitempty"`
}

type MergeTestResourcesSpec

type MergeTestResourcesSpec struct {
	PackageName    string            `json:"packageName,omitempty"`
	WorkspaceName  string            `json:"workspaceName,omitempty"`
	Revision       int               `json:"revision,omitempty"`
	RepositoryName string            `json:"repository,omitempty"`
	Resources      map[string]string `json:"resources,omitempty"`
}

Jump to

Keyboard shortcuts

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