How to fix 'map[] does not contain declared merge key: name' error when I edit and save the pod yaml?

4/17/2019

I 'm trying to pull an image from a private registry. But the status of pod is 'ImagePullBackOff', which means I need to add a secret to the pod.

Events:
  Type     Reason   Age                  From                                          Message
  ----     ------   ----                 ----                                          -------
  Normal   Pulling  52m (x255 over 22h)  kubelet, cn-huhehaote.i-hp3fkfzlcf1u9cigq2h7  pulling image "xxx/fcp"
  Normal   BackOff  8m (x5597 over 22h)  kubelet, cn-huhehaote.i-hp3fkfzlcf1u9cigq2h7  Back-off pulling image "xxx/fcp"
  Warning  Failed   3m (x5618 over 22h)  kubelet, cn-huhehaote.i-hp3fkfzlcf1u9cigq2h7  Error: ImagePullBackOff

So I added the following code in pod yaml.

spec:
      containers:
      - name: private-reg-container
        image: <your-private-image>
      imagePullSecrets:
      - name: my-secret

Then I got

error: map: map[] does not contain declared merge key: name

The solution I searched out is to delete 'imagePullSecret', which doesn't work for me. I wonder how to fix the error. Can anyone help me?

kubectl version is

 kubectl version
Client Version: version.Info{Major:"1", Minor:"11", GitVersion:"v1.11.5", GitCommit:"753b2dbc622f5cc417845f0ff8a77f539a4213ea", GitTreeState:"clean", BuildDate:"2018-11-26T14:41:50Z", GoVersion:"go1.10.3", Compiler:"gc", Platform:"linux/amd64"}
Server Version: version.Info{Major:"1", Minor:"11", GitVersion:"v1.11.5", GitCommit:"753b2dbc622f5cc417845f0ff8a77f539a4213ea", GitTreeState:"clean", BuildDate:"2018-11-26T14:31:35Z", GoVersion:"go1.10.3", Compiler:"gc", Platform:"linux/amd64"}
-- Xiang Li
kubernetes
kubernetes-pod
kubernetes-secrets

2 Answers

11/20/2019

I've stumbled with the same problem (using helm) and I've found out, that it is not allowed to edit the imagePullSecret section in the deployment...

The solution was to delete the deployment and recreate it.

-- 9ilsdx 9rvj 0lo
Source: StackOverflow

4/24/2019

As @fiunchinho mentioned in comments and as per Federation with Kubefed - cluster federation is deprecated.

Use of Federation v1 is strongly discouraged. Federation V1 never achieved GA status and is no longer under active development. Documentation is for historical purposes only.

The solution is to use Kubernetes Federation v2. For more details you can refer to Federation v2 user guide and Federation v development guide

-- VKR
Source: StackOverflow