I have two containers defined in my yaml, both have the image pull poilicy as latest.
however when the pod is deployed, second container does not start, the pod yaml in kubernetes states that they both have the same image id.
 spec:
      containers:
      - name: 1st
        image: "x/abc:latest"
        imagePullPolicy: "Never"
        ports:
          - containerPort: 8080 
          - containerPort: 5005
        volumeMounts:
          - name: config-volume 
            mountPath: /config
        resources:
          limits:
            cpu: 500m
            memory: 512Mi
          requests:
            cpu: 100m
            memory: 128Mi
        env:
          - name: JVM_DEBUG
            value: "True"
      - name: second
        image: "x/def:latest"
        imagePullPolicy: "Never"
        ports:
          - containerPort: 9998
        volumeMounts:
          - name: config-volume 
            mountPath: /config
        resources:
          limits:
            cpu: 500m
            memory: 512Mi
          requests:
            cpu: 100m
            memory: 128Mi
      volumes:
        - name: config-volume
          configMap:
            name: abc-RELEASEany ideas?
I think you are mixing two concepts here: the image pull policy and the image tag.
The image pull policy tells kubernetes when you want it to try to download the container image. Since you are using a ImagePullPolicy of Never the image must already be present on the kubernetes node: kubernetes will not try to download the image. Besides Never you can also choose Always or IfNotPresent. Unless you have a compelling reason to choose Never, I'd choose IfNotPresent whenever possible.
On the other hand, you have chosen the latest image tag. That's the exactly tag that must be present on the kubernetes node when trying to create the container.
Furthermore, in your example yaml, you are using two differente images: x/abc and x/def. So both images must be present or the containers won't be able to be created by the kubernetes.