Documentation ¶
Overview ¶
Package env provides functions to incorporate environment variables into kubectl commands.
Index ¶
- func Env(key string, defaultValue string) string
- func GetEnv(key string) (string, bool)
- func GetEnvVarRefString(from *v1.EnvVarSource) string
- func GetEnvVarRefValue(kc kubernetes.Interface, ns string, store *ResourceStore, ...) (string, error)
- func IsEnvironmentArgument(s string) bool
- func IsValidEnvironmentArgument(s string) bool
- func ParseEnv(spec []string, defaultReader io.Reader) ([]v1.EnvVar, []string, error)
- func SplitEnvironmentFromResources(args []string) (resources, envArgs []string, ok bool)
- type ResourceStore
Examples ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func Env ¶
Env returns an environment variable if not nil, or a default value.
Example (DefaultValue) ¶
fmt.Println(Env("TESTENVVAR", "default"))
Output: default
Example (VariableExists) ¶
os.Setenv("TESTENVVAR", "test value") defer os.Unsetenv("TESTENVVAR") fmt.Println(Env("TESTENVVAR", "default"))
Output: test value
func GetEnv ¶
GetEnv returns an environment value if not nil, and an ok boolean.
Example (VariableDoesNotExist) ¶
fmt.Println(GetEnv("THISVARDOESNOTEXIST"))
Output: false
Example (VariableExists) ¶
os.Setenv("THISVAREXISTS", "value") defer os.Unsetenv("THISVAREXISTS") fmt.Println(GetEnv("THISVAREXISTS"))
Output: value true
func GetEnvVarRefString ¶
func GetEnvVarRefString(from *v1.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 *v1.EnvVarSource, obj runtime.Object, c *v1.Container) (string, error)
GetEnvVarRefValue returns the value referenced by the supplied EnvVarSource given the other supplied information.
func IsEnvironmentArgument ¶
IsEnvironmentArgument checks whether a string is an environment argument, that is, whether it matches the "anycharacters=anycharacters" pattern.
Example (False) ¶
test := "returnsfalse" fmt.Println(IsEnvironmentArgument(test))
Output: false
Example (True) ¶
test := "returns=true" fmt.Println(IsEnvironmentArgument(test))
Output: true
func IsValidEnvironmentArgument ¶
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) ¶
test := "not$word^characters=test" fmt.Println(IsValidEnvironmentArgument(test))
Output: false
Example (True) ¶
test := "wordcharacters=true" fmt.Println(IsValidEnvironmentArgument(test))
Output: true
func ParseEnv ¶
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) ¶
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
Example (Good) ¶
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>
func SplitEnvironmentFromResources ¶
SplitEnvironmentFromResources separates resources from environment arguments. Resources must come first. Arguments may have the "DASH-" syntax.
Example ¶
args := []string{`resource`, "ENV\\=ARG", `ONE\=MORE`, `DASH-`} fmt.Println(SplitEnvironmentFromResources(args))
Output: [resource] [ENV\=ARG ONE\=MORE DASH-] true
Types ¶
type ResourceStore ¶
type ResourceStore struct { SecretStore map[string]*v1.Secret ConfigMapStore map[string]*v1.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.