Я использую helm для развертывания пространств имен в наших кластерах kubernetes.
Это шаблон:
{{- range $namespaces := .Values.namespaces }}
{{- if ne $namespaces.name "default" }}
apiVersion: v1
kind: Namespace
metadata:
name: {{ $namespaces.name }}
labels:
name: {{ $namespaces.name }}
{{- end }}
Файл значений:
namespaces:
- name: default
- name: ingress-controller
- name: rbac-manager
- name: velero
- name: test1
- name: test2
- name: test3
Это работает нормально, но теперь я хочу установить метку c для определенных пространств имен. default, ingress-controller, rba c -manager и velero - это пространства имен, для которых я не хочу устанавливать метку, а только для пространств имен c, определенных командой .. в данном случае test {1,2,3}. Но эти переменные. Поэтому вместо использования функции has:
{{ if has .Values.favorite.drink (list "coffee" "thee" "milk") }}mug: true{{ end }}
я хотел бы использовать функцию без, но я делаю что-то не так, поэтому надеюсь, что кто-то может мне помочь с этим:
{{- range $namespaces := .Values.namespaces }}
{{- if ne $namespaces.name "default" }}
apiVersion: v1
kind: Namespace
metadata:
name: {{ $namespaces.name }}
labels:
name: {{ $namespaces.name }}
{{ $custom := without $namespaces.name "default" "ingress-controller" "rbac-manager" "velero" }}
{{- if eq $custom.name }}
namespace: custom
{{- end }}
---
{{- end }}
{{- end }}
Когда я запускаю это, я получаю ошибку:
Error: UPGRADE FAILED: template: namespaces/templates/namespaces.yaml:10:14: executing "namespaces/templates/namespaces.yaml" at <without $namespaces.name "default" "ingress-controller" "rbac-manager" "velero">: error calling without: Cannot find without on type string
Я получаю ту же ошибку, когда использую:
{{- range $namespaces := .Values.namespaces }}
{{- if ne $namespaces.name "default" }}
apiVersion: v1
kind: Namespace
metadata:
name: {{ $namespaces.name }}
labels:
name: {{ $namespaces.name }}
{{ $custom := without $namespaces.name (list "default" "ingress-controller" "rbac-manager" "velero") }}
{{- if eq $custom.name }}
namespace: custom
{{- end }}
---
{{- end }}
{{- end }}