{"config":{"lang":["en"],"min_search_length":3,"prebuild_index":false,"separator":"[\\s\\-]+"},"docs":[{"location":"","text":"Overview\u00b6ThisisthedocumentationfortheIngressNGINXController.ItisbuiltaroundtheKubernetesIngressresource,usingaConfigMaptostorethecontrollerconfiguration.YoucanlearnmoreaboutusingIngressintheofficialKubernetesdocumentation.GettingStarted\u00b6SeeDeploymentforawhirlwindtourthatwillgetyoustarted.FAQ-MigrationtoapiVersionnetworking.k8s.io/v1\u00b6IfyouareusingIngressobjectsinyourcluster(runningKubernetesolderthanv1.22),andyouplantoupgradetoKubernetessv1.22,thissectionisrelevanttoyou.PleasereadthisofficialblogondeprecatedIngressAPIversionsPleasereadthisofficialdocumentationontheIngressClassobjectWhatisanIngressClassandwhyisitimportantforusersofIngress-NGINXcontrollernow?\u00b6IngressClassisaKubernetesresource.Seethedescriptionbelow.Itsimportantbecauseuntilnow,adefaultinstalloftheIngress-NGINXcontrollerdidnotrequireanyIngressClassobject.Fromversion1.0.0oftheIngress-NGINXController,anIngressClassobjectisrequired.OnclusterswithmorethanoneinstanceoftheIngress-NGINXcontroller,allinstancesofthecontrollersmustbeawareofwhichIngressobjectstheyserve.TheingressClassNamefieldofanIngressisthewaytoletthecontrollerknowaboutthat.kubectlexplainingressclassKIND:IngressClassVERSION:networking.k8s.io/v1DESCRIPTION:IngressClassrepresentstheclassoftheIngress,referencedbytheIngressSpec.The`ingressclass.kubernetes.io/is-default-class`annotationcanbeusedtoindicatethatanIngressClassshouldbeconsidereddefault.WhenasingleIngressClassresourcehasthisannotationsettotrue,newIngressresourceswithoutaclassspecifiedwillbeassignedthisdefaultclass.FIELDS:apiVersion<string>APIVersiondefinestheversionedschemaofthisrepresentationofanobject.Serversshouldconvertrecognizedschemastothelatestinternalvalue,andmayrejectunrecognizedvalues.Moreinfo:https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources kind <string> Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds metadata <Object> Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata spec <Object> Spec is the desired state of the IngressClass. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status` What has caused this change in behavior? \u00b6 There are 2 reasons primarily. Reason #1 \u00b6 Until K8s version 1.21, it was possible to create an Ingress resource using deprecated versions of the Ingress API, such as: extensions/v1beta1 networking.k8s.io/v1beta1 You would get a message about deprecation, but the Ingress resource would get created. From K8s version 1.22 onwards, you can only access the Ingress API via the stable, networking.k8s.io/v1 API. The reason is explained in the official blog on deprecated ingress API versions . Reason #2 \u00b6 If you are already using the Ingress-NGINX controller and then upgrade to K8s version v1.22 , there are several scenarios where your existing Ingress objects will not work how you expect. Read this FAQ to check which scenario matches your use case. What is ingressClassName field ? \u00b6 ingressClassName is a field in the specs of an Ingress object. kubectl explain ingress.spec.ingressClassName KIND: Ingress VERSION: networking.k8s.io/v1 FIELD: ingressClassName <string> DESCRIPTION: IngressClassName is the name of the IngressClass cluster resource. The associated IngressClass defines which controller will implement the resource. This replaces the depreca