Documentation ¶
Overview ¶
Package types holds the definition of the kustomization struct and supporting structs. It's the k8s API conformant object that describes a set of generation and transformation operations to create and/or modify k8s resources. A kustomization file is a serialization of this struct.
Index ¶
- Constants
- func CopyMap(in map[string]string) map[string]string
- func FixKustomizationPreUnmarshalling(data []byte) ([]byte, error)
- func IsErrOnlyBuiltinPluginsAllowed(err error) bool
- func IsErrUnableToFind(err error) bool
- func NewErrOnlyBuiltinPluginsAllowed(n string) *errOnlyBuiltinPluginsAllowed
- func NewErrUnableToFind(w string, a []Pair) *errUnableToFind
- type BuiltinPluginLoadingOptions
- type ConfigMapArgs
- type FieldSelector
- type FieldSpec
- type FnPluginLoadingOptions
- type FsSlice
- type GenArgs
- type GenerationBehavior
- type GeneratorArgs
- type GeneratorOptions
- type HelmChartArgs
- type Image
- type Inventory
- type Kustomization
- type KvPairSources
- type LoadRestrictions
- type NameArgs
- type ObjectMeta
- type Pair
- type Patch
- type PatchStrategicMerge
- type PluginConfig
- type PluginRestrictions
- type ReplSource
- type ReplTarget
- type Replacement
- type Replica
- type SecretArgs
- type Selector
- type SelectorRegex
- type Target
- type TypeMeta
- type Var
- type VarSet
- func (vs *VarSet) Absorb(v Var) error
- func (vs *VarSet) AbsorbSet(incoming VarSet) error
- func (vs *VarSet) AbsorbSlice(incoming []Var) error
- func (vs *VarSet) AsSlice() []Var
- func (vs *VarSet) Contains(other Var) bool
- func (vs *VarSet) Copy() VarSet
- func (vs *VarSet) Get(name string) *Var
- func (vs *VarSet) Merge(v Var) error
- func (vs *VarSet) MergeSet(incoming VarSet) error
- func (vs *VarSet) MergeSlice(incoming []Var) error
Constants ¶
const ( KustomizationVersion = "kustomize.config.k8s.io/v1beta1" KustomizationKind = "Kustomization" ComponentVersion = "kustomize.config.k8s.io/v1alpha1" ComponentKind = "Component" MetadataNamespacePath = "metadata/namespace" )
Variables ¶
This section is empty.
Functions ¶
func FixKustomizationPreUnmarshalling ¶
FixKustomizationPreUnmarshalling modifies the raw data before marshalling - e.g. changes old field names to new field names.
func IsErrUnableToFind ¶
func NewErrOnlyBuiltinPluginsAllowed ¶
func NewErrOnlyBuiltinPluginsAllowed(n string) *errOnlyBuiltinPluginsAllowed
func NewErrUnableToFind ¶
Types ¶
type BuiltinPluginLoadingOptions ¶
type BuiltinPluginLoadingOptions int
BuiltinPluginLoadingOptions distinguish ways in which builtin plugins are used.
const ( BploUndefined BuiltinPluginLoadingOptions = iota // Desired in production use for performance. BploUseStaticallyLinked // Desired in testing and development cycles where it's undesirable // to generate static code. BploLoadFromFileSys )
func (BuiltinPluginLoadingOptions) String ¶
func (i BuiltinPluginLoadingOptions) String() string
type ConfigMapArgs ¶
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 FieldSelector ¶
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 FieldSpec ¶
type FieldSpec struct { resid.Gvk `json:",inline,omitempty" yaml:",inline,omitempty"` Path string `json:"path,omitempty" yaml:"path,omitempty"` CreateIfNotPresent bool `json:"create,omitempty" yaml:"create,omitempty"` }
FieldSpec completely specifies a kustomizable field in an unstructured representation of a k8s API object. It helps define the operands of transformations.
For example, a directive to add a common label to objects will need to know that a 'Deployment' object (in API group 'apps', any version) can have labels at field path 'spec/template/metadata/labels', and further that it is OK (or not OK) to add that field path to the object if the field path doesn't exist already.
This would look like
{ group: apps kind: Deployment path: spec/template/metadata/labels create: true }
type FnPluginLoadingOptions ¶
type FnPluginLoadingOptions struct { // Allow to run executables EnableExec bool // Allow to run starlark EnableStar bool // Allow container access to network Network bool NetworkName string // list of mounts Mounts []string // list of env variables to pass to fn Env []string }
FnPluginLoadingOptions set way functions-based pluing are restricted
type FsSlice ¶
type FsSlice []FieldSpec
func (FsSlice) MergeAll ¶
MergeAll merges the argument into this, returning the result. Items already present are ignored. Items that conflict (primary key matches, but remain data differs) result in an error.
type GenArgs ¶
type GenArgs struct {
// contains filtered or unexported fields
}
GenArgs is a facade over GeneratorArgs, exposing a few readonly properties.
func NewGenArgs ¶
func NewGenArgs(args *GeneratorArgs) *GenArgs
NewGenArgs returns a new instance of GenArgs.
func (*GenArgs) Behavior ¶
func (g *GenArgs) Behavior() GenerationBehavior
Behavior returns Behavior field of GeneratorArgs
func (*GenArgs) ShouldAddHashSuffixToName ¶
ShouldAddHashSuffixToName returns true if a resource content hash should be appended to the name of the resource.
type GenerationBehavior ¶
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 ¶
func NewGenerationBehavior(s string) GenerationBehavior
NewGenerationBehavior converts a string to a GenerationBehavior.
func (GenerationBehavior) String ¶
func (b GenerationBehavior) String() string
String converts a GenerationBehavior to a string.
type GeneratorArgs ¶
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"` // KvPairSources for the generator. KvPairSources `json:",inline,omitempty" yaml:",inline,omitempty"` // Local overrides to global generatorOptions field. Options *GeneratorOptions `json:"options,omitempty" yaml:"options,omitempty"` }
GeneratorArgs contains arguments common to ConfigMap and Secret generators.
type GeneratorOptions ¶
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.
func MergeGlobalOptionsIntoLocal ¶
func MergeGlobalOptionsIntoLocal( localOpts *GeneratorOptions, globalOpts *GeneratorOptions) *GeneratorOptions
MergeGlobalOptionsIntoLocal merges two instances of GeneratorOptions. Values in the first 'local' argument cannot be overridden by the second 'global' argument, except in the case of booleans.
With booleans, there's no way to distinguish an 'intentional' false from 'default' false. So the rule is, if the global value of the value of a boolean is true, i.e. disable, it trumps the local value. If the global value is false, then the local value is respected. Bottom line: a local false cannot override a global true.
boolean fields are always a bad idea; should always use enums instead.
type HelmChartArgs ¶
type HelmChartArgs struct { ChartName string `json:"chartName,omitempty" yaml:"chartName,omitempty"` ChartVersion string `json:"chartVersion,omitempty" yaml:"chartVersion,omitempty"` ChartRepoURL string `json:"chartRepoUrl,omitempty" yaml:"chartRepoUrl,omitempty"` ChartHome string `json:"chartHome,omitempty" yaml:"chartHome,omitempty"` // Use chartRelease to keep compatible with old exec plugin ChartRepoName string `json:"chartRelease,omitempty" yaml:"chartRelease,omitempty"` HelmBin string `json:"helmBin,omitempty" yaml:"helmBin,omitempty"` HelmHome string `json:"helmHome,omitempty" yaml:"helmHome,omitempty"` Values string `json:"values,omitempty" yaml:"values,omitempty"` ValuesLocal map[string]interface{} `json:"valuesLocal,omitempty" yaml:"valuesLocal,omitempty"` ValuesMerge string `json:"valuesMerge,omitempty" yaml:"valuesMerge,omitempty"` ReleaseName string `json:"releaseName,omitempty" yaml:"releaseName,omitempty"` ReleaseNamespace string `json:"releaseNamespace,omitempty" yaml:"releaseNamespace,omitempty"` ExtraArgs []string `json:"extraArgs,omitempty" yaml:"extraArgs,omitempty"` }
HelmChartArgs contains the metadata of how to generate a secret.
type Image ¶
type Image struct { // Name is a tag-less image name. Name string `json:"name,omitempty" yaml:"name,omitempty"` // NewName is the value used to replace the original name. NewName string `json:"newName,omitempty" yaml:"newName,omitempty"` // NewTag is the value used to replace the original tag. NewTag string `json:"newTag,omitempty" yaml:"newTag,omitempty"` // Digest is the value used to replace the original image tag. // If digest is present NewTag value is ignored. Digest string `json:"digest,omitempty" yaml:"digest,omitempty"` }
Image contains an image name, a new name, a new tag or digest, which will replace the original name and tag.
type Inventory ¶
type Inventory struct { Type string `json:"type,omitempty" yaml:"type,omitempty"` ConfigMap NameArgs `json:"configMap,omitempty" yaml:"configMap,omitempty"` }
Inventory records all objects touched in a build operation.
type Kustomization ¶
type Kustomization struct { TypeMeta `json:",inline" yaml:",inline"` // MetaData is a pointer to avoid marshalling empty struct MetaData *ObjectMeta `json:"metadata,omitempty" yaml:"metadata,omitempty"` // OpenAPI contains information about what kubernetes schema to use. OpenAPI map[string]string `json:"openapi,omitempty" yaml:"openapi,omitempty"` // 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 []Patch `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 `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 specifications of other kustomizations // via relative paths, absolute paths, or URLs. Resources []string `json:"resources,omitempty" yaml:"resources,omitempty"` // Components specifies relative paths to specifications of other Components // via relative paths, absolute paths, or URLs. Components []string `json:"components,omitempty" yaml:"components,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"` // HelmChartInflationGenerator is a list of helm chart configurations. // The resulting resource is a normal operand rendered from // a remote chart by `helm template` HelmChartInflationGenerator []HelmChartArgs `json:"helmChartInflationGenerator,omitempty" yaml:"helmChartInflationGenerator,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"` // Validators is a list of files containing validators Validators []string `json:"validators,omitempty" yaml:"validators,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 ¶
func (k *Kustomization) EnforceFields() []string
func (*Kustomization) FixKustomizationPostUnmarshalling ¶
func (k *Kustomization) FixKustomizationPostUnmarshalling()
FixKustomizationPostUnmarshalling fixes things like empty fields that should not be empty, or moving content of deprecated fields to newer fields.
func (*Kustomization) FixKustomizationPreMarshalling ¶
func (k *Kustomization) FixKustomizationPreMarshalling()
FixKustomizationPreMarshalling fixes things that should occur after the kustomization file has been processed.
func (*Kustomization) Unmarshal ¶
func (k *Kustomization) Unmarshal(y []byte) error
Unmarshal replace k with the content in YAML input y
type KvPairSources ¶
type KvPairSources 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"` }
KvPairSources defines places to obtain key value pairs.
type LoadRestrictions ¶
type LoadRestrictions int
Restrictions on what things can be referred to in a kustomization file.
const ( LoadRestrictionsUnknown LoadRestrictions = iota // Files referenced by a kustomization file must be in // or under the directory holding the kustomization // file itself. LoadRestrictionsRootOnly // The kustomization file may specify absolute or // relative paths to patch or resources files outside // its own tree. LoadRestrictionsNone )
func (LoadRestrictions) String ¶
func (i LoadRestrictions) String() string
type NameArgs ¶
type NameArgs struct { Name string `json:"name,omitempty" yaml:"name,omitempty"` Namespace string `json:"namespace,omitempty" yaml:"namespace,omitempty"` }
NameArgs holds both namespace and name.
type ObjectMeta ¶
type ObjectMeta struct { Name string `json:"name,omitempty" yaml:"name,omitempty"` Namespace string `json:"namespace,omitempty" yaml:"namespace,omitempty"` Labels map[string]string `json:"labels,omitempty" yaml:"labels,omitempty"` Annotations map[string]string `json:"annotations,omitempty" yaml:"annotations,omitempty"` }
ObjectMeta partially copies apimachinery/pkg/apis/meta/v1.ObjectMeta No need for a direct dependence; the fields are stable.
type Patch ¶
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 PatchStrategicMerge ¶
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/sig-api-machinery/strategic-merge-patch.md
type PluginConfig ¶
type PluginConfig struct { // AbsPluginHome is the home of kustomize plugins. // Kustomize plugin configuration files are k8s-style objects // containing the fields 'apiVersion' and 'kind', e.g. // apiVersion: apps/v1 // kind: Deployment // kustomize reads plugin configuration data from a file path // specified in the 'generators:' or 'transformers:' field of a // kustomization file. kustomize must then use this data to both // locate the plugin and configure it. // Every kustomize plugin (its code, its tests, its supporting data // files, etc.) must be housed in its own directory at // ${AbsPluginHome}/${pluginApiVersion}/LOWERCASE(${pluginKind}) // where // - ${AbsPluginHome} is an absolute path, defined below. // - ${pluginApiVersion} is taken from the plugin config file. // - ${pluginKind} is taken from the plugin config file. // The value of AbsPluginHome can be any absolute path. AbsPluginHome string // PluginRestrictions distinguishes plugin restrictions. PluginRestrictions PluginRestrictions // BpLoadingOptions distinguishes builtin plugin behaviors. BpLoadingOptions BuiltinPluginLoadingOptions // FnpLoadingOptions sets the way function-based plugin behaviors. FnpLoadingOptions FnPluginLoadingOptions }
PluginConfig holds plugin configuration.
type PluginRestrictions ¶
type PluginRestrictions int
Some plugin classes
- builtin: plugins defined in the kustomize repo. May be freely used and re-configured.
- local: plugins that aren't builtin but are locally defined (presumably by the user), meaning the kustomization refers to them via a relative file path, not a URL.
- remote: require a build-time download to obtain. Unadvised, unless one controls the serving site.
const ( PluginRestrictionsUnknown PluginRestrictions = iota // Non-builtin plugins completely disabled. PluginRestrictionsBuiltinsOnly // No restrictions, do whatever you want. PluginRestrictionsNone )
func (PluginRestrictions) String ¶
func (i PluginRestrictions) String() string
type ReplSource ¶
type ReplSource struct { ObjRef *Target `json:"objref,omitempty" yaml:"objref,omitempty"` FieldRef string `json:"fieldref,omitempty" yaml:"fiedldref,omitempty"` Value string `json:"value,omitempty" yaml:"value,omitempty"` }
ReplSource defines where a substitution is from It can from two different kinds of sources
- from a field of one resource
- from a string
type ReplTarget ¶
type ReplTarget struct { ObjRef *Selector `json:"objref,omitempty" yaml:"objref,omitempty"` FieldRefs []string `json:"fieldrefs,omitempty" yaml:"fieldrefs,omitempty"` }
ReplTarget defines where a substitution is to.
type Replacement ¶
type Replacement struct { Source *ReplSource `json:"source" yaml:"source"` Target *ReplTarget `json:"target" yaml:"target"` }
Replacement defines how to perform a substitution where it is from and where it is to.
type Replica ¶
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" yaml:"count"` }
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 ¶
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 ¶
type Selector struct { resid.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 SelectorRegex ¶
type SelectorRegex struct {
// contains filtered or unexported fields
}
SelectorRegex is a Selector with regex in GVK Any resource that matches intersection of all conditions is included in this set.
func NewSelectorRegex ¶
func NewSelectorRegex(s *Selector) (*SelectorRegex, error)
NewSelectorRegex returns a pointer to a new SelectorRegex which uses the same condition as s.
func (*SelectorRegex) MatchGvk ¶
func (s *SelectorRegex) MatchGvk(gvk resid.Gvk) bool
MatchGvk return true if gvk can be matched by s.
func (*SelectorRegex) MatchName ¶
func (s *SelectorRegex) MatchName(n string) bool
MatchName returns true if the name in selector is empty or the n can be matches by the name in selector
func (*SelectorRegex) MatchNamespace ¶
func (s *SelectorRegex) MatchNamespace(ns string) bool
MatchNamespace returns true if the namespace in selector is empty or the ns can be matches by the namespace in selector
type Target ¶
type Target struct { APIVersion string `json:"apiVersion,omitempty" yaml:"apiVersion,omitempty"` resid.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
type TypeMeta ¶
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 ¶
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 ¶
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 ¶
func (v *Var) Defaulting()
defaulting sets reference to field used by default.
type VarSet ¶
type VarSet struct {
// contains filtered or unexported fields
}
VarSet is a set of Vars where no var.Name is repeated.
func (*VarSet) Absorb ¶
Absorb absorbs another Var with error on (name,value) collision. Empty fields in incoming Var is defaulted.
func (*VarSet) AbsorbSlice ¶
AbsorbSlice absorbs a Var slice with error on (name,value) collision. Empty fields in incoming vars are defaulted.
func (*VarSet) Merge ¶
Merge absorbs another Var with error on name collision. Empty fields in incoming Var is defaulted.
func (*VarSet) MergeSlice ¶
MergeSlice absorbs a Var slice with error on name collision. Empty fields in incoming vars are defaulted.
Source Files ¶
- builtinpluginloadingoptions_string.go
- configmapargs.go
- doc.go
- erronlybuiltinpluginsallowed.go
- errunabletofind.go
- fieldspec.go
- fix.go
- genargs.go
- generationbehavior.go
- generatorargs.go
- generatoroptions.go
- helmchartargs.go
- image.go
- inventory.go
- kustomization.go
- kvpairsources.go
- loadrestrictions.go
- loadrestrictions_string.go
- objectmeta.go
- pair.go
- patch.go
- patchstrategicmerge.go
- pluginconfig.go
- pluginrestrictions.go
- pluginrestrictions_string.go
- replacement.go
- replica.go
- secretargs.go
- selector.go
- typemeta.go
- var.go