[DO-1431] First PR for prepare repo (!1)

DO-1431

Co-authored-by: denis.patrakeev <denis.patrakeev@avroid.tech>
Reviewed-on: https://git.avroid.tech/K8s/k8s-deploy/pulls/1
This commit is contained in:
Denis Patrakeev
2024-12-18 19:52:42 +03:00
parent 78c3aac851
commit 1a23ae209b
35 changed files with 2323 additions and 2 deletions

View File

@@ -1,3 +1,87 @@
# template-default-repository
# Репозиторий деплоя кластеров K8s
Template with default configuration for Avroid GIT project
Репозиторий в себе содержит все необходимые конфигурации, инструменты и дополнительные механизмы,
необходимые для развёртывания кластеров 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> - директория окружения, название директории совпадает с названием окружения
| | |-- inventory - каталог содержит Ansible inventory к Kubespray для деплоя кластера
| | |
| | |-- kubespray - каталог является Git Submodules на определённый тег 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>
git submodule add ssh://git@git.avroid.tech:2222/Mirrors/kubespray.git kubespray
```
После чего принудительно переключаем Git Submodule на нужный тэг (релиз) Kubespray:
```bash
cd env/<ОКРУЖЕНИЕ_XX>/kubespray
git checkout v2.25.1
cd ../../..
git add env/<ОКРУЖЕНИЕ_XX>/kubespray
```
После чего правим файл `.gitmodules` и явно в нём прописываем необходимый тэг,
который необходимо использовать для этого подмодуля.
Пример записи:
```text
[submodule "env/<ОКРУЖЕНИЕ_ХХ>/kubespray"]
path = env/<ОКРУЖЕНИЕ_ХХ>/kubespray
url = ssh://git@git.avroid.tech:2222/Mirrors/kubespray.git
branch = v2.25.1
```
После чего фиксируем новое состояние:
```bash
git commit -m "[DO-XXXX] Checked out tag v2.25.1 kubespray for env XXX"
```