# Подготовка кластера ## 1. Создаем ns и RBAC Для этого запускаем скрипт `setup.sh`, перед запуском `<Ваш номер логина> меняем на свой номер студента!!`. ```bash bash ~/slurm/practice/14.ci-cd/1.1.prepare_cluster/setup.sh s<Ваш номер логина>-xpaste production ``` В конце своего выполнения скрипт выдаст нам токен, который необходимо сохранить. ## 2. Создание variables в gitlab Для доступа из Gitlab в Kubernetes нам необходимо добавить в Gitlab переменную, в которой будет содержаться токен с предыдущего шага. * Переходим в Gitlab Для этого открываем в браузере свой форк xpaste. `<Ваш номер логина> меняем на свой номер студента`: ```bash https://gitlab.slurm.io/s<Ваш номер логина>/xpaste ``` * Добавляем переменную Для этого в левом меню находим `Settings -> CI/CD -> Variables` и нажимаем Expand. Жмем кнопку `Add Variable` и в поле `Key` вводим имя переменной: ```bash K8S_CI_TOKEN ``` В поле `Value` вводим скопированный токен из вывода команды setup.sh (пункт 1) и нажимаем `Add Variable`. ## 3. Создаем token для доступа в registry Для этого переходим в раздел `Settings -> Repository -> Deploy tokens` и нажимаем Expand. В поле `Name` вводим ```bash k8s-pull-token ``` 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 ``` ## 6. Создание секрета для приложения Создаем секрет, из которого при деплое будут взяты значения для переменных окружения, таких как доступы к БД и секретный ключ. Вносим нужные данные в скрипт xpaste_secret.sh и запускаем его: ```bash vim xpaste_secret.sh ./xpaste_secret.sh ``` `secret-key-base xxxxxxxxxxxxx` это не плэйсхолдер. Можно так и оставить.