2024-12-18 19:52:42 +03:00

Репозиторий деплоя кластеров K8s

Репозиторий в себе содержит все необходимые конфигурации, инструменты и дополнительные механизмы, необходимые для развёртывания кластеров K8s в различных окружениях.

Получение репозитория

git clone ssh://git@git.avroid.tech:2222/K8s/k8s-deploy.git
cd k8s-deploy
git submodule update --init --recursive

Структура каталогов

.
|-- 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:

cd env/<ОКРУЖЕНИЕ_XX>
git submodule add ssh://git@git.avroid.tech:2222/Mirrors/kubespray.git kubespray

После чего принудительно переключаем Git Submodule на нужный тэг (релиз) Kubespray:

cd env/<ОКРУЖЕНИЕ_XX>/kubespray
git checkout v2.25.1
cd ../../..
git add env/<ОКРУЖЕНИЕ_XX>/kubespray

После чего правим файл .gitmodules и явно в нём прописываем необходимый тэг, который необходимо использовать для этого подмодуля.

Пример записи:

[submodule "env/<ОКРУЖЕНИЕ_ХХ>/kubespray"]
	path = env/<ОКРУЖЕНИЕ_ХХ>/kubespray
	url = ssh://git@git.avroid.tech:2222/Mirrors/kubespray.git
	branch = v2.25.1

После чего фиксируем новое состояние:

git commit -m "[DO-XXXX] Checked out tag v2.25.1 kubespray for env XXX"
Description
No description provided
Readme 83 KiB