ory / oathkeeper

A cloud native Identity & Access Proxy / API (IAP) and Access Control Decision API that authenticates, authorizes, and mutates incoming HTTP(s) requests. Inspired by the BeyondCorp / Zero Trust white paper. Written in Go.
https://www.ory.sh/?utm_source=github&utm_medium=banner&utm_campaign=hydra
Apache License 2.0
3.2k stars 349 forks source link

Outdated OTEL dependencies prevent import #1148

Open nico151999 opened 5 months ago

nico151999 commented 5 months ago

Preflight checklist

Ory Network Project

No response

Describe the bug

The open telemetry libraries have changed their folder structure over time and consequently the packages one needs to import. Oathkeeper offers a gRPC middleware that one can only use if ones does not depend on newer open telemetry packages with a different folder structure. The outdated dependencies keep one from importing oathkeeper in such projects. I thought about implementing a connect-go middleware based on the gRPC implementation so that I can use oathkeeper in my private connect-go services directly without downgrading my OTEL dependencies or hosting a dedicated instance of oathkeeper.

Reproducing the bug

Start a new Golang module and import current versions of open telemetry. Then, import oathkeeper, too. You will get an error due to the different folder structure of the packages in the different OTEL module versions.

Relevant log output

No response

Relevant configuration

No response

Version

v0.40.6

On which operating system are you observing this issue?

Linux

In which environment are you deploying?

Kubernetes with Helm

Additional Context

My connect-go microservices are deployed to a Kubernetes cluster but the oathkeeper should become part of them. As I intend not to use a dedicated Oathkeeper instance I am currently not using the Oathkeeper Helm chart but I would use it as a fallback if you do not consider updating the OTEL dependencies. UPDATE: this fallback is not an option since a dedicated Oathkeeper instance cannot handle gRPC traffic.