автоматическое развертывание новой сборки docker образа - PullRequest
0 голосов
/ 05 мая 2020

Каждую неделю выходит новый выпуск, и все новые docker изображения помещаются в определенную c папку. Моя работа состоит в том, чтобы редактировать развертывания Kubernetes этих компонентов, и, если для этого компонента был выпущен какой-либо новый выпуск, обновить имя образа в развертывании. Я хочу сделать это автоматически с помощью сценария оболочки, поэтому я использую следующую команду для копирования всех docker изображений, которые сохраняются в формате .tar.bz2 с указанным тегом c в другой каталог:

find . -type f -name "*tag*tar.bz2" -mtime -1 -exec cp {} [destination dir] \;

Мои проблемы:

  1. поиск точного имени файла для использования с docker load командой
  2. обновление правильного компонента с помощью тега из .tar.bz2 файла

Я хочу использовать оператор «if», чтобы сделать это, как показано ниже:

#! /bin/sh

 word = myword

 if [ $word = myword ]
 then 
   docker load < 
   kubectl delete svc,deployment myword -n namespace
   kubectl create -f /home/ubuntu/dockerimage/yaml/myword.yaml
fi

word = myword

 if [ $word = myword1 ]
 then 
   docker load < 
   kubectl delete svc,deployment myword1 -n namespace
   kubectl create -f /home/ubuntu/dockerimage/yaml/myword1.yaml
fi 

Этот сценарий должен выполнять docker load из файла .tar.bz2, а в соответствии с тегом - точное изображение должны быть развернуты под конкретный компонент.

1 Ответ

0 голосов
/ 06 мая 2020

Какой бы ни была причина, по которой вы не можете напрямую получать изображения с сервера реестра docker в вашем случае, ваш сценарий можно значительно улучшить.

#! /bin/sh

if [ $# -lt 1 ]; then
    echo "Usage: $0 <name>"
    exit 1
fi

word = $1

docker load < 
kubectl delete svc,deployment ${word} -n namespace
kubectl create -f /home/ubuntu/dockerimage/yaml/${word}.yaml

вы можете добавить некоторые условия, чтобы проверить, существует ли файл /home/ubuntu/dockerimage/yaml/${word}.yaml и существует ли служба и развертывание ${word} до delete и create it.

...