kustomize: sigs.k8s.io/kustomize/pkg/types Index | Files

package types

import "sigs.k8s.io/kustomize/pkg/types"

Package types holds struct definitions that should find a better home.

Package types holds struct definitions that should find a better home.

Index

Package Files

configmapargs.go errors.go fix.go garbagepolicy_string.go genargs.go generationbehavior.go generatorargs.go generatoroptions.go kustomization.go objectmeta.go patchstrategicmerge.go patchtarget.go replica.go secretargs.go selector.go var.go

Constants

const (
    KustomizationVersion = "kustomize.config.k8s.io/v1beta1"
    KustomizationKind    = "Kustomization"
)

func FixKustomizationPreUnmarshalling Uses

func FixKustomizationPreUnmarshalling(data []byte) []byte

FixKustomizationPreUnmarshalling modies the raw data before marshalling - e.g. changes old field names to new field names.

type ByName Uses

type ByName []Var

ByName is a sort interface which sorts Vars by name alphabetically

func (ByName) Len Uses

func (v ByName) Len() int

func (ByName) Less Uses

func (v ByName) Less(i, j int) bool

func (ByName) Swap Uses

func (v ByName) Swap(i, j int)

type ConfigMapArgs Uses

type ConfigMapArgs struct {
    // GeneratorArgs for the configmap.
    GeneratorArgs `json:",inline,omitempty" yaml:",inline,omitempty"`
}

ConfigMapArgs contains the metadata of how to generate a configmap.

type DataSources Uses

type DataSources struct {
    // LiteralSources is a list of literal
    // pair sources. Each literal source should
    // be a key and literal value, e.g. `key=value`
    LiteralSources []string `json:"literals,omitempty" yaml:"literals,omitempty"`

    // FileSources is a list of file "sources" to
    // use in creating a list of key, value pairs.
    // A source takes the form:  [{key}=]{path}
    // If the "key=" part is missing, the key is the
    // path's basename. If they "key=" part is present,
    // it becomes the key (replacing the basename).
    // In either case, the value is the file contents.
    // Specifying a directory will iterate each named
    // file in the directory whose basename is a
    // valid configmap key.
    FileSources []string `json:"files,omitempty" yaml:"files,omitempty"`

    // EnvSources is a list of file paths.
    // The contents of each file should be one
    // key=value pair per line, e.g. a Docker
    // or npm ".env" file or a ".ini" file
    // (wikipedia.org/wiki/INI_file)
    EnvSources []string `json:"envs,omitempty" yaml:"envs,omitempty"`

    // Deprecated.  Use EnvSources instead.
    EnvSource string `json:"env,omitempty" yaml:"env,omitempty"`
}

DataSources contains some generic sources for generators.

type FieldSelector Uses

type FieldSelector struct {
    FieldPath string `json:"fieldPath,omitempty" yaml:"fieldPath,omitempty"`
}

FieldSelector contains the fieldPath to an object field. This struct is added to keep the backward compatibility of using ObjectFieldSelector for Var.FieldRef

type GarbagePolicy Uses

type GarbagePolicy int

go:generate stringer -type=GarbagePolicy

const (
    GarbageIgnore GarbagePolicy = iota + 1
    GarbageCollect
)

func (GarbagePolicy) String Uses

func (i GarbagePolicy) String() string

type GenArgs Uses

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

GenArgs contains both generator args and options

func NewGenArgs Uses

func NewGenArgs(args *GeneratorArgs, opts *GeneratorOptions) *GenArgs

NewGenArgs returns a new object of GenArgs

func (*GenArgs) Behavior Uses

func (g *GenArgs) Behavior() GenerationBehavior

Behavior returns Behavior field of GeneratorArgs

func (*GenArgs) NeedsHashSuffix Uses

func (g *GenArgs) NeedsHashSuffix() bool

NeedsHashSuffix returns true if the hash suffix is needed. It is needed when the two conditions are both met

1) GenArgs is not nil
2) DisableNameSuffixHash in GeneratorOptions is not set to true

func (*GenArgs) String Uses

func (g *GenArgs) String() string

type GenerationBehavior Uses

type GenerationBehavior int

GenerationBehavior specifies generation behavior of configmaps, secrets and maybe other resources.

const (
    // BehaviorUnspecified is an Unspecified behavior; typically treated as a Create.
    BehaviorUnspecified GenerationBehavior = iota
    // BehaviorCreate makes a new resource.
    BehaviorCreate
    // BehaviorReplace replaces a resource.
    BehaviorReplace
    // BehaviorMerge attempts to merge a new resource with an existing resource.
    BehaviorMerge
)

func NewGenerationBehavior Uses

func NewGenerationBehavior(s string) GenerationBehavior

NewGenerationBehavior converts a string to a GenerationBehavior.

func (GenerationBehavior) String Uses

func (b GenerationBehavior) String() string

String converts a GenerationBehavior to a string.

type GeneratorArgs Uses

type GeneratorArgs struct {
    // Namespace for the configmap, optional
    Namespace string `json:"namespace,omitempty" yaml:"namespace,omitempty"`

    // Name - actually the partial name - of the generated resource.
    // The full name ends up being something like
    // NamePrefix + this.Name + hash(content of generated resource).
    Name string `json:"name,omitempty" yaml:"name,omitempty"`

    // Behavior of generated resource, must be one of:
    //   'create': create a new one
    //   'replace': replace the existing one
    //   'merge': merge with the existing one
    Behavior string `json:"behavior,omitempty" yaml:"behavior,omitempty"`

    // DataSources for the generator.
    DataSources `json:",inline,omitempty" yaml:",inline,omitempty"`
}

GeneratorArgs contains arguments common to generators.

type GeneratorOptions Uses

type GeneratorOptions struct {
    // Labels to add to all generated resources.
    Labels map[string]string `json:"labels,omitempty" yaml:"labels,omitempty"`

    // Annotations to add to all generated resources.
    Annotations map[string]string `json:"annotations,omitempty" yaml:"annotations,omitempty"`

    // DisableNameSuffixHash if true disables the default behavior of adding a
    // suffix to the names of generated resources that is a hash of the
    // resource contents.
    DisableNameSuffixHash bool `json:"disableNameSuffixHash,omitempty" yaml:"disableNameSuffixHash,omitempty"`
}

GeneratorOptions modify behavior of all ConfigMap and Secret generators.

type Inventory Uses

type Inventory struct {
    Type      string   `json:"type,omitempty" yaml:"type,omitempty"`
    ConfigMap NameArgs `json:"configMap,omitempty" yaml:"configMap,omitempty"`
}

type KVSource Uses

type KVSource struct {
    PluginType PluginType `json:"pluginType,omitempty" yaml:"pluginType,omitempty"`
    Name       string     `json:"name,omitempty" yaml:"name,omitempty"`
    Args       []string   `json:"args,omitempty" yaml:"args,omitempty"`
}

KVSource represents a KV plugin backend.

type Kustomization Uses

type Kustomization struct {
    TypeMeta `json:",inline" yaml:",inline"`

    // NamePrefix will prefix the names of all resources mentioned in the kustomization
    // file including generated configmaps and secrets.
    NamePrefix string `json:"namePrefix,omitempty" yaml:"namePrefix,omitempty"`

    // NameSuffix will suffix the names of all resources mentioned in the kustomization
    // file including generated configmaps and secrets.
    NameSuffix string `json:"nameSuffix,omitempty" yaml:"nameSuffix,omitempty"`

    // Namespace to add to all objects.
    Namespace string `json:"namespace,omitempty" yaml:"namespace,omitempty"`

    // CommonLabels to add to all objects and selectors.
    CommonLabels map[string]string `json:"commonLabels,omitempty" yaml:"commonLabels,omitempty"`

    // CommonAnnotations to add to all objects.
    CommonAnnotations map[string]string `json:"commonAnnotations,omitempty" yaml:"commonAnnotations,omitempty"`

    // PatchesStrategicMerge specifies the relative path to a file
    // containing a strategic merge patch.  Format documented at
    // https://github.com/kubernetes/community/blob/master/contributors/devel/strategic-merge-patch.md
    // URLs and globs are not supported.
    PatchesStrategicMerge []PatchStrategicMerge `json:"patchesStrategicMerge,omitempty" yaml:"patchesStrategicMerge,omitempty"`

    // JSONPatches is a list of JSONPatch for applying JSON patch.
    // Format documented at https://tools.ietf.org/html/rfc6902
    // and http://jsonpatch.com
    PatchesJson6902 []PatchJson6902 `json:"patchesJson6902,omitempty" yaml:"patchesJson6902,omitempty"`

    // Patches is a list of patches, where each one can be either a
    // Strategic Merge Patch or a JSON patch.
    // Each patch can be applied to multiple target objects.
    Patches []Patch `json:"patches,omitempty" yaml:"patches,omitempty"`

    // Images is a list of (image name, new name, new tag or digest)
    // for changing image names, tags or digests. This can also be achieved with a
    // patch, but this operator is simpler to specify.
    Images []image.Image `json:"images,omitempty" yaml:"images,omitempty"`

    // Replicas is a list of {resourcename, count} that allows for simpler replica
    // specification. This can also be done with a patch.
    Replicas []Replica `json:"replicas,omitempty" yaml:"replicas,omitempty"`

    // Vars allow things modified by kustomize to be injected into a
    // kubernetes object specification. A var is a name (e.g. FOO) associated
    // with a field in a specific resource instance.  The field must
    // contain a value of type string/bool/int/float, and defaults to the name field
    // of the instance.  Any appearance of "$(FOO)" in the object
    // spec will be replaced at kustomize build time, after the final
    // value of the specified field has been determined.
    Vars []Var `json:"vars,omitempty" yaml:"vars,omitempty"`

    // Resources specifies relative paths to files holding YAML representations
    // of kubernetes API objects, or specifcations of other kustomizations
    // via relative paths, absolute paths, or URLs.
    Resources []string `json:"resources,omitempty" yaml:"resources,omitempty"`

    // Crds specifies relative paths to Custom Resource Definition files.
    // This allows custom resources to be recognized as operands, making
    // it possible to add them to the Resources list.
    // CRDs themselves are not modified.
    Crds []string `json:"crds,omitempty" yaml:"crds,omitempty"`

    // Deprecated.
    // Anything that would have been specified here should
    // be specified in the Resources field instead.
    Bases []string `json:"bases,omitempty" yaml:"bases,omitempty"`

    // ConfigMapGenerator is a list of configmaps to generate from
    // local data (one configMap per list item).
    // The resulting resource is a normal operand, subject to
    // name prefixing, patching, etc.  By default, the name of
    // the map will have a suffix hash generated from its contents.
    ConfigMapGenerator []ConfigMapArgs `json:"configMapGenerator,omitempty" yaml:"configMapGenerator,omitempty"`

    // SecretGenerator is a list of secrets to generate from
    // local data (one secret per list item).
    // The resulting resource is a normal operand, subject to
    // name prefixing, patching, etc.  By default, the name of
    // the map will have a suffix hash generated from its contents.
    SecretGenerator []SecretArgs `json:"secretGenerator,omitempty" yaml:"secretGenerator,omitempty"`

    // GeneratorOptions modify behavior of all ConfigMap and Secret generators.
    GeneratorOptions *GeneratorOptions `json:"generatorOptions,omitempty" yaml:"generatorOptions,omitempty"`

    // Configurations is a list of transformer configuration files
    Configurations []string `json:"configurations,omitempty" yaml:"configurations,omitempty"`

    // Generators is a list of files containing custom generators
    Generators []string `json:"generators,omitempty" yaml:"generators,omitempty"`

    // Transformers is a list of files containing transformers
    Transformers []string `json:"transformers,omitempty" yaml:"transformers,omitempty"`

    // Inventory appends an object that contains the record
    // of all other objects, which can be used in apply, prune and delete
    Inventory *Inventory `json:"inventory,omitempty" yaml:"inventory,omitempty"`
}

Kustomization holds the information needed to generate customized k8s api resources.

func (*Kustomization) EnforceFields Uses

func (k *Kustomization) EnforceFields() []string

func (*Kustomization) FixKustomizationPostUnmarshalling Uses

func (k *Kustomization) FixKustomizationPostUnmarshalling()

FixKustomizationPostUnmarshalling fixes things like empty fields that should not be empty, or moving content of deprecated fields to newer fields.

type NameArgs Uses

type NameArgs struct {
    Name      string `json:"name,omitempty" yaml:"name,omitempty"`
    Namespace string `json:"namespace,omitempty" yaml:"namespace,omitempty"`
}

type NoFieldError Uses

type NoFieldError struct {
    Field string
}

func (NoFieldError) Error Uses

func (e NoFieldError) Error() string

type ObjectMeta Uses

type ObjectMeta struct {
    Name      string `json:"name,omitempty" yaml:"name,omitempty"`
    Namespace string `json:"namespace,omitempty" yaml:"namespace,omitempty"`
}

ObjectMeta partially copies apimachinery/pkg/apis/meta/v1.ObjectMeta No need for a direct dependence; the fields are stable.

type Pair Uses

type Pair struct {
    Key   string
    Value string
}

Pair is a key value pair.

type Patch Uses

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"`
}

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 PatchJson6902 Uses

type PatchJson6902 struct {
    // PatchTarget refers to a Kubernetes object that the json patch will be
    // applied to. It must refer to a Kubernetes resource under the
    // purview of this kustomization. PatchTarget should use the
    // raw name of the object (the name specified in its YAML,
    // before addition of a namePrefix and a nameSuffix).
    Target *PatchTarget `json:"target" yaml:"target"`

    // relative file path for a json patch file inside a kustomization
    Path string `json:"path,omitempty" yaml:"path,omitempty"`

    // inline patch string
    Patch string `json:"patch,omitempty" yaml:"patch,omitempty"`
}

PatchJson6902 represents a json patch for an object with format documented https://tools.ietf.org/html/rfc6902.

type PatchStrategicMerge Uses

type PatchStrategicMerge string

PatchStrategicMerge represents a relative path to a stategic merge patch with the format https://github.com/kubernetes/community/blob/master/contributors/devel/strategic-merge-patch.md

type PatchTarget Uses

type PatchTarget struct {
    gvk.Gvk   `json:",inline,omitempty" yaml:",inline,omitempty"`
    Namespace string `json:"namespace,omitempty" yaml:"namespace,omitempty"`
    Name      string `json:"name" yaml:"name"`
}

PatchTarget represents the kubernetes object that the patch is applied to

type PluginConfig Uses

type PluginConfig struct {
    // DirectoryPath is an absolute path to a
    // directory containing kustomize plugins.
    // This directory may contain subdirectories
    // further categorizing plugins.
    DirectoryPath string

    // Enabled is true if plugins are enabled.
    Enabled bool
}

PluginConfig holds plugin configuration.

type PluginType Uses

type PluginType string

func (PluginType) IsUndefined Uses

func (p PluginType) IsUndefined() bool

type Replica Uses

type Replica struct {
    // The name of the resource to change the replica count
    Name string `json:"name,omitempty" yaml:"name,omitempty"`

    // The number of replicas required.
    Count int64 `json:"count,omitempty" yaml:"count,omitempty"`
}

Replica specifies a modification to a replica config. The number of replicas of a resource whose name matches will be set to count. This struct is used by the ReplicaCountTransform, and is meant to supplement the existing patch functionality with a simpler syntax for replica configuration.

type SecretArgs Uses

type SecretArgs struct {
    // GeneratorArgs for the secret.
    GeneratorArgs `json:",inline,omitempty" yaml:",inline,omitempty"`

    // Type of the secret.
    //
    // This is the same field as the secret type field in v1/Secret:
    // It can be "Opaque" (default), or "kubernetes.io/tls".
    //
    // If type is "kubernetes.io/tls", then "literals" or "files" must have exactly two
    // keys: "tls.key" and "tls.crt"
    Type string `json:"type,omitempty" yaml:"type,omitempty"`
}

SecretArgs contains the metadata of how to generate a secret.

type Selector Uses

type Selector struct {
    gvk.Gvk   `json:",inline,omitempty" yaml:",inline,omitempty"`
    Namespace string `json:"namespace,omitempty" yaml:"namespace,omitempty"`
    Name      string `json:"name,omitempty" yaml:"name,omitempty"`

    // AnnotationSelector is a string that follows the label selection expression
    // https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#api
    // It matches with the resource annotations.
    AnnotationSelector string `json:"annotationSelector,omitempty" yaml:"annotationSelector,omitempty"`

    // LabelSelector is a string that follows the label selection expression
    // https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#api
    // It matches with the resource labels.
    LabelSelector string `json:"labelSelector,omitempty" yaml:"labelSelector,omitempty"`
}

Selector specifies a set of resources. Any resource that matches intersection of all conditions is included in this set.

type Target Uses

type Target struct {
    APIVersion string `json:"apiVersion,omitempty" yaml:"apiVersion,omitempty"`
    gvk.Gvk    `json:",inline,omitempty" yaml:",inline,omitempty"`
    Name       string `json:"name" yaml:"name"`
    Namespace  string `json:"namespace,omitempty" yaml:"namespace,omitempty"`
}

Target refers to a kubernetes object by Group, Version, Kind and Name gvk.Gvk contains Group, Version and Kind APIVersion is added to keep the backward compatibility of using ObjectReference for Var.ObjRef

func (*Target) GVK Uses

func (t *Target) GVK() gvk.Gvk

GVK returns the Gvk object in Target

type TypeMeta Uses

type TypeMeta struct {
    Kind       string `json:"kind,omitempty" yaml:"kind,omitempty"`
    APIVersion string `json:"apiVersion,omitempty" yaml:"apiversion,omitempty"`
}

TypeMeta partially copies apimachinery/pkg/apis/meta/v1.TypeMeta No need for a direct dependence; the fields are stable.

type Var Uses

type Var struct {
    // Value of identifier name e.g. FOO used in container args, annotations
    // Appears in pod template as $(FOO)
    Name string `json:"name" yaml:"name"`

    // ObjRef must refer to a Kubernetes resource under the
    // purview of this kustomization. ObjRef should use the
    // raw name of the object (the name specified in its YAML,
    // before addition of a namePrefix and a nameSuffix).
    ObjRef Target `json:"objref" yaml:"objref"`

    // FieldRef refers to the field of the object referred to by
    // ObjRef whose value will be extracted for use in
    // replacing $(FOO).
    // If unspecified, this defaults to fieldPath: $defaultFieldPath
    FieldRef FieldSelector `json:"fieldref,omitempty" yaml:"fieldref,omitempty"`
}

Var represents a variable whose value will be sourced from a field in a Kubernetes object.

func (Var) DeepEqual Uses

func (v Var) DeepEqual(other Var) bool

DeepEqual returns true if var a and b are Equals. Note 1: The objects are unchanged by the VarEqual Note 2: Should be normalize be FieldPath before doing the DeepEqual. spec.a[b] is supposed to be the same as spec.a.b

func (*Var) Defaulting Uses

func (v *Var) Defaulting()

defaulting sets reference to field used by default.

type VarSet Uses

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

VarSet is a set of Vars where no var.Name is repeated.

func NewVarSet Uses

func NewVarSet() VarSet

NewVarSet returns an initialized VarSet

func (*VarSet) Absorb Uses

func (vs *VarSet) Absorb(v Var) error

Absorb absorbs another Var with error on (name,value) collision. Empty fields in incoming Var is defaulted.

func (*VarSet) AbsorbSet Uses

func (vs *VarSet) AbsorbSet(incoming VarSet) error

AbsorbSet absorbs other vars with error on (name,value) collision.

func (*VarSet) AbsorbSlice Uses

func (vs *VarSet) AbsorbSlice(incoming []Var) error

AbsorbSlice absorbs a Var slice with error on (name,value) collision. Empty fields in incoming vars are defaulted.

func (*VarSet) AsSlice Uses

func (vs *VarSet) AsSlice() []Var

AsSlice returns the vars as a slice.

func (*VarSet) Contains Uses

func (vs *VarSet) Contains(other Var) bool

Contains is true if the set has the other var.

func (*VarSet) Copy Uses

func (vs *VarSet) Copy() VarSet

Copy returns a copy of the var set.

func (*VarSet) Get Uses

func (vs *VarSet) Get(name string) *Var

Get returns the var with the given name, else nil.

func (*VarSet) Merge Uses

func (vs *VarSet) Merge(v Var) error

Merge absorbs another Var with error on name collision. Empty fields in incoming Var is defaulted.

func (*VarSet) MergeSet Uses

func (vs *VarSet) MergeSet(incoming VarSet) error

MergeSet absorbs other vars with error on name collision.

func (*VarSet) MergeSlice Uses

func (vs *VarSet) MergeSlice(incoming []Var) error

MergeSlice absorbs a Var slice with error on name collision. Empty fields in incoming vars are defaulted.

Package types imports 10 packages (graph) and is imported by 15 packages. Updated 2019-09-18. Refresh now. Tools for package owners.