Altyapı#
Master#
Konsolu, API'yi ve tüm kayıtları barındıran control plane. EJO Cloud'da her müşterinin kendi master'ı ve kendi veritabanı vardır ve <alt-alan-adı>.ejocloud.com adresinde çalışır. Master sizin network'ünüze bağlanmaz; agent'lar master'a bağlanır.
Organizasyon#
EJO Cloud'a kaydolurken verdiğiniz organizasyon, kendi EJO'nuzdur. Kullanıcılar, environment'lar, pipeline'lar ve ayarlar organizasyona aittir. Organizasyon ayarları Ayarlar > Organizasyon altındadır.
Environment#
Workload'ların çalıştığı deploy hedefi. İki tip vardır:
| Tip | Ne zaman |
|---|---|
K8S |
Bir Kubernetes cluster'ına (veya içindeki bir namespace'e) deploy ediyorsanız. |
DOCKER |
Bir Docker host'u üzerinde container çalıştırıyorsanız. |
Environment kendi başına iş yapmaz; işleri içine kaydolmuş agent'lar yürütür. Onay zorunluluğu, freeze pencereleri, supply chain policy'si, deploy verification ve preview ayarları environment üzerinde tutulur. Bkz. Environment'lar.
Agent#
Environment içinde çalışan ve işleri yürüten süreç. Bağlantıyı master'a doğru kendisi açar; bu sayede NAT ve firewall arkasında, dışarıya port açmadan çalışır. Durumları:
| Durum | Anlamı |
|---|---|
PENDING |
Kaydoldu, henüz ilk heartbeat'i gelmedi. |
ONLINE |
Düzenli heartbeat gönderiyor, iş alabilir. |
OFFLINE |
Heartbeat süresini kaçırdı. Yeniden bağlanınca kendiliğinden ONLINE olur. |
Bkz. Agent kurulumu.
Registration token#
Agent'ın ilk açılışta master'a kaydolmak için kullandığı tek kullanımlık token. Varsayılan olarak 1 saat geçerlidir. Kayıttan sonra agent kendi kalıcı token'ıyla çalışır.
Teslimat#
Repository binding#
Bir SCM repo'sunu (GitHub, GitLab veya Azure DevOps) bir pipeline'a ve bir environment'a bağlayan kayıt. Hangi olayların run başlatacağı (commit, pull request, tag, schedule), merge gate'leri, preview ayarları ve promote hedefi binding üzerinde tutulur. Bkz. Trigger'lar ve binding'ler.
Pipeline ve pipeline versiyonu#
Pipeline, step'lerden oluşan iş akışıdır. Konsolda düzenlenebilir ya da repo'da ejo.yaml veya .ejo içinde tutulabilir. Pipeline yayınlandığında değişmez bir versiyon oluşur ve binding'ler belirli bir versiyona sabitlenir; yeni bir versiyon yayınlamak, binding'iniz yükseltilene kadar çalışan run'ları değiştirmez.
Step#
Pipeline'ın tek bir iş birimi: GIT_CLONE, DOCKER_BUILD, KANIKO_BUILD, TRIVY_SCAN, COSIGN_SIGN, K8S_DEPLOY, SHELL gibi. Step'ler birbirine depends_on ile bağlanır, matrix ile çoğaltılabilir, if ve paths ile koşullu çalıştırılabilir. Bkz. Pipeline tanımı.
Step pack#
Yeniden kullanılabilir, versiyonlu step'lerden oluşan paket. Her step bir container image'ında çalışır ve pipeline'dan uses: <pack>/<step>@<versiyon> ile çağrılır. Bkz. Step pack'ler.
Deployment (run)#
Bir pipeline'ın tek bir run'ı; EJO'da iş birimi budur. Durumları:
| Durum | Anlamı |
|---|---|
PENDING_APPROVAL |
Environment onay istiyor; onaylanmayı bekliyor. |
PENDING |
Bir agent'ın işi üstlenmesini bekliyor. |
WAITING |
Bir koşulu bekliyor (örneğin merge gate'te PR pipeline'ının sonucu). |
RUNNING |
Bir agent step'leri çalıştırıyor. |
SUCCEEDED |
Tüm step'ler başarılı. |
FAILED |
En az bir step fail oldu. |
CANCELLED |
İptal edildi. |
SUPERSEDED |
Aynı branch veya PR için daha yeni bir push geldi ve bu run'ın yerini aldı. |
Bir run'ı başlatan olay (Event) şunlardan biridir: commit, pull_request, tag, manual, schedule, promote, rollback, teardown.
Promote ve rollback#
Promote, başarılı bir run'ın commit'ini (Kubernetes'te kaydedilmiş image digest'ini, yeniden build etmeden) başka bir environment'a taşır. Rollback, environment'ı daha önce başarıyla çalışmış bir sürüme döndürür. Deploy verification fail olursa EJO otomatik rollback da yapabilir. Bkz. Deploy verification ve rollback.
Preview (Review App)#
Bir pull request (GitLab'da merge request) için Kubernetes'te ayrı bir namespace'te açılan, kendi URL'i olan geçici deploy. PR kapanınca, merge edilince ya da bırakılınca silinir. Bkz. Preview'lar.
Merge gate#
Pull request (GitLab'da merge request) pipeline'ı başarılı olmadan merge'ün engellenmesi. EJO ana pipeline'ı WAITING'de tutar ve SCM tarafında da engeller: GitHub'da hedef branch'te ejo status'ünü zorunlu kılan bir ruleset, GitLab'da projede Pipelines must succeed ayarı, Azure DevOps'ta hedef branch'te bir Status branch policy'si. Bkz. Kaynak kod bağlantısı (SCM).
Onay ve freeze penceresi#
Bir environment Deployment'lar için manuel onay iste ayarıyla run'ları onaya bağlayabilir. Freeze pencereleri belirli zamanlarda yeni deploy'ları durdurur; rollback ve preview kaldırma yine çalışır.
Release train#
Birden fazla binding'in run'larını tanımlı bir sırayla çalıştıran yapı. Delivery > Release train'ler altında yönetilir.
Katalog ve kaynaklar#
Servis ve .ejo#
Repo kökündeki .ejo dosyası servisi tanımlar: ad, açıklama, sahip, isteğe bağlı olarak pipeline ve environment. Geçerli bir .ejo içeren repo Servisler > Katalog altında bir servis olarak görünür. Bkz. .ejo dosyası.
Kaynaklar (SCM grubu)#
Organizasyona eklenen bir GitHub organizasyonu, GitLab grubu veya Azure DevOps projesi. EJO grubun repo'larını tarar ve her repo için .ejo durumunu Servisler > Kaynaklar sayfasında gösterir.
Değişken ve secret#
Step config'lerinde {{.KEY}} olarak kullanılan değerler. Tipleri PLAIN, SECRET, K8S_SECRET ve EXTERNAL_SECRET'tır; kapsamları global, repo veya environment olabilir. Bkz. Secret'lar ve değişkenler.
Image ve SBOM#
Build step'lerinin registry'ye push ettiği image'lar Altyapı > Image'lar altında kayıt altına alınır. Her image için SBOM, vulnerability taraması ve imza bilgisi tutulur. Bkz. Supply chain güvenliği.