在 helm 中連接服務
helm 圖表中的標準做法是使用
{{ template "<chartname>.fullname" . }}
服務名稱,其中<chartname>.fullname
模板有效擴展為.Release.Name-.Chart.name
. 後者可以被 覆蓋.Values.nameOverride
,但前者或完整值不能。前者要麼是管理員指定的,要麼是隨機的。那麼我如何告訴服務我正在創建圖表以在哪裡連接到它的依賴項?前綴會
.Release.Name
感染 DNS 和環境變數,所以我不能按原樣使用。例如,如果我將依賴項設置為 stable/mariadb,它將創建類似服務
nutty-narwhal-mariadb
並提供環境變數NUTTY_NARWHAL_MARIADB_SERVICE_HOST=10.108.77.204
和NUTTY_NARWHAL_MARIADB_SERVICE_PORT=3306
. 但這沒有幫助,因為我正在創建的服務不知道前綴是什麼。請注意,由 current 生成的模板
helm create
確實 include ,但是像stable/mariadb.Values.fullnameOverride
這樣的主記憶體儲庫中的現有圖表沒有它,所以我不能簡單地在我的.mariadb.fullnameOverride``values.yaml
通常,您的依賴項將聚合在同一個“繖形”圖表下,從而
.Release.Name
為所有這些圖表生成一個,這意味著您將能夠在圖表中使用.Release.Name-<subchart>
. 如果由於某種原因您不想這樣做,並且在部署主圖表之前部署了依賴項,那麼您應該能夠通過配置名稱將它們指向依賴項的位置,因為您應該在你安裝了它們。