Список всех переменных среды для пода

У меня есть веб-приложение на OpenShift v3 (все в одном), использующее образ Wildfly Builder. Кроме того, я создал службу с именем xyz, чтобы указать на внешний хост + IP. Что-то вроде этого:

        "kind": "Service",
        "apiVersion": "v1",
        "metadata": { "name": "xyz" },
        "spec": {
            "ports": [
                {   "port": 61616,
                    "protocol": "TCP",
                    "targetPort": 61616
                }
            ],
            "selector": {}
        }

У меня также есть конечная точка, указывающая наружу, но это не относится к этому вопросу.

При развертывании моя программа может получить доступ к переменной среды с именем XYZ_PORT=tcp://172.30.192.186:61616.

Однако я не могу понять, как увидеть все значения всех таких переменных либо через веб-консоль, либо с помощью CLI. Используя веб-консоль, я не вижу, как она внедряется в YAML.

Я попробовал некоторые из параметров oc env, но ни один из них не перечислил то, что я хочу.


person Darius X.    schedule 10.11.2016    source источник


Ответы (1)


Допустим, вы развертываете кухонную раковину, тогда приведенный ниже интерфейс командной строки должен перечислить все переменные среды:

oc env bc/kitchensink --list
person Anil    schedule 10.11.2016
comment
Возможно, вы имели в виду oc set env dc/kitchensink --list. Выполнение этого на bc показывает переменные среды времени сборки. Это также не будет отображать все переменные среды, автоматически установленные Docker, а это то, на что ссылается рассматриваемая переменная среды. Нужно будет запустить env в работающем модуле как что-то вроде oc exec pod/kitchensink-a1b23 env, чтобы увидеть все, что было установлено в модуле. - person Graham Dumpleton; 11.11.2016
comment
@GrahamDumpleton: Спасибо. Не могли бы вы преобразовать это в ответ для потомков :). Но одно но: я не использовал команду точно так, как указано. Там написано, что косая черта в имени запрещена. Вместо этого я использовал oc exec podname -c containername env - person Darius X.; 11.11.2016
comment
Правильно, oc exec принимает только имя модуля, поэтому pod/ не нужно. Набирал по памяти. :-) - person Graham Dumpleton; 11.11.2016
comment
Почему для просмотра переменных используется set вместо get? - person user1063287; 19.11.2018
comment
Для справки, следуя предложению Грэма, мне пришлось использовать это для просмотра всех envars для MongoDB: oc exec mongodb-20-xxxx env - person user1063287; 19.11.2018
comment
Да, странно со стороны set, но это работает. Спасибо. - person JGlass; 22.06.2021