我一直在尋找解決方案,但找不到任何解決方案。
我有一個執行如下內容的 bash 腳本:
kubectl get services -o=json | \
jq '.items[].metadata.annotations | '\
'select (."my-ingress/enabled" == "true") | '\
'{"my-ingress/path", "my-ingress/service-name", "my-ingress/service-port"}'
這意味著它可以獲取服務串列,過濾并僅使用注釋 my-ingress/enabled == true
基于該結果,它為 Ingress 動態創建 YAML 并加載它。
在我所尋找的任何地方,Helm 都在使用模板和其他奇特的方法,但我在任何地方都找不到任何資訊,如何向 K8S 詢問一些資源并基于該資訊構建 YAML。
這可能嗎?
注意:values.yaml在我的情況下,呼叫 Bash 來準備某種東西不是一種選擇。
uj5u.com熱心網友回復:
您可以使用HELM 的查找功能來查詢集群
查找功能可用于查找正在運行的集群中的資源。查找函式的概要是查找 apiVersion、種類、命名空間、名稱 -> 資源或資源串列。
引數型別 apiVersion string kind string namespace string name string name 和 namespace 都是可選的,可以作為空字串 ("") 傳遞。
{{ range $index, $service := (lookup "v1" "Service" "mynamespace" "").items }}
{{/* do something with each service */}}
{{ end }}
重要的提示:
請記住,Helm 不應該在 a
helm template或 a期間聯系 Kubernetes API 服務器helm install|update|delete|rollback --dry-run,因此在這種情況下查找函式將回傳一個空串列(即 dict)。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/407244.html
標籤:
