-
Notifications
You must be signed in to change notification settings - Fork 1.6k
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
chore: Kubernetes Integration RFC #2222
Conversation
Great PR! Please pay attention to the following items before merging: Files matching
This is an automatically generated QA checklist based on modified files |
I would like for @MOZGIII to finish this RFC. @LucioFranco and @ktff you are welcome to chime in, but it might be better to wait for more progress. |
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.
Sorry for the spam, I hope some of my feedback will be useful.
Also, I believe this one #2070 should be mentioned here (although it doesn't seem to be a blocker). However, without it "centralized" topology might become less predictable when both agent and the central services are deployed in K8S (it might be a common pattern to optimize connections to sinks for huge clusters).
@Alexx-G we very much appreciate the feedback!! Thank you! |
90ba69f
to
692bbbb
Compare
@MOZGIII, here are some interesting issues in other projects. Addressing these should help us avoid bad design decisions:
|
Thanks @binarylogic! I'll cross-reference those with our RFC and add the concerns that are missing. I'm still in progress of writing up the design considerations, but there are a few new sections already available for review. |
Converting this to draft for now. Will mark as "Ready for review" again when it's complete. |
9a1f234
to
3c81a1f
Compare
I'm not sure how to address this. Good catch though! @binarylogic, do you have thoughts on this? |
@MOZGIII you are the 3rd party audit :). I think we're fine on our approach here. We've been very thorough. |
Signed-off-by: MOZGIII <mike-n@narod.ru>
We pretty much determine which k8s API version we use. It's unlikely that we'll use any new features, but setting a reasonable non-latest MSKV is a pretty much zero-effort increase of the volume of the supported versions. If it'll cause issues during the implementation - I'll probably bump MSKV, but it seems like 1.14 is optimal in an effort-to-value ratio. |
Fell free to skip this comment - I'm just providing a write up for completeness.
It' in the kubernetes code at master as of 1.18. I'd suppose even that it's likely the most popular format currently.
It should be easy to add in the initial implementation.
Well, it's pretty evident from the code of k8s itself (I linked the relevant code).
You're right about Reloader, it's a useful tool. But there's a wide variety of those -
This is more important for Vector being ready to run as a k8s-integrated app in any configuration (not just the one that we recommend by default). I.e. not just with
It's an implementation detail - using signals is also possible. The problem with signals is they're preemptive - so it's harder to actually ensure that a process doesn't hang. For example, if a process is stuck in a deadlock - signals might still work, while HTTP server involves more internal components by default - and thus provides higher confidence (again - by default, i.e. with a naive implementation).
This is very interesting. I feel like we only need to provide the filter events based on last known filter metadata option. I don't like either dropping events or stall events until buffer overflow because if the
I was thinking about renaming
Yes, I'm thinking about those cases. They're all outside of the scope of the initial integration, but I'm trying to account for them so that we don't get into a position from which we can't advance. So far, I think it's going well. I mentioned some of the aspects - but there are a lot of those that I omitted from this RFC - so we can focus on a narrower feature set for now. |
I.e. --config *.toml Signed-off-by: MOZGIII <mike-n@narod.ru>
…an RFC Signed-off-by: MOZGIII <mike-n@narod.ru>
The should've been at the outstanding questions in the first place Signed-off-by: MOZGIII <mike-n@narod.ru>
Signed-off-by: MOZGIII <mike-n@narod.ru>
Noting my approval. I cannot approve since I opened the PR, but 👍 from me. |
Noting: I spoke with @lukesteensen and @JeanMertz separately and both agree that we should move forward with implementation. |
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.
Retroactive ✔️ for the plan of attack
Signed-off-by: Brian Menges <brian.menges@anaplan.com>
Rendered
Rendered (master)
As noted in the RFC, this is retroactive RFC intended to ensure we deliver a high-quality Kubernetes integration. When we originally started on this integration we did not have an RFC process and I think we missed the opportunity to appropriately address corner cases and establish consensus on our approach. We also have the benefit of hindsight; we've learned a lot of as we've made progress on this integration. Therefore, I'd like for this RFC to serve not only as an audit for everything we've done but an opportunity for us to reapproach our strategy with everything we know.
Finally, I'd like to point out that the work up to this point has been excellent. I'm very happy with the progress we've made so far. This is more about bringing a new perspective in an effort to QA our approach.
Ref #260 (our previous attempt at an RFC)
Closes #2221