You can set, unset or list environment variables in pods or pod
templates using the
oc env
command. This command can also be used on BuildConfig
objects.
{product-title} provides the oc env
command to set or unset environment
variables for objects that have a pod template, such as replication controllers
or deployment configurations. It can also list environment variables in pods or
any object that has a pod template. This command can also be used on
BuildConfig
objects.
The oc env
command uses the following general syntax:
$ oc env <object-selection> <environment-variables> [options]
There are several ways to express <object-selection>
.
Syntax | Description | Example |
---|---|---|
|
Selects <object-name> of type <object-type>. |
|
|
Selects <object-name> of type <object-type>. |
|
|
Selects objects of type <object-type> that match <object-label-selector>. |
|
|
Selects all objects of type <object-type>. |
|
|
Look in <ref> — a filename, directory name, or URL — for the definition of the object to edit. |
|
Supported common options for set, unset or list environment variables:
Option | Description |
---|---|
|
Select containers by |
|
Display the changed objects in |
|
Output the changed objects with |
|
Proceed only if |
To set environment variables in the pod templates:
$ oc env <object-selection> KEY_1=VAL_1 ... KEY_N=VAL_N [<set-env-options>] [<common-options>]
Set environment options:
Option | Description |
---|---|
|
Set given key value pairs of environment variables. |
|
Confirm updating existing environment variables. |
In the following example, both commands modify environment variable STORAGE
in the deployment config registry
.
The first adds, with value /data
.
The second updates, with value /opt
.
$ oc env dc/registry STORAGE=/data $ oc env dc/registry --overwrite STORAGE=/opt
The following example finds environment variables in the current shell whose names begin with RAILS_
and adds them to the replication controller r1
on the server:
$ env | grep RAILS_ | oc env rc/r1 -e -
The following example does not modify the replication controller defined in file rc.json
.
Instead, it writes a YAML object with updated environment STORAGE=/local
to new file rc.yaml
.
$ oc env -f rc.json STORAGE=/opt -o yaml > rc.yaml
Variable Name |
---|
|
|
Example Usage
The service KUBERNETES which exposes TCP port 53 and has been allocated cluster IP address 10.0.0.11 produces the following environment variables:
KUBERNETES_SERVICE_PORT=53 MYSQL_DATABASE=root KUBERNETES_PORT_53_TCP=tcp://10.0.0.11:53 KUBERNETES_SERVICE_HOST=10.0.0.11
Note
|
Use the |
To unset environment variables in the pod templates:
$ oc env <object-selection> KEY_1- ... KEY_N- [<common-options>]
Important
|
The trailing hyphen ( |
This example removes environment variables ENV1
and ENV2
from deployment config d1
:
$ oc env dc/d1 ENV1- ENV2-
This removes environment variable ENV
from all replication controllers:
$ oc env rc --all ENV-
This removes environment variable ENV
from container c1
for replication controller r1
:
$ oc env rc r1 --containers='c1' ENV-