Bu proje, K3s üzerinde Helm chart kullanarak Python uygulaması ve PostgreSQL veritabanı dağıtımını otomatikleştiren bir CI/CD altyapısı sunar.
-
backend/: Python uygulaması dosyaları
app.py: Ana uygulama koduDockerfile: Uygulamanın konteyner imajı için yapılandırmarequirements.txt: Python bağımlılıkları
-
deployment/: Ana Helm chart ve şablonlar
Chart.yaml,values.yaml: Helm chart tanımı ve yapılandırma değerleritemplates/: Kubernetes manifest şablonları (deployment, service, hpa, ingress vb.)charts/: Bağımlı chart paketleri
-
infrastructure/: Ek Helm chartlar
- gitlab-runner/: CI/CD işlemleri için GitLab Runner chartı ve şablonları
- postgres/: PostgreSQL veritabanı için Helm chart ve şablonlar
-
kubeconfig/: Kubernetes erişim dosyası (
admin.conf) -
Ana dizin dosyaları:
.gitlab-ci.yml: CI/CD pipeline tanımı.gitignore: Git için hariç tutulacak dosyalarREADME.md: Proje açıklaması
- K3s (hafif Kubernetes)
- Helm (Kubernetes paket yöneticisi)
- GitLab Runner (CI/CD)
- Python
- Docker
- PostgreSQL
- K3s ortamını kurun.
- Helm ile bağımlılıkları yükleyin:
helm dependency update deployment/
- Değer dosyasını (
values.yaml) ihtiyaca göre düzenleyin. - PostgreSQL'i dağıtmak için:
helm install postgres infrastructure/postgres/ -n python-app --create-namespace
- Uygulamayı dağıtmak için:
helm install python-app deployment/ -n python-app \ --set image.tag=latest \ --set image.repository=your-registry/python-app
CI/CD süreçleri .gitlab-ci.yml ile tanımlanır. Otomatik test, imaj oluşturma ve dağıtım adımlarını içerir. GitLab Runner chartı ile pipeline işlemleri Kubernetes üzerinde çalıştırılır.
Katkı sağlamak için projeyi fork’layıp PR gönderebilirsiniz.