Releases: andydunstall/piko
v0.6.4
- Extends TLS configuration
- Adds support for
x-piko-authorization
header - Fixes client max backoff
What's Changed
- build(deps): bump github.com/prometheus/client_golang from 1.20.4 to 1.20.5 by @dependabot in #167
- server: register prometheus go metrics collector by @andydunstall in #168
- build(deps): bump github.com/goccy/go-yaml from 1.12.0 to 1.13.4 by @dependabot in #169
- build(deps): bump golang.org/x/sync from 0.8.0 to 0.9.0 by @dependabot in #171
- build(deps): bump github.com/goccy/go-yaml from 1.13.4 to 1.13.7 by @dependabot in #172
- workload: add missing connect flags by @andydunstall in #173
- server: support x-piko-authorization header by @andydunstall in #183
- agent: fix default protocol by @andydunstall in #184
- agent: add insecure skip verify by @andydunstall in #186
- bench: add piko bench http by @andydunstall in #182
- build(deps): bump github.com/goccy/go-yaml from 1.13.7 to 1.14.3 by @dependabot in #187
- agent: add listener tls client config by @andydunstall in #189
- build(deps): bump github.com/stretchr/testify from 1.9.0 to 1.10.0 by @dependabot in #190
- ci: update linter by @andydunstall in #192
- go: update go to v1.23.2 by @andydunstall in #193
- server: remove tls config enabled by @andydunstall in #194
- tls: add mutual tls support by @andydunstall in #195
- build(deps): bump github.com/goccy/go-yaml from 1.14.3 to 1.15.4 by @dependabot in #196
- backoff: fix enforcing max backoff by @andydunstall in #200
Full Changelog: v0.6.3...v0.6.4
v0.6.3
What's Changed
- build(deps): bump github.com/prometheus/client_golang from 1.19.1 to 1.20.0 by @dependabot in #156
- tcp: Fix protocol configuration loading by @tschwery in #157
- build(deps): bump github.com/prometheus/client_golang from 1.20.0 to 1.20.2 by @dependabot in #159
- agent: disable metrics server by default by @andydunstall in #161
- build(deps): bump github.com/prometheus/client_golang from 1.20.2 to 1.20.3 by @dependabot in #162
- build(deps): bump github.com/prometheus/client_golang from 1.20.3 to 1.20.4 by @dependabot in #163
- build(deps): bump github.com/hashicorp/go-sockaddr from 1.0.6 to 1.0.7 by @dependabot in #164
- agent: update yamux to v1.5.0 by @andydunstall in #166 (Thanks @moredure!)
New Contributors
Full Changelog: v0.6.2...v0.6.3
v0.6.2
Updates the server and agent proxy timeouts to not apply to WebSocket connections, plus adds gossip digest/delta metrics.
What's Changed
- helm: update app version by @andydunstall in #153
- gossip: add digest/delta metrics by @andydunstall in #154
- proxy: only apply proxy timeout to non-websocket requests by @andydunstall in #155
Full Changelog: v0.6.1...v0.6.2
v0.6.1
- Adds support for authenticating proxy and admin ports
- Adds support for
piko forward
authentication - Improves test coverage
- Improves logging
What's Changed
- cli: add piko version by @andydunstall in #125
- test: add 'piko test workload' by @andydunstall in #126
- test: add 'piko test cluster' by @andydunstall in #127
- tests: organize system tests by @andydunstall in #128
- server: config testing by @andydunstall in #129
- server: move auth to upstream config by @andydunstall in #130
- server: move jwt auth to pkg/auth by @andydunstall in #131
- server: add support for admin authentication by @andydunstall in #132
- server: extend proxy tests by @andydunstall in #133
- add proxy auth by @andydunstall in #134
- forward: add client authentication by @andydunstall in #135
- gossip: move gossip config under cluster by @andydunstall in #136
- docs: move docs to wiki by @andydunstall in #137
- docs: update readme by @andydunstall in #139
- docs: update readme by @andydunstall in #140
- build(deps): bump github.com/goccy/go-yaml from 1.11.3 to 1.12.0 by @dependabot in #141
- chore: remove nolint from source code and replace with blank identifiers by @yquansah in #142
- tcp: add copy closed logs by @andydunstall in #144
- cli: fix command line examples by @lhpqaq in #145
- build(deps): bump golang.org/x/sync from 0.7.0 to 0.8.0 by @dependabot in #149
- client: update retryable connection error logs to warning by @andydunstall in #150
- server: remove proxy timeout validation by @andydunstall in #151
New Contributors
Full Changelog: v0.6.0...v0.6.1
v0.6.0
v0.6.0 adds a new Piko Go client and improves reliability
What's Changed
- admin: add pprof endpoints by @andydunstall in #99
- workload: add upstream churn by @andydunstall in #100
- workload: extend workload tooling by @andydunstall in #101
- server: fix tls tests on mac by @andydunstall in #102
- add auth system tests by @andydunstall in #103
- ci: update linter version by @andydunstall in #104
- workload: add cluster command by @andydunstall in #105
- server: fix auth yaml config by @andydunstall in #106
- config: add config defaults by @andydunstall in #107
- refactor server startup by @andydunstall in #108
- server: infer advertise address from listen address by @andydunstall in #109
- server: fix cluster state advertise addr by @andydunstall in #110
- add workloadv2 cluster by @andydunstall in #111
- workloadv2 add cluster lb by @andydunstall in #112
- gossip: fix delta encoding by @andydunstall in #113
- server: disconnect upstream on shutdown by @andydunstall in #114
- docs: add missing space to kubernetes docs by @maxnowack in #116
- forward: fix forward configuration by @andydunstall in #117
- config: test default config is valid by @andydunstall in #118
- server: order server statup and shutdown by @andydunstall in #115
- imports: group imports by local vs 3rd party by @andydunstall in #119
- server: reduce gossip interval to 100ms by @andydunstall in #120
- client: add client v2 by @andydunstall in #121
- server: fix upstream server logger subsystem by @andydunstall in #122
- yamux: updates yamux dependency to github.com/andydunstall/yamux by @andydunstall in #123
Full Changelog: v0.5.0...v0.6.0
v0.5.0
v0.5.0 adds support for forwarding raw TCP traffic using Piko. See TCP Forwarding for details.
What's Changed
- docs: add install docs by @andydunstall in #82
- docs: add how piko works by @andydunstall in #83
- docs: update manage docs by @andydunstall in #84
- docs: link to server/agent docs by @andydunstall in #85
- docs: add go sdk docs by @andydunstall in #86
- tests: add cluster system test by @andydunstall in #87
- add single node port forwarding by @andydunstall in #88
- agent: add tcp listener support by @andydunstall in #89
- build(deps): bump github.com/spf13/cobra from 1.8.0 to 1.8.1 by @dependabot in #90
- build(deps): bump github.com/gorilla/websocket from 1.5.2 to 1.5.3 by @dependabot in #91
- docs: fix broken links by @andydunstall in #92
- server: support clustering with tcp port forwarding by @andydunstall in #93
- client: add listen and forward by @andydunstall in #94
- forward: add 'piko forward' command by @andydunstall in #95
- docs: add TCP forwarding docs by @andydunstall in #96
- forwarding improvements by @andydunstall in #97
Full Changelog: v0.4.0...v0.5.0
v0.4.0
Adds the /ready
route which was removed by mistake in v0.3.0 (required for deploying Piko to Kubernetes)
Also replaces muxado with yamux and cleans up connection handling.
What's Changed
- docs: update readme by @andydunstall in #72
- build: add version to build script by @andydunstall in #73
- tests: add proxy system tests by @andydunstall in #74
- build(deps): bump github.com/google/uuid from 1.1.2 to 1.6.0 by @dependabot in #75
- build(deps): bump github.com/gorilla/websocket from 1.5.1 to 1.5.2 by @dependabot in #76
- conn: adds yamux for stream multiplexing by @andydunstall in #77
- docs: update readme by @andydunstall in #78
- admin: add GET /ready route by @andydunstall in #79
- upstream: log connected upstreams as info by @andydunstall in #80
New Contributors
- @dependabot made their first contribution in #75
Full Changelog: v0.3.0...v0.4.0
v0.3.0
v0.3.0 contains a rewrite of the agent to server protocol. Instead of forwarding individual HTTP requests and responses, the protocol transports raw TCP bytes multiplexed over a single outbound connection from the upstream to the server.
This has a few major benefits:
- It supports non-HTTP protocols in the future (particularly TCP)
- It supports WebSockets
- It supports a Go SDK in the future where clients can listen for connections from Piko like any other TCP listener (such as
net.Listener
in Go) - It makes the agent and server much simpler as they can treat the 'connection' to the upstream as any other TCP connection (even though the connection is actually multiplexed over the upstreams outbound connection to Piko)
This release also adds TLS support, both for the server and for the agent to configure custom root CAs to verify the servers TLS certificates. It also refactors the piko agent
command line and configuration.
What's Changed
- docs: add logo by @andydunstall in #46
- client: add go sdk interface by @andydunstall in #47
- agentv2: add agent cli and configuration by @andydunstall in #48
- agentv2: add endpoint interface by @andydunstall in #49
- agentv2: add endpoint reverse proxy by @andydunstall in #50
- conn: add websocket options by @andydunstall in #52
- tls: add tls support by @andydunstall in #53
- agentv2: add heartbeats by @andydunstall in #54
- docs: update logo by @andydunstall in #55
- client: register endpoint listener by @andydunstall in #56
- serverv2: add reverse proxy to forward requests to upstream by @andydunstall in #57
- agentv2: handle listener connections by @andydunstall in #58
- add docker package by @andydunstall in #59
- tests: use httptest.Server by @andydunstall in #60
- serverv2: add reverse proxy by @andydunstall in #61
- agentv2: add pkg/mux by @andydunstall in #62
- agentv2: add connection per listener by @andydunstall in #63
- agentv2: add config options by @andydunstall in #64
- serverv2: rewrite reverse proxy by @andydunstall in #65
- serverv2: load balance among connected upstreams by @andydunstall in #66
- piko: integrate agent/server v2 by @andydunstall in #67
- admin: add request forwarding by @andydunstall in #68
- status: add upstream endpoints status command by @andydunstall in #69
- server: add usage reporting by @andydunstall in #70
Full Changelog: v0.2.0...v0.3.0
v0.2.0
This release:
- Adds a basic Helm chart
- Fixes bugs in forwarding
- Improves Piko agent resilience and configuration
- Extends the admin server
What's Changed
- docs: add contributing.md by @andydunstall in #34
- helm: add piko helm chart by @andydunstall in #35
- server: extend http server configuration by @andydunstall in #36
- server: extend http metrics by @andydunstall in #37
- fix: forwarder copy body eof by @andydunstall in #38
- admin: add pprof endpoints by @andydunstall in #39
- agent: agent resilience by @andydunstall in #40
- docs: add github discussions to readme by @andydunstall in #41
- server: add usage reporting by @andydunstall in #44
Full Changelog: v0.1.0...v0.2.0
v0.1.0
First release of Piko.
While Piko is still a new project, it has been well tested so should be relatively stable.
What's Changed
- docs: update readme by @andydunstall in #3
- docs: update overview image by @andydunstall in #4
- add system tests by @andydunstall in #5
- docs: add demo by @andydunstall in #6
- docs: update overview by @andydunstall in #7
- docs: add arch docs by @andydunstall in #8
- docs: rename downstream client to proxy client by @andydunstall in #10
- server: add endpoint authentication by @andydunstall in #11
- gossip: add join retries by @andydunstall in #12
- workload: add workload tools by @andydunstall in #13
- cluster: rename 'netmap' to 'cluster state' by @andydunstall in #14
- docs: update readme by @andydunstall in #15
- docs: update architecture overview by @andydunstall in #18
- docs: add manage docs by @andydunstall in #19
- rename 'pico' to 'piko' by @andydunstall in #20
- docs: extend routing docs by @andydunstall in #21
- add documentation for cd to the piko dir by @insanity54 in #24
- go: update to v1.22 by @andydunstall in #25
- cli: extend docs by @andydunstall in #27
- docs: link to releases by @andydunstall in #26
Full Changelog: https://github.com/andydunstall/piko/commits/v0.1.0