var BuildAnnotations = []string{ utils.BuildAnnotationPreviousKinds, utils.BuildAnnotationPreviousNames, utils.BuildAnnotationPrefixes, utils.BuildAnnotationSuffixes, utils.BuildAnnotationPreviousNamespaces, utils.BuildAnnotationAllowNameChange, utils.BuildAnnotationAllowKindChange, utils.BuildAnnotationsRefBy, utils.BuildAnnotationsGenBehavior, utils.BuildAnnotationsGenAddHashSuffix, kioutil.PathAnnotation, kioutil.IndexAnnotation, kioutil.SeqIndentAnnotation, kioutil.IdAnnotation, kioutil.InternalAnnotationsMigrationResourceIDAnnotation, kioutil.LegacyPathAnnotation, kioutil.LegacyIndexAnnotation, kioutil.LegacyIdAnnotation, }
Factory makes instances of Resource.
type Factory struct { // When set to true, IncludeLocalConfigs indicates // that Factory should include resources with the // annotation 'config.kubernetes.io/local-config'. // By default these resources are ignored. IncludeLocalConfigs bool // contains filtered or unexported fields }
func NewFactory(h ifc.KustHasher) *Factory
NewFactory makes an instance of Factory.
func (rf *Factory) DropLocalNodes(nodes []*yaml.RNode) ([]*Resource, error)
DropLocalNodes removes the local nodes by default. Local nodes are detected via the annotation `config.kubernetes.io/local-config: "true"`
func (rf *Factory) FromBytes(in []byte) (*Resource, error)
FromBytes unmarshalls bytes into one Resource.
func (rf *Factory) FromMap(m map[string]interface{}) *Resource
FromMap returns a new instance of Resource.
func (rf *Factory) FromMapAndOption( m map[string]interface{}, args *types.GeneratorArgs) (*Resource, error)
FromMapAndOption returns a new instance of Resource with given options.
func (rf *Factory) FromMapWithName(n string, m map[string]interface{}) *Resource
FromMapWithName returns a new instance with the given "original" name.
func (rf *Factory) FromMapWithNamespaceAndName(ns string, n string, m map[string]interface{}) *Resource
FromMapWithNamespaceAndName returns a new instance with the given "original" namespace.
func (rf *Factory) Hasher() ifc.KustHasher
Hasher returns an ifc.KustHasher
func (rf *Factory) MakeConfigMap(kvLdr ifc.KvLoader, args *types.ConfigMapArgs) (*Resource, error)
MakeConfigMap makes an instance of Resource for ConfigMap
func (rf *Factory) MakeSecret(kvLdr ifc.KvLoader, args *types.SecretArgs) (*Resource, error)
MakeSecret makes an instance of Resource for Secret
func (rf *Factory) RNodesFromBytes(b []byte) ([]*yaml.RNode, error)
func (rf *Factory) ResourcesFromRNodes( nodes []*yaml.RNode) (result []*Resource, err error)
ResourcesFromRNodes converts RNodes to Resources.
func (rf *Factory) SliceFromBytes(in []byte) ([]*Resource, error)
SliceFromBytes unmarshals bytes into a Resource slice.
func (rf *Factory) SliceFromBytesWithNames(names []string, in []byte) ([]*Resource, error)
SliceFromBytesWithNames unmarshals bytes into a Resource slice with specified original name.
func (rf *Factory) SliceFromPatches( ldr ifc.Loader, paths []types.PatchStrategicMerge) ([]*Resource, error)
SliceFromPatches returns a slice of resources given a patch path slice from a kustomization file.
type IdSet struct {
// contains filtered or unexported fields
}
func MakeIdSet(slice []*Resource) *IdSet
func (s IdSet) Contains(id resid.ResId) bool
func (s IdSet) Size() int
Origin retains information about the origin of resources and transformer configs that contributed to the output of `kustomize build`
type Origin struct { // Path is the path to the resource. If a local resource, this path is // rooted from the directory upon which `kustomize build` was invoked. If a // remote resource, this path is rooted from the root of the remote repo. Path string `json:"path,omitempty" yaml:"path,omitempty"` // Repo is the remote repository that the resource or transformer originated from if it is // not from a local file Repo string `json:"repo,omitempty" yaml:"repo,omitempty"` // Ref is the ref of the remote repository that the resource or transformer originated from // if it is not from a local file Ref string `json:"ref,omitempty" yaml:"ref,omitempty"` // ConfiguredIn is the file path to the generator or transformer config that created the // resource ConfiguredIn string `json:"configuredIn,omitempty" yaml:"configuredIn,omitempty"` // ConfiguredBy is the ObjectReference of the generator or transformer config ConfiguredBy kyaml.ResourceIdentifier `json:"configuredBy,omitempty" yaml:"configuredBy,omitempty"` }
func OriginFromCustomPlugin(res *Resource) (*Origin, error)
OriginFromCustomPlugin takes a custom plugin defined as a resource and returns an origin object to describe it
func (origin *Origin) Append(path string) *Origin
Append returns a copy of origin with a path appended to it
func (origin *Origin) Copy() Origin
Copy returns a copy of origin
func (origin *Origin) String() (string, error)
String returns a string version of origin
ResCtx is an interface describing the contextual added kept kustomize in the context of each Resource object. Currently mainly the name prefix and name suffix are added.
type ResCtx interface { AddNamePrefix(p string) AddNameSuffix(s string) GetNamePrefixes() []string GetNameSuffixes() []string }
ResCtxMatcher returns true if two Resources are being modified in the same kustomize context.
type ResCtxMatcher func(ResCtx) bool
Resource is an RNode, representing a Kubernetes Resource Model object, paired with metadata used by kustomize.
type Resource struct { kyaml.RNode // contains filtered or unexported fields }
func (r *Resource) AddNamePrefix(p string)
Implements ResCtx AddNamePrefix
func (r *Resource) AddNameSuffix(s string)
Implements ResCtx AddNameSuffix
func (r *Resource) AddTransformation(origin *Origin) error
func (r *Resource) AllowKindChange()
AllowKindChange allows kind changes to the resource.
func (r *Resource) AllowNameChange()
AllowNameChange allows name changes to the resource.
func (r *Resource) AppendRefBy(id fmt.Stringer)
AppendRefBy appends a ResId into the refBy list Using any type except fmt.Stringer here results in a compilation error
func (r *Resource) AppendRefVarName(variable types.Var)
AppendRefVarName appends a name of a var into the refVar list
func (r *Resource) ApplyFilter(f kio.Filter) error
func (r *Resource) ApplySmPatch(patch *Resource) error
ApplySmPatch applies the provided strategic merge patch.
func (r *Resource) AsYAML() ([]byte, error)
AsYAML returns the resource in Yaml form. Easier to read than JSON.
func (r *Resource) Behavior() types.GenerationBehavior
Behavior returns the behavior for the resource.
func (r *Resource) ClearTransformations() error
func (r *Resource) CopyMergeMetaDataFieldsFrom(other *Resource) error
CopyMergeMetaDataFieldsFrom copies everything but the non-metadata in the resource. TODO: move to RNode, use GetMeta to improve performance. TODO: make a version of mergeStringMaps that is build-annotation aware
to avoid repeatedly setting refby and genargs annotations
Must remove the kustomize bit at the end.
func (r *Resource) CurId() resid.ResId
CurId returns a ResId for the resource using the mutable parts of the resource. This should be unique in any ResMap.
func (r *Resource) DeepCopy() *Resource
DeepCopy returns a new copy of resource
func (r *Resource) EnableHashSuffix()
EnableHashSuffix marks the resource as needing a content hash to be appended to the name of the resource.
func (r *Resource) ErrIfNotEquals(o *Resource) error
func (r *Resource) GetGvk() resid.Gvk
func (r *Resource) GetNamePrefixes() []string
Implements ResCtx GetNamePrefixes
func (r *Resource) GetNameSuffixes() []string
Implements ResCtx GetNameSuffixes
func (r *Resource) GetOrigin() (*Origin, error)
func (r *Resource) GetRefBy() []resid.ResId
GetRefBy returns the ResIds that referred to current resource
func (r *Resource) GetRefVarNames() []string
GetRefVarNames returns vars that refer to current resource
func (r *Resource) GetTransformations() (Transformations, error)
func (r *Resource) Hash(h ifc.KustHasher) (string, error)
func (r *Resource) KindChangeAllowed() bool
KindChangeAllowed checks if a patch resource is allowed to change another resource's kind.
func (r *Resource) MergeBinaryDataMapFrom(o *Resource)
func (r *Resource) MergeDataMapFrom(o *Resource)
func (r *Resource) MustYaml() string
MustYaml returns YAML or panics.
func (r *Resource) NameChangeAllowed() bool
NameChangeAllowed checks if a patch resource is allowed to change another resource's name.
func (r *Resource) NeedHashSuffix() bool
NeedHashSuffix returns true if a resource content hash should be appended to the name of the resource.
func (r *Resource) OrgId() resid.ResId
OrgId returns the original, immutable ResId for the resource. This doesn't have to be unique in a ResMap.
func (r *Resource) PrefixesSuffixesEquals(o ResCtx, allowEmpty bool) bool
PrefixesSuffixesEquals is conceptually doing the same task as OutermostPrefixSuffix but performs a deeper comparison of the suffix and prefix slices. The allowEmpty flag determines whether an empty prefix/suffix should be considered a match on anything. This is used when filtering, starting with a coarser pass allowing empty matches, before requiring exact matches if there are multiple remaining candidates.
func (r *Resource) PrevIds() []resid.ResId
PrevIds returns a list of ResIds that includes every previous ResId the resource has had through all of its GVKN transformations, in the order that it had that ID. I.e. the oldest ID is first. The returned array does not include the resource's current ID. If there are no previous IDs, this will return nil.
func (r *Resource) ReferencesEqual(other *Resource) bool
func (r *Resource) RemoveBuildAnnotations()
RemoveBuildAnnotations removes annotations created by the build process. These are internal-only to kustomize, added to the data pipeline to track name changes so name references can be fixed.
func (r *Resource) ResetRNode(incoming *Resource)
func (r *Resource) SetBehavior(behavior types.GenerationBehavior)
SetBehavior sets the behavior for the resource.
func (r *Resource) SetGvk(gvk resid.Gvk)
func (r *Resource) SetOrigin(origin *Origin) error
func (r *Resource) StorePreviousId()
StorePreviousId stores the resource's current ID via build annotations.
func (r *Resource) String() string
String returns resource as JSON.
Transformations is a list of Origin
type Transformations []*Origin
func (transformations *Transformations) String() (string, error)
String returns a string version of Transformations