Skip to content

Commit 5280053

Browse files
committed
Release 1.5.0
1 parent 4d4ad47 commit 5280053

File tree

13 files changed

+95
-33
lines changed

13 files changed

+95
-33
lines changed

CHANGELOG.md

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,47 @@
11
# Changelog
22

3+
### 1.5.0
4+
5+
FEATURES:
6+
* [560](https://github.com/nginxinc/kubernetes-ingress/pull/560): Add new configuration resources -- VirtualServer and VirtualServerRoute.
7+
* [554](https://github.com/nginxinc/kubernetes-ingress/pull/554): Add new Prometheus metrics related to the Ingress Controller's operation (as opposed to NGINX/NGINX Plus metrics).
8+
* [496](https://github.com/nginxinc/kubernetes-ingress/pull/496): Support a wildcard TLS certificate for TLS-enabled Ingress resources.
9+
* [485](https://github.com/nginxinc/kubernetes-ingress/pull/485): Support ExternalName services in Ingress backends.
10+
11+
IMPROVEMENTS:
12+
* Add new ConfigMap keys: `keepalive-timeout`, `keepalive-requests`, `access-log-off`, `variables-hash-bucket-size`, `variables-hash-max-size`. Added in [565](https://github.com/nginxinc/kubernetes-ingress/pull/565), [511](https://github.com/nginxinc/kubernetes-ingress/pull/511).
13+
* [504](https://github.com/nginxinc/kubernetes-ingress/pull/504): Run the Prometheus exporter inside the Ingress Controller process instead of a sidecar container.
14+
15+
BUGFIXES:
16+
* [520](https://github.com/nginxinc/kubernetes-ingress/pull/520): Fix the type of the Prometheus port annotation in manifests.
17+
* [481](https://github.com/nginxinc/kubernetes-ingress/pull/481): Fix the HSTS support.
18+
* [439](https://github.com/nginxinc/kubernetes-ingress/pull/439): Fix the validation of the `lb-method` ConfigMap key and `nginx.org/lb-method` annotation.
19+
20+
HELM CHART:
21+
* The version of the helm chart is now 0.3.0.
22+
* The helm chart is now available in our helm chart repo `helm.nginx.com/stable`.
23+
* Add new parameters to the Chart: `controller.service.httpPort.targetPort`, `controller.service.httpsPort.targetPort`, `controller.service.name`, `controller.pod.annotations`, `controller.config.name`, `controller.reportIngressStatus.leaderElectionLockName`, `controller.service.httpPort`, `controller.service.httpsPort`, `controller.service.loadBalancerIP`, `controller.service.loadBalancerSourceRanges`, `controller.tolerations`, `controller.affinity`. Added in [562](https://github.com/nginxinc/kubernetes-ingress/pull/562), [561](https://github.com/nginxinc/kubernetes-ingress/pull/561), [553](https://github.com/nginxinc/kubernetes-ingress/pull/553), [534](https://github.com/nginxinc/kubernetes-ingress/pull/534) thanks to [Paulo Ribeiro](https://github.com/paigr), [479](https://github.com/nginxinc/kubernetes-ingress/pull/479) thanks to [Alejandro Llanes](https://github.com/sombralibre), [468](https://github.com/nginxinc/kubernetes-ingress/pull/468), [456](https://github.com/nginxinc/kubernetes-ingress/pull/456).
24+
* [546](https://github.com/nginxinc/kubernetes-ingress/pull/546): Support deploying multiple Ingress Controllers in a cluster. **Note**: The generated resources have new names that are unique for each Ingress Controller. As a consequence, the name change affects the upgrade. See the HELM UPGRADE section for more information.
25+
* [542](https://github.com/nginxinc/kubernetes-ingress/pull/542): Reduce the required privileges in the RBAC manifests.
26+
27+
CHANGES:
28+
* Update NGINX version to 1.15.12.
29+
* Prometheus metrics for NGINX/NGINX Plus have new namespace `nginx_ingress`. Examples: `nginx_http_requests_total` -> `nginx_ingress_http_requests_total`, `nginxplus_http_requests_total` -> `nginx_ingress_nginxplus_http_requests_total`.
30+
31+
UPGRADE:
32+
* For NGINX, use the 1.5.0 image from our DockerHub: `nginx/nginx-ingress:1.5.0` or `nginx/nginx-ingress:1.5.0-alpine`
33+
* For NGINX Plus, please build your own image using the 1.5.0 source code.
34+
* For Helm, use version 0.3.0 of the chart.
35+
36+
HELM UPGRADE:
37+
38+
The new version of the helm chart uses different names for the generated resources. This makes it possible to deploy multiple Ingress Controllers in a cluster. However, as a side effect, during the upgrade from the previous version, helm will recreate the resources, instead of updating the existing ones. This, in turn, might cause problems for the following resources:
39+
* Service: If the service was created with the type LoadBalancer, the public IP of the new service might change. Additionally, helm updates the selector of the service, so that the old pods will be immediately excluded from the service.
40+
* Deployment/DaemonSet: Because the resource is recreated, the old pods will be removed and the new ones will be launched, instead of the default Deployment/Daemonset upgrade strategy.
41+
* ConfigMap: After the helm removes the resource, the old Ingress Controller pods will be immediately reconfigured to use the default values of the ConfigMap keys. During a small window between the reconfiguration and the shutdown of the old pods, NGINX will use the configuration with the default values.
42+
43+
We advise not to upgrade to the new version of the helm chart unless the mentioned problems are acceptable for your case. We will provide special upgrade instructions for helm that mitigate the problems for the next minor release of the Ingress Controller (1.5.1).
44+
345
### 1.4.6
446

547
CHANGES:

Makefile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
all: push
22

3-
VERSION = edge
3+
VERSION = 1.5.0
44
TAG = $(VERSION)
55
PREFIX = nginx/nginx-ingress
66

README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ Read [this doc](docs/nginx-plus.md) to learn more about NGINX Ingress controller
4949

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

52-
The latest stable release is [1.4.6](https://github.com/nginxinc/kubernetes-ingress/releases/tag/v1.4.6). For production use, we recommend that you choose the latest stable release. As an alternative, you can choose the *edge* version built from the [latest commit](https://github.com/nginxinc/kubernetes-ingress/commits/master) from the master branch. The edge version is useful for experimenting with new features that are not yet published in a stable release.
52+
The latest stable release is [1.5.0](https://github.com/nginxinc/kubernetes-ingress/releases/tag/v1.5.0). For production use, we recommend that you choose the latest stable release. As an alternative, you can choose the *edge* version built from the [latest commit](https://github.com/nginxinc/kubernetes-ingress/commits/master) from the master branch. The edge version is useful for experimenting with new features that are not yet published in a stable release.
5353

5454
To use the Ingress controller, you need to have access to:
5555
* An Ingress controller image.
@@ -62,7 +62,7 @@ The table below summarizes the options regarding the images, manifests, helm cha
6262

6363
| Version | Description | Image for NGINX | Image for NGINX Plus | Installation Manifests and Helm Chart | Documentation and Examples |
6464
| ------- | ----------- | --------------- | -------------------- | ---------------------------------------| -------------------------- |
65-
| Latest stable release | For production use | `nginx/nginx-ingress:1.4.6`, `nginx/nginx-ingress:1.4.6-alpine` from [DockerHub](https://hub.docker.com/r/nginx/nginx-ingress/) or [build your own image](https://github.com/nginxinc/kubernetes-ingress/tree/v1.4.6/build). | [Build your own image](https://github.com/nginxinc/kubernetes-ingress/tree/v1.4.6/build). | [Manifests](https://github.com/nginxinc/kubernetes-ingress/tree/v1.4.6/deployments). [Helm chart](https://github.com/nginxinc/kubernetes-ingress/tree/v1.4.6/deployments/helm-chart). | [Documentation](https://github.com/nginxinc/kubernetes-ingress/tree/v1.4.6/docs). [Examples](https://github.com/nginxinc/kubernetes-ingress/tree/v1.4.6/examples). |
65+
| Latest stable release | For production use | `nginx/nginx-ingress:1.5.0`, `nginx/nginx-ingress:1.5.0-alpine` from [DockerHub](https://hub.docker.com/r/nginx/nginx-ingress/) or [build your own image](https://github.com/nginxinc/kubernetes-ingress/tree/v1.5.0/build). | [Build your own image](https://github.com/nginxinc/kubernetes-ingress/tree/v1.5.0/build). | [Manifests](https://github.com/nginxinc/kubernetes-ingress/tree/v1.5.0/deployments). [Helm chart](https://github.com/nginxinc/kubernetes-ingress/tree/v1.5.0/deployments/helm-chart). | [Documentation](https://github.com/nginxinc/kubernetes-ingress/tree/v1.5.0/docs). [Examples](https://github.com/nginxinc/kubernetes-ingress/tree/v1.5.0/examples). |
6666
| Edge | For testing and experimenting | `nginx/nginx-ingress:edge`, `nginx/nginx-ingress:edge-alpine` from [DockerHub](https://hub.docker.com/r/nginx/nginx-ingress/) or [build your own image](https://github.com/nginxinc/kubernetes-ingress/tree/master/build). | [Build your own image](https://github.com/nginxinc/kubernetes-ingress/tree/master/build). | [Manifests](https://github.com/nginxinc/kubernetes-ingress/tree/master/deployments). [Helm chart](https://github.com/nginxinc/kubernetes-ingress/tree/master/deployments/helm-chart). | [Documentation](https://github.com/nginxinc/kubernetes-ingress/tree/master/docs). [Examples](https://github.com/nginxinc/kubernetes-ingress/tree/master/examples). |
6767

6868
## Contacts

build/README.md

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@ We build the image using the make utility and the provided `Makefile`. Let’s c
3030
1. Clone the Ingress controller repo:
3131
```
3232
$ git clone https://github.com/nginxinc/kubernetes-ingress/
33+
$ git checkout v1.5.0
3334
```
3435
3536
1. Build the image:
@@ -40,7 +41,7 @@ We build the image using the make utility and the provided `Makefile`. Let’s c
4041
```
4142
`myregistry.example.com/nginx-ingress` defines the repo in your private registry where the image will be pushed. Substitute that value with the repo in your private registry.
4243
43-
As the result, the image **myregistry.example.com/nginx-ingress:edge** is built and pushed to the registry. Note that the tag `edge` comes from the `VERSION` variable, defined in the Makefile.
44+
As the result, the image **myregistry.example.com/nginx-ingress:1.5.0** is built and pushed to the registry. Note that the tag `1.5.0` comes from the `VERSION` variable, defined in the Makefile.
4445
4546
* For NGINX Plus, first, make sure that the certificate (`nginx-repo.crt`) and the key (`nginx-repo.key`) of your license are located in the root of the project:
4647
```
@@ -54,7 +55,7 @@ We build the image using the make utility and the provided `Makefile`. Let’s c
5455
```
5556
`myregistry.example.com/nginx-plus-ingress` defines the repo in your private registry where the image will be pushed. Substitute that value with the repo in your private registry.
5657
57-
As the result, the image **myregistry.example.com/nginx-plus-ingress:edge** is built and pushed to the registry. Note that the tag `edge` comes from the `VERSION` variable, defined in the Makefile.
58+
As the result, the image **myregistry.example.com/nginx-plus-ingress:1.5.0** is built and pushed to the registry. Note that the tag `1.5.0` comes from the `VERSION` variable, defined in the Makefile.
5859
5960
Next you will find the details about available Makefile targets and variables.
6061

deployments/daemon-set/nginx-ingress.yaml

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,8 +17,7 @@ spec:
1717
spec:
1818
serviceAccountName: nginx-ingress
1919
containers:
20-
- image: nginx/nginx-ingress:edge
21-
imagePullPolicy: Always
20+
- image: nginx/nginx-ingress:1.5.0
2221
name: nginx-ingress
2322
ports:
2423
- name: http

deployments/daemon-set/nginx-plus-ingress.yaml

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,8 +17,7 @@ spec:
1717
spec:
1818
serviceAccountName: nginx-ingress
1919
containers:
20-
- image: nginx-plus-ingress:edge
21-
imagePullPolicy: Always
20+
- image: nginx-plus-ingress:1.5.0
2221
name: nginx-plus-ingress
2322
ports:
2423
- name: http

deployments/deployment/nginx-ingress.yaml

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,7 @@ spec:
1818
spec:
1919
serviceAccountName: nginx-ingress
2020
containers:
21-
- image: nginx/nginx-ingress:edge
22-
imagePullPolicy: Always
21+
- image: nginx/nginx-ingress:1.5.0
2322
name: nginx-ingress
2423
ports:
2524
- name: http

deployments/deployment/nginx-plus-ingress.yaml

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,7 @@ spec:
1818
spec:
1919
serviceAccountName: nginx-ingress
2020
containers:
21-
- image: nginx-plus-ingress:edge
22-
imagePullPolicy: Always
21+
- image: nginx-plus-ingress:1.5.0
2322
name: nginx-plus-ingress
2423
ports:
2524
- name: http

deployments/helm-chart/Chart.yaml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
name: nginx-ingress
2-
version: 0.9.0
3-
appVersion: edge
2+
version: 0.3.0
3+
appVersion: 1.5.0
44
description: NGINX Ingress Controller
5-
icon: https://raw.githubusercontent.com/nginxinc/kubernetes-ingress/master/deployments/helm-chart/chart-icon.png
5+
icon: https://raw.githubusercontent.com/nginxinc/kubernetes-ingress/v1.5.0/deployments/helm-chart/chart-icon.png
66
sources:
7-
- https://github.com/nginxinc/kubernetes-ingress/tree/master/deployments/helm-chart
7+
- https://github.com/nginxinc/kubernetes-ingress/tree/v1.5.0/deployments/helm-chart
88
keywords:
99
- ingress
1010
- nginx

deployments/helm-chart/README.md

Lines changed: 36 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -6,38 +6,61 @@ This chart deploys the NGINX Ingress controller in your Kubernetes cluster.
66

77
## Prerequisites
88

9-
- Kubernetes 1.6+.
109
- Helm 2.8.x+.
11-
- Git.
10+
- Git (for installation using the chart source files).
1211
- If you’d like to use NGINX Plus:
13-
- Build an Ingress controller image with NGINX Plus and push it to your private registry by following the instructions from [here](../../build/README.md).
14-
- Update the `controller.image.repository` field of the `values-plus.yaml` accordingly.
12+
- Build an Ingress controller image with NGINX Plus and push it to your private registry by following the instructions from [here](https://github.com/nginxinc/kubernetes-ingress/blob/v1.5.0/build/README.md).
13+
- Configure `controller.nginxplus` and `controller.image.repository` parameters accordingly using a values file or the `--set` flag of the `helm install` command.
1514

1615
## Installing the Chart
1716

18-
1. Clone the Ingress controller repo:
19-
```console
17+
### Installing via Helm Repository
18+
19+
1. Add NGINX Helm repository:
20+
```
21+
$ helm repo add nginx-stable https://helm.nginx.com/stable
22+
$ helm repo update
23+
```
24+
25+
2. To install the chart with the release name my-release (my-release is the name that you choose):
26+
27+
For NGINX:
28+
```
29+
$ helm install nginx-stable/nginx-ingress --name my-release
30+
```
31+
32+
For NGINX Plus (assuming you have pushed the Ingress controller image `nginx-plus-ingress` to your private registry `myregistry.example.com`):
33+
```
34+
$ helm install nginx-stable/nginx-ingress --name my-release --set controller.image.repository=myregistry.example.com/nginx-plus-ingress --set controller.nginxplus=true
35+
```
36+
37+
### Installing Using Chart Sources
38+
39+
1. Clone the Ingress controller repo and check out the latest stable version:
40+
```
2041
$ git clone https://github.com/nginxinc/kubernetes-ingress/
42+
$ git checkout v1.5.0
2143
```
2244
2. Change your working directory to /deployments/helm-chart:
23-
```console
45+
```
2446
$ cd kubernetes-ingress/deployments/helm-chart
2547
```
2648
3. To install the chart with the release name my-release (my-release is the name that you choose):
2749
2850
For NGINX:
29-
```console
51+
```
3052
$ helm install --name my-release .
3153
```
3254
33-
For NGINX Plus:
34-
```console
55+
For NGINX Plus (assuming you have configured the `controller.nginxplus` and `controller.image.repository` parameters in the values file `values-plus.yaml`):
56+
```
3557
$ helm install --name my-release -f values-plus.yaml .
3658
```
3759
38-
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.
60+
### Notes
3961
40-
When deploying the Ingress controller, make sure to use your own TLS certificate and key for the default server rather than the default pre-generated ones. Read the [Configuration](#Configuration) section below to see how to configure a TLS certificate and key for the default server. Note that the default server returns the Not Found page with the 404 status code for all requests for domains for which there are no Ingress rules defined.
62+
* The `helm install` 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.
63+
* When deploying the Ingress controller, make sure to use your own TLS certificate and key for the default server rather than the default pre-generated ones. Read the [Configuration](#Configuration) section below to see how to configure a TLS certificate and key for the default server. Note that the default server returns the Not Found page with the 404 status code for all requests for domains for which there are no Ingress rules defined.
4164
4265
> **Tip**: List all releases using `helm list`
4366
@@ -63,7 +86,7 @@ Parameter | Description | Default
6386
`controller.hostNetwork` | Enables the Ingress controller pods to use the host's network namespace. | false
6487
`controller.nginxDebug` | Enables debugging for NGINX. Uses the `nginx-debug` binary. Requires `error-log-level: debug` in the ConfigMap via `controller.config.entries`. | false
6588
`controller.image.repository` | The image repository of the Ingress controller. | nginx/nginx-ingress
66-
`controller.image.tag` | The tag of the Ingress controller image. | edge
89+
`controller.image.tag` | The tag of the Ingress controller image. | 1.5.0
6790
`controller.image.pullPolicy` | The pull policy for the Ingress controller image. | IfNotPresent
6891
`controller.config.name` | The name of the ConfigMap used by the Ingress controller. | Autogenerated
6992
`controller.config.entries` | The entries of the ConfigMap for customizing NGINX configuration. | {}

0 commit comments

Comments
 (0)