Скрипт, который проверяет, что я внедряю в правильный кластер 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
Другие вопросы по тегам