v0.6.3
- build(deps): bump github.com/prometheus/client_golang from 1.19.1 to 1.20.0 by @dependabot in https://github.com/andydunstall/piko/pull/156
- tcp: Fix protocol configuration loading by @tschwery in https://github.com/andydunstall/piko/pull/157
- build(deps): bump github.com/prometheus/client_golang from 1.20.0 to 1.20.2 by @dependabot in https://github.com/andydunstall/piko/pull/159
- agent: disable metrics server by default by @andydunstall in https://github.com/andydunstall/piko/pull/161
- build(deps): bump github.com/prometheus/client_golang from 1.20.2 to 1.20.3 by @dependabot in https://github.com/andydunstall/piko/pull/162
- build(deps): bump github.com/prometheus/client_golang from 1.20.3 to 1.20.4 by @dependabot in https://github.com/andydunstall/piko/pull/163
- build(deps): bump github.com/hashicorp/go-sockaddr from 1.0.6 to 1.0.7 by @dependabot in https://github.com/andydunstall/piko/pull/164
- agent: update yamux to v1.5.0 by @andydunstall in https://github.com/andydunstall/piko/pull/166 (Thanks @moredure!)
- @tschwery made their first contribution in https://github.com/andydunstall/piko/pull/157
Full Changelog: https://github.com/andydunstall/piko/compare/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.
- helm: update app version by @andydunstall in https://github.com/andydunstall/piko/pull/153
- gossip: add digest/delta metrics by @andydunstall in https://github.com/andydunstall/piko/pull/154
- proxy: only apply proxy timeout to non-websocket requests by @andydunstall in https://github.com/andydunstall/piko/pull/155
Full Changelog: https://github.com/andydunstall/piko/compare/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
- cli: add piko version by @andydunstall in https://github.com/andydunstall/piko/pull/125
- test: add 'piko test workload' by @andydunstall in https://github.com/andydunstall/piko/pull/126
- test: add 'piko test cluster' by @andydunstall in https://github.com/andydunstall/piko/pull/127
- tests: organize system tests by @andydunstall in https://github.com/andydunstall/piko/pull/128
- server: config testing by @andydunstall in https://github.com/andydunstall/piko/pull/129
- server: move auth to upstream config by @andydunstall in https://github.com/andydunstall/piko/pull/130
- server: move jwt auth to pkg/auth by @andydunstall in https://github.com/andydunstall/piko/pull/131
- server: add support for admin authentication by @andydunstall in https://github.com/andydunstall/piko/pull/132
- server: extend proxy tests by @andydunstall in https://github.com/andydunstall/piko/pull/133
- add proxy auth by @andydunstall in https://github.com/andydunstall/piko/pull/134
- forward: add client authentication by @andydunstall in https://github.com/andydunstall/piko/pull/135
- gossip: move gossip config under cluster by @andydunstall in https://github.com/andydunstall/piko/pull/136
- docs: move docs to wiki by @andydunstall in https://github.com/andydunstall/piko/pull/137
- docs: update readme by @andydunstall in https://github.com/andydunstall/piko/pull/139
- docs: update readme by @andydunstall in https://github.com/andydunstall/piko/pull/140
- build(deps): bump github.com/goccy/go-yaml from 1.11.3 to 1.12.0 by @dependabot in https://github.com/andydunstall/piko/pull/141
- chore: remove nolint from source code and replace with blank identifiers by @yquansah in https://github.com/andydunstall/piko/pull/142
- tcp: add copy closed logs by @andydunstall in https://github.com/andydunstall/piko/pull/144
- cli: fix command line examples by @lhpqaq in https://github.com/andydunstall/piko/pull/145
- build(deps): bump golang.org/x/sync from 0.7.0 to 0.8.0 by @dependabot in https://github.com/andydunstall/piko/pull/149
- client: update retryable connection error logs to warning by @andydunstall in https://github.com/andydunstall/piko/pull/150
- server: remove proxy timeout validation by @andydunstall in https://github.com/andydunstall/piko/pull/151
- @yquansah made their first contribution in https://github.com/andydunstall/piko/pull/142
- @lhpqaq made their first contribution in https://github.com/andydunstall/piko/pull/145
Full Changelog: https://github.com/andydunstall/piko/compare/v0.6.0...v0.6.1
v0.6.0
v0.6.0 adds a new Piko Go client and improves reliability
- admin: add pprof endpoints by @andydunstall in https://github.com/andydunstall/piko/pull/99
- workload: add upstream churn by @andydunstall in https://github.com/andydunstall/piko/pull/100
- workload: extend workload tooling by @andydunstall in https://github.com/andydunstall/piko/pull/101
- server: fix tls tests on mac by @andydunstall in https://github.com/andydunstall/piko/pull/102
- add auth system tests by @andydunstall in https://github.com/andydunstall/piko/pull/103
- ci: update linter version by @andydunstall in https://github.com/andydunstall/piko/pull/104
- workload: add cluster command by @andydunstall in https://github.com/andydunstall/piko/pull/105
- server: fix auth yaml config by @andydunstall in https://github.com/andydunstall/piko/pull/106
- config: add config defaults by @andydunstall in https://github.com/andydunstall/piko/pull/107
- refactor server startup by @andydunstall in https://github.com/andydunstall/piko/pull/108
- server: infer advertise address from listen address by @andydunstall in https://github.com/andydunstall/piko/pull/109
- server: fix cluster state advertise addr by @andydunstall in https://github.com/andydunstall/piko/pull/110
- add workloadv2 cluster by @andydunstall in https://github.com/andydunstall/piko/pull/111
- workloadv2 add cluster lb by @andydunstall in https://github.com/andydunstall/piko/pull/112
- gossip: fix delta encoding by @andydunstall in https://github.com/andydunstall/piko/pull/113
- server: disconnect upstream on shutdown by @andydunstall in https://github.com/andydunstall/piko/pull/114
- docs: add missing space to kubernetes docs by @maxnowack in https://github.com/andydunstall/piko/pull/116
- forward: fix forward configuration by @andydunstall in https://github.com/andydunstall/piko/pull/117
- config: test default config is valid by @andydunstall in https://github.com/andydunstall/piko/pull/118
- server: order server statup and shutdown by @andydunstall in https://github.com/andydunstall/piko/pull/115
- imports: group imports by local vs 3rd party by @andydunstall in https://github.com/andydunstall/piko/pull/119
- server: reduce gossip interval to 100ms by @andydunstall in https://github.com/andydunstall/piko/pull/120
- client: add client v2 by @andydunstall in https://github.com/andydunstall/piko/pull/121
- server: fix upstream server logger subsystem by @andydunstall in https://github.com/andydunstall/piko/pull/122
- yamux: updates yamux dependency to github.com/andydunstall/yamux by @andydunstall in https://github.com/andydunstall/piko/pull/123
Full Changelog: https://github.com/andydunstall/piko/compare/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.
- docs: add install docs by @andydunstall in https://github.com/andydunstall/piko/pull/82
- docs: add how piko works by @andydunstall in https://github.com/andydunstall/piko/pull/83
- docs: update manage docs by @andydunstall in https://github.com/andydunstall/piko/pull/84
- docs: link to server/agent docs by @andydunstall in https://github.com/andydunstall/piko/pull/85
- docs: add go sdk docs by @andydunstall in https://github.com/andydunstall/piko/pull/86
- tests: add cluster system test by @andydunstall in https://github.com/andydunstall/piko/pull/87
- add single node port forwarding by @andydunstall in https://github.com/andydunstall/piko/pull/88
- agent: add tcp listener support by @andydunstall in https://github.com/andydunstall/piko/pull/89
- build(deps): bump github.com/spf13/cobra from 1.8.0 to 1.8.1 by @dependabot in https://github.com/andydunstall/piko/pull/90
- build(deps): bump github.com/gorilla/websocket from 1.5.2 to 1.5.3 by @dependabot in https://github.com/andydunstall/piko/pull/91
- docs: fix broken links by @andydunstall in https://github.com/andydunstall/piko/pull/92
- server: support clustering with tcp port forwarding by @andydunstall in https://github.com/andydunstall/piko/pull/93
- client: add listen and forward by @andydunstall in https://github.com/andydunstall/piko/pull/94
- forward: add 'piko forward' command by @andydunstall in https://github.com/andydunstall/piko/pull/95
- docs: add TCP forwarding docs by @andydunstall in https://github.com/andydunstall/piko/pull/96
- forwarding improvements by @andydunstall in https://github.com/andydunstall/piko/pull/97
Full Changelog: https://github.com/andydunstall/piko/compare/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.
- docs: update readme by @andydunstall in https://github.com/andydunstall/piko/pull/72
- build: add version to build script by @andydunstall in https://github.com/andydunstall/piko/pull/73
- tests: add proxy system tests by @andydunstall in https://github.com/andydunstall/piko/pull/74
- build(deps): bump github.com/google/uuid from 1.1.2 to 1.6.0 by @dependabot in https://github.com/andydunstall/piko/pull/75
- build(deps): bump github.com/gorilla/websocket from 1.5.1 to 1.5.2 by @dependabot in https://github.com/andydunstall/piko/pull/76
- conn: adds yamux for stream multiplexing by @andydunstall in https://github.com/andydunstall/piko/pull/77
- docs: update readme by @andydunstall in https://github.com/andydunstall/piko/pull/78
- admin: add GET /ready route by @andydunstall in https://github.com/andydunstall/piko/pull/79
- upstream: log connected upstreams as info by @andydunstall in https://github.com/andydunstall/piko/pull/80
- @dependabot made their first contribution in https://github.com/andydunstall/piko/pull/75
Full Changelog: https://github.com/andydunstall/piko/compare/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.
- docs: add logo by @andydunstall in https://github.com/andydunstall/piko/pull/46
- client: add go sdk interface by @andydunstall in https://github.com/andydunstall/piko/pull/47
- agentv2: add agent cli and configuration by @andydunstall in https://github.com/andydunstall/piko/pull/48
- agentv2: add endpoint interface by @andydunstall in https://github.com/andydunstall/piko/pull/49
- agentv2: add endpoint reverse proxy by @andydunstall in https://github.com/andydunstall/piko/pull/50
- conn: add websocket options by @andydunstall in https://github.com/andydunstall/piko/pull/52
- tls: add tls support by @andydunstall in https://github.com/andydunstall/piko/pull/53
- agentv2: add heartbeats by @andydunstall in https://github.com/andydunstall/piko/pull/54
- docs: update logo by @andydunstall in https://github.com/andydunstall/piko/pull/55
- client: register endpoint listener by @andydunstall in https://github.com/andydunstall/piko/pull/56
- serverv2: add reverse proxy to forward requests to upstream by @andydunstall in https://github.com/andydunstall/piko/pull/57
- agentv2: handle listener connections by @andydunstall in https://github.com/andydunstall/piko/pull/58
- add docker package by @andydunstall in https://github.com/andydunstall/piko/pull/59
- tests: use httptest.Server by @andydunstall in https://github.com/andydunstall/piko/pull/60
- serverv2: add reverse proxy by @andydunstall in https://github.com/andydunstall/piko/pull/61
- agentv2: add pkg/mux by @andydunstall in https://github.com/andydunstall/piko/pull/62
- agentv2: add connection per listener by @andydunstall in https://github.com/andydunstall/piko/pull/63
- agentv2: add config options by @andydunstall in https://github.com/andydunstall/piko/pull/64
- serverv2: rewrite reverse proxy by @andydunstall in https://github.com/andydunstall/piko/pull/65
- serverv2: load balance among connected upstreams by @andydunstall in https://github.com/andydunstall/piko/pull/66
- piko: integrate agent/server v2 by @andydunstall in https://github.com/andydunstall/piko/pull/67
- admin: add request forwarding by @andydunstall in https://github.com/andydunstall/piko/pull/68
- status: add upstream endpoints status command by @andydunstall in https://github.com/andydunstall/piko/pull/69
- server: add usage reporting by @andydunstall in https://github.com/andydunstall/piko/pull/70
Full Changelog: https://github.com/andydunstall/piko/compare/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
- docs: add contributing.md by @andydunstall in https://github.com/andydunstall/piko/pull/34
- helm: add piko helm chart by @andydunstall in https://github.com/andydunstall/piko/pull/35
- server: extend http server configuration by @andydunstall in https://github.com/andydunstall/piko/pull/36
- server: extend http metrics by @andydunstall in https://github.com/andydunstall/piko/pull/37
- fix: forwarder copy body eof by @andydunstall in https://github.com/andydunstall/piko/pull/38
- admin: add pprof endpoints by @andydunstall in https://github.com/andydunstall/piko/pull/39
- agent: agent resilience by @andydunstall in https://github.com/andydunstall/piko/pull/40
- docs: add github discussions to readme by @andydunstall in https://github.com/andydunstall/piko/pull/41
- server: add usage reporting by @andydunstall in https://github.com/andydunstall/piko/pull/44
Full Changelog: https://github.com/andydunstall/piko/compare/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.
- docs: update readme by @andydunstall in https://github.com/andydunstall/piko/pull/3
- docs: update overview image by @andydunstall in https://github.com/andydunstall/piko/pull/4
- add system tests by @andydunstall in https://github.com/andydunstall/piko/pull/5
- docs: add demo by @andydunstall in https://github.com/andydunstall/piko/pull/6
- docs: update overview by @andydunstall in https://github.com/andydunstall/piko/pull/7
- docs: add arch docs by @andydunstall in https://github.com/andydunstall/piko/pull/8
- docs: rename downstream client to proxy client by @andydunstall in https://github.com/andydunstall/piko/pull/10
- server: add endpoint authentication by @andydunstall in https://github.com/andydunstall/piko/pull/11
- gossip: add join retries by @andydunstall in https://github.com/andydunstall/piko/pull/12
- workload: add workload tools by @andydunstall in https://github.com/andydunstall/piko/pull/13
- cluster: rename 'netmap' to 'cluster state' by @andydunstall in https://github.com/andydunstall/piko/pull/14
- docs: update readme by @andydunstall in https://github.com/andydunstall/piko/pull/15
- docs: update architecture overview by @andydunstall in https://github.com/andydunstall/piko/pull/18
- docs: add manage docs by @andydunstall in https://github.com/andydunstall/piko/pull/19
- rename 'pico' to 'piko' by @andydunstall in https://github.com/andydunstall/piko/pull/20
- docs: extend routing docs by @andydunstall in https://github.com/andydunstall/piko/pull/21
- add documentation for cd to the piko dir by @insanity54 in https://github.com/andydunstall/piko/pull/24
- go: update to v1.22 by @andydunstall in https://github.com/andydunstall/piko/pull/25
- cli: extend docs by @andydunstall in https://github.com/andydunstall/piko/pull/27
- docs: link to releases by @andydunstall in https://github.com/andydunstall/piko/pull/26
Full Changelog: https://github.com/andydunstall/piko/commits/v0.1.0