Рубрика «ненормальное программирование». Мне понадобилось передать сложную команду для выполнения на поде. Оболочка shell дробила ее там, где не должна и я решил воспользоваться утилитой expect. После выполнения этого короткого сценария происходит выход в первоначальный сеанс.
#!/usr/bin/expect -f spawn kubectl exec -it asb-0 -- /bin/sh expect "Defaulted container \"app\" out of: app, tools" send -- "cat /dev/null | tee \$(find /opt/company/apache/log/ -type f -exec ls -rt1 {} + | paste -sd \" \" -) && exit\r" interact |
Команда очищает содержимое лог файлов для того, чтоб автоматизация проверяла только те сообщения, которые появились за время выполнения теста.