Цей проект 🌐 призначений для автоматизації управління інфраструктурою ⚙️ та розгортання додатків 📱 у хмарному ☁️ середовищі AWS. Завдяки Terraform 🌍, Kubernetes 🐳 і ArgoCD 🚀 забезпечується ефективна робота кластерів 🖥️ EKS та їх автоматизоване обслуговування. Основна мета проекту — спрощення процесів розгортання, тестування 🧪 та управління додатками, що робить DevOps-процеси більш надійними та масштабованими.
├── 📘 README.md
├── 📁 app
│ ├── 🐳 Dockerfile
│ ├── 📜 app.py
│ ├── 📂 k8s
│ │ ├── 📁 dev
│ │ │ ├── 📄 deployment.yaml
│ │ │ ├── 📄 ingress.yaml
│ │ │ ├── 📄 service.yaml
│ │ │ └── 📄 step-final-app-dev.yaml
│ │ └── 📁 prod
│ │ ├── 📄 deployment.yaml
│ │ ├── 📄 ingress.yaml
│ │ ├── 📄 service.yaml
│ │ └── 📄 step-final-app-prod.yaml
│ └── 📄 requirements.txt
└── 📂 terraform
├── 📄 bucket.tf
├── 📂 eks
│ ├── 📄 acm.tf
│ ├── 📄 argocd.tf
│ ├── 📄 backend.tf
│ ├── 📄 eks-cluster.tf
│ ├── 📄 eks-worker-nodes.tf
│ ├── 📄 external-dns.tf
│ ├── 📄 iam.tf
│ ├── 📄 ingress_controller.tf
│ ├── 📄 metrics-server.tf
│ ├── 📄 provider.tf
│ ├── 📄 sg.tf
│ ├── 📄 terraform.tfvars
│ └── 📄 variables.tf
├── 📄 outputs.tf
└── 📄 variables.tf
app/
: Код додатку, його конфігурації та Kubernetes-маніфести.terraform/
: Конфігурації для управління інфраструктурою ☁️ AWS.
- Встановіть AWS CLI.
- Запустіть команду для налаштування облікових даних:
aws configure
- Введіть свої облікові дані 🔑 та регіон 🌍 (
eu-central-1
).
- Введіть свої облікові дані 🔑 та регіон 🌍 (
- Ініціалізуйте Terraform 🌍:
terraform init -backend-config "region=eu-central-1" -backend-config "profile=danit"
- Запустіть конфігурації для створення ресурсів:
terraform apply -var="iam_profile=danit"
- Оновіть kubeconfig для доступу до кластеру 🖥️:
aws eks --region eu-central-1 update-kubeconfig --name danit
- Змініть пароль 🔑 адміністратора:
kubectl -n argocd exec -it deployment/argocd-server -- argocd admin initial-password --password <new-password>
- Перейдіть до каталогу середовища розробки 🛠️:
cd app/k8s/dev
- Запустіть команду для розгортання:
kubectl apply -f step-final-app-dev.yaml
- Перейдіть до каталогу продакшн 🏢:
cd app/k8s/prod
- Виконайте розгортання маніфестів:
kubectl apply -f step-final-app-prod.yaml
- Синхронізуйте додаток через ArgoCD 🚀:
argocd app sync step-final-app-prod
- Підтвердіть успішну синхронізацію та розгортання через ArgoCD:
argocd app get step-final-app-prod
- Створіть нову гілку для розробки 🌱:
git checkout -b dev
- Збережіть зміни ✏️ та відправте їх у віддалений репозиторій 🌐:
git add . git commit -m "Опис змін" git push origin dev
- Після тестування об'єднайте гілки
dev
іmain
🛠️:git checkout main git merge dev
Додано розгортання kube-prometheus-stack
через Helm для моніторингу кластеру Kubernetes.
Проект демонструє ефективний підхід до автоматизації DevOps 🔧. Використання Terraform 📜 для управління інфраструктурою, Kubernetes 🐳 для оркестрації контейнерів та CI/CD ⚙️ забезпечує швидкість ⏩, надійність 🛡️ і масштабованість 📈 для сучасних розробників 👨💻.