types

package
v1.0.9 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 24, 2018 License: Apache-2.0 Imports: 3 Imported by: 0

Documentation

Overview

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

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type CommandSources added in v1.0.6

type CommandSources struct {
	// Map of keys to commands to generate the values
	Commands map[string]string `json:"commands,omitempty" yaml:"commands,omitempty"`
	// EnvCommand to output lines of key=val pairs to create a secret.
	// i.e. a Docker .env file or a .ini file.
	EnvCommand string `json:"envCommand,omitempty" yaml:"envCommand,omitempty"`
}

CommandSources contains some generic sources for secrets.

type ConfigMapArgs

type ConfigMapArgs struct {
	// Name of the configmap.
	// The full name should be Kustomization.NamePrefix + Configmap.Name +
	// hash(content of configmap).
	Name string `json:"name,omitempty" yaml:"name,omitempty"`

	// behavior of configmap, must be one of create, merge and replace
	// 'create': create a new one;
	// 'replace': replace the existing one;
	// 'merge': merge the existing one.
	Behavior string `json:"behavior,omitempty" yaml:"behavior,omitempty"`

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

ConfigMapArgs contains the metadata of how to generate a configmap.

type DataSources

type DataSources struct {
	// LiteralSources is a list of literal sources.
	// Each literal source should be a key and literal value,
	// e.g. `somekey=somevalue`
	// It will be similar to kubectl create configmap|secret --from-literal
	LiteralSources []string `json:"literals,omitempty" yaml:"literals,omitempty"`

	// FileSources is a list of file sources.
	// Each file source can be specified using its file path, in which case file
	// basename will be used as configmap key, or optionally with a key and file
	// path, in which case the given key will be used.
	// Specifying a directory will iterate each named file in the directory
	// whose basename is a valid configmap key.
	// It will be similar to kubectl create configmap|secret --from-file
	FileSources []string `json:"files,omitempty" yaml:"files,omitempty"`

	// EnvSource format should be a path to a file to read lines of key=val
	// pairs to create a configmap.
	// i.e. a Docker .env file or a .ini file.
	EnvSource string `json:"env,omitempty" yaml:"env,omitempty"`
}

DataSources contains some generic sources for configmaps.

type FieldSelector added in v1.0.9

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

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

type GeneratorOptions added in v1.0.9

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

	// TimeoutSeconds specifies the timeout for commands, if any,
	// used in resource generation.  At time of writing, the default
	// was specified in configmapandsecret.defaultCommandTimeout.
	TimeoutSeconds *int64 `json:"timeoutSeconds,omitempty" yaml:"timeoutSeconds,omitempty"`

	// Shell and arguments to use as a context for commands used in
	// resource generation.  Default at time of writing:  {'sh', '-c'}.
	Shell []string `json:"shell,omitempty" yaml:"shell,omitempty"`

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

GeneratorOptions modify behavior of all ConfigMap and Secret generators.

type ImageTag added in v1.0.5

type ImageTag struct {
	// Name is a tag-less image name.
	Name string `json:"name,omitempty" yaml:"name,omitempty"`

	// NewTag is the value to use in replacing 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"`
}

ImageTag contains an image and a new tag, which will replace the original tag.

type Kustomization

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

	// 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 []patch.StrategicMerge `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.Json6902 `json:"patchesJson6902,omitempty" yaml:"patchesJson6902,omitempty"`

	// ImageTags is a list of (image name, new tag) pairs for simply
	// changing a an image tag.  This can also be achieved with a
	// patch, but this operator is simpler to specify.
	ImageTags []ImageTag `json:"imageTags,omitempty" yaml:"imageTags,omitempty"`

	// Vars allow things modified by kustomize to be injected into a
	// container 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, and defaults to the name field
	// of the instance.  Any appearance of "$(FOO)" in the container
	// 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. URLs and globs not supported.
	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"`

	// Bases are relative paths or github repository URLs specifying a
	// directory containing a kustomization.yaml file.
	// URL format: https://github.com/hashicorp/go-getter#url-format
	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"`

	// Deprecated.
	Patches []string `json:"patches,omitempty" yaml:"patches,omitempty"`
}

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

func (*Kustomization) DealWithDeprecatedFields added in v1.0.9

func (k *Kustomization) DealWithDeprecatedFields()

DealWithDeprecatedFields should be called immediately after loading from storage.

type SecretArgs

type SecretArgs struct {
	// Name of the secret.
	// The full name should be Kustomization.NamePrefix + SecretGenerator.Name +
	// hash(content of secret).
	Name string `json:"name,omitempty" yaml:"name,omitempty"`

	// behavior of secretGenerator, must be one of create, merge and replace
	// 'create': create a new one;
	// 'replace': replace the existing one;
	// 'merge': merge the existing one.
	Behavior string `json:"behavior,omitempty" yaml:"behavior,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 "Commands" must have exactly two
	// keys: "tls.key" and "tls.crt"
	Type string `json:"type,omitempty" yaml:"type,omitempty"`

	// CommandSources for secret.
	CommandSources `json:",inline,omitempty" yaml:",inline,omitempty"`

	// Deprecated.
	// Replaced by GeneratorOptions.TimeoutSeconds
	// TimeoutSeconds specifies the timeout for commands.
	TimeoutSeconds *int64 `json:"timeoutSeconds,omitempty" yaml:"timeoutSeconds,omitempty"`
}

SecretArgs contains the metadata of how to generate a secret.

type Target added in v1.0.9

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

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 added in v1.0.9

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

GVK returns the Gvk object in Target

type TypeMeta added in v1.0.9

type TypeMeta struct {
	// Kind copies apimachinery/pkg/apis/meta/v1.Typemeta.Kind
	Kind string `json:"kind,omitempty" protobuf:"bytes,1,opt,name=kind"`

	// APIVersion copies apimachinery/pkg/apis/meta/v1.Typemeta.APIVersion
	APIVersion string `json:"apiVersion,omitempty" protobuf:"bytes,2,opt,name=apiVersion"`
}

TypeMeta copies apimachinery/pkg/apis/meta/v1.TypeMeta

type Var added in v1.0.2

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).
	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: metadata.name
	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) Defaulting added in v1.0.2

func (v *Var) Defaulting()

Defaulting sets reference to field used by default.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL