web-dev-qa-db-fra.com

Pourquoi "{{.Release.namespace}}" est-il rendu vide?

Je comprends que {{.Release.namespace}} rendra l'espace de noms où l'application en cours d'installation par helm. Dans ce cas, helm template la commande la rendra sous forme de chaîne vide (car elle ne connaît pas encore l'espace de noms de la version).

Cependant, ce qui me surprend, c'est helm upgrade --install commande (je n'ai pas essayé d'autres commandes telles que helm install) le rend également vide dans certains cas.

Voici l'exemple de mon modèle de graphique de barre:

apiVersion: v1
kind: Service
metadata:
  name: {{.Values.app.name}}-{{.Values.app.track}}-internal
  namespace: {{.Release.namespace}}
  annotations:
    testAnnotate: "{{.Release.namespace}}"
spec:
  ports:
    - protocol: TCP
      port: 80
      targetPort: 8080
  selector:
    app: {{.Values.app.name}}
    environment: {{.Values.app.env}}
    track: {{.Values.app.track}}
  type: ClusterIP

Après avoir appelé helm upgrade --install sur ce modèle de graphique (et installé avec succès), j'essaie ensuite de voir la sortie de ma ressource

> kubectl get -o yaml svc Java-maven-app-stable-internal -n data-devops
apiVersion: v1
kind: Service
metadata:
  annotations:
    testAnnotate: ""
  creationTimestamp: 2018-08-09T06:56:41Z
  name: Java-maven-app-stable-internal
  namespace: data-devops
  resourceVersion: "62906341"
  selfLink: /api/v1/namespaces/data-devops/services/Java-maven-app-stable-internal
  uid: 5e888e6a-9ba1-11e8-912b-42010a9400fa
spec:
  clusterIP: 10.32.76.208
  ports:
  - port: 80
    protocol: TCP
    targetPort: 8080
  selector:
    app: Java-maven-app
    environment: stg
    track: stable
  sessionAffinity: None
  type: ClusterIP
status:
  loadBalancer: {}

Comme vous pouvez le voir, je mets {{.Release.namespace}} sur 2 places:

  • dans metadata.namespace champ
  • dans metadata.annotations.testAnnotate champ.

Mais il ne rend l'espace de noms correct que sur metadata.namespace champ. Une idée pourquoi?

8
Agung Pratama

La valeur générée .Release.Namespace est sensible à la casse. La lettre N dans "namespace" doit être en majuscule.

14
Jaakko Pallari