# Подготовка кластера ## 1. Создаем SA для helm Для этого запускаем скрипт `setup.sh`. ```bash bash setup.sh xpaste production ``` В конце своего выполнения скрипт выдаст нам токен, который необходимо сохранить. ## 2. Создание variables в gitlab Для доступа из Gitlab в Kubernetes нам необходимо добавить в Gitlab переменную, в которой будет содержаться токен с предыдущего шага. * Переходим в Gitlab Для этого открываем в браузере свой форк xpaste. * Добавляем переменную Для этого в левом меню находим `Settings -> CI/CD -> Variables` и нажимаем Expand. Жмем кнопку `Add Variable` и в поле `Key` вводим имя переменной: ```bash K8S_PROD_CI_TOKEN ``` В поле `Value` вводим скопированный токен из вывода команды setup.sh (пункт 1) и нажимаем `Add Variable`. ## 3. Создаем token для доступа в registry Для этого переходим в раздел `Settings -> Repository -> Deploy tokens` и нажимаем Expand. В поле `Name` вводим ```bash k8s-pull-token-prod ``` Cтавим галочку рядом с `read_registry`. Все остальные поля оставляем пустыми. Нажимаем `Create deploy token`. ```!!НЕ ЗАКРЫВАЕМ ОКНО БРАУЗЕРА!!``` ## 4. Создаем secret в kubernetes Создаем secret, который будет использоваться для image pull. Для этого возвращаемся на первый master и выполняем команду: Вносим нужные данные в скрипт `docker_pull_secret.sh` и запускаем его: Соответственно подставляя на место `<>` нужные параметры, которые получили на `шаге 3`. ```bash vim docker_pull_secret.sh ./docker_pull_secret.sh ``` ## 5. Создание секрета для приложения Создаем секрет, из которого при деплое будут взяты значения для переменных окружения, таких как доступы к БД и секретный ключ. Вносим нужные данные в скрипт xpaste_secret.sh (в данном случае ничего не меняем) и запускаем его: ```bash vim xpaste_secret.sh ./xpaste_secret.sh ``` `secret-key-base xxxxxxxxxxxxx` это не плэйсхолдер. Можно так и оставить.