[英]How to generate many Kubernetes ResourceQuota with Helm Variables?
我有一個 OpenShift/Kubernetes 新集群,我需要創建多個 ResourceQuota 並將它們應用於現有項目。
每個 ResourceQuota 都應該應用於給定的命名空間,並且應該包含特定數量的請求和限制。 我想生成所有需要的 ResourceQuota YAM 並使用 Helm 部署它們。
我使用命令創建了一個新的自定義 Helm Chart
helm template resourcequota
我看到 Helm 創建了以下文件:
.
..
.helmignore
Chart.yaml
charts
templates
values.yaml
然后我在templates
文件夾中寫了一個resourcequota.yaml
。 我希望 helm 為我填寫 ResourceQuota 規范:
apiVersion: v1
kind: ResourceQuota
metadata:
name: {{ .Values.namespace }}-quota
namespace: {{ .Values.namepace }}
spec:
hard:
cpu: {{ .Values.namespace.requests.cpu }}
limits.cpu: {{ .Values.namespace.limits.cpu }}
memory: {{ .Values.namespace.requests.memory }}
limits.memory: {{ .Values.namespace.limits.cpu }}
values.yaml
文件包含帶有示例值的第一個命名空間名稱:
...
83 ...
84 namespace: "123-testnamespace"
85 requests:
86 cpu: "2"
87 memory: "1Gi"
88 limits:
89 cpu: "2"
90 memory: "1Gi"
然后我讓 Helm 使用helm template resourcequota
在本地生成一個模板,但他似乎不知道命名空間鍵(第 84 行):
Error: cannot load values.yaml: error converting YAML to JSON: yaml: line 84: did not find expected key
我究竟做錯了什么? 我試圖從頭開始編寫values.yaml
但似乎我在這里錯過了一些掌舵基礎知識。
先感謝您
似乎我在這里錯過了一些掌舵基礎知識
是的,正如錯誤中提到的,第 84 行有一個問題
84 namespace: "123-testnamespace"
85 requests:
86 cpu: "2"
87 memory: "1Gi"
88 limits:
89 cpu: "2"
90 memory: "1Gi"
基本 YAML 無法創建值數組並將其也用作鍵。
您應該使用 values.yaml 之類的
namespacename : "123-testnamespace"
namespace:
requests:
cpu: "2"
memory: "1Gi"
limits:
cpu: "2"
memory: "1Gi"
YAML 模板
在模板中使用名稱和命名空間值的更改
apiVersion: v1
kind: ResourceQuota
metadata:
name: {{ .Values.namespacename }}-quota
namespace: {{ .Values.namespacename }}
spec:
hard:
cpu: {{ .Values.namespace.requests.cpu }}
limits.cpu: {{ .Values.namespace.limits.cpu }}
memory: {{ .Values.namespace.requests.memory }}
limits.memory: {{ .Values.namespace.limits.cpu }}
嵌套YAML 示例
cartParams:
- title: Test 1
options:
- Oh lala
- oh lalalalala
- title: Title test 2
options:
- oh lala
- oh lala
- oh lalala
- oh lalalalalalalala
- oh lalalalalalalalalala
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.