Skip to content
This repository was archived by the owner on Mar 14, 2024. It is now read-only.

Commit 7c8e2e3

Browse files
committed
Add release notes for 2.0 (#293)
1 parent f0dfe35 commit 7c8e2e3

File tree

1 file changed

+121
-0
lines changed

1 file changed

+121
-0
lines changed

Diff for: docs/content/releases/release-notes-2.0.0.md

+121
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,121 @@
1+
---
2+
title: "Release Notes 2.0.0"
3+
date: 25 April 2023
4+
draft: false
5+
toc: true
6+
description: Release information for NGINX Service Mesh, a configurable, low‑latency infrastructure layer designed to handle a high volume of network‑based interprocess communication among application infrastructure services using application programming interfaces (APIs). Lists of new features and known issues are provided.
7+
weight: -1800
8+
categories: ["reference"]
9+
---
10+
11+
## NGINX Service Mesh Version 2.0.0
12+
13+
25 April 2023
14+
15+
<!-- vale off -->
16+
17+
These release notes provide general information and describe known issues for NGINX Service Mesh version 2.0.0, in the following categories:
18+
19+
- [NGINX Service Mesh Version 2.0.0](#nginx-service-mesh-version-200)
20+
- [Updates](#updates)
21+
- [Resolved Issues](#resolved-issues)
22+
- [Known Issues](#known-issues)
23+
- {{< link "/about/tech-specs" "Supported Versions" >}}
24+
25+
<br/>
26+
<br/>
27+
<span id="200-updates"></a>
28+
29+
### **Updates**
30+
31+
NGINX Service Mesh 2.0.0 includes the following updates:
32+
<br/><br/>
33+
34+
- NGINX Service Mesh global configuration API has been moved to a Kubernetes Custom Resource Definition. The NGINX Service Mesh API server has been removed. See the [API Usage guide]( {{< ref "api-usage.md" >}} ) for details on how to use the new CRD.
35+
- Removed deprecated auto-injection annotations for Pods in favor of labels.
36+
- Removed deprecated NGINX Ingress Controller annotations for integrating with NGINX Service Mesh in favor of labels.
37+
- Automatic injection is now disabled globally by default, and requires users to opt-in via Namespace or Pod labels. See the [Automatic Injection guide]( {{< ref "/guides/inject-sidecar-proxy.md#automatic-proxy-injection" >}} ) for more details.
38+
- Removed `disableAutoInjection` and `enabledNamespaces` configuration fields.
39+
- Removed deprecated OpenTracing support in favor of OpenTelemetry.
40+
- Fixed issues that would prevent NGINX Service Mesh from deploying in OpenShift.
41+
- `nginx-mesh-api` component has been renamed to `nginx-mesh-controller`.
42+
- Helm chart version has been bumped to match the product version.
43+
44+
45+
<span id="200-resolved"></a>
46+
47+
### **Resolved Issues**
48+
49+
This release includes fixes for the following issues.
50+
<br/><br/>
51+
52+
53+
- Pods can't be created if nginx-mesh-api is unreachable (384)
54+
55+
- Pods fail to deploy if invalid Jaeger tracing address is set (540)
56+
57+
<br/>
58+
59+
<span id="200-issues"></a>
60+
61+
### **Known Issues**
62+
63+
The following issues are known to be present in this release. Look for updates to these issues in future NGINX Service Mesh release notes.
64+
<br/>
65+
66+
67+
<br/>**Lingering invalid RateLimits can cause restart inconsistencies with the NGINX Service Mesh control plane. (658)**:
68+
<br/>
69+
70+
The NGINX Service Mesh control plane has a validating webhook that will reject the majority of RateLimits that conflict with an existing RateLimit. However, there are some cases where the validating webhook is unable to determine a conflict. In these cases, the NGINX Service Mesh control plane process will catch the conflict and prevent configuration of the offending RateLimit, but the RateLimit will still be stored in Kubernetes. These RateLimit resources are invalid and can be found by looking for a `Warning` event on the RateLimit object. If invalid RateLimits exist and the NGINX Service Mesh control plane restarts, the invalid RateLimits may be configured over the previous valid RateLimits.
71+
<br/>
72+
<br/>
73+
Workaround:
74+
<br/>
75+
76+
When you create a RateLimit resource in Kubernetes, run `kubectl describe ratelimit <ratelimit-name>` and check for any `Warning` events. If a `Warning` event exists, either fix the conflict described in the `Warning` event message, or delete the RateLimit by running: `kubectl delete ratelimit <ratelimit-name>`.
77+
78+
79+
<br/>**Duplicate targetPorts in a Service are disregarded (532)**:
80+
<br/>
81+
82+
NGINX Service Mesh supports a variety of Service `.spec.ports\[]` configurations and honors each port list item with one exception.
83+
84+
If the Service lists multiple port configurations that duplicate `.spec.ports\[].targetPort`, the duplicates are disregarded. Only one port configuration is honored for traffic forwarding, authentication, and encryption.
85+
86+
Example invalid configuration:
87+
88+
89+
```yaml
90+
apiVersion: v1
91+
kind: Service
92+
spec:
93+
ports:
94+
- port: 8080
95+
protocol: TCP
96+
targetPort: 55555
97+
- port: 9090
98+
protocol: TCP
99+
targetPort: 55555
100+
```
101+
102+
<br/>
103+
<br/>
104+
Workaround:
105+
<br/>
106+
107+
No workaround exists outside of reconfiguring the Service and application. The Service must use unique `.spec.ports[].targetPort` values (open up multiple ports on the application workload) or route all traffic to the application workload through the same Service port.
108+
109+
110+
<br/>**NGINX Service Mesh DNS Suffix support (519)**:
111+
<br/>
112+
113+
NGINX Service Mesh only supports the `cluster.local` DNS suffix. Services such as Grafana and Prometheus will not work in clusters with a custom DNS suffix.
114+
<br/>
115+
<br/>
116+
Workaround:
117+
<br/>
118+
119+
Ensure your cluster is setup with the default `cluster.local` DNS suffix.
120+
121+

0 commit comments

Comments
 (0)