名前空間の解決
アプリケーションの名前空間の検索は、ベストエフォートベースで行われます。それを見つけるために繰り返す手順がいくつかあります。最も簡単で一般的な方法は、適切な構成で指定することです。例:
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
構成マップについても同じことができることに注意してください。このような名前空間が指定されていない場合は、(次の順序で) 読み取られます。
プロパティ
spring.cloud.kubernetes.client.namespace
よりspring.cloud.kubernetes.client.serviceAccountNamespacePath
プロパティで示されるファイルに存在する文字列から/var/run/secrets/kubernetes.io/serviceaccount/namespace
ファイルにある文字列から (kubernetes のデフォルトの名前空間パス)指定されたクライアントメソッド呼び出し (たとえば、fabric8 の:
KubernetesClient::getNamespace
) から (クライアントがそのようなメソッドを提供する場合)。これは、環境プロパティを介して構成できます。たとえば、fabric8 クライアントは "KUBERNETES_NAMESPACE" プロパティ経由で構成できます。正確な詳細については、クライアントのドキュメントを参照してください。
上記の手順で名前空間が見つからない場合は、例外が発生します。