# Подготовка кластера

## 1. 

Для этого запускаем скрипт `setup.sh`.

```bash
bash setup.sh xpaste development
```

В конце своего выполнения скрипт выдаст нам токен, который необходимо сохранить.

## 2. Создание variables в gitlab

Для доступа из Gitlab в Kubernetes нам необходимо добавить в Gitlab переменную, в которой будет содержаться токен с предыдущего шага.

* Переходим в Gitlab

Для этого открываем в браузере свой форк xpaste.

* Добавляем переменную

Для этого в левом меню находим `Settings -> CI/CD -> Variables` и нажимаем Expand. Жмем кнопку `Add Variable` и в поле `Key` вводим имя переменной:

```bash
K8S_DEV_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
```

## 5. Создание секрета для приложения

Создаем секрет, из которого при деплое будут взяты значения для переменных окружения, таких как доступы к БД и секретный ключ.
Вносим нужные данные в скрипт xpaste_secret.sh (в данном случае ничего не меняем) и запускаем его:

```bash
vim xpaste_secret.sh
./xpaste_secret.sh
```
`secret-key-base xxxxxxxxxxxxx` это не плэйсхолдер. Можно так и оставить.
