istio-ecosystem / authservice

Move OIDC token acquisition out of your app code and into the Istio mesh
Apache License 2.0
217 stars 63 forks source link

Merge authservice-go into the main project as a v1 version #242

Closed nacx closed 7 months ago

nacx commented 7 months ago

There has been an effort to improve code readability, testability, quality, and the overall maintainability of the project. The current C++ codebase is hard to maintain and to properly test end-to-end, and adding features like better integration in Kubernetes is hard. To that end, the authservice-go is a full rewrite of authservice in Go, making the project more accessible to the cloud-native community and easier to integrate into its ecosystem.

It is a drop-in replacement, fully compatible with the existing image. The project contains e2e test suites that run with both images, the authservice-go one and the C++ authservice to guarantee it s a clean drop-in replacement.

The rewrite adds extensive code coverage, several end-to-end test suites that verify the correct behavior of the supported OIDC flows, as well as the mentioned compatibility suite.

In addition to the extensive tests and feature parity, it also fixes the following issues:


I'd like to propose merging authservice-go into the upstream authservice and to use the Go-based version as the main option moving forward, as it is much better tested and usable. I propose to create a v0 branch to keep the C++ code should anyone be interested in continuing that, and use the main branch for authservice-go and call it the v1 version. The reason for having the Go version in the main branch is to properly accommodate the Go module mechanism (having the go.mod file in the main repo branch) and properly convey the project's path forward.

@ZackButcher @zinuga I'd love to hear your feedback on this!

dio commented 7 months ago

Sounds good!

deva26 commented 7 months ago

@nacx , This is amazing. We will all benefit a lot from from the increased test coverage, bug fixes and an easy maintainable solution. :+1 for the proposal to merge authservice-go

zinuga commented 7 months ago

Sounds good. Supportive of the change.

nacx commented 7 months ago

Thanks!

The merge has been done: