diff --git a/README.md b/README.md index 69705a01..437b1e95 100644 --- a/README.md +++ b/README.md @@ -23,6 +23,7 @@ Note: The NGINX Ingress Operator works only for NGINX Ingress Controller version ## Getting Started 1. Install the NGINX Ingress Operator. See [docs](./docs/installation.md). +
NOTE: To use TransportServers as part of your NGINX Ingress Controller configuration, a GlobalConfiguration resource must be created *before* starting the Operator - [see the notes](./examples/deployment-oss-min/README.md#TransportServers) 1. Deploy a new NGINX Ingress Controller using the [NginxIngressController](docs/nginx-ingress-controller.md) Custom Resource: * For an NGINX installation see the [NGINX example](./examples/deployment-oss-min). * For an NGINX Plus installation see the [NGINX Plus example](./examples/deployment-plus-min). diff --git a/examples/deployment-oss-min/README.md b/examples/deployment-oss-min/README.md index b0588fce..6d04cb37 100644 --- a/examples/deployment-oss-min/README.md +++ b/examples/deployment-oss-min/README.md @@ -5,6 +5,7 @@ In this example we deploy the NGINX Ingress Controller (edge) as a [Deployment]( ## Prerequisites Have the NGINX Ingress Operator deployed in your cluster. Follow [installation](../../README.md#installation) steps. +If you would like to use TransportServers, refer to [this section](README.md#TransportServers) for additional pre-requisites. ## Running the example @@ -52,4 +53,29 @@ For more information about how to configure the NGINX Ingress Controller, check 1. Delete the namespace: ``` kubectl delete namespace my-nginx-ingress - ``` \ No newline at end of file + ``` + +## TransportServers + +TransportServers provide support for TCP/UDP but are in active development and provided as a preview feature. +A GlobalConfiguration resource is used to specify the TCP/UDP listeners and is required by TransportServers. +To use TransportServers, you must create a GlobalConfiguration resource *after* creating the namespace and *before* starting the Operator. + + +``` +Step 1. namespace +Step 2. global configuration <--- in this order +Step 3. ingress controller +... +``` + +``` +kubectl apply -f global-configuration.yaml +``` + +Then update the NginxIngressController to use the GlobalConfiguration by adding the following config to `nginx-ingress-controller.yaml` +``` + globalConfiguration: my-nginx-ingress/nginx-configuration +``` + +For more information, check the official [documentation](https://docs.nginx.com/nginx-ingress-controller/configuration/transportserver-resource/). diff --git a/examples/deployment-oss-min/global-configuration.yaml b/examples/deployment-oss-min/global-configuration.yaml new file mode 100644 index 00000000..357af547 --- /dev/null +++ b/examples/deployment-oss-min/global-configuration.yaml @@ -0,0 +1,5 @@ +apiVersion: k8s.nginx.org/v1alpha1 +kind: GlobalConfiguration +metadata: + name: nginx-configuration + namespace: my-nginx-ingress diff --git a/examples/deployment-plus-min/README.md b/examples/deployment-plus-min/README.md index af6e55ad..f20f59d4 100644 --- a/examples/deployment-plus-min/README.md +++ b/examples/deployment-plus-min/README.md @@ -9,6 +9,8 @@ In this example we deploy the NGINX Ingress Controller (edge) as a [Deployment]( [these instructions](https://docs.nginx.com/nginx-ingress-controller/installation/building-ingress-controller-image/#building-the-image-and-pushing-it-to-the-private-registry) (**Note**: For the build process, if using Openshift, use the `DOCKERFILE=openshift/DockerfileForPlus` variable). +If you would like to use TransportServers, refer to [this section](README.md#TransportServers) for additional pre-requisites. + ## Running the example 1. Create a new namespace for our Ingress Controller instance: @@ -53,4 +55,30 @@ For more information about how to configure the NGINX Ingress Controller, check 1. Delete the namespace: ``` kubectl delete namespace my-nginx-ingress - ``` \ No newline at end of file + ``` + +## TransportServers + +TransportServers provide support for TCP/UDP but are in active development and provided as a preview feature. +A GlobalConfiguration resource is used to specify the TCP/UDP listeners and is required by TransportServers. +To use TransportServers, you must create a GlobalConfiguration resource *after* creating the namespace and *before* starting the Operator. + + +``` +Step 1. namespace +Step 2. global configuration <--- in this order +Step 3. ingress controller +... +``` + + +``` +kubectl apply -f global-configuration.yaml +``` + +Then update the NginxIngressController to use the GlobalConfiguration by adding the following config to `nginx-ingress-controller.yaml` +``` + globalConfiguration: my-nginx-ingress/nginx-configuration +``` + +For more information, check the official [documentation](https://docs.nginx.com/nginx-ingress-controller/configuration/transportserver-resource/). diff --git a/examples/deployment-plus-min/global-configuration.yaml b/examples/deployment-plus-min/global-configuration.yaml new file mode 100644 index 00000000..357af547 --- /dev/null +++ b/examples/deployment-plus-min/global-configuration.yaml @@ -0,0 +1,5 @@ +apiVersion: k8s.nginx.org/v1alpha1 +kind: GlobalConfiguration +metadata: + name: nginx-configuration + namespace: my-nginx-ingress