2017-04-25 3 views
0

Mon manifeste est la suivante:ne peut pas monter un volume secret Kubernetes

1 apiVersion: v1 
    2 kind: Pod 
    3 metadata: 
    4 name: myapp 
    5 spec: 
    6 containers: 
    7 - name: myapp 
    8  image: "myapp" 
    9  ports: 
10  - containerPort: 3000 
11  command: ["bash"] 
12  args: ["-c", "sleep 999999"] 
13 imagePullSecrets: 
14  - name: regsecret 
15 volumeMount: 
16  - name: "secret-volume" 
17  mountPath: "/etc/udev" 
18  readOnly: true 
19 volumes: 
20  - name: "secret-volume" 
21  secret: 
22   - name: "myappsecret" 

Elle produit l'erreur suivante:

error validating data: [found invalid field volumeMount for v1.PodSpec, field spec.volumes[0].secret: expected object of type map[string]interface{}, but the actual type is []interface {}]; 

Pourquoi est-volumeMount invalide? Il semble qu'il soit dit ici https://kubernetes.io/docs/resources-reference/v1.5/#volume-v1 qu'il existe une telle directive.

Aussi je ne comprends pas vraiment comment spécifier le secret comme un montage. Essayé plusieurs choses, y compris une suggestion: https://github.com/kubernetes/kubernetes/issues/4710

+0

Essayez d'ajouter un ** s ** .. . –

Répondre

0

Turns out volumeMount doit être sous la directive conteneurs et une légère modification de la structure du volume secret était nécessaire:

1 apiVersion: v1 
    2 kind: Pod 
    3 metadata: 
    4 name: myapp 
    5 spec: 
    6 containers: 
    7 - name: myapp 
    8  image: "myapp" 
    9  ports: 
10  - containerPort: 3000 
11  command: ["bash"] 
12  args: ["-c", "sleep 999999"] 
13  volumeMounts: 
14  - name: "secret-volume" 
15   mountPath: "/etc/secret-volume" 
16   readOnly: true 
17 imagePullSecrets: 
18  - name: regsecret 
19 volumes: 
20  - name: "secret-volume" 
21  secret: 
22   secretName: "myappsecret"