名前空間の解決

アプリケーションの名前空間の検索は、ベストエフォートベースで行われます。それを見つけるために繰り返す手順がいくつかあります。最も簡単で一般的な方法は、適切な構成で指定することです。例:

spring:
  application:
    name: app
  cloud:
    kubernetes:
      secrets:
        name: secret
        namespace: default
        sources:
         # Spring Cloud Kubernetes looks up a Secret named 'a' in namespace 'default'
         - name: a
         # Spring Cloud Kubernetes looks up a Secret named 'secret' in namespace 'b'
         - namespace: b
         # Spring Cloud Kubernetes looks up a Secret named 'd' in namespace 'c'
         - namespace: c
           name: d

構成マップについても同じことができることに注意してください。このような名前空間が指定されていない場合は、(次の順序で) 読み取られます。

  1. プロパティ spring.cloud.kubernetes.client.namespace より

  2. spring.cloud.kubernetes.client.serviceAccountNamespacePath プロパティで示されるファイルに存在する文字列から

  3. /var/run/secrets/kubernetes.io/serviceaccount/namespace ファイルにある文字列から (kubernetes のデフォルトの名前空間パス)

  4. 指定されたクライアントメソッド呼び出し (たとえば、fabric8 の: KubernetesClient::getNamespace) から (クライアントがそのようなメソッドを提供する場合)。これは、環境プロパティを介して構成できます。たとえば、fabric8 クライアントは "KUBERNETES_NAMESPACE" プロパティ経由で構成できます。正確な詳細については、クライアントのドキュメントを参照してください。

上記の手順で名前空間が見つからない場合は、例外が発生します。