All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog and this project adheres to Semantic Versioning.
Types of changes:
Added
for new features.
Changed
for changes in existing functionality.
Deprecated
for soon-to-be removed features.
Removed
for now removed features.
Fixed
for any bug fixes.
Security
in case of vulnerabilities.
- kedge: Adhoc supports basic hostname rewrite.
- kedge: gRPC adhoc!
- winch: Allow Debug endpoints to be exposed on different port.
- winch: Fixed go routine leaks in gRPC path (client connection not closed)
0.1.0 - 2018-04-13
- winch: Early error check if user tries to connect to IP instead of hostname
- kedge: Improved not-kedge-destination error message.
- kedge: More reliable even stream for k8sresolver.
Kedge service:
- Fixed critical bug(s) in k8sresolver
Tools:
- Added standalone k8sresolver runner for debugging purposes.
Kedge service:
- Added support for grpc-web protocol
Winch (kedge client):
- Added new OIDC-based auth method with service accounts.
Kedge service:
- Kubernetes discovery now prepends service short name to route matcher instead of just service name.
Kedge service:
- Fixed passing headers through gRPC proxies
- Updated Docs!
- Better error handling
- Fixed not working gRPC authority matcher
- Fixed and tested HostResolver
- Added way to change metric endpoint route
Winch (kedge client):
- Updated Docs!
Kedge service:
- added OIDC support to gRPC flow
Winch (kedge client):
- added gRPC support to winch
Kedge service:
- added dynamic routing discovery for TLS routes (insecure)
Kedge service:
- added stripping out proxy auth header after using it.
- fixed error handling causing in particular cases.
- added graceful shutdown
Winch (kedge client):
- better error handling (adding response headers to indicate what error happen)
- CORS
Tools:
- added load tester.
Kedge service:
- added reported helping to determine proxy errors from backend errors (producing log and inc metric)
- added support winch debug mode
- added support for request ID
- fixed go routine leaks on discovery and k8sresolver streams
- improved logging on discovery logic
- fixed go routine leaks on lbtransport
- dynamic discovery changes are less disruptive
Winch (kedge client):
- added debug mode
- added request ID
Kedge service:
- added metrics for backend configuration change
- added metrics for HTTP requests/response to middleware and from tripperware
- updated go-httpares dep
Kedge service:
- added support for K8S auto-discovery of service backends based off metadata (no need to actually specify routes manually!)
- fixed retry backoff bug in lbtransport
- added test log resolution
- logging improvements
Winch (kedge client):
- fixed handling of debug endpoints.
Kedge Service:
- - fixed remote logging
- - moved to glide as vendoring tool
- - added support for specifying port for director routes
- - added support for overwriting port on SRV lookup
- - implemented fully equipped k8sresolver (basing on k8s endpoints API)
- - updated OIDC library with patch
- - improved debuggability, passed proper logger with corresponded tags everywhere
- - removed Trial dialing in favor of better error handling
Winch (kedge client):
- - various improvements for passing auth as well as addition for new auth types
- - added port matching on winch
- - various fixes for templating
Kedge Service:
- - add support for specifying whitelist or required permissions in ID Token for OpenID provider.
Winch (kedge client):
- - support more auth providers and kinds (bearertoken & gcp from kube/config)
Kedge Service:
- - added optional remote logging to logstash
Initial release to start testing on real clusters.
Kedge Service:
- - gRPC(S) backend definitions and backend pool - SRV discovery and RR LB
- - gRPC(S) proxying based on routes (service, authority) to defined backends
- - HTTP(S) backend definitions and backend pool - SRV disovery and RR LB
- - HTTP(S) proxying based on routes (path, host) to defined backends
- - integration tests for HTTP, gRPC proxying (backend and routing)
- - TLS client-certificate verification based off CA chains
- - support for Forward Proxying and Reverse Proxying in HTTP backends
- - support for OpenID JWT token authentication on routes (claim matches) - useful for proxying to Kubernetes API Server
Winch (kedge client):
- - HTTP forward Proxy to remote Kedges for a CLI applications (setting HTTP_PROXY).
- - HTTP forward Proxy in daemon mode for browsers with an auto-gen PAC file.
- - matching logic for "remap something.my_cluster.cluster.local to my_cluster.internalapi.example.com" for finding Kedges on the internet
- - open ID connect login to get ID token / refresh token
- - support for custom root CA for TLS with kedge