Как сравнить значение со строкой с шаблонами go - PullRequest
0 голосов
/ 30 марта 2020

Я хочу l oop через файл значений, чтобы создать пространство имен и сетевую политику в / для этого пространства имен, кроме значения по умолчанию. Я только хочу создать политику, а не пространство имен для значения по умолчанию, поскольку оно существует по умолчанию.

файл значений:

namespaces:
  - name: default
  - name: test1
  - name: test2

файл шаблона:

# Loop through the namespace names and create the namespaces
{{- range $namespaces := .Values.namespaces }}
{{- if ne "default" }}
apiVersion: v1
kind: Namespace
metadata:
  name: {{ $namespaces.name }}
---
{{- end }}
{{- end }}

# Loop through the namespace names and create a network policy for those namespace
{{- range $namespaces := .Values.namespaces }}                                                                                                                                                             
---                                                                                                                         
kind: NetworkPolicy
apiVersion: networking.k8s.io/v1
metadata:
  name: {{ $namespaces.name }}-networkpolicy
  namespace: {{ $namespaces.name }}
spec:
  podSelector: {}
  ingress:
    - from:
      - namespaceSelector:
          matchLabels:
            name: {{ $namespaces.name }}
---                                                                                                                         
{{- end }} 

Я получаю ошибку:

Error: UPGRADE FAILED: template: namespaces/templates/namespaces.yaml:3:7: executing "namespaces/templates/namespaces.yaml" at <ne>: wrong number of args for ne: want 2 got 1

Возможно, это что-то простое, но я этого не вижу. Надеюсь, что кто-то может помочь.

1 Ответ

0 голосов
/ 31 марта 2020

Это сработало для меня:

# Loop through the namespace names and create the namespaces
{{- range $namespaces := .Values.namespaces }}
{{- if ne $namespaces.name "default" }}
apiVersion: v1
kind: Namespace
metadata:
  name: {{ $namespaces.name }}
---
{{- end }}
{{- end }}

# Loop through the namespace names and create a network policy for those namespace
{{- range $namespaces := .Values.namespaces }}                                                                                                                                                             
---                                                                                                                         
kind: NetworkPolicy
apiVersion: networking.k8s.io/v1
metadata:
  name: {{ $namespaces.name }}-networkpolicy
  namespace: {{ $namespaces.name }}
spec:
  podSelector: {}
  ingress:
    - from:
      - namespaceSelector:
          matchLabels:
            name: {{ $namespaces.name }}
---                                                                                                                         
{{- end }} 
...