-
Notifications
You must be signed in to change notification settings - Fork 2.4k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Expose the function to generate tls.Config #1677
Conversation
We're looking to reuse this in Cortex to client side encrypt our connections and not having this exposed is making us copy this entire function. Signed-off-by: Goutham Veeramachaneni <gouthamve@gmail.com>
Use of this code is blocked by the security review, and we also said we'd want it released in the node exporter for a while before using it elsewhere. |
The original idea was to move this to prometheus/common once we had it figured out. There's nothing in our governance that says we need to block this on security review. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
Yes, but we would like to have TLS in Cortex sooner rather than later. From what I can see, this code has gone through robust code-review by prometheus-team already and I've reviewed the code myself and am fairly confident about it. While I understand that this has not gone through a security-review, the alternate is implementing it ourselves (with likely no security reviews in the future). I see reusing this in Cortex as major positive, but also understand that this doesn't have any stability guarantees and am completely okay with it :) We'd be okay with changing things and even throwing away this implementation if it doesn't hold up to a security scrutiny. We understand that we're reusing this at our own risk. |
Waiting on security review, releasing, and then moving is what was agreed at the last dev summit, and is the current standing consensus. If you think we should change that decision a new consensus must be arrived at - rather than ignoring the spirit of that concensus. |
@brian-brazil From my understanding, that consensus was about releasing it in the official exporters and publicizing it for wider use. And we'd like to see this tested too, and blocking opportunities for this being tested by advanced users is also against the spirit of the consensus imo. |
The consensus was also that we'd get a security review before releasing it, and that review blocks all other parts of the consensus. |
Agree with @gouthamve and @SuperQ. This isn't "releasing" it as would be including in prometheus/common and encouraging it's use, so LGTM. |
That's a very odd definition of releasing, I'd consider any appearance in a binary or making it a public API as releasing independent of where the code happens to live. My making it public you're encouraging the use of code that we've previously said must get a security review before a release. It's also not kosher to merge a change when there's active disagreement about it. |
This was first of all a change to the node-exporter. Nothing enforces anyone to use the exposed struct. There is nothing that would encourage, let alone force other Prometheus components to use this. So far this functionality simply a experiment within the node-exporter, so I don't see how this change is any different from any other change to the node-exporter. Unless I'm mistaken, there is nothing like a veto where any prometheus org member could block a change that both maintainers agree on. |
A change being in one repo doesn't mean it isn't relevant to the project as a whole, and this particular feature is a project-level one where the first step happens to be in the node exporter repo. To take a simpler example, switching to a completely different logging library would be project level even if it the PR itself only touched one repo. By a strict reading of the governance everything works on consensus by default, with maintainers additionally having a presumption of lazy consensus for things that only impact on their repo. I would hope that we'd try to work out our differences without having to get all rules lawyery though. |
But this doesn't replace a common used component like a logging library but is about exposing an experimental feature so an interested 3rd party can evaluate it as well. Regarding "our differences", I've tried and I gave up. If you are going all lawyery by trying to veto further PRs where I an @SuperQ are in agreement, I'll step down from maintaining this project. |
Anyway, I think it's fine to expose the Go-level function for now, but not give any guarantees around it or even advertise it. |
We're looking to reuse this in Cortex to client side encrypt our
connections and not having this exposed is making us copy this entire
function.
Signed-off-by: Goutham Veeramachaneni gouthamve@gmail.com