<p>We have a service already deployed as a headless service i.e clusterIp : None in production.
Now we need to change this to a non headless service i.e type should be ClusterIp and clusterIp should be set to some value other than None. 
I modified the charts and tried to deploy using helm upgrade command. But its not allowed and helm is complaining that service type is an immutable field.</p>

<p>kubectl edit svc also was not able to helpful.
kubectl patch also dint work.
Any workarounds for this problem other than deleting helm chart and redeploying it again?</p>

Sumit Nekar
<p>If we are speaking about Services, then ClusterIP is usually assigned by the master and is the IP address of the service. </p>

<p>If specified, it will be allocated to the service if it is unused or else creation of the service will fail. </p>

<p>Valid values are <code>None</code>, empty string (""), or a valid IP address. <code>None</code> can be specified for a <a href="https://kubernetes.io/docs/concepts/services-networking/service/#headless-services" rel="nofollow noreferrer"><code>headless service</code></a>  when proxying is not required. </p>

<p><strong>Cannot be updated.</strong> </p>

<p>You can find Kubernetes Top Level API Objects <a href="https://htmlpreview.github.io/?https://github.com/kubernetes/kubernetes/blob/release-1.2/docs/api-reference/v1/definitions.html#spec-and-status" rel="nofollow noreferrer">Documentation</a> helpful. </p>

<p>Hope that sheds the light on the root cause of the issue you are facing (changing service type).</p>
