kubernetes / ingress-nginx

Ingress NGINX Controller for Kubernetes
https://kubernetes.github.io/ingress-nginx/
Apache License 2.0
17.43k stars 8.24k forks source link

error when applying patch: field is immutable #5884

Closed joekendal closed 4 years ago

joekendal commented 4 years ago

NGINX Ingress controller version:

Kubernetes version (use kubectl version):

Client Version: version.Info{Major:"1", Minor:"16+", GitVersion:"v1.16.6-beta.0", GitCommit:"e7f962ba86f4ce7033828210ca3556393c377bcc", GitTreeState:"clean", BuildDate:"2020-01-15T08:26:26Z", GoVersion:"go1.13.5", Compiler:"gc", Platform:"darwin/amd64"}
Server Version: version.Info{Major:"1", Minor:"16+", GitVersion:"v1.16.6-beta.0", GitCommit:"e7f962ba86f4ce7033828210ca3556393c377bcc", GitTreeState:"clean", BuildDate:"2020-01-15T08:18:29Z", GoVersion:"go1.13.5", Compiler:"gc", Platform:"linux/amd64"}

Environment:

Darwin localbox.local 19.5.0 Darwin Kernel Version 19.5.0: Tue May 26 20:41:44 PDT 2020; root:xnu-6153.121.2~2/RELEASE_X86_64 x86_64

What happened:

➜  app git:(master) ✗ kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/controller-v0.34.0/deploy/static/provider/cloud/deploy.yaml

namespace/ingress-nginx unchanged
serviceaccount/ingress-nginx unchanged
configmap/ingress-nginx-controller configured
clusterrole.rbac.authorization.k8s.io/ingress-nginx unchanged
clusterrolebinding.rbac.authorization.k8s.io/ingress-nginx unchanged
role.rbac.authorization.k8s.io/ingress-nginx unchanged
rolebinding.rbac.authorization.k8s.io/ingress-nginx unchanged
service/ingress-nginx-controller-admission unchanged
service/ingress-nginx-controller unchanged
deployment.apps/ingress-nginx-controller created
validatingwebhookconfiguration.admissionregistration.k8s.io/ingress-nginx-admission configured
clusterrole.rbac.authorization.k8s.io/ingress-nginx-admission unchanged
clusterrolebinding.rbac.authorization.k8s.io/ingress-nginx-admission unchanged
role.rbac.authorization.k8s.io/ingress-nginx-admission unchanged
rolebinding.rbac.authorization.k8s.io/ingress-nginx-admission unchanged
serviceaccount/ingress-nginx-admission unchanged
Error from server (Invalid): error when applying patch:
{"metadata":{"annotations":{"kubectl.kubernetes.io/last-applied-configuration":"{\"apiVersion\":\"batch/v1\",\"kind\":\"Job\",\"metadata\":{\"annotations\":{\"helm.sh/hook\":\"pre-install,pre-upgrade\",\"helm.sh/hook-delete-policy\":\"before-hook-creation,hook-succeeded\"},\"labels\":{\"app.kubernetes.io/component\":\"admission-webhook\",\"app.kubernetes.io/instance\":\"ingress-nginx\",\"app.kubernetes.io/managed-by\":\"Helm\",\"app.kubernetes.io/name\":\"ingress-nginx\",\"app.kubernetes.io/version\":\"0.34.0\",\"helm.sh/chart\":\"ingress-nginx-2.11.0\"},\"name\":\"ingress-nginx-admission-create\",\"namespace\":\"ingress-nginx\"},\"spec\":{\"template\":{\"metadata\":{\"labels\":{\"app.kubernetes.io/component\":\"admission-webhook\",\"app.kubernetes.io/instance\":\"ingress-nginx\",\"app.kubernetes.io/managed-by\":\"Helm\",\"app.kubernetes.io/name\":\"ingress-nginx\",\"app.kubernetes.io/version\":\"0.34.0\",\"helm.sh/chart\":\"ingress-nginx-2.11.0\"},\"name\":\"ingress-nginx-admission-create\"},\"spec\":{\"containers\":[{\"args\":[\"create\",\"--host=ingress-nginx-controller-admission,ingress-nginx-controller-admission.ingress-nginx.svc\",\"--namespace=ingress-nginx\",\"--secret-name=ingress-nginx-admission\"],\"image\":\"docker.io/jettech/kube-webhook-certgen:v1.2.2\",\"imagePullPolicy\":\"IfNotPresent\",\"name\":\"create\"}],\"restartPolicy\":\"OnFailure\",\"securityContext\":{\"runAsNonRoot\":true,\"runAsUser\":2000},\"serviceAccountName\":\"ingress-nginx-admission\"}}}}\n"},"labels":{"app.kubernetes.io/version":"0.34.0","helm.sh/chart":"ingress-nginx-2.11.0"}},"spec":{"template":{"metadata":{"labels":{"app.kubernetes.io/version":"0.34.0","helm.sh/chart":"ingress-nginx-2.11.0"}},"spec":{"$setElementOrder/containers":[{"name":"create"}],"containers":[{"image":"docker.io/jettech/kube-webhook-certgen:v1.2.2","name":"create"}]}}}}
to:
Resource: "batch/v1, Resource=jobs", GroupVersionKind: "batch/v1, Kind=Job"
Name: "ingress-nginx-admission-create", Namespace: "ingress-nginx"
Object: &{map["apiVersion":"batch/v1" "kind":"Job" "metadata":map["annotations":map["helm.sh/hook":"pre-install,pre-upgrade" "helm.sh/hook-delete-policy":"before-hook-creation,hook-succeeded" "kubectl.kubernetes.io/last-applied-configuration":"{\"apiVersion\":\"batch/v1\",\"kind\":\"Job\",\"metadata\":{\"annotations\":{\"helm.sh/hook\":\"pre-install,pre-upgrade\",\"helm.sh/hook-delete-policy\":\"before-hook-creation,hook-succeeded\"},\"labels\":{\"app.kubernetes.io/component\":\"admission-webhook\",\"app.kubernetes.io/instance\":\"ingress-nginx\",\"app.kubernetes.io/managed-by\":\"Helm\",\"app.kubernetes.io/name\":\"ingress-nginx\",\"app.kubernetes.io/version\":\"0.33.0\",\"helm.sh/chart\":\"ingress-nginx-2.9.0\"},\"name\":\"ingress-nginx-admission-create\",\"namespace\":\"ingress-nginx\"},\"spec\":{\"template\":{\"metadata\":{\"labels\":{\"app.kubernetes.io/component\":\"admission-webhook\",\"app.kubernetes.io/instance\":\"ingress-nginx\",\"app.kubernetes.io/managed-by\":\"Helm\",\"app.kubernetes.io/name\":\"ingress-nginx\",\"app.kubernetes.io/version\":\"0.33.0\",\"helm.sh/chart\":\"ingress-nginx-2.9.0\"},\"name\":\"ingress-nginx-admission-create\"},\"spec\":{\"containers\":[{\"args\":[\"create\",\"--host=ingress-nginx-controller-admission,ingress-nginx-controller-admission.ingress-nginx.svc\",\"--namespace=ingress-nginx\",\"--secret-name=ingress-nginx-admission\"],\"image\":\"docker.io/jettech/kube-webhook-certgen:v1.2.0\",\"imagePullPolicy\":\"IfNotPresent\",\"name\":\"create\"}],\"restartPolicy\":\"OnFailure\",\"securityContext\":{\"runAsNonRoot\":true,\"runAsUser\":2000},\"serviceAccountName\":\"ingress-nginx-admission\"}}}}\n"] "creationTimestamp":"2020-06-28T18:57:59Z" "labels":map["app.kubernetes.io/component":"admission-webhook" "app.kubernetes.io/instance":"ingress-nginx" "app.kubernetes.io/managed-by":"Helm" "app.kubernetes.io/name":"ingress-nginx" "app.kubernetes.io/version":"0.33.0" "helm.sh/chart":"ingress-nginx-2.9.0"] "name":"ingress-nginx-admission-create" "namespace":"ingress-nginx" "resourceVersion":"1008022" "selfLink":"/apis/batch/v1/namespaces/ingress-nginx/jobs/ingress-nginx-admission-create" "uid":"66247531-3a48-4a8d-9ea5-81ceeec007e4"] "spec":map["backoffLimit":'\x06' "completions":'\x01' "parallelism":'\x01' "selector":map["matchLabels":map["controller-uid":"66247531-3a48-4a8d-9ea5-81ceeec007e4"]] "template":map["metadata":map["creationTimestamp":<nil> "labels":map["app.kubernetes.io/component":"admission-webhook" "app.kubernetes.io/instance":"ingress-nginx" "app.kubernetes.io/managed-by":"Helm" "app.kubernetes.io/name":"ingress-nginx" "app.kubernetes.io/version":"0.33.0" "controller-uid":"66247531-3a48-4a8d-9ea5-81ceeec007e4" "helm.sh/chart":"ingress-nginx-2.9.0" "job-name":"ingress-nginx-admission-create"] "name":"ingress-nginx-admission-create"] "spec":map["containers":[map["args":["create" "--host=ingress-nginx-controller-admission,ingress-nginx-controller-admission.ingress-nginx.svc" "--namespace=ingress-nginx" "--secret-name=ingress-nginx-admission"] "image":"docker.io/jettech/kube-webhook-certgen:v1.2.0" "imagePullPolicy":"IfNotPresent" "name":"create" "resources":map[] "terminationMessagePath":"/dev/termination-log" "terminationMessagePolicy":"File"]] "dnsPolicy":"ClusterFirst" "restartPolicy":"OnFailure" "schedulerName":"default-scheduler" "securityContext":map["runAsNonRoot":%!q(bool=true) "runAsUser":'\u07d0'] "serviceAccount":"ingress-nginx-admission" "serviceAccountName":"ingress-nginx-admission" "terminationGracePeriodSeconds":'\x1e']]] "status":map["completionTime":"2020-06-28T18:58:19Z" "conditions":[map["lastProbeTime":"2020-06-28T18:58:19Z" "lastTransitionTime":"2020-06-28T18:58:19Z" "status":"True" "type":"Complete"]] "startTime":"2020-06-28T18:58:09Z" "succeeded":'\x01']]}
for: "https://raw.githubusercontent.com/kubernetes/ingress-nginx/controller-v0.34.0/deploy/static/provider/cloud/deploy.yaml": Job.batch "ingress-nginx-admission-create" is invalid: spec.template: Invalid value: core.PodTemplateSpec{ObjectMeta:v1.ObjectMeta{Name:"ingress-nginx-admission-create", GenerateName:"", Namespace:"", SelfLink:"", UID:"", ResourceVersion:"", Generation:0, CreationTimestamp:v1.Time{Time:time.Time{wall:0x0, ext:0, loc:(*time.Location)(nil)}}, DeletionTimestamp:(*v1.Time)(nil), DeletionGracePeriodSeconds:(*int64)(nil), Labels:map[string]string{"app.kubernetes.io/component":"admission-webhook", "app.kubernetes.io/instance":"ingress-nginx", "app.kubernetes.io/managed-by":"Helm", "app.kubernetes.io/name":"ingress-nginx", "app.kubernetes.io/version":"0.34.0", "controller-uid":"66247531-3a48-4a8d-9ea5-81ceeec007e4", "helm.sh/chart":"ingress-nginx-2.11.0", "job-name":"ingress-nginx-admission-create"}, Annotations:map[string]string(nil), OwnerReferences:[]v1.OwnerReference(nil), Finalizers:[]string(nil), ClusterName:"", ManagedFields:[]v1.ManagedFieldsEntry(nil)}, Spec:core.PodSpec{Volumes:[]core.Volume(nil), InitContainers:[]core.Container(nil), Containers:[]core.Container{core.Container{Name:"create", Image:"docker.io/jettech/kube-webhook-certgen:v1.2.2", Command:[]string(nil), Args:[]string{"create", "--host=ingress-nginx-controller-admission,ingress-nginx-controller-admission.ingress-nginx.svc", "--namespace=ingress-nginx", "--secret-name=ingress-nginx-admission"}, WorkingDir:"", Ports:[]core.ContainerPort(nil), EnvFrom:[]core.EnvFromSource(nil), Env:[]core.EnvVar(nil), Resources:core.ResourceRequirements{Limits:core.ResourceList(nil), Requests:core.ResourceList(nil)}, VolumeMounts:[]core.VolumeMount(nil), VolumeDevices:[]core.VolumeDevice(nil), LivenessProbe:(*core.Probe)(nil), ReadinessProbe:(*core.Probe)(nil), StartupProbe:(*core.Probe)(nil), Lifecycle:(*core.Lifecycle)(nil), TerminationMessagePath:"/dev/termination-log", TerminationMessagePolicy:"File", ImagePullPolicy:"IfNotPresent", SecurityContext:(*core.SecurityContext)(nil), Stdin:false, StdinOnce:false, TTY:false}}, EphemeralContainers:[]core.EphemeralContainer(nil), RestartPolicy:"OnFailure", TerminationGracePeriodSeconds:(*int64)(0xc008657370), ActiveDeadlineSeconds:(*int64)(nil), DNSPolicy:"ClusterFirst", NodeSelector:map[string]string(nil), ServiceAccountName:"ingress-nginx-admission", AutomountServiceAccountToken:(*bool)(nil), NodeName:"", SecurityContext:(*core.PodSecurityContext)(0xc0067dfc00), ImagePullSecrets:[]core.LocalObjectReference(nil), Hostname:"", Subdomain:"", Affinity:(*core.Affinity)(nil), SchedulerName:"default-scheduler", Tolerations:[]core.Toleration(nil), HostAliases:[]core.HostAlias(nil), PriorityClassName:"", Priority:(*int32)(nil), PreemptionPolicy:(*core.PreemptionPolicy)(nil), DNSConfig:(*core.PodDNSConfig)(nil), ReadinessGates:[]core.PodReadinessGate(nil), RuntimeClassName:(*string)(nil), Overhead:core.ResourceList(nil), EnableServiceLinks:(*bool)(nil), TopologySpreadConstraints:[]core.TopologySpreadConstraint(nil)}}: field is immutable
Error from server (Invalid): error when applying patch:
{"metadata":{"annotations":{"kubectl.kubernetes.io/last-applied-configuration":"{\"apiVersion\":\"batch/v1\",\"kind\":\"Job\",\"metadata\":{\"annotations\":{\"helm.sh/hook\":\"post-install,post-upgrade\",\"helm.sh/hook-delete-policy\":\"before-hook-creation,hook-succeeded\"},\"labels\":{\"app.kubernetes.io/component\":\"admission-webhook\",\"app.kubernetes.io/instance\":\"ingress-nginx\",\"app.kubernetes.io/managed-by\":\"Helm\",\"app.kubernetes.io/name\":\"ingress-nginx\",\"app.kubernetes.io/version\":\"0.34.0\",\"helm.sh/chart\":\"ingress-nginx-2.11.0\"},\"name\":\"ingress-nginx-admission-patch\",\"namespace\":\"ingress-nginx\"},\"spec\":{\"template\":{\"metadata\":{\"labels\":{\"app.kubernetes.io/component\":\"admission-webhook\",\"app.kubernetes.io/instance\":\"ingress-nginx\",\"app.kubernetes.io/managed-by\":\"Helm\",\"app.kubernetes.io/name\":\"ingress-nginx\",\"app.kubernetes.io/version\":\"0.34.0\",\"helm.sh/chart\":\"ingress-nginx-2.11.0\"},\"name\":\"ingress-nginx-admission-patch\"},\"spec\":{\"containers\":[{\"args\":[\"patch\",\"--webhook-name=ingress-nginx-admission\",\"--namespace=ingress-nginx\",\"--patch-mutating=false\",\"--secret-name=ingress-nginx-admission\",\"--patch-failure-policy=Fail\"],\"image\":\"docker.io/jettech/kube-webhook-certgen:v1.2.2\",\"imagePullPolicy\":\"IfNotPresent\",\"name\":\"patch\"}],\"restartPolicy\":\"OnFailure\",\"securityContext\":{\"runAsNonRoot\":true,\"runAsUser\":2000},\"serviceAccountName\":\"ingress-nginx-admission\"}}}}\n"},"labels":{"app.kubernetes.io/version":"0.34.0","helm.sh/chart":"ingress-nginx-2.11.0"}},"spec":{"template":{"metadata":{"labels":{"app.kubernetes.io/version":"0.34.0","helm.sh/chart":"ingress-nginx-2.11.0"}},"spec":{"$setElementOrder/containers":[{"name":"patch"}],"containers":[{"image":"docker.io/jettech/kube-webhook-certgen:v1.2.2","name":"patch"}]}}}}
to:
Resource: "batch/v1, Resource=jobs", GroupVersionKind: "batch/v1, Kind=Job"
Name: "ingress-nginx-admission-patch", Namespace: "ingress-nginx"
Object: &{map["apiVersion":"batch/v1" "kind":"Job" "metadata":map["annotations":map["helm.sh/hook":"post-install,post-upgrade" "helm.sh/hook-delete-policy":"before-hook-creation,hook-succeeded" "kubectl.kubernetes.io/last-applied-configuration":"{\"apiVersion\":\"batch/v1\",\"kind\":\"Job\",\"metadata\":{\"annotations\":{\"helm.sh/hook\":\"post-install,post-upgrade\",\"helm.sh/hook-delete-policy\":\"before-hook-creation,hook-succeeded\"},\"labels\":{\"app.kubernetes.io/component\":\"admission-webhook\",\"app.kubernetes.io/instance\":\"ingress-nginx\",\"app.kubernetes.io/managed-by\":\"Helm\",\"app.kubernetes.io/name\":\"ingress-nginx\",\"app.kubernetes.io/version\":\"0.33.0\",\"helm.sh/chart\":\"ingress-nginx-2.9.0\"},\"name\":\"ingress-nginx-admission-patch\",\"namespace\":\"ingress-nginx\"},\"spec\":{\"template\":{\"metadata\":{\"labels\":{\"app.kubernetes.io/component\":\"admission-webhook\",\"app.kubernetes.io/instance\":\"ingress-nginx\",\"app.kubernetes.io/managed-by\":\"Helm\",\"app.kubernetes.io/name\":\"ingress-nginx\",\"app.kubernetes.io/version\":\"0.33.0\",\"helm.sh/chart\":\"ingress-nginx-2.9.0\"},\"name\":\"ingress-nginx-admission-patch\"},\"spec\":{\"containers\":[{\"args\":[\"patch\",\"--webhook-name=ingress-nginx-admission\",\"--namespace=ingress-nginx\",\"--patch-mutating=false\",\"--secret-name=ingress-nginx-admission\",\"--patch-failure-policy=Fail\"],\"image\":\"docker.io/jettech/kube-webhook-certgen:v1.2.0\",\"imagePullPolicy\":\"IfNotPresent\",\"name\":\"patch\"}],\"restartPolicy\":\"OnFailure\",\"securityContext\":{\"runAsNonRoot\":true,\"runAsUser\":2000},\"serviceAccountName\":\"ingress-nginx-admission\"}}}}\n"] "creationTimestamp":"2020-06-28T18:57:59Z" "labels":map["app.kubernetes.io/component":"admission-webhook" "app.kubernetes.io/instance":"ingress-nginx" "app.kubernetes.io/managed-by":"Helm" "app.kubernetes.io/name":"ingress-nginx" "app.kubernetes.io/version":"0.33.0" "helm.sh/chart":"ingress-nginx-2.9.0"] "name":"ingress-nginx-admission-patch" "namespace":"ingress-nginx" "resourceVersion":"1008056" "selfLink":"/apis/batch/v1/namespaces/ingress-nginx/jobs/ingress-nginx-admission-patch" "uid":"96e38ef9-6a51-49c7-973e-28fe46af598a"] "spec":map["backoffLimit":'\x06' "completions":'\x01' "parallelism":'\x01' "selector":map["matchLabels":map["controller-uid":"96e38ef9-6a51-49c7-973e-28fe46af598a"]] "template":map["metadata":map["creationTimestamp":<nil> "labels":map["app.kubernetes.io/component":"admission-webhook" "app.kubernetes.io/instance":"ingress-nginx" "app.kubernetes.io/managed-by":"Helm" "app.kubernetes.io/name":"ingress-nginx" "app.kubernetes.io/version":"0.33.0" "controller-uid":"96e38ef9-6a51-49c7-973e-28fe46af598a" "helm.sh/chart":"ingress-nginx-2.9.0" "job-name":"ingress-nginx-admission-patch"] "name":"ingress-nginx-admission-patch"] "spec":map["containers":[map["args":["patch" "--webhook-name=ingress-nginx-admission" "--namespace=ingress-nginx" "--patch-mutating=false" "--secret-name=ingress-nginx-admission" "--patch-failure-policy=Fail"] "image":"docker.io/jettech/kube-webhook-certgen:v1.2.0" "imagePullPolicy":"IfNotPresent" "name":"patch" "resources":map[] "terminationMessagePath":"/dev/termination-log" "terminationMessagePolicy":"File"]] "dnsPolicy":"ClusterFirst" "restartPolicy":"OnFailure" "schedulerName":"default-scheduler" "securityContext":map["runAsNonRoot":%!q(bool=true) "runAsUser":'\u07d0'] "serviceAccount":"ingress-nginx-admission" "serviceAccountName":"ingress-nginx-admission" "terminationGracePeriodSeconds":'\x1e']]] "status":map["completionTime":"2020-06-28T18:58:33Z" "conditions":[map["lastProbeTime":"2020-06-28T18:58:33Z" "lastTransitionTime":"2020-06-28T18:58:33Z" "status":"True" "type":"Complete"]] "startTime":"2020-06-28T18:58:09Z" "succeeded":'\x01']]}
for: "https://raw.githubusercontent.com/kubernetes/ingress-nginx/controller-v0.34.0/deploy/static/provider/cloud/deploy.yaml": Job.batch "ingress-nginx-admission-patch" is invalid: spec.template: Invalid value: core.PodTemplateSpec{ObjectMeta:v1.ObjectMeta{Name:"ingress-nginx-admission-patch", GenerateName:"", Namespace:"", SelfLink:"", UID:"", ResourceVersion:"", Generation:0, CreationTimestamp:v1.Time{Time:time.Time{wall:0x0, ext:0, loc:(*time.Location)(nil)}}, DeletionTimestamp:(*v1.Time)(nil), DeletionGracePeriodSeconds:(*int64)(nil), Labels:map[string]string{"app.kubernetes.io/component":"admission-webhook", "app.kubernetes.io/instance":"ingress-nginx", "app.kubernetes.io/managed-by":"Helm", "app.kubernetes.io/name":"ingress-nginx", "app.kubernetes.io/version":"0.34.0", "controller-uid":"96e38ef9-6a51-49c7-973e-28fe46af598a", "helm.sh/chart":"ingress-nginx-2.11.0", "job-name":"ingress-nginx-admission-patch"}, Annotations:map[string]string(nil), OwnerReferences:[]v1.OwnerReference(nil), Finalizers:[]string(nil), ClusterName:"", ManagedFields:[]v1.ManagedFieldsEntry(nil)}, Spec:core.PodSpec{Volumes:[]core.Volume(nil), InitContainers:[]core.Container(nil), Containers:[]core.Container{core.Container{Name:"patch", Image:"docker.io/jettech/kube-webhook-certgen:v1.2.2", Command:[]string(nil), Args:[]string{"patch", "--webhook-name=ingress-nginx-admission", "--namespace=ingress-nginx", "--patch-mutating=false", "--secret-name=ingress-nginx-admission", "--patch-failure-policy=Fail"}, WorkingDir:"", Ports:[]core.ContainerPort(nil), EnvFrom:[]core.EnvFromSource(nil), Env:[]core.EnvVar(nil), Resources:core.ResourceRequirements{Limits:core.ResourceList(nil), Requests:core.ResourceList(nil)}, VolumeMounts:[]core.VolumeMount(nil), VolumeDevices:[]core.VolumeDevice(nil), LivenessProbe:(*core.Probe)(nil), ReadinessProbe:(*core.Probe)(nil), StartupProbe:(*core.Probe)(nil), Lifecycle:(*core.Lifecycle)(nil), TerminationMessagePath:"/dev/termination-log", TerminationMessagePolicy:"File", ImagePullPolicy:"IfNotPresent", SecurityContext:(*core.SecurityContext)(nil), Stdin:false, StdinOnce:false, TTY:false}}, EphemeralContainers:[]core.EphemeralContainer(nil), RestartPolicy:"OnFailure", TerminationGracePeriodSeconds:(*int64)(0xc008962de0), ActiveDeadlineSeconds:(*int64)(nil), DNSPolicy:"ClusterFirst", NodeSelector:map[string]string(nil), ServiceAccountName:"ingress-nginx-admission", AutomountServiceAccountToken:(*bool)(nil), NodeName:"", SecurityContext:(*core.PodSecurityContext)(0xc006688230), ImagePullSecrets:[]core.LocalObjectReference(nil), Hostname:"", Subdomain:"", Affinity:(*core.Affinity)(nil), SchedulerName:"default-scheduler", Tolerations:[]core.Toleration(nil), HostAliases:[]core.HostAlias(nil), PriorityClassName:"", Priority:(*int32)(nil), PreemptionPolicy:(*core.PreemptionPolicy)(nil), DNSConfig:(*core.PodDNSConfig)(nil), ReadinessGates:[]core.PodReadinessGate(nil), RuntimeClassName:(*string)(nil), Overhead:core.ResourceList(nil), EnableServiceLinks:(*bool)(nil), TopologySpreadConstraints:[]core.TopologySpreadConstraint(nil)}}: field is immutable
aledbf commented 4 years ago

@joekendal I cannot reproduce this problem

kind create cluster --image kindest/node:v1.16.9
Creating cluster "kind" ...
 ✓ Ensuring node image (kindest/node:v1.16.9) 🖼 
 ✓ Preparing nodes 📦  
 ✓ Writing configuration 📜 
 ✓ Starting control-plane 🕹️ 
 ✓ Installing CNI 🔌 
 ✓ Installing StorageClass 💾 
Set kubectl context to "kind-kind"
You can now use your cluster with:

kubectl cluster-info --context kind-kind

Thanks for using kind! 😊
 aledbf@me  ~  kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/controller-v0.34.0/deploy/static/provider/cloud/deploy.yaml
namespace/ingress-nginx created
serviceaccount/ingress-nginx created
configmap/ingress-nginx-controller created
clusterrole.rbac.authorization.k8s.io/ingress-nginx created
clusterrolebinding.rbac.authorization.k8s.io/ingress-nginx created
role.rbac.authorization.k8s.io/ingress-nginx created
rolebinding.rbac.authorization.k8s.io/ingress-nginx created
service/ingress-nginx-controller-admission created
service/ingress-nginx-controller created
deployment.apps/ingress-nginx-controller created
validatingwebhookconfiguration.admissionregistration.k8s.io/ingress-nginx-admission created
clusterrole.rbac.authorization.k8s.io/ingress-nginx-admission created
clusterrolebinding.rbac.authorization.k8s.io/ingress-nginx-admission created
job.batch/ingress-nginx-admission-create created
job.batch/ingress-nginx-admission-patch created
role.rbac.authorization.k8s.io/ingress-nginx-admission created
rolebinding.rbac.authorization.k8s.io/ingress-nginx-admission created
serviceaccount/ingress-nginx-admission created
 aledbf@me  ~  k get pods -n ingress-nginx
NAME                                        READY   STATUS      RESTARTS   AGE
ingress-nginx-admission-create-g74pb        0/1     Completed   0          80s
ingress-nginx-admission-patch-p25jx         0/1     Completed   2          80s
ingress-nginx-controller-68679c6884-xwlmh   0/1     Running     0          90s
joekendal commented 4 years ago

This was caused by my attempts to resolve this issue with namespace deletion hanging https://github.com/kubernetes/kubernetes/issues/19317 and in following those suggestions was still unable to resolve it and left my kubernetes in a dsyfunctional, corrupted state of which i could not be bothered to spend hours trying to fix.

Solved it only by deleting all kubernetes data and resetting to factory settings. Which is less than ideal, but didn't matter in my case.

Martin-Luther commented 3 years ago

I had the same issue. I had another nginx ingress already installed while I was trying to run

kubectl apply -f <doployment_file_location>

I solved it by running

kubectl delete -f <doployment_file_location>

then

kubectl apply -f <doployment_file_location>
splitice commented 2 years ago

For anyone who finds this.

kubectl delete job nginx-admission-create -n ingress-nginx

dsteinkopf commented 1 year ago

When upgrading vom 1.6.4 to 1.7.0 I came to success after manually executing:

kubectl delete job ingress-nginx-admission-create -n ingress-nginx
kubectl delete job ingress-nginx-admission-patch -n ingress-nginx

Is anyone able to explain why this is necessary?

longwuyuan commented 1 year ago

Do you still have the webhook ?

On Tue, 18 Apr, 2023, 5:17 pm Dirk Steinkopf, @.***> wrote:

When upgrading vom 1.6.4 to 1.7.0 I came to success after manually executing:

kubectl delete job ingress-nginx-admission-create -n ingress-nginx kubectl delete job ingress-nginx-admission-patch -n ingress-nginx

Is anyone able to explain why this is necessary?

— Reply to this email directly, view it on GitHub https://github.com/kubernetes/ingress-nginx/issues/5884#issuecomment-1512941027, or unsubscribe https://github.com/notifications/unsubscribe-auth/ABGZVWUKTB7XAE2KIEPRE5DXBZ5OBANCNFSM4OXZ7BDA . You are receiving this because you are subscribed to this thread.Message ID: @.***>

peloteroFTX commented 1 year ago

When upgrading vom 1.6.4 to 1.7.0 I came to success after manually executing:

kubectl delete job ingress-nginx-admission-create -n ingress-nginx
kubectl delete job ingress-nginx-admission-patch -n ingress-nginx

Is anyone able to explain why this is necessary?

This work for me!