Skip to content

Commit

Permalink
Release 3.2.0 (#4055)
Browse files Browse the repository at this point in the history
  • Loading branch information
lucacome committed Jun 27, 2023
1 parent 8a02029 commit 6ce07ed
Show file tree
Hide file tree
Showing 42 changed files with 1,187 additions and 546 deletions.
161 changes: 148 additions & 13 deletions CHANGELOG.md

Large diffs are not rendered by default.

4 changes: 2 additions & 2 deletions README.md
Expand Up @@ -51,7 +51,7 @@ In the case of NGINX, the Ingress Controller is deployed in a pod along with the

We publish NGINX Ingress Controller releases on GitHub. See our [releases page](https://github.com/nginxinc/kubernetes-ingress/releases).

The latest stable release is [3.1.1](https://github.com/nginxinc/kubernetes-ingress/releases/tag/v3.1.1). For production use, we recommend that you choose the latest stable release.
The latest stable release is [3.2.0](https://github.com/nginxinc/kubernetes-ingress/releases/tag/v3.2.0). For production use, we recommend that you choose the latest stable release.

The edge version is useful for experimenting with new features that are not yet published in a stable release. To use it, choose the *edge* version built from the [latest commit](https://github.com/nginxinc/kubernetes-ingress/commits/main) from the main branch.

Expand All @@ -67,7 +67,7 @@ The table below summarizes the options regarding the images, Helm chart, manifes

| Version | Description | Image for NGINX | Image for NGINX Plus | Installation Manifests and Helm Chart | Documentation and Examples |
| ------- | ----------- | --------------- | -------------------- | ---------------------------------------| -------------------------- |
| Latest stable release | For production use | Use the 3.1.1 images from [DockerHub](https://hub.docker.com/r/nginx/nginx-ingress/), [GitHub Container](https://github.com/nginxinc/kubernetes-ingress/pkgs/container/kubernetes-ingress), [Amazon ECR Public Gallery](https://gallery.ecr.aws/nginx/nginx-ingress) or [Quay.io](https://quay.io/repository/nginx/nginx-ingress) or [build your own image](https://docs.nginx.com/nginx-ingress-controller/installation/building-ingress-controller-image/). | Use the 3.1.1 images from the [F5 Container Registry](https://docs.nginx.com/nginx-ingress-controller/installation/pulling-ingress-controller-image/) or the [AWS Marketplace](https://aws.amazon.com/marketplace/search/?CREATOR=741df81b-dfdc-4d36-b8da-945ea66b522c&FULFILLMENT_OPTION_TYPE=CONTAINER&filters=CREATOR%2CFULFILLMENT_OPTION_TYPE) or [Build your own image](https://docs.nginx.com/nginx-ingress-controller/installation/building-ingress-controller-image/). | [Manifests](https://github.com/nginxinc/kubernetes-ingress/tree/v3.1.1/deployments). [Helm chart](https://github.com/nginxinc/kubernetes-ingress/tree/v3.1.1/deployments/helm-chart). | [Documentation](https://docs.nginx.com/nginx-ingress-controller/). [Examples](https://docs.nginx.com/nginx-ingress-controller/configuration/configuration-examples/). |
| Latest stable release | For production use | Use the 3.2.0 images from [DockerHub](https://hub.docker.com/r/nginx/nginx-ingress/), [GitHub Container](https://github.com/nginxinc/kubernetes-ingress/pkgs/container/kubernetes-ingress), [Amazon ECR Public Gallery](https://gallery.ecr.aws/nginx/nginx-ingress) or [Quay.io](https://quay.io/repository/nginx/nginx-ingress) or [build your own image](https://docs.nginx.com/nginx-ingress-controller/installation/building-ingress-controller-image/). | Use the 3.2.0 images from the [F5 Container Registry](https://docs.nginx.com/nginx-ingress-controller/installation/pulling-ingress-controller-image/) or the [AWS Marketplace](https://aws.amazon.com/marketplace/search/?CREATOR=741df81b-dfdc-4d36-b8da-945ea66b522c&FULFILLMENT_OPTION_TYPE=CONTAINER&filters=CREATOR%2CFULFILLMENT_OPTION_TYPE) or [Build your own image](https://docs.nginx.com/nginx-ingress-controller/installation/building-ingress-controller-image/). | [Manifests](https://github.com/nginxinc/kubernetes-ingress/tree/v3.2.0/deployments). [Helm chart](https://github.com/nginxinc/kubernetes-ingress/tree/v3.2.0/deployments/helm-chart). | [Documentation](https://docs.nginx.com/nginx-ingress-controller/). [Examples](https://docs.nginx.com/nginx-ingress-controller/configuration/configuration-examples/). |
| Edge/Nightly | For testing and experimenting | Use the edge or nightly images from [DockerHub](https://hub.docker.com/r/nginx/nginx-ingress/), [GitHub Container](https://github.com/nginxinc/kubernetes-ingress/pkgs/container/kubernetes-ingress), [Amazon ECR Public Gallery](https://gallery.ecr.aws/nginx/nginx-ingress) or [Quay.io](https://quay.io/repository/nginx/nginx-ingress) or [build your own image](https://github.com/nginxinc/kubernetes-ingress/tree/main/docs/content/installation/building-ingress-controller-image.md). | [Build your own image](https://github.com/nginxinc/kubernetes-ingress/tree/main/docs/content/installation/building-ingress-controller-image.md). | [Manifests](https://github.com/nginxinc/kubernetes-ingress/tree/main/deployments). [Helm chart](https://github.com/nginxinc/kubernetes-ingress/tree/main/deployments/helm-chart). | [Documentation](https://github.com/nginxinc/kubernetes-ingress/tree/main/docs/content). [Examples](https://github.com/nginxinc/kubernetes-ingress/tree/main/examples). |

## SBOM (Software Bill of Materials)
Expand Down
4 changes: 2 additions & 2 deletions deployments/daemon-set/nginx-ingress.yaml
Expand Up @@ -32,7 +32,7 @@ spec:
# - name: nginx-log
# emptyDir: {}
containers:
- image: nginx/nginx-ingress:3.1.1
- image: nginx/nginx-ingress:3.2.0
imagePullPolicy: IfNotPresent
name: nginx-ingress
ports:
Expand Down Expand Up @@ -96,7 +96,7 @@ spec:
#- -enable-prometheus-metrics
#- -global-configuration=$(POD_NAMESPACE)/nginx-configuration
# initContainers:
# - image: nginx/nginx-ingress:3.1.1
# - image: nginx/nginx-ingress:3.2.0
# imagePullPolicy: IfNotPresent
# name: init-nginx-ingress
# command: ['cp', '-vdR', '/etc/nginx/.', '/mnt/etc']
Expand Down
4 changes: 2 additions & 2 deletions deployments/daemon-set/nginx-plus-ingress.yaml
Expand Up @@ -32,7 +32,7 @@ spec:
# - name: nginx-log
# emptyDir: {}
containers:
- image: nginx-plus-ingress:3.1.1
- image: nginx-plus-ingress:3.2.0
imagePullPolicy: IfNotPresent
name: nginx-plus-ingress
ports:
Expand Down Expand Up @@ -99,7 +99,7 @@ spec:
#- -enable-prometheus-metrics
#- -global-configuration=$(POD_NAMESPACE)/nginx-configuration
# initContainers:
# - image: nginx/nginx-ingress:3.1.1
# - image: nginx/nginx-ingress:3.2.0
# imagePullPolicy: IfNotPresent
# name: init-nginx-ingress
# command: ['cp', '-vdR', '/etc/nginx/.', '/mnt/etc']
Expand Down
4 changes: 2 additions & 2 deletions deployments/deployment/nginx-ingress.yaml
Expand Up @@ -33,7 +33,7 @@ spec:
# - name: nginx-log
# emptyDir: {}
containers:
- image: nginx/nginx-ingress:3.1.1
- image: nginx/nginx-ingress:3.2.0
imagePullPolicy: IfNotPresent
name: nginx-ingress
ports:
Expand Down Expand Up @@ -97,7 +97,7 @@ spec:
#- -enable-prometheus-metrics
#- -global-configuration=$(POD_NAMESPACE)/nginx-configuration
# initContainers:
# - image: nginx/nginx-ingress:3.1.1
# - image: nginx/nginx-ingress:3.2.0
# imagePullPolicy: IfNotPresent
# name: init-nginx-ingress
# command: ['cp', '-vdR', '/etc/nginx/.', '/mnt/etc']
Expand Down
4 changes: 2 additions & 2 deletions deployments/deployment/nginx-plus-ingress.yaml
Expand Up @@ -33,7 +33,7 @@ spec:
# - name: nginx-log
# emptyDir: {}
containers:
- image: nginx-plus-ingress:3.1.1
- image: nginx-plus-ingress:3.2.0
imagePullPolicy: IfNotPresent
name: nginx-plus-ingress
ports:
Expand Down Expand Up @@ -103,7 +103,7 @@ spec:
#- -enable-service-insight
#- -global-configuration=$(POD_NAMESPACE)/nginx-configuration
# initContainers:
# - image: nginx/nginx-ingress:3.1.1
# - image: nginx/nginx-ingress:3.2.0
# imagePullPolicy: IfNotPresent
# name: init-nginx-ingress
# command: ['cp', '-vdR', '/etc/nginx/.', '/mnt/etc']
Expand Down
8 changes: 4 additions & 4 deletions deployments/helm-chart/Chart.yaml
@@ -1,14 +1,14 @@
apiVersion: v2
name: nginx-ingress
version: 0.17.1
appVersion: 3.1.1
version: 0.18.0
appVersion: 3.2.0
kubeVersion: ">= 1.22.0-0"
type: application
description: NGINX Ingress Controller
icon: https://raw.githubusercontent.com/nginxinc/kubernetes-ingress/v3.1.1/deployments/helm-chart/chart-icon.png
icon: https://raw.githubusercontent.com/nginxinc/kubernetes-ingress/v3.2.0/deployments/helm-chart/chart-icon.png
home: https://github.com/nginxinc/kubernetes-ingress
sources:
- https://github.com/nginxinc/kubernetes-ingress/tree/v3.1.1/deployments/helm-chart
- https://github.com/nginxinc/kubernetes-ingress/tree/v3.2.0/deployments/helm-chart
keywords:
- ingress
- nginx
Expand Down
64 changes: 36 additions & 28 deletions deployments/helm-chart/README.md
Expand Up @@ -6,14 +6,14 @@ This chart deploys the NGINX Ingress Controller in your Kubernetes cluster.

## Prerequisites

- A [Kubernetes Version Supported by the 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/using-the-jwt-token-docker-secret). Make sure to specify the secret using `controller.serviceAccount.imagePullSecretName` parameter.
- Alternatively, pull an Ingress Controller image with NGINX Plus and push it to your private registry by following the instructions from [here](https://docs.nginx.com/nginx-ingress-controller/installation/pulling-ingress-controller-image).
- Alternatively, you can build an Ingress Controller image with NGINX Plus and push it to your private registry by following the instructions from [here](https://docs.nginx.com/nginx-ingress-controller/installation/building-ingress-controller-image).
- Update the `controller.image.repository` field of the `values-plus.yaml` accordingly.
- If you’d like to use App Protect DoS, please install App Protect DoS Arbitrator [helm chart](https://github.com/nginxinc/nap-dos-arbitrator-helm-chart). Make sure to install in the same namespace as the NGINX Ingress Controller. Note that if you install multiple NGINX Ingress Controllers in the same namespace, they will need to share the same Arbitrator because it is not possible to install more than one Arbitrator in a single namespace.
- A [Kubernetes Version Supported by the 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/using-the-jwt-token-docker-secret). Make sure to specify the secret using `controller.serviceAccount.imagePullSecretName` parameter.
- Alternatively, pull an Ingress Controller image with NGINX Plus and push it to your private registry by following the instructions from [here](https://docs.nginx.com/nginx-ingress-controller/installation/pulling-ingress-controller-image).
- Alternatively, you can build an Ingress Controller image with NGINX Plus and push it to your private registry by following the instructions from [here](https://docs.nginx.com/nginx-ingress-controller/installation/building-ingress-controller-image).
- Update the `controller.image.repository` field of the `values-plus.yaml` accordingly.
- If you’d like to use App Protect DoS, please install App Protect DoS Arbitrator [helm chart](https://github.com/nginxinc/nap-dos-arbitrator-helm-chart). Make sure to install in the same namespace as the NGINX Ingress Controller. Note that if you install multiple NGINX Ingress Controllers in the same namespace, they will need to share the same Arbitrator because it is not possible to install more than one Arbitrator in a single namespace.

## CRDs

Expand All @@ -26,8 +26,9 @@ If you do not use the custom resources that require those CRDs (which correspond
To upgrade the CRDs, pull the chart sources as described in [Pulling the Chart](#pulling-the-chart) and then run:

```console
$ kubectl apply -f crds/
kubectl apply -f crds/
```

> **Note**
>
> The following warning is expected and can be ignored: `Warning: kubectl apply should be used on resource created by either kubectl create --save-config or kubectl apply`.
Expand All @@ -39,26 +40,29 @@ $ kubectl apply -f crds/
To remove the CRDs, pull the chart sources as described in [Pulling the Chart](#pulling-the-chart) and then run:

```console
$ kubectl delete -f crds/
kubectl delete -f crds/
```

> **Note**
>
> This command will delete all the corresponding custom resources in your cluster across all namespaces. Please ensure there are no custom resources that you want to keep and there are no other Ingress Controller releases running in the cluster.

## Managing the Chart via OCI Registry

### Installing the Chart

To install the chart with the release name my-release (my-release is the name that you choose):

For NGINX:

```console
$ helm install my-release oci://ghcr.io/nginxinc/charts/nginx-ingress --version 0.17.1
helm install my-release oci://ghcr.io/nginxinc/charts/nginx-ingress --version 0.18.0
```

For NGINX Plus: (assuming you have pushed the Ingress Controller image `nginx-plus-ingress` to your private registry `myregistry.example.com`)

```console
$ helm install my-release oci://ghcr.io/nginxinc/charts/nginx-ingress --version 0.17.1 --set controller.image.repository=myregistry.example.com/nginx-plus-ingress --set controller.nginxplus=true
helm install my-release oci://ghcr.io/nginxinc/charts/nginx-ingress --version 0.18.0 --set controller.image.repository=myregistry.example.com/nginx-plus-ingress --set controller.nginxplus=true
```

This will install the latest `edge` version of the Ingress Controller from GitHub Container Registry. If you prefer to use Docker Hub, you can replace `ghcr.io/nginxinc/charts/nginx-ingress` with `registry-1.docker.io/nginxcharts/nginx-ingress`.
Expand All @@ -70,16 +74,17 @@ Helm does not upgrade the CRDs during a release upgrade. Before you upgrade a re
To upgrade the release `my-release`:

```console
$ helm upgrade my-release oci://ghcr.io/nginxinc/charts/nginx-ingress --version 0.17.1
helm upgrade my-release oci://ghcr.io/nginxinc/charts/nginx-ingress --version 0.18.0
```

### Uninstalling the Chart

To uninstall/delete the release `my-release`:

```console
$ helm uninstall my-release
helm uninstall my-release
```

The command removes all the Kubernetes components associated with the release and deletes the release.

Uninstalling the release does not remove the CRDs. To remove the CRDs, see [Uninstalling the CRDs](#uninstalling-the-crds).
Expand All @@ -90,42 +95,45 @@ To test the latest changes in NGINX Ingress Controller before a new release, you
You can install the `edge` version by specifying the `--version` flag with the value `0.0.0-edge`:

```console
$ helm install my-release oci://ghcr.io/nginxinc/charts/nginx-ingress --version 0.0.0-edge
helm install my-release oci://ghcr.io/nginxinc/charts/nginx-ingress --version 0.0.0-edge
```

> **Warning**
>
> The `edge` version is not intended for production use. It is intended for testing and development purposes only.

## Managing the Chart via Sources

### Pulling the Chart

This step is required if you're installing the chart using its sources. Additionally, the step is also required for managing the custom resource definitions (CRDs), which the Ingress Controller requires by default, or for upgrading/deleting the CRDs.

1. Pull the chart sources:

```console
$ helm pull oci://ghcr.io/nginxinc/charts/nginx-ingress --untar --version 0.17.1
helm pull oci://ghcr.io/nginxinc/charts/nginx-ingress --untar --version 0.18.0
```

2. Change your working directory to nginx-ingress:

```console
$ cd nginx-ingress
cd nginx-ingress
```

### Installing the Chart

To install the chart with the release name my-release (my-release is the name that you choose):

For NGINX:

```console
$ helm install my-release .
helm install my-release .
```

For NGINX Plus:

```console
$ helm install my-release -f values-plus.yaml .
helm install my-release -f values-plus.yaml .
```

The command deploys the Ingress Controller in your Kubernetes cluster in the default configuration. The configuration section lists the parameters that can be configured during installation.
Expand All @@ -137,15 +145,15 @@ Helm does not upgrade the CRDs during a release upgrade. Before you upgrade a re
To upgrade the release `my-release`:

```console
$ helm upgrade my-release .
helm upgrade my-release .
```

### Uninstalling the Chart

To uninstall/delete the release `my-release`:

```console
$ helm uninstall my-release
helm uninstall my-release
```

The command removes all the Kubernetes components associated with the release and deletes the release.
Expand All @@ -158,7 +166,6 @@ If you are running multiple Ingress Controller releases in your cluster with ena

See [running multiple Ingress Controllers](https://docs.nginx.com/nginx-ingress-controller/installation/running-multiple-ingress-controllers/) for more details.


## Configuration

The following tables lists the configurable parameters of the NGINX Ingress Controller chart and their default values.
Expand All @@ -174,9 +181,9 @@ The following tables lists the configurable parameters of the NGINX Ingress Cont
|`controller.dnsPolicy` | DNS policy for the Ingress Controller pods. | ClusterFirst |
|`controller.nginxDebug` | Enables debugging for NGINX. Uses the `nginx-debug` binary. Requires `error-log-level: debug` in the ConfigMap via `controller.config.entries`. | false |
|`controller.logLevel` | The log level of the Ingress Controller. | 1 |
|`controller.image.digest ` | The image digest of the Ingress Controller. | None |
|`controller.image.digest` | The image digest of the Ingress Controller. | None |
|`controller.image.repository` | The image repository of the Ingress Controller. | nginx/nginx-ingress |
|`controller.image.tag` | The tag of the Ingress Controller image. | 3.1.1 |
|`controller.image.tag` | The tag of the Ingress Controller image. | 3.2.0 |
|`controller.image.pullPolicy` | The pull policy for the Ingress Controller image. | IfNotPresent |
|`controller.lifecycle` | The lifecycle of the Ingress Controller pods. | {} |
|`controller.customConfigMap` | The name of the custom ConfigMap used by the Ingress Controller. If set, then the default config is ignored. | "" |
Expand Down Expand Up @@ -293,5 +300,6 @@ The following tables lists the configurable parameters of the NGINX Ingress Cont
|`nginxServiceMesh.enableEgress` | Enable NGINX Service Mesh workloads to route egress traffic through the Ingress Controller. See the NGINX Service Mesh [docs](https://docs.nginx.com/nginx-service-mesh/tutorials/kic/deploy-with-kic/#enabling-egress) for more details. Requires `nginxServiceMesh.enable`. | false |

## Notes
* The values-icp.yaml file is used for deploying the Ingress Controller on IBM Cloud Private. See the [blog post](https://www.nginx.com/blog/nginx-ingress-controller-ibm-cloud-private/) for more details.
* The values-nsm.yaml file is used for deploying the Ingress Controller with NGINX Service Mesh. See the NGINX Service Mesh [docs](https://docs.nginx.com/nginx-service-mesh/tutorials/kic/deploy-with-kic/) for more details.

- The values-icp.yaml file is used for deploying the Ingress Controller on IBM Cloud Private. See the [blog post](https://www.nginx.com/blog/nginx-ingress-controller-ibm-cloud-private/) for more details.
- The values-nsm.yaml file is used for deploying the Ingress Controller with NGINX Service Mesh. See the NGINX Service Mesh [docs](https://docs.nginx.com/nginx-service-mesh/tutorials/kic/deploy-with-kic/) for more details.
2 changes: 1 addition & 1 deletion deployments/helm-chart/values-icp.yaml
Expand Up @@ -4,7 +4,7 @@ controller:
nginxplus: true
image:
repository: mycluster.icp:8500/kube-system/nginx-plus-ingress
tag: "3.1.1"
tag: "3.2.0"
nodeSelector:
beta.kubernetes.io/arch: "amd64"
proxy: true
Expand Down
2 changes: 1 addition & 1 deletion deployments/helm-chart/values-plus.yaml
Expand Up @@ -3,4 +3,4 @@ controller:
nginxplus: true
image:
repository: nginx-plus-ingress
tag: "3.1.1"
tag: "3.2.0"
3 changes: 1 addition & 2 deletions deployments/helm-chart/values.yaml
Expand Up @@ -54,7 +54,7 @@ controller:
repository: nginx/nginx-ingress

## The tag of the Ingress Controller image. If not specified the appVersion from Chart.yaml is used as a tag.
# tag: "3.1.1"
# tag: "3.2.0"

## The digest of the Ingress Controller image.
## If digest is specified it has precedence over tag and will be used instead
Expand Down Expand Up @@ -142,7 +142,6 @@ controller:
# cpu: 1
# memory: 1Gi


## The tolerations of the Ingress Controller pods.
tolerations: []

Expand Down

0 comments on commit 6ce07ed

Please sign in to comment.