The parent project for OpenZiti. Here you will find the executables for a fully zero trust, application embedded, programmable network @OpenZiti
This release can be run in HA mode. The code is still alpha, as we're still finding and fixing bugs.
For more information:
Thanks to new contributors
github.com/openziti/edge-api: v0.26.17 -> v0.26.18
github.com/openziti/sdk-golang: v0.23.27 -> v0.23.32
github.com/openziti/storage: v0.2.36 -> v0.2.37
github.com/openziti/ziti: v1.1.0 -> v1.1.1
openziti
which provides the ziti
command line tool.
openziti-controller
provides ziti-controller.service
openziti-router
provides ziti-router.service
This release can be run in HA mode. The code is still alpha, so there are still some bugs and missing features, however basic functionality work with the exceptions noted. See the HA Documementation for instructions on setting up an HA cluster.
More information can be found on the HA Project Board
github.com/openziti/edge-api: v0.26.16 -> v0.26.17
github.com/openziti/sdk-golang: v0.23.19 -> v0.23.27
github.com/openziti/ziti: v1.0.0 -> v1.1.0
What does marking OpenZiti as 1.0 mean?
We've guaranteed API stability for SDK clients for years and worked hard to ensure that routers and controllers would be backwards and forward compatible. However, we have had a variety of management API changes and CLI changes. For post 1.0 releases we expect to make additions to the APIs and CLI, but won't remove anything until it's been first marked as deprecated and then only with a major version bump.
Recent releases have seen additional testing using chaos testing techniques. These tests involve setting up relatively large scale environments, knocking out various components and then verifying that the network is able to return to a stable state. These test are run for hours to try and eliminate race conditions and distributed state machine problems.
OpenZiti is also being used as underlying infrastrcture for the zrok public service. Use of this network has grown quickly and proven that it's possible to build ziti native apps that can scale up.
Administrators no longer have access to dial/bind all services by default. See below for details.
Admin identities were able to Dial and Bind all services regardless of the effective service policies prior to this release. This could lead to a confusing situation where a tunneler that was assuming an Admin identity would put itself into an infinite connect-loop when a service's host.v1 address overlapped with any addresses in its intercept configuration.
Please create service policies to grant Bind or Dial permissions to Admin identities as needed.
A TLS handhshake rate limiter can be enabled. This is useful in cases where there's a flood of TLS requests and the controller can't handle them all. It can get into a state where it can't respond to TLS handshakes quickly enough, so the clients time out. They then retry, adding to the the load. The controller ends up wasting time doing work that isn't use.
This uses the same rate limiting as the auth rate limiter.
Additionally the server side handshake timeout can now be configured.
Configuration:
tls:
handshakeTimeout: 15s
rateLimiter:
# if disabled, no tls handshake rate limiting with be enforced
enabled: true
# the smallest window size for tls handshakes
minSize: 5
# the largest allowed window size for tls handshakes
maxSize: 5000
# after how long to consider a handshake abandoned if neither success nor failure was reported
timeout: 30s
New metrics:
tls_handshake_limiter.in_process
- number of TLS handshakes in progresstls_handshake_limiter.window_size
- number of TLS handhshakes allowed concurrentlytls_handshake_limiter.work_timer
- timer tracking how long TLS handshakes are takinggithub.com/openziti/channel/v2: v2.0.122 -> v2.0.128
github.com/openziti/edge-api: v0.26.14 -> v0.26.16
github.com/openziti/foundation/v2: v2.0.40 -> v2.0.42
github.com/openziti/identity: v1.0.73 -> v1.0.75
github.com/openziti/metrics: v1.2.48 -> v1.2.51
github.com/openziti/runzmd: v1.0.41 -> v1.0.43
github.com/openziti/sdk-golang: v0.23.15 -> v0.23.19
github.com/openziti/secretstream: v0.1.18 -> v0.1.19
github.com/openziti/storage: v0.2.33 -> v0.2.36
github.com/openziti/transport/v2: v2.0.125 -> v2.0.131
github.com/openziti/ziti: v0.34.2 -> v1.0.0
github.com/openziti/edge-api: v0.26.13 -> v0.26.14
github.com/openziti/sdk-golang: v0.23.14 -> v0.23.15
github.com/openziti/secretstream: v0.1.17 -> v0.1.18
github.com/openziti/ziti: v0.34.1 -> v0.34.2
github.com/openziti/channel/v2: v2.0.119 -> v2.0.122
github.com/openziti/edge-api: v0.26.12 -> v0.26.14
github.com/openziti/foundation/v2: v2.0.37 -> v2.0.40
github.com/openziti/identity: v1.0.70 -> v1.0.73
github.com/openziti/metrics: v1.2.45 -> v1.2.48
github.com/openziti/runzmd: v1.0.38 -> v1.0.41
github.com/openziti/sdk-golang: v0.22.28 -> v0.23.14
github.com/openziti/secretstream: v0.1.16 -> v0.1.17
github.com/openziti/storage: v0.2.30 -> v0.2.33
github.com/openziti/transport/v2: v2.0.122 -> v2.0.125
github.com/openziti/ziti: v0.33.1 -> v0.34.0
This release was focused on creating a chaos test for SDK terminators, running it and fixing any issues found. The test repeatedly and randomly restarts the controller, routers and tunnelers then verifies that terminators end up in the correct state.
The following tools were also used/added to aid in diagnosing and fixing issues:
ziti fabric validate router-sdk-terminators
ziti fabric validate terminators
ziti fabric inspect sdk-terminators
ziti fabric inspect router-messaging
ziti edge validate service-hosting
Several changes were made to the terminator code to ensure that terminators are properly created and cleaned up. The routers now use an adaptive rate limiter to control how fast they send terminator related requests to the controller. For this to work properly, the rate limiting on the controller must be enabled, so it can report back to the routers when it's got too much work.
github.com/openziti/channel/v2: v2.0.117 -> v2.0.119
github.com/openziti/foundation/v2: v2.0.36 -> v2.0.37
github.com/openziti/identity: v1.0.69 -> v1.0.70
github.com/openziti/metrics: v1.2.43 -> v1.2.45
github.com/openziti/runzmd: v1.0.37 -> v1.0.38
github.com/openziti/sdk-golang: v0.22.21 -> v0.22.28
github.com/openziti/storage: v0.2.28 -> v0.2.30
github.com/openziti/transport/v2: v2.0.121 -> v2.0.122
github.com/openziti/ziti: v0.32.1 -> v0.32.2
The router now has a configuration setting to control how long it wait on startup to be able to connect to a controller, before it gives up and exits.
ctrl:
endpoints:
- tls:localhost:1280
startupTimeout: 5m
github.com/openziti/channel/v2: v2.0.116 -> v2.0.117
github.com/openziti/edge-api: v0.26.8 -> v0.26.10
github.com/openziti/sdk-golang: v0.22.17 -> v0.22.21
github.com/openziti/ziti: v0.32.0 -> v0.32.1