<p>Helm 3 imagePullSecrets: [] secrete gives an error.</p>
<p>Error: unable to build Kubernetes objects from release manifest: error validating &quot;&quot;: error validating data: ValidationError(Deployment.spec.template.spec.imagePullSecrets[0]): invalid type for io.k8s.api.core.v1.LocalObjectReference: got &quot;string&quot;, expected &quot;map&quot;</p>

<p>I use this setup and works fine.</p>
<p>In deployment.yaml</p>
<pre><code>    spec:
    {{- with .Values.imagePullSecrets }}
      imagePullSecrets:
        {{- toYaml . | nindent 8 }}
    {{- end }}
      containers:
</code></pre>
<p>In values.yaml</p>
<pre><code>imagePullSecrets:
  - name: regcred
</code></pre>
<p>And create secret <code>regcred</code> manually using</p>
<pre><code>kubectl create secret docker-registry regcred --docker-server=&lt;your-registry-server&gt; --docker-username=&lt;your-name&gt; --docker-password=&lt;your-pword&gt; --docker-email=&lt;your-email&gt;
</code></pre>
<p>You can find detailed documentation <a href="https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/" rel="noreferrer">here</a></p>
