Files
k8s-deploy/README.md
Denis Patrakeev eaccaa1042 [DO-1431] Final config PROD k8s (!3)
DO-1431

Co-authored-by: denis.patrakeev <denis.patrakeev@avroid.tech>
Reviewed-on: https://git.avroid.tech/K8s/k8s-deploy/pulls/3
2024-12-27 19:50:22 +03:00

108 lines
4.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Репозиторий деплоя кластеров 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"
```