Я использую секрет кубернетов как переменную окружения (http://kubernetes.io/docs/user-guide/secrets/#using-secrets-as-environment-variables).Как я могу запустить команду cron с переменными окружения, заданными с помощью kubernetes secret
Я проверить VARS ли окр правильно установлен
kubectl exec -it my_pod bash
1.
echo $RAILS_ENV #=> staging
2.
bin/rails c;
puts ENV['RAILS_ENV'] #=> staging
Он отлично работает для моего приложения рельсы и команды Баш, но не работает при выполнении процесса cron.
Я прочитал сообщение, чтобы понять процесс cron (например, https://unix.stackexchange.com/questions/27289/how-can-i-run-a-cron-command-with-existing-environmental-variables) и знаю, что перед отправкой команды cron мне следует указать .profile или .bashrc.
$ crontab -l
* * * * * . $HOME/.profile; /bin/bash -l -c 'echo rails_env=$RAILS_ENV >> /tmp/cron_test.log'
* * * * * . $HOME/.bashrc; /bin/bash -l -c 'echo rails_env=$RAILS_ENV >> /tmp/cron_test.log'
но и не работает для меня''
результат
rails_env=
Любая помощь будет оценен по достоинству!
===
[обновление: добавить kubernetes YAML конфигурации]
Обе переменные окружения присваивать kubernetes конфигурации и kubernetes секрет можно прочитать в Баш и рельсы приложения, но не работает в хрон обработать.
deployment.yaml
spec:
containers:
- name: my_rails
...
command:
- bash
args:
- /tmp/run_cron.sh
...
env:
- name: RAILS_ENV
value: staging
- name: MYSQL_PASSWORD
valueFrom:
secretKeyRef:
name: rails-secret
key: MYSQL_PASSWORD
secret.yaml
apiVersion: v1
kind: Secret
metadata:
name: rails-secret
type: Opaque
data:
MYSQL_PASSWORD: ENCODED_PASSWORD
В каком файле вы устанавливаете 'RAILS_ENV' в 'staging'? – Brian
@Brian Я использую kubernetes секрет как переменную среды, но я не понимаю деталей о том, как кубернеты реализуют. – gaga5lala
Что означает «RAILS_ENV» в отношении «секретности кубернетов»? – Brian