Akışın iş mantığıyla ortam değerlerini ayırın. Adres, periyot ve iş seçenekleri properties/ConfigMap ile; parola ve token gibi değerler Secret ile sağlanabilir. Route bu kaynakların değerini çalışma anında kullanır.
Doğru kaynağı seçin
| Kaynak | Uygun kullanım | Örnek referans |
|---|---|---|
application.properties | Projenin sürümlenen ayarları ve runtime seçenekleri | {{orders.timeout}} |
| ConfigMap | Ortama ait, gizli olmayan ortak değer | {{configmap:orders-settings/host}} |
| Secret | Parola, anahtar ve diğer credential | {{secret:orders-credentials/password}} |
| OS environment variable | Runtime’a dağıtımda verilen ortam değişkeni | {{env:ORDERS_HOST}} |
| JVM system property | Runtime’a verilen JVM özelliği | {{sys:orders.region}} |
| Bean | Yapılandırılmış bağlantı veya özel nesne | İlgili component alanında bean referansı |
ConfigMap ve Secret bu kurulumun Kubernetes ortamında bulunmalıdır. Aynı kaynak adı farklı ortamda farklı değer taşıyabilir. Projede yalnızca referansın bulunması kaynağı oluşturmaz veya başka ortama kopyalamaz.
Proje property’si ekleyin
- Architecture → More create options → Properties seçin veya Source → Files içinden
application.propertiesaçın. - Mevcut runtime ayarlarını koruyarak yeni satırları ekleyin:
orders.timeout=5000
orders.greeting=Order received
- Saved durumunu bekleyin.
- Route’taki uygun alanda
{{orders.timeout}}veya{{orders.greeting}}kullanın. - Çalışan projeye uygulamak için Reload; yeni runtime için Run kullanın. Başlatma ayarları değiştiyse runtime’ın yeniden başlatılması gerekebilir.
Örnek bir body adımı:
- setBody:
constant: "{{orders.greeting}}"
Bu adım çalışırken body Order received olur. {{…}} yapılandırma referansıdır; ${body} gibi ifadeler mesajın o andaki içeriğini okur. Birbirlerinin yerine kullanılmazlar.
Görsel editörden değer kaynağı seçin
- İlgili adımı ve property alanını açın.
- Alanın yanındaki Configure … simgesini seçin.
- Set from penceresinde Properties, ConfigMap, Secret, Services veya Examples kaynağını açın.
- Aramayla istediğiniz adı/anahtarı bulun ve seçin.
- Alanın doğru referansı içerdiğini kontrol edin; kaydetme durumunu bekleyin.
Services hizmetin host, port veya ikisini birlikte seçmenizi sağlar. Bu seçim ağ bağlantısını test etmez. Examples, environment/JVM property gibi yazım biçimlerini gösterir; örnekteki adı kendi anahtarınızla değiştirin. Expression alanlarında sunulan Editor, ilgili ifade veya script’i düzenler.
Properties listesi yüklenemiyorsa Retry kullanın. Hata Invalid Unicode escape in application.properties ise dosyadaki geçersiz \u dizisini düzeltin. Aranan alan görünmüyorsa property filtresini ve doğru projede olduğunuzu kontrol edin.
Secret oluşturun ve kullanın
Ortam kaynaklarını yönetme yetkiniz varsa:
- System → Secrets → Create secret seçin.
- Örneğin
orders-credentialsadını verin. Ad için küçük harf, rakam ve tire kullanın. - Oluşturulan satırı açıp Add key seçin.
- Key alanına
password, Value alanına gerçek değeri girin ve Add key ile kaydedin. - Route’un parola alanından Configure … → Secret ile
orders-credentials/passwordseçin veya{{secret:orders-credentials/password}}yazın. - Projenin
camel.jbang.dependencieslistesindecamel-kubernetesbulunduğunu doğrulayın. Runtime’ı yeniden başlatıp bağlantıyı test edin.
Secret listesinde değerler gizlenir; gerekli yetkiyle tek bir değeri açıp düzenleyebilirsiniz. Bu, credential’ın Git’e yazılması gerektiği anlamına gelmez. Hassas component alanları placeholder bekler; gerçek parolayı route’un YAML kaynağına yerleştirmeyin.
Platformun kendi korunan Secret’ını proje credential’ı yerine kullanmayın. Kaynağı silmek onu kullanan diğer entegrasyonları etkiler. API erişimi için Secret gerekiyorsa API güvenliği sayfasındaki beklenen yapıyı kullanın; API credential reference alanı yalnızca kaynak adını alır.
ConfigMap kullanın
System → ConfigMaps → Create configmap ile örneğin orders-settings oluşturun. Kaynağın Add key işleminde host ve ortamın hizmet adresini girin. Route’ta {{configmap:orders-settings/host}} kullanın.
secret: ve configmap: referansları için native Kubernetes property desteği gerekir. Yeni projelerin camel.jbang.dependencies listesi camel-kubernetes içerir. Eski bir projenin listesinde yoksa ekleyin. Örneğin mevcut listesi yalnızca camel-console olan bir projede:
camel.jbang.dependencies=camel-console,camel-kubernetes
Mevcut diğer bağımlılıkları silmeyin. Geliştirme runtime’ı ve paketli entegrasyonlar lunex-integration servis hesabıyla çalışır ve kurulumun namespace’indeki Secret ile ConfigMap’leri okuyabilir; kaynağı bu namespace’te oluşturun. Değişikliği kaydedip geliştirme runtime’ını yeniden başlatın; deployment için commit ve Build yapın.
ConfigMap değerleri gizli değildir. Parola, token veya özel anahtar için Secret kullanın. System ekranındaki Environment variables ve Application properties platform ayarlarını gösterir; projenin application.properties dosyasını düzenlemek için proje kaynaklarına dönün.
Runtime bağımlılıklarını hazırlayın
Component kataloğu hangi seçeneklerin kullanılabildiğini anlatır. Çalışan projenin bu component’in kütüphanelerine ve gerektiğinde sürücüsüne de erişebilmesi gerekir.
Expression için de aynı ayrım geçerlidir: dil seçicisindeki seçenekler farklı kütüphaneler kullanabilir. Simple ve Groovy rehberleri kendi örneklerinin tür ve bağımlılık hazırlığını açıklar.
Projedeki application.properties dosyasında camel.jbang.dependencies listesi bulunabilir. Ek kütüphane gerektiğinde mevcut listeyi koruyarak ekleyin. Örneğin listesi yalnızca camel-console olan bir projeye JSON ve Groovy desteği eklemek:
camel.jbang.dependencies=camel-console,camel-jackson,camel-groovy
Özel Java kütüphanesi kullanırken doğru Maven koordinatı ve sürümünü belirtin; artifact deposuna runtime/build ortamının erişebilmesi gerekir. Bağımlılık veya classpath değiştiğinde geliştirme runtime’ını yeniden başlatıp yüklemeyi doğrulayın. Deployment için dosyayı commit ederek yeniden Build yapın.
Kendi Kamelet’inizde Kamelet → Dependencies alanına camel:component veya mvn:groupId:artifactId:version biçiminde bağımlılık eklenir. Java sınıfı, script, schema, XSLT ve benzeri kaynakların da proje dosyalarında bulunduğunu ve runtime’ın kullandığı adla referanslandığını kontrol edin.
SAP gibi ek runtime hazırlığı isteyen bağlantılar için yalnızca dependency adı eklemek yeterli değildir; bağlantının kurulum adımlarını tamamlayın.
Bir ayar ne zaman etkili olur?
| Değişiklik | Uygulama adımı |
|---|---|
| Route veya proje properties | Otomatik kaydın tamamlanması, ardından Run/Reload |
| Başlatma/classpath ayarı | Runtime’ı yeniden başlatma ve sonucu kontrol etme |
| Deployment kaynakları | Git commit ve Build/deployment akışı |
| Secret/ConfigMap değeri | İlgili component’in yeniden okuma davranışına göre reload/restart; yeni değerle gerçek bağlantı testi |
| API erişim ayarı | API Save, ardından Run/Reload veya commit ve Build |
Secret değerinin güncellenmesi her component’te açık bağlantıyı anında yenilemeyebilir. Bağlantı havuzu veya token önbelleği varsa yeniden bağlantı kurulmasını sağlayın. CPU/RAM, replica ve deployment çevre ayarlarını proje runtime’ında düzenleyin.
Yapılandırma hatalarını çözün
- Property bulunamadı: Anahtarı, büyük/küçük harf kullanımını ve kaynağın bu ortamda varlığını kontrol edin.
- Secret listede yok: Doğru ortam/namespace’i, adını ve okuma yetkisini doğrulayın; listeyi yenileyin.
- Key kaydedilemiyor: Anahtar adındaki izin verilmeyen karakterleri veya kaynak yönetim yetkisini kontrol edin.
- Could not save file: Oturumdaki değişikliği kaybetmeden Retry save kullanın; Saved olmadan çalışma alanı güncellendiğini varsaymayın.
- Sınıf veya component bulunamadı: Bağımlılık, sürüm, artifact erişimi ve yeniden başlatılan runtime’ın loglarını kontrol edin.
- Doğru ayar, eski davranış: Çalışan hedefi ve ortamı kontrol edin; deployment Git sürümünü kullanır, çalışma alanı taslağını kullanmaz.
Sonraki adım: ayarı Simulation ve gerçek bağlantı denemesinde kontrol edin, ardından Git’e gönderin.