У меня есть простой bash скрипт, который нужно выполнить на postStart, но я получаю ошибку, которая совсем не информативна:
Exec lifecycle hook ([/bin/bash -c sleep 30;/xcom/scripts/sidecar_postStart.sh]) for Container "perfcibuddy" in Pod "xcomapp-597fb859c5-6r4g2_ns(412852d1-5eea-11ea-b641-0a31ddb9a71e)" failed - error: command '/bin/bash -c sleep 120;/xcom/scripts/sidecar_postStart.sh' exited with 7: , message: ""
Спит, потому что я получил подсказка о том, что может быть условие гонки, что сценарий не существует в то время, когда Kubernetes вызывает его.
И если я войду в контейнер, я могу без проблем выполнить сценарий из оболочки.
Сценарий просто выполняет простой вызов curl (IP-адрес явно очищен):
# ----------------------------------------------------------------------------
# Script to perform postStart lifecycle hook triggered actions in container
# ----------------------------------------------------------------------------
# -------------------------------------------[ get token from Kiam server ]---
role_name=$( curl -s http://1.1.1.1/latest/meta-data/iam/security-credentials/ )
curl -s http://1.1.1.1/latest/meta-data/iam/security-credentials/${role_name}
Я пробовал множество форм для установки команды в шаблоне (все в кавычках, с && вместо; ), это текущий:
exec:
command: [/bin/bash, -c, "sleep 120;/xcom/scripts/sidecar_postStart.sh"]
В чем здесь может быть проблема?