mirror of
https://github.com/kubernetes-sigs/kustomize.git
synced 2026-05-17 10:15:22 +00:00
35 lines
1.0 KiB
Go
35 lines
1.0 KiB
Go
// Copyright 2019 The Kubernetes Authors.
|
|
// SPDX-License-Identifier: Apache-2.0
|
|
|
|
package types
|
|
|
|
import "reflect"
|
|
|
|
// 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"`
|
|
|
|
// Options is a list of options for the patch
|
|
Options map[string]bool `json:"options,omitempty" yaml:"options,omitempty"`
|
|
}
|
|
|
|
// Equals return true if p equals o.
|
|
func (p *Patch) Equals(o Patch) bool {
|
|
targetEqual := (p.Target == o.Target) ||
|
|
(p.Target != nil && o.Target != nil && *p.Target == *o.Target)
|
|
return p.Path == o.Path &&
|
|
p.Patch == o.Patch &&
|
|
targetEqual &&
|
|
reflect.DeepEqual(p.Options, o.Options)
|
|
}
|