Skip to content

Commit cd9f755

Browse files
authored
v0.4.0 (#772)
Conduit 0.4.0 overhauls Conduit's telemetry system and improves service discovery reliability. * Web UI * **New** automatically-configured Grafana dashboards for all Deployments. * Command-line interface * `conduit stat` has been completely rewritten to accept arguments like `kubectl get`. The `--to` and `--from` filters can be used to filter traffic by destination and source, respectively. `conduit stat` currently can operate on `Namespace` and `Deployment` Kubernetes resources. More resource types will be added in the next release! * Proxy (data plane) * **New** Prometheus-formatted metrics are now exposed on `:4191/metrics`, including rich destination labeling for outbound HTTP requests. The proxy no longer pushes metrics to the control plane. * The proxy now handles `SIGINT` or `SIGTERM`, gracefully draining requests until all are complete or `SIGQUIT` is received. * SMTP and MySQL (ports 25 and 3306) are now treated as opaque TCP by default. You should no longer have to specify `--skip-outbound-ports` to communicate with such services. * When the proxy reconnected to the controller, it could continue to send requests to old endpoints. Now, when the proxy reconnects to the controller, it properly removes invalid endpoints. * A bug impacting some HTTP/2 reset scenarios has been fixed. * Service Discovery * Previously, the proxy failed to resolve some domain names that could be misinterpreted as a Kubernetes Service name. This has been fixed by extending the _Destination_ API with a negative acknowledgement response. * Control Plane * The _Telemetry_ service and associated APIs have been removed. * Documentation * Updated Roadmap * Added prometheus metrics guide
1 parent 800cefd commit cd9f755

File tree

4 files changed

+88
-55
lines changed

4 files changed

+88
-55
lines changed

CHANGES.md

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,48 @@
1+
## v0.4.0
2+
3+
Conduit 0.4.0 overhauls Conduit's telemetry system and improves service discovery
4+
reliability.
5+
6+
* Web UI
7+
* **New** automatically-configured Grafana dashboards for all Deployments.
8+
* Command-line interface
9+
* `conduit stat` has been completely rewritten to accept arguments like `kubectl get`.
10+
The `--to` and `--from` filters can be used to filter traffic by destination and
11+
source, respectively. `conduit stat` currently can operate on `Namespace` and
12+
`Deployment` Kubernetes resources. More resource types will be added in the next
13+
release!
14+
* Proxy (data plane)
15+
* **New** Prometheus-formatted metrics are now exposed on `:4191/metrics`, including
16+
rich destination labeling for outbound HTTP requests. The proxy no longer pushes
17+
metrics to the control plane.
18+
* The proxy now handles `SIGINT` or `SIGTERM`, gracefully draining requests until all
19+
are complete or `SIGQUIT` is received.
20+
* SMTP and MySQL (ports 25 and 3306) are now treated as opaque TCP by default. You
21+
should no longer have to specify `--skip-outbound-ports` to communicate with such
22+
services.
23+
* When the proxy reconnected to the controller, it could continue to send requests to
24+
old endpoints. Now, when the proxy reconnects to the controller, it properly removes
25+
invalid endpoints.
26+
* A bug impacting some HTTP/2 reset scenarios has been fixed.
27+
* Service Discovery
28+
* Previously, the proxy failed to resolve some domain names that could be misinterpreted
29+
as a Kubernetes Service name. This has been fixed by extending the _Destination_ API
30+
with a negative acknowledgement response.
31+
* Control Plane
32+
* The _Telemetry_ service and associated APIs have been removed.
33+
* Documentation
34+
* Updated [Roadmap](doc/roadmap.md)
35+
36+
Special thanks to @ahume, @alenkacz, & @xiaods for contributing to this release!
37+
38+
### Upgrading from v0.3.1
39+
40+
When upgrading from v0.3.1, it's important to upgrade proxies before upgrading the
41+
controller. As you upgrade proxies, the controller will lose visibility into some data
42+
plane stats. Once all proxies are updated, `conduit install |kubectl apply -f -` can be
43+
run to upgrade the controller without causing any data plane disruptions. Once the
44+
controller has been restarted, traffic stats should become available.
45+
146
## v0.3.1
247

348
Conduit 0.3.1 improves Conduit's resilience and transparency.

doc/get-involved.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ We're really excited to welcome Contributors to [Conduit](https://github.com/run
1010

1111
There are several ways to get involved:
1212

13-
- Conduit on [Github](https://github.com/runconduit/conduit)
13+
- Conduit on [GitHub](https://github.com/runconduit/conduit)
1414
- Join us on the #conduit channel in [Linkerd slack](https://slack.linkerd.io/)
1515
- Join the mailing lists
1616
- Users list: [[email protected]](https://groups.google.com/forum/#!forum/conduit-users)

doc/proxy-metrics.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ request headers are received to when the request stream has completed.
2222
### `response_total`
2323

2424
A counter of the number of responses the proxy has received. This is
25-
incremeneted when the response stream ends.
25+
incremented when the response stream ends.
2626

2727
### `response_duration_ms`
2828

doc/roadmap.md

Lines changed: 41 additions & 53 deletions
Original file line numberDiff line numberDiff line change
@@ -13,38 +13,38 @@ featureset, then to build functionality out from there. We’ll make alpha / bet
1313
designations based on actual community usage, and generally will err on the side of being
1414
overly conservative.
1515

16-
##### Status: alpha
17-
## [0.3: Telemetry Stability](https://github.com/runconduit/conduit/milestone/5)
1816

19-
#### Late February 2018
17+
##### Status: alpha
18+
## [0.4.0: Rich, Kubernetes-aware Grafana & Prometheus](https://github.com/runconduit/conduit/milestone/6)
19+
#### 2018-04-16
2020

2121
### Visibility
2222

23-
- Stable, automatic top-line metrics for small-scale clusters.
24-
25-
### Usability
26-
27-
- Routing to external DNS names
23+
- Rich, Kubernetes-aware `conduit stat`:
24+
- Works on deployments & namespaces.
25+
- `--from` & `--to` flags filter stats by source & destination.
26+
- Proxy exposes Prometheus labeled with rich outbound stats.
27+
- Grafana dashboards for Kubernetes Deployments & Namespaces.
2828

2929
### Reliability
3030

31-
- Least-loaded L7 load balancing
32-
- Improved error handling
33-
- Improved egress support
31+
- The proxy properly routes egress traffic to arbitrary DNS names.
3432

35-
### Development
3633

37-
- Published (this) roadmap
38-
- All milestones, issues, PRs, & mailing lists made public
34+
## [0.4.1: Rich, Kubernetes-aware debugging](https://github.com/runconduit/conduit/milestone/10)
35+
#### Late April 2018
3936

40-
## [0.4: Automatic TLS; Prometheus++](https://github.com/runconduit/conduit/milestone/6)
37+
### Visibility
4138

42-
#### Late March 2018
39+
- `conduit stat` works on many Kubernetes resources.
40+
- Per-authority HTTP stats.
41+
- TCP-level stats
42+
- `conduit tap` works on many Kubernetes resources, too.
43+
- `conduit wtf`: what's the failure?
4344

44-
### Usability
4545

46-
- Helm integration
47-
- Mutating webhook admission controller
46+
## [0.5: Stable, private communication](https://github.com/runconduit/conduit/milestone/7)
47+
#### Mid-May 2018
4848

4949
### Security
5050

@@ -53,57 +53,45 @@ overly conservative.
5353
- Automatically provide all meshed services with cryptographic identity
5454
- Automatically secure all meshed communication
5555

56-
### Visibility
57-
58-
- Enhanced server-side metrics, including per-path and per-status-code counts & latencies.
59-
- Client-side metrics to surface egress traffic, etc.
60-
6156
### Reliability
6257

63-
- Latency-aware load balancing
58+
- Stable Service Discovery semantics.
59+
- Latency-aware load balancing.
6460

65-
## [0.5: Controllable Deadlines/Timeouts](https://github.com/runconduit/conduit/milestone/7)
6661

67-
#### Early April 2018
62+
## [0.6: Externally accessible](https://github.com/runconduit/conduit/milestone/8)
63+
#### Early June 2018
6864

69-
### Reliability
70-
71-
- Controllable latency objectives to configure timeouts
72-
- Controllable response classes to inform circuit breaking, retryability, & success rate calculation
73-
- High-availability controller
74-
75-
### Visibility
65+
### Routing
7666

77-
- OpenTracing integration
67+
- Kubernetes `Ingress` support
7868

7969
### Security
8070

81-
- Mutual authentication
82-
- Key rotation
83-
84-
## [0.6: Controllable Response Classification & Retries](https://github.com/runconduit/conduit/milestone/8)
85-
86-
#### Late April 2018
71+
- Explicitly configured TLS for ingress
72+
- Server Name Indication (SNI)
8773

8874
### Reliability
8975

90-
- Automatic alerting for latency & success objectives
91-
- Controllable retry policies
92-
93-
### Routing
76+
- Scales to many cores.
77+
- High-availability controller
78+
- Circuit-breaking.
9479

95-
- Rich ingress routing
96-
- Contextual route overrides
80+
### Usability
9781

98-
### Security
82+
- Helm integration
9983

100-
- Authorization policy
10184

102-
## And Beyond:
85+
## And then...
10386

104-
- Controller policy plugins
105-
- Support for non-Kubernetes services
106-
- Failure injection (aka "chaos chihuahua")
87+
- Mutual authentication
88+
- Key rotation
89+
- Let's Encrypt Ingress support
90+
- Automatic alerting for latency & success objectives
91+
- Controllable retry policies
92+
- OpenTracing integration
93+
- Pluggable authorization policy
94+
- Failure injection
10795
- Speculative retries
10896
- Dark traffic
10997
- gRPC payload-aware `tap`

0 commit comments

Comments
 (0)