Идея: один небольшой репозиторий, который показывает твой путь «от коммита до продоподобного деплоя».
Структура может быть примерно такой:
infra-weekend/
├── app/ # код приложения (простой сервис / API / сайт)
│ ├── Dockerfile
│ └── ...
├── k8s/ # манифесты или Helm‑чарт
│ ├── deployment.yaml
│ ├── service.yaml
│ └── ingress.yaml
├── infra/ # Terraform/OpenTofu
│ ├── main.tf
│ ├── variables.tf
│ └── outputs.tf
├── ci/ # конфиги CI/CD
│ └── github-actions.yml / .gitlab-ci.yml
└── README.md # подробное описание проекта
Рекомендуемый скелет:
# Название проекта
Короткое описание: что это за сервис и что демонстрирует репозиторий (например: «микросервис + CI/CD + деплой в Kubernetes через Helm и Terraform»).
## Архитектура
- какие компоненты есть (app, БД, кеш, ingress)
- как они связаны между собой
- схематичная картинка (можно сделать в draw.io и приложить PNG)
## Как запустить локально
1. Требования (Docker, docker compose, kubectl и т.д.)
2. Команды для локального запуска (`docker compose up` и т.п.)
3. URL/порт, по которому будет доступно приложение.
## Инфраструктура (infra/)
- что создаёт Terraform (VM, кластер, сеть и т.п.)
- какие переменные нужно задать (без секретов)
- команды:
- `terraform init`
- `terraform plan`
- `terraform apply`
## Kubernetes / Helm (k8s/)
- как применить манифесты или чарт
- как переключить окружение (dev/stage/prod), если используется
## CI/CD (ci/)
- какие джобы есть (build, test, deploy)
- при каком событии что запускается (push, PR, tag)
- как происходит деплой (через kubectl, Helm, GitOps и т.д.)
## Что можно улучшить
Короткий список того, что ты бы сделал, если бы было больше времени:
- доработать мониторинг
- добавить алерты
- вынести секреты в secret managerЭтот шаблон не обязателен к буквальному повторению. Главное - чтобы по репозиторию было видно:
- как ты думаешь про архитектуру
- как собираешь и деплоишь
- как документируешь.