Reviewed-on: https://git.avroid.tech/K8s/k8s-deploy/pulls/14 Reviewed-by: Denis Patrakeev <denis.patrakeev@avroid.team> Co-authored-by: Dmitrij Prokov <dmitrij.prokov@avroid.team> Co-committed-by: Dmitrij Prokov <dmitrij.prokov@avroid.team>
Репозиторий деплоя кластеров K8s
Репозиторий в себе содержит все необходимые конфигурации, инструменты и дополнительные механизмы, необходимые для развёртывания кластеров K8s в различных окружениях.
Получение репозитория
git clone ssh://git@git.avroid.tech:2222/K8s/k8s-deploy.git
cd k8s-deploy
git submodule update --init --recursive
Структура каталогов
.
|-- 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:
cd env/<ОКРУЖЕНИЕ_XX>/<КЛАСТЕР_XX>
git submodule add ssh://git@git.avroid.tech:2222/Mirrors/kubespray.git kubespray
После чего принудительно переключаем Git Submodule на нужный тэг (релиз) Kubespray:
cd env/<ОКРУЖЕНИЕ_XX>/<КЛАСТЕР_XX>/kubespray
git checkout v2.26.0
cd ../../../..
git add env/<ОКРУЖЕНИЕ_XX>/<КЛАСТЕР_XX>/kubespray
После чего правим файл .gitmodules и явно в нём прописываем необходимый тэг,
который необходимо использовать для этого подмодуля.
Пример записи:
[submodule "env/<ОКРУЖЕНИЕ_ХХ>/<КЛАСТЕР_XX>/kubespray"]
path = env/<ОКРУЖЕНИЕ_ХХ>/<КЛАСТЕР_XX>/kubespray
url = ssh://git@git.avroid.tech:2222/Mirrors/kubespray.git
branch = v2.26.0
После чего фиксируем новое состояние:
git commit -m "[DO-XXXX] Checked out tag v2.26.0 kubespray for env XXX"
Description