Files
kustomize/api/types/patch.go
2020-10-21 14:56:20 -07:00

29 lines
926 B
Go

// Copyright 2019 The Kubernetes Authors.
// SPDX-License-Identifier: Apache-2.0
package types
// Patch represent either a Strategic Merge Patch or a JSON patch
// and its targets.
// The content of the patch can either be from a file
// or from an inline string.
type Patch struct {
// Path is a relative file path to the patch file.
Path string `json:"path,omitempty" yaml:"path,omitempty"`
// Patch is the content of a patch.
Patch string `json:"patch,omitempty" yaml:"patch,omitempty"`
// Target points to the resources that the patch is applied to
Target *Selector `json:"target,omitempty" yaml:"target,omitempty"`
}
// Equals return true if p equals another.
func (p *Patch) Equals(another Patch) bool {
targetEqual := (p.Target == another.Target) ||
(p.Target != nil && another.Target != nil && *p.Target == *another.Target)
return p.Path == another.Path &&
p.Patch == another.Patch &&
targetEqual
}