Использовать секреты kubernetes в приложении nodejs?

Это может обрабатывать любое число длины, исключения для ... # 11 ... ... 13 и отрицательные целые числа.

def ith(i):return(('th'*(10<(abs(i)%100)<14))+['st','nd','rd',*['th']*7][(abs(i)-1)%10])[0:2]

Я предлагаю использовать iith () в качестве имени, чтобы избежать переопределения встроенный ord ().

# test routine
for i in range(-200,200):
    print(i,ith(i))

Примечание: проверено с помощью Python 3.6; Функция abs () была доступна без явного включения математического модуля.

1
задан dr_barto 13 July 2018 в 10:22
поделиться

1 ответ

Ваш файл kubernetes.yaml указывает, какая переменная среды хранит ваш секрет, чтобы он был доступен приложениям в этом пространстве имен.

Используя kubectl secrets cli interface , вы можете загрузить свой секрет .

kubectl create secret generic -n node-app test-mongodb-secret --from-literal=username=a-username --from-literal=password=a-secret-password

(пространство имен arg -n node-app является необязательным, иначе оно будет использоваться для пространства имен по умолчанию)

После запуска этой команды вы можете проверить свою панель управления кубом, чтобы увидеть что секрет был сохранен

Затем из вашего приложения-узла обратитесь к переменной окружения process.env.SECRET_PASSWORD

Возможно, в вашем случае секретные файлы создаются в неправильном пространстве имен, поэтому почему undefined

EDIT 1

Ваш отступ для container.env кажется неправильным

apiVersion: v1
kind: Pod
metadata:
  name: secret-env-pod
spec:
  containers:
  - name: mycontainer
    image: redis
    env:
      - name: SECRET_USERNAME
        valueFrom:
          secretKeyRef:
            name: mysecret
            key: username
      - name: SECRET_PASSWORD
        valueFrom:
          secretKeyRef:
            name: mysecret
            key: password
  restartPolicy: Never
2
ответ дан Tobey 17 August 2018 в 13:17
поделиться
  • 1
    Я создал секреты, и он был сохранен в моей панели gcp kubernetes. и я объявил также в файле kubernetes.yaml как env. когда я пытаюсь получить доступ к имени пользователя через свой код, он бросает неопределенный. `` `var myvalue = process.env.SECRET_USERNAME; console.log (MyValue); `` ` – Shree Prakash 13 July 2018 в 09:40
  • 2
    Я думаю, что вижу проблему. Отметьте свои env vars в контейнере в вашем файле yaml. см. мой отредактированный ответ – Tobey 13 July 2018 в 10:33
  • 3
    i фиксированный отступ в файле yaml, теперь он дает мне пустые данные для имени пользователя и пароля. можете ли вы предоставить мне любую ссылку, если это возможно. – Shree Prakash 13 July 2018 в 12:04
  • 4
    Это хороший знак, который я думаю, по крайней мере, он читает секрет test-mongodb-secret. Возможно, секрет был загружен неправильно. Удалите секрет и повторно добавьте его с помощью команды cli (просто для проверки), которую я дал выше. Соответствующая ссылка приведена в моем ответе выше – Tobey 13 July 2018 в 12:28
  • 5
    я удалил старый и снова добавил его, но он пуст. выше ссылки, которую я уже прочитал, к сожалению, у нее нет ни одного примера использования секретов в любом приложении (узел, java или elixir.). – Shree Prakash 13 July 2018 в 12:55
Другие вопросы по тегам:

Похожие вопросы: