package env

import "k8s.io/kubernetes/pkg/kubectl/cmd/set/env"

Package env provides functions to incorporate environment variables into set env.

Index

Examples

Functions

func GetEnvVarRefString

func GetEnvVarRefString(from *corev1.EnvVarSource) string

GetEnvVarRefString returns a text description of whichever field is set within the supplied EnvVarSource argument.

func GetEnvVarRefValue

func GetEnvVarRefValue(kc kubernetes.Interface, ns string, store *ResourceStore, from *corev1.EnvVarSource, obj runtime.Object, c *corev1.Container) (string, error)

GetEnvVarRefValue returns the value referenced by the supplied EnvVarSource given the other supplied information.

func IsEnvironmentArgument

func IsEnvironmentArgument(s string) bool

IsEnvironmentArgument checks whether a string is an environment argument, that is, whether it matches the "anycharacters=anycharacters" pattern.

Example (False)

Code:

{
	test := "returnsfalse"
	fmt.Println(IsEnvironmentArgument(test))
	// Output: false
}

Output:

false
Example (True)

Code:

{
	test := "returns=true"
	fmt.Println(IsEnvironmentArgument(test))
	// Output: true
}

Output:

true

func IsValidEnvironmentArgument

func IsValidEnvironmentArgument(s string) bool

IsValidEnvironmentArgument checks whether a string is a valid environment argument, that is, whether it matches the "wordcharacters=anycharacters" pattern. Word characters can be letters, numbers, and underscores.

Example (False)

Code:

{
	test := "not$word^characters=test"
	fmt.Println(IsValidEnvironmentArgument(test))
	// Output: false
}

Output:

false
Example (True)

Code:

{
	test := "wordcharacters=true"
	fmt.Println(IsValidEnvironmentArgument(test))
	// Output: true
}

Output:

true

func ParseEnv

func ParseEnv(spec []string, defaultReader io.Reader) ([]v1.EnvVar, []string, error)

ParseEnv parses the elements of the first argument looking for environment variables in key=value form and, if one of those values is "-", it also scans the reader. The same environment variable cannot be both modified and removed in the same command.

Example (Bad)

Code:

{
	var r io.Reader
	bad := []string{"This not in the key=value format."}
	fmt.Println(ParseEnv(bad, r))
	// Output:
	// [] [] environment variables must be of the form key=value and can only contain letters, numbers, and underscores
}

Output:

[] [] environment variables must be of the form key=value and can only contain letters, numbers, and underscores
Example (Good)

Code:

{
	r := strings.NewReader("FROM=READER")
	ss := []string{"ENV=VARIABLE", "AND=ANOTHER", "REMOVE-", "-"}
	fmt.Println(ParseEnv(ss, r))
	// Output:
	// [{ENV VARIABLE nil} {AND ANOTHER nil} {FROM READER nil}] [REMOVE] <nil>
}

Output:

[{ENV VARIABLE nil} {AND ANOTHER nil} {FROM READER nil}] [REMOVE] <nil>

func SplitEnvironmentFromResources

func SplitEnvironmentFromResources(args []string) (resources, envArgs []string, ok bool)

SplitEnvironmentFromResources separates resources from environment arguments. Resources must come first. Arguments may have the "DASH-" syntax.

Example

Code:

{
	args := []string{`resource`, "ENV\\=ARG", `ONE\=MORE`, `DASH-`}
	fmt.Println(SplitEnvironmentFromResources(args))
	// Output: [resource] [ENV\=ARG ONE\=MORE DASH-] true
}

Output:

[resource] [ENV\=ARG ONE\=MORE DASH-] true

Types

type ResourceStore

type ResourceStore struct {
	SecretStore    map[string]*corev1.Secret
	ConfigMapStore map[string]*corev1.ConfigMap
}

ResourceStore defines a new resource store data structure.

func NewResourceStore

func NewResourceStore() *ResourceStore

NewResourceStore returns a pointer to a new resource store data structure.

Source Files

doc.go env_parse.go env_resolve.go

Version
v1.14.6
Published
Aug 16, 2019
Platform
js/wasm
Imports
15 packages
Last checked
3 minutes ago

Tools for package owners.