DO-1431 Co-authored-by: denis.patrakeev <denis.patrakeev@avroid.tech> Reviewed-on: https://git.avroid.tech/K8s/k8s-deploy/pulls/3
108 lines
4.2 KiB
Markdown
108 lines
4.2 KiB
Markdown
# Репозиторий деплоя кластеров K8s
|
||
|
||
Репозиторий в себе содержит все необходимые конфигурации, инструменты и дополнительные механизмы,
|
||
необходимые для развёртывания кластеров K8s в различных окружениях.
|
||
|
||
## Получение репозитория
|
||
```bash
|
||
git clone ssh://git@git.avroid.tech:2222/K8s/k8s-deploy.git
|
||
cd k8s-deploy
|
||
git submodule update --init --recursive
|
||
```
|
||
|
||
## Структура каталогов
|
||
```text
|
||
.
|
||
|-- env - директория содержащая подкаталоги соответствующие различным окружениям
|
||
| |-- <ОКРУЖЕНИЕ_01> - директория окружения, название директории совпадает с названием окружения
|
||
| | |-- <КЛАСТЕР_01> - директория кластера, название директории совпадает с именем кластера
|
||
| | |-- inventory - каталог содержит Ansible inventory к Kubespray для деплоя кластера
|
||
| | |
|
||
| | |-- kubespray - каталог является Git Submodules на определённый тег Kubespray
|
||
| | |
|
||
| | |-- patches - кастомные доработки для отдельных сервисов кластера
|
||
| | | |-- <ИМЯ_СЕРВИСА_01> - директория, содержащая файлы патчей (без подкаталогов)
|
||
| | | | |-- file_XX.yaml - файл с кастомными доработками
|
||
| | | | |-- ...
|
||
| | | |
|
||
| | | |-- ...
|
||
| | | |
|
||
| | | |-- <ИМЯ_СЕРВИСА_XX>
|
||
| | | |-- file_XX.yaml
|
||
| | | |-- ...
|
||
| | |
|
||
| | |-- README.md - файл содержит подробное описание конфигурации и порядок деплоя
|
||
| |
|
||
| |-- ...
|
||
| |
|
||
| |-- <ОКРУЖЕНИЕ_XX>
|
||
| |-- <КЛАСТЕР_01>
|
||
| | |-- inventory
|
||
| | |-- kubespray
|
||
| | |-- patches
|
||
| | | |-- <ИМЯ_СЕРВИСА_01>
|
||
| | | | |-- file_XX.yaml
|
||
| | | | |-- ...
|
||
| | | |
|
||
| | | |-- ...
|
||
| | | |
|
||
| | | |-- <ИМЯ_СЕРВИСА_XX>
|
||
| | | |-- file_XX.yaml
|
||
| | | |-- ...
|
||
| | |
|
||
| | |-- README.md
|
||
| |
|
||
| |-- ...
|
||
| |
|
||
| |-- <КЛАСТЕР_XX>
|
||
| |-- inventory
|
||
| |-- kubespray
|
||
| |-- patches
|
||
| | |-- <ИМЯ_СЕРВИСА_01>
|
||
| | | |-- file_XX.yaml
|
||
| | | |-- ...
|
||
| | |
|
||
| | |-- ...
|
||
| | |
|
||
| | |-- <ИМЯ_СЕРВИСА_XX>
|
||
| | |-- file_XX.yaml
|
||
| | |-- ...
|
||
| |
|
||
| |-- README.md
|
||
|
|
||
|-- .gitignore
|
||
|-- README.md
|
||
```
|
||
|
||
## Порядок создания Git Submodule kubespray в каталоге окружения
|
||
|
||
Сначала создаём Git Submodule:
|
||
```bash
|
||
cd env/<ОКРУЖЕНИЕ_XX>/<КЛАСТЕР_XX>
|
||
git submodule add ssh://git@git.avroid.tech:2222/Mirrors/kubespray.git kubespray
|
||
```
|
||
|
||
После чего принудительно переключаем Git Submodule на нужный тэг (релиз) Kubespray:
|
||
```bash
|
||
cd env/<ОКРУЖЕНИЕ_XX>/<КЛАСТЕР_XX>/kubespray
|
||
git checkout v2.26.0
|
||
cd ../../../..
|
||
git add env/<ОКРУЖЕНИЕ_XX>/<КЛАСТЕР_XX>/kubespray
|
||
```
|
||
|
||
После чего правим файл `.gitmodules` и явно в нём прописываем необходимый тэг,
|
||
который необходимо использовать для этого подмодуля.
|
||
|
||
Пример записи:
|
||
```text
|
||
[submodule "env/<ОКРУЖЕНИЕ_ХХ>/<КЛАСТЕР_XX>/kubespray"]
|
||
path = env/<ОКРУЖЕНИЕ_ХХ>/<КЛАСТЕР_XX>/kubespray
|
||
url = ssh://git@git.avroid.tech:2222/Mirrors/kubespray.git
|
||
branch = v2.26.0
|
||
```
|
||
|
||
После чего фиксируем новое состояние:
|
||
```bash
|
||
git commit -m "[DO-XXXX] Checked out tag v2.26.0 kubespray for env XXX"
|
||
```
|