Search code examples
kubernetes

error converting YAML to JSON, did not find expected key kubernetes


I am doing a lab about kubernetes in google cloud.
I have create the YAML file, but when I am trying to deploy it a shell shows me this error:

error converting YAML to JSON: yaml: line 34: did not find expected key

YAML file:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: nginx
  labels:
    app: nginx
spec:
  replicas: 2
  selector:
    matchLabels:
      app: nginx
    spec:
      volumes:
      - name: nginx-config
        configMap:
          name: nginx-config
      - name: php-config
        configMap:
          name: php-config
      containers:
      - image: php-fpm:7.2
        name: php
        ports:
        - containerPort: 9000
        volumeMounts:
        - name: persistent-storage
          mountPath: /var/www/data
        - name: php-config
          mountPath: /usr/local/etc/php-fpm.d/www.conf
          subPath: www.conf
      - image: nginx:latest
        name: nginx
        - containerPort: 80
        volumeMounts:
        - name: persistent-storage
          mountPath: /var/www/data
        - name: nginx-config
          mountPath: /etc/nginx/nginx.conf
          subPath: nginx.conf
      volumes:
        - name: persistent-storage
          persistentVolumeClaim:
            claimName: nfs-pvc

Solution

  • The overall file looks good. There are some issues with indentation.

    YAML file

    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: nginx
      labels:
        app: nginx
    spec:
      replicas: 2
      selector:
        matchLabels:
          app: nginx
        spec:
          volumes:
          - name: nginx-config
            configMap:
              name: nginx-config
          - name: php-config
            configMap:
              name: php-config
          containers:
          - image: php-fpm:7.2
            name: php
            ports:
            - containerPort: 9000
            volumeMounts:
            - name: persistent-storage
                # looks like indentation issue here                 
                mountPath: /var/www/data 
            - name: php-config
                # looks like indentation issue here                 
                mountPath: /usr/local/etc/php-fpm.d/www.conf
                subPath: www.conf
          - image: nginx:latest
            name: nginx
            - containerPort: 80
            volumeMounts:
            - name: persistent-storage
                mountPath: /var/www/data
            - name: nginx-config
                mountPath: /etc/nginx/nginx.conf
                subPath: nginx.conf
          volumes:
            - name: persistent-storage
              persistentVolumeClaim:
                claimName: nfs-pvc