Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

History

91 Commits

Repository files navigation

ERP/1: Continuous Delivery

Політики інфраструктури і адміністрування "ERP/1: Підприємство" (5K LOC) для K8S. Тестуються на Windows, Linux і Mac через Docker Desktop і Kind Cluster Type для максимальної відтворюваності в продуктовому середовищі.

Статті

  • М. Сохацький, The Kind of Kubernetes, 2026
    The Kind of Kubernetes: Using Docker Desktop for Reproducible Kubernetes Clusters
  • М. Сохацький, Архітектура ЦОД, 2026
    Настанови системного архiтектора для проектування кластерiв ЦОД
  • М. Сохацький, SRE Handbook, 2026
    Настанови системного адмiнiстратора для розгортання, спостереження i обслуговування кластерiв ЦОД

Розповсюдження

Постійна адреса твору:

$ git clone git@github.com:erpuno/cd

Загальні файли

Загальні файли інфраструктури K8S відповідають за цементування фундаменту ERP/1. Вони запускаються першими перед чистими або пакетованими компонентами через kubectl apply.

  • namespaces.yaml
  • networkpolicy.yaml
  • rbac.yaml
  • storage-class.yaml

Файли компонент

Далі для кожного компоненту запусткається цикл по його файлам.

forkindin pvc.yaml deployment.yaml service.yaml hpa.yaml ingress.yaml;doif [ -f"$service_path/$kind" ];then kubectl apply -f "$service_path/$kind";fidone

Перелік компонент секретний для кожного підприємства, тут надається типова конфігурація. Кожен компонент може мати наступні файли, цей перелік можна доповнювати.

  • deployment.yaml
  • service.yaml
  • hpa.yaml
  • pvc.yaml
  • ingress.yaml
  • values.yaml

Пакетування

Хоча Helm чарти були придумані не для цього, їх механізм зручно використовувати для обліку стану пакетів в ЦОД та кількості їх деплоїв для юридичних рослідувань. Для сього система пакетів Helm використовується в реверсивному режимі, не з неї генеруються пакети, а з пакетів генерується уніфікований чарт, в якому зібрані усі компонент які потрібно розгортати. Це елімінує необхідність репозиторія пакетів Helm і зберігає всі транзакційні властивості пакетного менеджера, які потрібні на продакшині. Для цього використовується Ruby скрипт values.rb. В каталозі templates/ імена файли повторюють номенклатуру файлів компонент.

  • Chart.yaml
  • values.yaml
  • templates/
  • deploy.sh — Helm розгортання
  • path.sh — Додавання прав для Helm тулчейну в будь який кластер
  • cleanup.sh — видалення пакетів і кластера
  • validate.sh — ваділація згенерованого уніфікованого ERP/1 чарта
  • values.rb – скрипт генерації уніфікованого ERP/1 чарта

Резервне копіювання

Для зберігання персистентний станів подів використовується універсальний механізм.

  • backup.sh — Копіювати всі PVC та STS
  • restore.sh — Відновити PVC та STS репліки з перезапуском подів
  • view.sh — Переглядач резервних копій

Настанови адміністратора з резервного копіювання читайте в BACKUP.md.

Структура

├── helm/
│ ├── templates/
│ │ ├── deployments.yaml
│ │ ├── hpa.yaml
│ │ ├── namespaces.yaml
│ │ └── services.yaml
│ ├── cleanup.sh
│ ├── deploy.sh
│ ├── patch.sh
│ ├── validate.sh
│ ├── Chart.yaml
│ └── values.yaml
├── lib/
│ ├── erp-ai/
│ ├── erp-apps/
│ ├── erp-infra/
│ ├── erp-security/
│ ├── erp-services/
│ └── erp-telemetry/
├── share/
│ ├── namespaces.yaml
│ ├── networkpolicy.yaml
│ ├── rbac.yaml
│ └── storage-class.yaml
├── kind.sh
├── kind.pdf
├── deployment.pdf
├── sre.pdf
├── cleant.sh
├── delete.sh
├── deploy.sh
├── prereq.sh
└── values.rn

Автор

  • Максим Сохацький

About

ERP/1: Continuous Delivery

Resources

Stars

0 stars

Watchers

0 watching

Forks

Contributors

Languages