Это может обрабатывать любое число длины, исключения для ... # 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 () была доступна без явного включения математического модуля.
Ваш файл 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
test-mongodb-secret
. Возможно, секрет был загружен неправильно. Удалите секрет и повторно добавьте его с помощью команды cli (просто для проверки), которую я дал выше. Соответствующая ссылка приведена в моем ответе выше – Tobey 13 July 2018 в 12:28