Add a meeting Rate this page

A

All right we are now recording, so this is the queue builder sub project meeting for November.

A

That's today.

A

1313, thank you. Thank you. Joe I'm, awake, November 13. As a reminder, this meeting, it's being recorded so don't say anything you don't want Lodge for all the internet to say and all perpetuity all right. Let me pull up the meeting notes and see if we have what we have on the agenda for today,.

A

Also, as usual, I would appreciate if anybody wants to take notes. That would be awesome, I just feel free to add suggestions or whatever in the agenda doc. All right. So it looks like we have two things from Joe Lanford, so I will hand it right over to Joe.

B

So these are both questions, so the first question is about v1c RDS instructional schema. There's this issue currently in the queue builder project that Eric created, there's been some discussion on so I just wanted to see. If there was any progress, if you guys need any help on things, if there's any other related issues that we could jump in and start helping on, this is something that's come up.

B

I've read had a couple times recently, so we're interested in contributing and helping figure out how to move to v1 CR DS or support both the one beta 1 and B 1 simultaneously or whatever we decide.

A

Yeah, so this there there's, unfortunately like 3, V, 1, C, Rd issues and I think I tried to connect them all, but I think a couple of them got slightly disconnected for me, so we merge support for generating v1c our DS in controller tools. Okay,.

B

That's cool I didn't know that and.

A

We have support for the various structural schema annotations it just merged like last week, ish I think basically there's now option in C or D gen that, where you can specify the versions of the CRD object itself that you would like to generate so by default, it generates to be one beta, one for compatibility reasons, but you can say we won or you can pass a list if you want to generate both in two different files for various reasons. So that is now like that.

A

That's now there and available, and it will be in the traditional pre cube con release, so I think most of the structural schema related markers have been merged. Thanks to some folks from your side, I think the only thing that is missing right now is some of the.

A

Marker server-side apply like list type markers, are still in an ongoing PR that needs to be merged, but I think other than that all the v1z are. The features have actually been merged, as for did web hooks go to stable as well I believe so yeah, okay, so we haven't done web hooks, so web hooks would be appreciated, file, a tracking issue and controller tools. If you want to help with up with those but other than that, I think I think we're actually mostly good with CR dv1 awesome.

A

If you, if anybody has any thoughts by the way on how to turn on the v1 c r DS in queue builder, without breaking backwards, compatibility or like what the folder structure file structure should look like, so we could like generate V, 1 and V 1 beta 1 and then have like a customized patch to enable one or not the other, or something like that.

A

That would be appreciated. Just you know, think about that, because it would be cool if we could generate both by default in queue builder and then just you know, allow users to pick or install the appropriate one or whatever.

B

Just customize 70: this is a little off topic. Maybe but just customize have any logic where it can discover which cluster you're targeting and automatically choose the right thing. I, don't think so.

A

Yeah I, don't think it does.

A

We like one one option it depending on like what we wanted to do just like off the top my head strum, and we could just let it be an option like a patch or something we could have a little shim, which we've traditionally so far, not done, but we could have a little shim. That was like call discovery, see a few ones available. If so choose to be one one or something like that, just but yeah.

A

If anybody has any ideas, feel free to drop it and drop them into the issue linked in the notes, and we can move from there.

B

Okay, anything else on that topic, nothing for me.

B

Okay, so my next question was- and maybe you kind of alluded to this- about the pre kuk on release drop, but is there a plan for a zero for zero release? That includes the kubernetes 116 and do we want to include go 113 bump in that as well? I.

A

Think we do want to include, go 1.13 and, and yes, I- think we're gonna do 0.4 that zero before cube Conlon's, we have a number of.

A

Significant about- and it's a good opportunity since we have to we- had a slight API break to top stream kubernetes, it's a good opportunity to switch over to go one, not thirteen as well.

A

Yeah and upstream kubernetes recently landed support for the one by thirteen, so I think we're kind of in the clear on not causing people too much issue with dev environments and going on to 13, so yeah I think we'll go forward with that look.

A

This will also nicely open up the door for things like rap terrors, which I am very excited about. Yep.

B

Okay, cool, so I've got a I've, got a PR open for going 13 I, don't know if you've got a chance to look at that. I.

A

I may have I can I can revisit it. I haven't done my cobra view for the week, yet so desperately trying to get some last slides finished so yeah, of course, yeah.

B

No rush from our side other than we would like 116 soon. If there's anything, we can do to help again. As always, yep will do. I will I will let you know, and then lastly, on this topic, I know. Last time we talked about incorporating this public API checking tool into the normal.

B

You know CI or something like that and I just I just want to let you guys know I haven't had a chance to dig into that at all. Yet so that's still an ongoing thing.

A

All right, are you, do you? Do you think you'll have time soon or no pressure I just wanted to see like? Maybe if we could write up notes, we could.

C

Also open.

A

It up to the community and be like hey. Here's what's left to do if anybody feels like digging into the guts of the NGO, type-checking semantics and just doing the last bits here then feel free to pick it up. Yep I'll create an issue to capture the current state awesome. Thank you.

A

All right, that's all I, have thanks ollie. Does anybody have anything else they'd like to discuss.

C

Hi, my name is reduce software in New Jersey. So I have a few questions. If you guys would okay.

A

Yeah go ahead. Oh.

C

You know I just got into this operator. Development um communities may be like couple of months back and then I just kind of look at what is the best way to write an operator, and the first thing I started with is the SDK the operator, so I did a little bit and then I found Q builder. Then I switch it to Q builder. For a few reasons and the main one being the Q builder, documentation is fantastic. The book was very nice.

C

You know I really like that, and the webhook support, of course- and you know that's something that I wanted the validation. So for those reasons, the switch to Q builder but I I just discovered that there is a issue on github that says these two are being integrated. So can you just elaborate being on the front these two tools.

A

Yeah, so there there's actually a full design document that kind of lays out what's going on in the queue builder repo, but the TLDR it's on the designs folder, the TLDR is that because operator SDK and queue builder already actually share a lot of code and tooling operator, SDK is going to be relying on the queue builder. Scaffolding for scaffolding out go operators from operator SDK, so you will basically end up using the same tooling and scaffolding for both tools getting the same tooling and scaffolding.

A

Out of both tools, post, merge and there's some things that are being up streamed from operator SDK back into the various q builder projects, because there's some super awesome stuff there, and so there's tracking issues for some of that as well Joe. Do you have anything to add that.

B

Pretty much covers it, yeah so I think the goal like like Sally said the goal is like once we finish this integration, the yep will scaffold the exact same project layout operator, SDK and queue builder should be generally compatible and interchangeable for go projects, and then the SDK team will start developing and maintaining and contributing into the queue build projects a lot more rather than having this separate operator. Sdk go libraries that are kind of a little bit more difficult to integrate if you're using queue builder.

C

Okay, thank you. Yes, so if I understood correctly, actually, if I'm writing in go then queue bigger, is you know it okay to go ahead with because eventually operator, SDKs also going to use the queue for the most part right, yep, okay, couple of more questions and again I.

C

Think one of you referred to the error handling before I didn't catch it completely, but I was kind of looking at how best to you know, deal with errors and kind of introduce back off between requests back down the queue and limiting the number of retries and I found that there is a operator SDK, the github project, you that utility functions kind of thing, but that's that for our SDK. So you have any plans for like error, handling, adding error, handling, Cubism.

A

I mean queue builder, already supports back off automatically from errors.

C

Yeah.

A

The fact that that happens, I think I discovered the other day when someone asked a similar question is actually a gap in the documentation right now ah yeah. If actually, if you want to like these, if you want to file an issue, it's just like documentation is missing a note that would be awesome.

C

Yeah.

A

There's it's it's an exponential back-off, so you should get like a very short back off and then a long tail.

A

There's a max there's like a max back off and so it'll like it'll, continue at that max back off interval. But it's like it's large.

C

If I find that backup is happening and I'll definitely find a what.

B

Are we talking about reconciler errors that we're talking about here.

C

So just.

B

Just from the SDK perspective in Cuba perspective, we're both using controller runtime and controller runtime as the library that's doing all that back off. So you should see basically no difference between operator, SDK and queue builder. Okay,.

C

All right, so, if I'm not finding that it's happening for whatever reason, I'll file an issue, but your things should be there.

B

Yep, it should be there, but you might want to file issue about the documentation. Sure.

C

And I have one final question again based on my testing. What I see is that my reconciliation is successful and immediately another reconciliation. The question comes in for the same resource. It happens all almost all the time hundreds actually saw me I couldn't find out why a reconciliation, the question being issued. So is there any way to figure out why so.

A

This is this is actually like a good idea for another doc bug so like thank thank you for bringing it up yeah, so hey! Well, there's actually two doc bugs in here or to book two two issues in here. The first is that a there's not really a good idea right now to find out why a reconciliation was triggered.

A

We've had some talk of integrating tracing before into the cute builder and or we could add better logs there. So that's like one issue that probably should be filed. So thank you for moving that up and the other one is the I get another reconcile immediately after my first reconciled. Is is a really good, FAQ question, so that's usually caused by the fact that you actually submitted an update because you submitted an update. The API server goes up, something changed.

A

You need to reconcile again, but because it's the update use a minute, you should be in steady-state right. So, like you know, you'll presumably got the got. The reconcile request see that you're in steady state and nothing will happen and, depending on what you're changing you may be able to use like the generation changed predicate to avoid this. But this is another really good case where, like this is a frequently asked question and we could definitely be clearer on this in the documentation, I think.

C

Okay, maybe I and issue awesome.

A

Thank you and.

C

I'm implementing a hook- and you know in my custom resource and recently another of my resources- my name- is little weight or what is the recommended way of making sure that the other resources exist.

D

I.

C

Want to do invalidation and fail the.

A

For for this, one I would I would encourage you to we should we should continue this discussion offline, because perhaps this is a little bit more of an extended explanation here or we can revisit at the end of the meeting, because it looks like.

C

Yeah.

A

Or post in an issue that would be great.

C

Thank you.

A

Alright I think we have a couple more other discussions, looks like Joe and Maria, both Adam ones, so Joe and then Maria just in the order. They appear in that sure.

B

So is that blogging flags at so to see I think put together and there was another PR before his sabes. That has some improvements for making the Zap lager more customizable from the calling perspective. This is in controller runtime, where now there's like very attic options and it's easier to turn on and turn off different aspects of the logger.

B

One thing that we've done an SDK and this was kind of a while ago- and we don't have the exact same interface, but we have like a like an at like a bind Flags method on the logger that will basically enable an operator to call this and then have flags added to their binary. That would make it easier to configure the longer from Flags, rather than just in code, so I'm curious. If that's something you're interested in having us contribute in controller runtime.

B

You want us to update our stuff in operator SDK to make use of the new, very attic flags and then demo that before we do it I'm just curious kind of what we're thought would be there. I.

A

Think having having Flag support would be having helpers for Flags option will help. Those helpers for flights will be awesome. Just because that's the way most people do things right now. It would be great to eventually get to something like component config, but the reality is most. People won't have flags at the moment so yeah and in that PR, if they they should make use of the very otic options if possible. If it's not like super clunky to do so, and if it is, we can figure out something else, but yeah.

A

It would be great to have those I think cool.

B

All right, that's it their fix.

D

Just quick went from me and most of the conversation I'm not looking for an ultimate like decision now, but I just wanted to see what people thought about bringing the integration testing framework into controller runtime, I.

A

I think we should probably do it controller. One time is the only significant actually.

D

It's.

A

The only consumer that we can find on github on all of github of testing frameworks and there's some stuff that we actually would like to do in the testing frameworks as well. I have a really hacky version of this. Pr posted as part of the work I did to add support for off and the secure port to the end test framework.

A

But if someone wanted to like separate that out and do a little code cleanup or if you have ideas, I think one of the things we can, we kind of have like two layers of indirection right now, I'm so like ultimately, I think. What we want to do is like first step port integration, testing framework into internal, the parts that we can into internal and the public stuff into public and then like step.

A

Two would be to like see if we can actually reduce the layers of indirection that we have so we don't have like M test wrapping high level integration framework. Wrapping like the internals of integration framework. There's like three layers right now, I think we can collapse. That's like one or two and makes the code a lot more simple and make it easier for us add cool stuff to the integration framework yeah. So that was a really long-winded way of saying. I am definitely I'm wash well.

D

Mainly when to check is there, are there any big drawbacks or what cause you can? Think of that would make that a bad idea, but if not, we can like hanis and I could probably make a start.

A

There's any major drawbacks that I know.

A

If anybody else has any bring them up now or them, please add them to the dock, but yeah I, don't think there's any any major ones that I know of I.

A

Think the main main thing that people have brought up before is that testing frameworks couldn't be vendored into KK, but I think that was mostly an aspirational goal and it hasn't practically materialized. So.

A

All right.

A

If nobody has anything else, I have one more thing for the end. So recently we merged a official guidelines for kind of what in kubernetes, is referred to as the contributor ladder. So this is how to gain more a more formal role in the queue builder project, in terms of officially being recognized as a like, a trusted, reviewer or approver, and so I know. There are a bunch of you that have been leaving really awesome reviews and are really knowledgeable about particular areas of queue, builder and controller runtime and controller tools.

A

And so, if you are at all interested in you know having a more formal, formal role in things, I would highly encourage you to look at those and then, if you have any questions, feel free to reach out to me directly on slack or you know, submit a PR to add yourself as a reviewer in an owner's file. Or what have you, but definitely please, I, know, there's there's a bunch of you who are super knowledgeable about certain things. So definitely, if you're interested, please speak up.

A

All right does anyone have anything else.

A

All right, if not I, think we will end the meeting for today for those of you who will be a cube con next week feel Fri that feel free to find me and stop by and say hi in person and for those not at keep con I'll see you all in a month.

B

Sounds good, that's it thanks.
youtube image
From YouTube: Kubernetes KubeBuilder 20191113

Description

KubeBuilder Meeting for 2019/11/13. See https://sigs.k8s.io/kubebuilder for more details.