skip to Main Content

I hope people can help to point out where is the issue from my deployment file, when i deploy i get error below
Thanks for your help

"Deployment.apps "my-app" is invalid: [spec.template.spec.containers[0].volumeMounts[0].name: Not found: "audioSources", spec.template.spec.containers[0].volumeMounts[1].name: Not found: "authors", spec.template.spec.containers[0].volumeMounts[2].name: Not found: "covers"]"

here is my deployment file

apiVersion: apps/v1
kind: Deployment
metadata:
  labels:
    app: my-app
  name: my-app
spec:
  replicas: 1
  selector:
    matchLabels:
      app: my-app
  template:
    metadata:
      labels:
        app: my-app
    spec:
      containers:
      - image: myname/myimage
        name: my-app
        ports:
        - containerPort: 3000
        volumeMounts:
        - name: audioSources
          mountPath: /usr/share/nginx/html/audioSources
        - name: authors
          mountPath: /usr/share/nginx/html/authors
        - name: covers
          mountPath: /usr/share/nginx/html/covers
  volumes:
    - name: audioSources
      hostPath:
        path: /home/websites/audioSources
    - name: authors
      hostPath:
        path: /home/websites/authors
    - name: covers
      hostPath:
        path: /home/websites/covers

2

Answers


  1. Looks like it’s due to the indentation error in your YAML file

    Volume should be under the spec section

    Example YAML i am using

    apiVersion: apps/v1
    kind: Deployment
    metadata:
      labels:
        app: hello-app
      name: hello-app
      namespace: default
    spec:
      progressDeadlineSeconds: 600
      replicas: 1
      revisionHistoryLimit: 10
      selector:
        matchLabels:
          app: hello-app
      strategy:
        rollingUpdate:
          maxSurge: 25%
          maxUnavailable: 25%
        type: RollingUpdate
      template:
        metadata:
          creationTimestamp: null
          labels:
            app: hello-app
        spec:
          containers:
          - name: nginx
            image: nginx
            imagePullPolicy: IfNotPresent
            volumeMounts:
              - mountPath: /etc/cert/
                name: foo
              - mountPath: /etc/nginx/conf.d
                name: nginxconf
                readOnly: true
          - image: gcr.io/google-samples/hello-app:1.0
            imagePullPolicy: IfNotPresent
            name: hello-app
            resources: {}
            terminationMessagePath: /dev/termination-log
            terminationMessagePolicy: File
          dnsPolicy: ClusterFirst
          restartPolicy: Always
          schedulerName: default-scheduler
          securityContext: {}
          terminationGracePeriodSeconds: 30 
          volumes:
          - configMap:
              defaultMode: 256
              name: nginxthroughpass
              optional: false
            name: nginxconf
          - name: foo
            secret:
              defaultMode: 420
              items:
              - key: tls.crt
                path: tls.crt
              - key: tls.key
                path: tls.key
              secretName: nginx-prod
    
    Login or Signup to reply.
  2. Here is a fixed deployment:

    apiVersion: apps/v1
    kind: Deployment
    metadata:
      labels:
        app: my-app
      name: my-app
    spec:
      replicas: 1
      selector:
        matchLabels:
          app: my-app
      template:
        metadata:
          labels:
            app: my-app
        spec:
          containers:
          - image: myname/myimage
            name: my-app
            ports:
            - containerPort: 3000
            volumeMounts:
            - name: audio-sources
              mountPath: /usr/share/nginx/html/audioSources
            - name: authors
              mountPath: /usr/share/nginx/html/authors
            - name: covers
              mountPath: /usr/share/nginx/html/covers
          volumes:
          - name: audio-sources
            hostPath:
              path: /home/websites/audioSources
          - name: authors
            hostPath:
              path: /home/websites/authors
          - name: covers
            hostPath:
              path: /home/websites/covers
    
    1. Volumes should be under spec,same level as containers.
    2. Also, name of audioSource is changed to audio-source.
    Login or Signup to reply.
Please signup or login to give your own answer.
Back To Top
Search