Ana içeriğe geç

7.3.2.3 Kubernetes Entegrasyonu#

Ne sağlar?#

EKSEN Config Server kubernetes entegrasyonu, konfigürasyon özelliklerini (property) doğrudan Kubernetes ConfigMap ve Secret nesnelerinden okuyabilme yeteneği sağlar.

Config Server ile Nasıl Kullanılır?#

  • hvl-infra içerisindeki config server docker-compose.yml dosyasında SPRING_PROFILES_ACTIVE alanı kubernetes olarak değiştirilir. Eğer mevcutta native ve git gibi başka entegrasyonu varsa yanına eklenebilir. Ör: SPRING_PROFILES_ACTIVE=native,kubernetes
  • Buna ek olarak SPRING_PROFILES_INCLUDE kulanılarak da eklenebilir. Ör: SPRING_PROFILES_INCLUDE=kubernetes

Yukarıdaki şekilde kubernetes entegrasyonu tamamlandığında kubernetes üzerindeki ConfigMap ve Secret'lar okunabilir.

Varsayılan olarak spring.application.name veya label olarak SERVER_APP_NAME değerindeki değer ile aynı isimde ConfigMap veya Secret olmalıdır.

Örnek olarak SERVER_APP_NAME değeri logger-producer-server olan Logger Producer uygulaması için aşağıdaki gibi bir ConfigMap oluşturulabilir. Bu sayede Logger Producer uygulaması ConfigMap ten gelen değerleri öncelikli olarak okur.

kind: ConfigMap
apiVersion: v1
metadata:
  name: logger-producer-server
data:
  application.yml: |-
    custom:
      message: Hello to Logger Producer Server! 
    hvl.logger.producer.configurable-log.enabled: false
    hvl.logger.producer.enabled: false
    hvl.core.kafka.support.enabled: ${KAFKA_SUPPORT_ENABLED:false}

Not

Eğer örnekteki gibi değerler verilirken yine label kullanılırsa (örnekte KAFKA_SUPPORT_ENABLED), uygulama environmentinden gelen değer bu değeri ezecektir. Buradaki değerlerden herhangi biri SPRING_CLOUD_CONFIG_SERVER_OVERRIDES_ ile ezilmişse, en öncelikli alacağı değer her zaman SPRING_CLOUD_CONFIG_SERVER_OVERRIDES_ dan gelen değerdir.