Скрипт, который проверяет, что я внедряю в правильный кластер kubernetes
У меня есть скрипт, который развертывает мое приложение в моем кластере kubernetes. Однако, если мой текущий контекст kubectl указывает на неправильный кластер, я могу легко закончить развертывание моего приложения в кластере, на котором я не собирался его развертывать. Каков хороший способ проверить (изнутри скрипта), что я развертываю на нужном кластере?
Я на самом деле не хочу жестко задавать конкретное имя контекста kubectl, поскольку разные разработчики в моей команде имеют разные соглашения о том, как называть свои контексты kubectl.
Вместо этого я хотел бы что-то более похожее if $(kubectl get cluster-name) != "expected-clsuter-name" then error
,
2 ответа
#!/bin/bash
if [ $(kubectl config current-context) != "your-cluster-name" ]
then
echo "Do some error!!!"
return
fi
echo "Do some kubectl command"
Выше сценария получить имя кластера и сопоставить с your-desired-cluster
название. Если несоответствие, то дайте ошибку. В противном случае выполните команду desire kubectl.
Для каждого запуска кластера kubectl cluster-info
один раз, чтобы увидеть, что такое IP/ хост для master - он должен быть стабильным для кластера и не меняться в зависимости от имени в контексте kubectl (который разработчики могут устанавливать по-другому). Затем запишите это в сценарии с export MASTERA=<HOST/IP>
где это мастер для кластера А. Тогда скрипт может сделать:
kubectl cluster-info | grep -q $MASTERA && echo 'on MASTERA'
Или используйте if-else:
if kubectl cluster-info | grep -q $MASTERA; then
echo 'on $MASTERA'
else
exit 1
fi