Описание проекта: Этот репозиторий содержит инфраструктуру как код (Infrastructure as Code) и конфигурации приложения, необходимые для автоматического развертывания в Kubernetes с использованием GitOps подхода через ArgoCD и Helm чартов.
Параметр | Значение |
---|---|
Тип проекта | GitOps |
Оркестратор | Kubernetes |
Инструмент GitOps | ArgoCD |
Метод управления манифестами | Helm |
Цель | Автоматическое развертывание и синхронизация состояния кластера из Git репозитория |
my-app/ # Пример Helm-чарта ├── Chart.yaml # Описание чарта ├── values.yaml # Конфигурационные параметры └── templates/ # Шаблоны Kubernetes манифестов ├── deployment.yaml └── service.yaml
curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64 sudo install minikube-linux-amd64 /usr/local/bin/minikube minikube start --driver=docker
kubectl create namespace argocd kubectl apply -n argocd -f https://raw.githubusercontent.com/argoproj/argo-cd/v2.8.4/manifests/install.yaml kubectl port-forward svc/argocd-server -n argocd 8080:https
argocd login localhost:8080 --insecure # Используйте логин "admin" и пароль из: kubectl -n argocd get secret argocd-initial-admin-secret -o jsonpath="{.data.password}" | base64 -d
argocd app create my-app \ --repo https://github.com/<ваш-логин>/gitops-demo-repo.git \ --path charts/my-app \ --dest-server https://kubernetes.default.svc \ --dest-namespace default \ --helm-chart my-app \ --auto-prune \ --sync-policy automated
https://github.com/<ваш-логин>/gitops-demo-repo.git
charts/my-app
https://kubernetes.default.svc
default
Любые изменения в репозитории будут автоматически применены в кластере:
git add . git commit -m "Update config" git push origin main
ArgoCD обнаружит изменения и выполнит синхронизацию.
Если состояние кластера будет изменено вручную, например:
kubectl scale deployment my-app --replicas=5
ArgoCD восстановит исходное состояние, соответствующее описанию в репозитории.
argocd account update-password
ssh-keygen -t rsa -b 4096 -C "your_email@example.com"Добавьте публичный ключ (
~/.ssh/id_rsa.pub
) в ArgoCD → Settings → Repositories
argocd app list argocd app get my-app argocd app sync my-app argocd app history my-app kubectl logs -n argocd
Ошибка | Причина | Решение |
---|---|---|
repository not accessible | Нет доступа к репозиторию | Проверьте права и тип репозитория |
comparison error | Конфликт между кластером и Git | Выполните синхронизацию или проверьте манифесты |
invalid chart path | Неверный путь до Helm чарта | Убедитесь, что структура корректна и есть Chart.yaml |
🪪 dmplastun
📧 dmitrij.plastun@gmail.com