Skip to content
This repository was archived by the owner on May 24, 2023. It is now read-only.

Document the GlobalConfig resource as a TransportServer pre-requisite #92

Merged
merged 1 commit into from
Apr 6, 2021
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -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).
<br> 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).
Expand Down
28 changes: 27 additions & 1 deletion examples/deployment-oss-min/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -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.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
If you would like to use TransportServers, refer to [this section](README.md#TransportServers) for additional pre-requisites.
If you would like to use TransportServers for TCP/UDP load balancing, refer to [this section](README.md#TransportServers) for additional pre-requisites.


## Running the example

Expand Down Expand Up @@ -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
```
```

## TransportServers

TransportServers provide support for TCP/UDP but are in active development and provided as a preview feature.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
TransportServers provide support for TCP/UDP but are in active development and provided as a preview feature.
TransportServers provide support for TLS Passthrough and TCP/UDP load balancing. They 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/).
5 changes: 5 additions & 0 deletions examples/deployment-oss-min/global-configuration.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
apiVersion: k8s.nginx.org/v1alpha1
kind: GlobalConfiguration
metadata:
name: nginx-configuration
namespace: my-nginx-ingress
30 changes: 29 additions & 1 deletion examples/deployment-plus-min/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -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:
Expand Down Expand Up @@ -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
```
```

## 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/).
5 changes: 5 additions & 0 deletions examples/deployment-plus-min/global-configuration.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
apiVersion: k8s.nginx.org/v1alpha1
kind: GlobalConfiguration
metadata:
name: nginx-configuration
namespace: my-nginx-ingress