The Ingress Nginx Operator is provided to facilitate advanced management of Ingress-Nginx deployments.
This Operator streamlines the deployment, configuration, and maintenance processes of Ingress-Nginx instances. The operational architecture functions as follows: The Ingress-Nginx Operator continuously monitors Custom Resource of type ingressnginxes.ingress-nginx.alauda.io (IngressNginx) and automatically provisions corresponding Ingress-Nginx instances for each defined IngressNginx resource. This architecture enables direct manipulation of IngressNginx custom resources to govern Ingress-Nginx functionality and behavior.
Administrator -> Marketplace -> OperatorHubAlauda build of Ingress NGINX Controller and click InstallWe provide basic configuration options through the user interface, which will generate the corresponding YAML for you. For more complex configurations, you can edit the YAML directly.
After completing the Installation of Ingress Nginx Operator:
All Instances tabCreate, then in the displayed dialog box, locate the IngressNginx Instance Type section and click Create| Field | Description | YAML Path |
|---|---|---|
| Name | Name of the Ingress Nginx instance | .metadata.name |
| Namespace | Namespace of the Ingress Nginx instance | .metadata.namespace |
| Replica | The replica count of the Ingress Nginx deployment | .spec.controller.replicaCount |
| Resources | The resource requests and limits of the Ingress Nginx deployment | .spec.controller.resources |
| Service Type | The service type of the Ingress Nginx | .spec.controller.service.type |
| Ingress Scope | Controls which namespaces' Ingress resources are processed | .spec.controller.scope.namespaceSelector, refer to ingress-sharding |
By default, the Ingress Nginx Operator deploys Ingress Nginx instances within the same namespace as the corresponding IngressNginx custom resource.
By default, Ingress Nginx processes Ingress resources across all namespaces for ingresses that either explicitly specify its IngressClass name or do not specify any IngressClass. You can use .controller.scope.namespaceSelector to restrict an instance to specific namespaces. For example, the following IngressNginx resource demo-scope only processes ingresses in namespaces labeled cpaas.io/project=demo.
$LABLE_KEY=$LABLE_VALUEBy default, the Ingress Controller is configured with a ClusterIP service type. To expose the Ingress Controller externally using a LoadBalancer service, apply the following configuration:
LoadBalancer Services require an external load balancer integration (cloud provider LB or MetalLB) to provision an external IP.
To specify LoadBalancer VIP when using MetalLB:
Configure network mode, replicas, resource limits, and node selection:
Enable SSL passthrough functionality:
With SSL passthrough, TLS terminates on the backend, so L7 features (e.g., request/response header manipulation, WAF, HTTP-to-HTTPS redirect, some auth flows) will not apply to that traffic at the controller.
The .spec field of the IngressNginx resource directly corresponds to the Helm chart values for Ingress Nginx. For additional configuration options, please refer to the official Ingress NGINX documentation.
$ns-$name and controllerValue ingress-nginx.cpaas.io/$ns-$name. These values can be customized using the .spec.ingressClassResource.name and .spec.ingressClassResource.controllerValue parameters..spec.controller.service.type is set to ClusterIP..spec.controller.watchIngressWithoutClass is set to true, which means the controller will process Ingress resources that do not specify an IngressClass.