Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Documentation style changes for the "Installation" section #6015

Merged
merged 25 commits into from
Jul 31, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
25 commits
Select commit Hold shift + click to select a range
fb0b1c7
Rename files, update links and page titles accordingly
ADubhlaoich Jun 28, 2024
a129d1f
Merge branch 'main' into f5-style-installation
ADubhlaoich Jul 11, 2024
586bc80
Additional style changes
ADubhlaoich Jul 12, 2024
8aaa99f
[pre-commit.ci] auto fixes from pre-commit.com hooks
pre-commit-ci[bot] Jul 12, 2024
7370f7b
Merge branch 'main' into f5-style-installation
ADubhlaoich Jul 12, 2024
5677dd1
Apply suggestions from code review
ADubhlaoich Jul 15, 2024
2d72393
Update docs/content/installation/build-nginx-ingress-controller.md
ADubhlaoich Jul 15, 2024
0d4ad94
Merge branch 'main' into f5-style-installation
ADubhlaoich Jul 15, 2024
5a3a06f
Merge branch 'main' into f5-style-installation
ADubhlaoich Jul 16, 2024
d68c5be
Merge branch 'main' into f5-style-installation
ADubhlaoich Jul 17, 2024
e0519bf
Merge branch 'main' into f5-style-installation
ADubhlaoich Jul 18, 2024
c81d4cf
Merge branch 'main' into f5-style-installation
ADubhlaoich Jul 18, 2024
3fdd936
Merge branch 'main' into f5-style-installation
ADubhlaoich Jul 18, 2024
ac80d9a
Merge branch 'main' into f5-style-installation
ADubhlaoich Jul 23, 2024
60509b2
Merge branch 'main' into f5-style-installation
ADubhlaoich Jul 24, 2024
0fb48ef
Merge branch 'main' into f5-style-installation
ADubhlaoich Jul 24, 2024
cfe5e00
Merge branch 'main' into f5-style-installation
vepatel Jul 24, 2024
16af1f8
Merge branch 'main' into f5-style-installation
ADubhlaoich Jul 25, 2024
7833f66
Merge branch 'main' into f5-style-installation
ADubhlaoich Jul 25, 2024
da447e0
Fix broken links
ADubhlaoich Jul 25, 2024
14beb8c
Merge branch 'main' into f5-style-installation
ADubhlaoich Jul 30, 2024
b37f1cf
Merge branch 'main' into f5-style-installation
ADubhlaoich Jul 30, 2024
d51b865
Merge branch 'main' into f5-style-installation
ADubhlaoich Jul 30, 2024
6272398
Merge branch 'main' into f5-style-installation
ADubhlaoich Jul 31, 2024
1b15995
Merge branch 'main' into f5-style-installation
ADubhlaoich Jul 31, 2024
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
Original file line number Diff line number Diff line change
Expand Up @@ -3,14 +3,16 @@ description:
docs: DOCS-1453
doctypes:
- installation
title: Building NGINX Ingress Controller
title: Build NGINX Ingress Controller
toc: true
weight: 200
---

Learn how to build an NGINX Ingress Controller image from source code and upload it to a private Docker registry. You'll also find information on the Makefile targets and variables.
This document describes how to build an F5 NGINX Ingress Controller image from source code and upload it to a private Docker registry.

{{<call-out "tip" "Pre-built image alternatives" >}}If you'd rather not build your own NGINX Ingress Controller image, see the [pre-built image options](#pre-built-images) at the end of this guide.{{</call-out>}}
It also includes information on the Makefile targets and variables.

{{<call-out "tip" "Pre-built image alternatives" >}} If you do not need to build a custom image, see the [pre-built image options](#pre-built-images) at the end of this guide. {{</call-out>}}

## Before you start

Expand All @@ -22,7 +24,7 @@ To get started, you need the following software installed on your machine:
- [OpenSSL](https://www.openssl.org/), optionally, if you would like to generate a self-signed certificate and a key for the default server.
- For NGINX Plus users, download the certificate (_nginx-repo.crt_) and key (_nginx-repo.key_) from [MyF5](https://my.f5.com).

Although NGINX Ingress Controller is written in Golang, you don't need to have Golang installed. You can either download the precompiled binary file or build NGINX Ingress Controller in a Docker container.
Although NGINX Ingress Controller is written in Golang, you don't need to have Golang installed. You can download the precompiled binary file or build NGINX Ingress Controller in a Docker container.

---

Expand Down Expand Up @@ -56,7 +58,7 @@ Get your system ready for building and pushing the NGINX Ingress Controller imag

After setting up your environment, follow these steps to build the NGINX Ingress Controller image.

{{<note>}}If you have a local Golang environment and want to build the binary yourself, remove `TARGET=download` from the make commands. If you don't have Golang but still want to build the binary, use `TARGET=container`.{{</note>}}
{{< note >}} If you have a local Golang environment and want to build the binary yourself, remove `TARGET=download` from the make commands. If you don't have Golang but still want to build the binary, use `TARGET=container`. {{< /note >}}

### For NGINX

Expand Down Expand Up @@ -100,7 +102,7 @@ After setting up your environment, follow these steps to build the NGINX Ingress

**What to expect**: The image is built and tagged with a version number, which is derived from the `VERSION` variable in the [_Makefile_](#makefile-details). This version number is used for tracking and deployment purposes.

{{<note>}}In the event a patch version of NGINX Plus is released, make sure to rebuild your image to get the latest version. If your system is caching the Docker layers and not updating the packages, add `DOCKER_BUILD_OPTIONS="--pull --no-cache"` to the make command.{{</note>}}
{{<note>}} If a patch for NGINX Plus is released, make sure to rebuild your image to get the latest version. If your system is caching the Docker layers and not updating the packages, add `DOCKER_BUILD_OPTIONS="--pull --no-cache"` to the make command. {{</note>}}

---

Expand Down Expand Up @@ -192,7 +194,7 @@ If you prefer not to build your own NGINX Ingress Controller image, you can use

**NGINX Ingress Controller**: Download the image `nginx/nginx-ingress` from [DockerHub](https://hub.docker.com/r/nginx/nginx-ingress) or [GitHub](https://github.com/nginxinc/kubernetes-ingress/pkgs/container/kubernetes-ingress).

**NGINX Plus Ingress Controller**: You have two options for this, both requiring an NGINX Ingress Controller subscription.
**NGINX Plus Ingress Controller**: You have two options for this:

- Download the image using your NGINX Ingress Controller subscription certificate and key. See the [Getting the F5 Registry NGINX Ingress Controller Image]({{< relref "installation/nic-images/pulling-ingress-controller-image.md" >}}) guide.
- Use your NGINX Ingress Controller subscription JWT token to get the image: Instructions are in [Getting the NGINX Ingress Controller Image with JWT]({{< relref "installation/nic-images/using-the-jwt-token-docker-secret.md" >}}).
- Download the image using your NGINX Ingress Controller subscription certificate and key. View the [Get NGINX Ingress Controller from the F5 Registry]({{< relref "installation/nic-images/get-registry-image" >}}) topic.
- Use your NGINX Ingress Controller subscription JWT token to get the image. View the [Get the NGINX Ingress Controller image with JWT]({{< relref "installation/nic-images/get-image-using-jwt.md" >}}) topic.
4 changes: 2 additions & 2 deletions docs/content/installation/ingress-nginx.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,12 +4,12 @@ doctypes:
- tutorial
tags:
- docs
title: Migrating from Ingress-NGINX Controller to NGINX Ingress Controller
title: Migrate from Ingress-NGINX Controller to NGINX Ingress Controller
toc: true
weight: 500
---

This document describes how to migrate from the community-maintained Ingress-NGINX Controller to the F5 NGINX Ingress Controller.
This document describes how to migrate from the community-maintained Ingress-NGINX Controller to F5 NGINX Ingress Controller.

## Overview

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,18 +7,18 @@ toc: true
weight: 100
---

This document explains how to install NGINX Ingress Controller using [Helm](https://helm.sh/).
This document explains how to install F5 NGINX Ingress Controller using [Helm](https://helm.sh/).

## Before you start

{{<note>}} All documentation should only be used with the latest stable release, indicated on [the releases page]({{< relref "releases.md" >}}) of the GitHub repository. {{</note>}}
{{< note >}} All documentation should only be used with the latest stable release, indicated on [the releases page]({{< relref "releases.md" >}}) of the GitHub repository. {{< /note >}}

- A [Kubernetes Version Supported by the Ingress Controller](https://docs.nginx.com/nginx-ingress-controller/technical-specifications/#supported-kubernetes-versions)
- A [Kubernetes Version Supported by NGINX Ingress Controller](https://docs.nginx.com/nginx-ingress-controller/technical-specifications/#supported-kubernetes-versions)
- Helm 3.0+.
- If you’d like to use NGINX Plus:
- To pull from the F5 Container registry, configure a docker registry secret using your JWT token from the MyF5 portal by following the instructions from [here](https://docs.nginx.com/nginx-ingress-controller/installation/nic-images/using-the-jwt-token-docker-secret). Make sure to specify the secret using `controller.serviceAccount.imagePullSecretName` or `controller.serviceAccount.imagePullSecretsNames` parameter.
- Alternatively, pull an NGINX Ingress Controller image with NGINX Plus and push it to your private registry by following the instructions from [here]({{< relref "installation/nic-images/pulling-ingress-controller-image" >}}).
- Alternatively, you can NGINX build an Ingress Controller image with NGINX Plus and push it to your private registry by following the instructions from [here]({{< relref "installation/building-nginx-ingress-controller.md" >}}).
- Download the image using your NGINX Ingress Controller subscription certificate and key. View the [Get NGINX Ingress Controller from the F5 Registry]({{< relref "installation/nic-images/get-registry-image.md" >}}) topic.
- The [Get the NGINX Ingress Controller image with JWT]({{< relref "installation/nic-images/get-image-using-jwt.md" >}}) topic describes how to use your subscription JWT token to get the image.
- The [Build NGINX Ingress Controller]({{< relref "installation/build-nginx-ingress-controller.md" >}}) topic explains how to push an image to a private Docker registry.
- Update the `controller.image.repository` field of the `values-plus.yaml` accordingly.
- To use App Protect DoS, install the App Protect DoS Arbitrator [Helm Chart](https://github.com/nginxinc/nap-dos-arbitrator-helm-chart) in the same namespace as NGINX Ingress Controller. If you install multiple NGINX Ingress Controllers in the same namespace, they will need to share the same Arbitrator because there can only be one Arbitrator in a single namespace.

Expand Down Expand Up @@ -285,11 +285,11 @@ The steps you should follow depend on the Helm release name:
{{</tabs>}}


## Running Multiple Ingress Controllers
## Run multiple Ingress Controllers

If you are running multiple Ingress Controller releases in your cluster with enabled custom resources, the releases will share a single version of the CRDs. As a result, make sure that the Ingress Controller versions match the version of the CRDs. Additionally, when uninstalling a release, ensure that you don’t remove the CRDs until there are no other Ingress Controller releases running in the cluster.
If you are running multiple Ingress Controller releases in your cluster with enabled custom resources, the releases will share a single version of the CRDs. Ensure the Ingress Controller versions match the version of the CRDs. When uninstalling a release, ensure that you don’t remove the CRDs until there are no other Ingress Controller releases running in the cluster.

See [running multiple Ingress Controllers]({{< relref "installation/running-multiple-ingress-controllers.md" >}}) for more details.
The [Run multiple NGINX Ingress Controllers]({{< relref "installation/run-multiple-ingress-controllers.md" >}}) topic has more details.

## Configuration

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,17 +13,15 @@ This guide explains how to use Manifests to install NGINX Ingress Controller, th

### Get the NGINX Controller Image

{{<note>}} Always use the latest stable release listed on the [releases page]({{< relref "releases.md" >}}). {{</note>}}
{{< note >}} Always use the latest stable release listed on the [releases page]({{< relref "releases.md" >}}). {{< /note >}}

Choose one of the following methods to get the NGINX Ingress Controller image:

- **NGINX Ingress Controller**: Download the image `nginx/nginx-ingress` from [DockerHub](https://hub.docker.com/r/nginx/nginx-ingress).
- **NGINX Plus Ingress Controller**: You have two options for this, both requiring an NGINX Ingress Controller subscription.
ADubhlaoich marked this conversation as resolved.
Show resolved Hide resolved

- Download the image using your NGINX Ingress Controller subscription certificate and key. Read the [Getting the F5 Registry NGINX Ingress Controller Image]({{< relref "installation/nic-images/pulling-ingress-controller-image.md" >}}) guide.
- Use your NGINX Ingress Controller subscription JWT token to get the image: Read the [Getting the NGINX Ingress Controller Image with JWT]({{< relref "installation/nic-images/using-the-jwt-token-docker-secret.md" >}}).

- **Build your own image**: To build your own image, follow the [Building NGINX Ingress Controller]({{< relref "installation/building-nginx-ingress-controller.md" >}}) guide.
- Download the image using your NGINX Ingress Controller subscription certificate and key. View the [Get NGINX Ingress Controller from the F5 Registry]({{< relref "installation/nic-images/get-registry-image.md" >}}) topic.
- The [Get the NGINX Ingress Controller image with JWT]({{< relref "installation/nic-images/get-image-using-jwt.md" >}}) topic describes how to use your subscription JWT token to get the image.
- **Build your own image**: To build your own image, follow the [Build NGINX Ingress Controller]({{< relref "installation/build-nginx-ingress-controller.md" >}}) topic.

### Clone the repository

Expand Down Expand Up @@ -252,18 +250,18 @@ Connect to ports 80 and 443 using the IP address of any node in the cluster wher
kubectl delete namespace nginx-ingress
```

2. **Remove the cluster role and cluster role binding**:
1. **Remove the cluster role and cluster role binding**:

```shell
kubectl delete clusterrole nginx-ingress
kubectl delete clusterrolebinding nginx-ingress
```

3. **Delete the Custom Resource Definitions**:
1. **Delete the Custom Resource Definitions**:

{{<tabs name="delete-crds">}}
{{<tabs name="delete-crds">}}

{{%tab name="Deleting CRDs from single YAML"%}}
{{%tab name="Deleting CRDs from single YAML"%}}

1. Delete core custom resource definitions:
```shell
Expand All @@ -281,23 +279,23 @@ Connect to ports 80 and 443 using the IP address of any node in the cluster wher
```
{{%/tab%}}

{{%tab name="Deleting CRDs after cloning the repo"%}}
{{%tab name="Deleting CRDs after cloning the repo"%}}

1. Delete core custom resource definitions:
```shell
kubectl delete -f config/crd/bases/crds.yaml
```
2. Delete custom resource definitions for the NGINX App Protect WAF module:
1. Delete core custom resource definitions:
```shell
kubectl delete -f config/crd/bases/crds.yaml
```
2. Delete custom resource definitions for the NGINX App Protect WAF module:

```shell
kubectl apply -f config/crd/bases/crds-nap-waf.yaml
```
```shell
kubectl apply -f config/crd/bases/crds-nap-waf.yaml
```

3. Delete custom resource definitions for the NGINX App Protect DoS module:
```shell
kubectl apply -f config/crd/bases/crds-nap-dos.yaml
```
3. Delete custom resource definitions for the NGINX App Protect DoS module:
```shell
kubectl apply -f config/crd/bases/crds-nap-dos.yaml
```

{{%/tab%}}
{{%/tab%}}

{{</tabs>}}
{{</tabs>}}
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
docs: DOCS-604
doctypes:
- ''
title: Installation with the NGINX Ingress Operator
title: Installation with NGINX Ingress Operator
toc: true
weight: 300
---
Expand All @@ -11,19 +11,17 @@ This document explains how to use NGINX Ingress Operator to install NGINX Ingres

## Before you start

{{<note>}} We recommend the most recent stable version of NGINX Ingress Controller, available on the GitHub repository's [releases page]({{< relref "releases.md" >}}). {{</note>}}
{{< note >}} We recommend the most recent stable version of NGINX Ingress Controller, available on the GitHub repository's [releases page]({{< relref "releases.md" >}}). {{< /note >}}

1. Make sure you have access to the NGINX Ingress Controller image:

- For NGINX Ingress Controller, use the image `nginx/nginx-ingress` from [DockerHub](https://hub.docker.com/r/nginx/nginx-ingress).
- For NGINX Plus Ingress Controller, see [here]({{< relref "installation/nic-images/pulling-ingress-controller-image" >}}) for details on how to pull the image from the F5 Docker registry.
- To pull from the F5 Container registry, configure a docker registry secret using your JWT token from the MyF5 portal by following the instructions from [here]({{< relref "installation/nic-images/using-the-jwt-token-docker-secret" >}}).
- It is also possible to build your own image and push it to your private Docker registry by following the instructions from [here]({{< relref "installation/building-nginx-ingress-controller.md" >}})).

2. Install the NGINX Ingress Operator following the [instructions](https://github.com/nginxinc/nginx-ingress-helm-operator/blob/main/docs/installation.md).
3. Create the SecurityContextConstraint as outlined in the ["Getting Started" instructions](https://github.com/nginxinc/nginx-ingress-helm-operator/blob/main/README.md#getting-started).
- For NGINX Plus Ingress Controller, view the [Get the F5 Registry NGINX Ingress Controller image]({{< relref "installation/nic-images/get-registry-image.md" >}}) topic for details on how to pull the image from the F5 Docker registry.
- The [Get the NGINX Ingress Controller image with JWT]({{< relref "installation/nic-images/get-image-using-jwt.md" >}}) topic describes how to use your subscription JWT token to get the image.
- The [Build NGINX Ingress Controller]({{< relref "installation/build-nginx-ingress-controller.md" >}}) topic explains how to push an image to a private Docker registry.
1. Install the NGINX Ingress Operator following the [instructions](https://github.com/nginxinc/nginx-ingress-helm-operator/blob/main/docs/installation.md).
1. Create the SecurityContextConstraint as outlined in the ["Getting Started" instructions](https://github.com/nginxinc/nginx-ingress-helm-operator/blob/main/README.md#getting-started).

{{<note>}} If you're upgrading your operator installation to a later release, navigate [here](https://github.com/nginxinc/nginx-ingress-helm-operator/blob/main/helm-charts/nginx-ingress) and run `kubectl apply -f crds/` or `oc apply -f crds/` as a prerequisite{{</note>}}
{{< note >}} If you're upgrading your operator installation to a later release, navigate [here](https://github.com/nginxinc/nginx-ingress-helm-operator/blob/main/helm-charts/nginx-ingress) and run `kubectl apply -f crds/` or `oc apply -f crds/` as a prerequisite {{< /note >}}

## Create the NGINX Ingress Controller manifest

Expand All @@ -50,7 +48,7 @@ spec:
imagePullSecretName: ""
```

{{<note>}}For NGINX Plus, change the `image.repository` and `image.tag` values and change `nginxPlus` to `True`. If required, set the `serviceAccount.imagePullSecretName` or `serviceAccount.imagePullSecretsNames` to the name of the pre-created docker config secret that should be associated with the ServiceAccount.{{</note>}}
{{< note >}} For NGINX Plus, change the `image.repository` and `image.tag` values and change `nginxPlus` to `True`. If required, set the `serviceAccount.imagePullSecretName` or `serviceAccount.imagePullSecretsNames` to the name of the pre-created docker config secret that should be associated with the ServiceAccount. {{< /note >}}

## Deploy NGINX Ingress Controller

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ weight: 200

{{< tip >}}

Check out the complete [NGINX Ingress Controller with App Protect DoS example for VirtualServer](https://github.com/nginxinc/kubernetes-ingress/tree/v{{< nic-version >}}/examples/custom-resources/app-protect-dos) and the [NGINX Ingress Controller with App Protect DoS example for Ingress](https://github.com/nginxinc/kubernetes-ingress/tree/v{{< nic-version >}}/examples/ingress-resources/app-protect-dos).
Check out the complete [NGINX Ingress Controller with App Protect DoS example for VirtualServer](https://github.com/nginxinc/kubernetes-ingress/tree/v{{< nic-version >}}/examples/custom-resources/app-protect-dos) and the [NGINX Ingress Controller with App Protect DoS example for Ingress](https://github.com/nginxinc/kubernetes-ingress/tree/v{{< nic-version >}}/examples/ingress-resources/app-protect-dos).

{{< /tip >}}

Expand Down
Loading