What's going on everyone? Sam here with late in sports cards have been 22, 23, Pni select basketball hobby three box break number three random team style. So looking at your random results as always you can find those on the websites under the results tab as well as the link in chat. Remind me when we get to Billman's best player style we have like a one stipulation I'm gonna have to worry about. Here we go box one. Lock here everybody. Four card pack Marjanbo Champ to 249. That's Baldwin Junior. It's Paolo to 249. Silver rookie auto going to the magic. Evan G. Congrats buddy. Nice one there. Nice little Paolo action. Little speck of dust top right. I'll have Shawn wipe that off really quick. Great way to start it man. Great first auto. Congrats. There you go Evan. This one there buddy. That's been Bane. Tri-color and Christian Wood. Four year 100 for Draymond I'm assuming. Resigning with Warriors. It didn't come off. We'll send an empty box and wrapper. Silver to Mar. There is a little. Not gonna go crazy. Yeah there is a little issue on that one. It's up white. Little issue on that one. Sorry about that Evan. Still an awesome card regardless. Congrats buddy. Terry Eason, Dyson Daniels. Silver Lori Markinon. Player option for the fourth year. Yeah that makes sense. Probably opt into that. Calling it now. Four years from now. Draymond Green opts into his player option. 175. Cade Cunningham. And KD. Got some flawless tonight too everybody. I'm excited for that. This will be Florence Polo logo man. There's Kennedy Chandler. Nice one there for the Grizzlies. And it's the awesome. Chet Caleb Houston. This one always trolls me. Tri-color. Lori Markinon. Thought that was a gold for a minute. Tisnot. And Blake Wesley courtside. Biggest steamer here go. Marcus Smart. Kyrie Irving. What is the steamer here? Like right now? The second? The second. Only you. Ross Turner. Game used Jersey for the Pacers. Bang. Malcolm Brogdon to 149. Farah kind of walked into that. And Paul George. There's only a few people here. I don't know. It's stiff competition next door though. Immense. DeMar DeRosin. Nice one there. And Jabari Smith. Keegan Murray. Siddha Jalen Durran. And Max Chrissy. Macaroon might be getting out of the trash list at some point. Johnny Davis. Jake Laravia. Paolo Future. Siddha Malcolm Brogdon. And Bradley Beale. All right. That'll do it for box one. We're on a box two now everybody. Matt H taking a chronicle spot. Thank you match. Vaughn B or Vaughn S taking a spot in two Panini ones. Eight and nine. Thank you Vaughn. So you said Vaughn. The Vaughn and Shad all the time. Vaughn B. Thank you Vaughn S that was. Vaughn S. That is Kelton Johnson. Tyrese Maxi. Scope. And Jabari Smith. So for random player style inserts are sorted right? I'm assuming. It just right at the base outside of those few. I believe you. Chat home. I'll read it again but I'm assuming. There's Cade Cunningham. Oh boy. Wendell Moore Jr. As far as I'm aware it's like if the card has the player's name on it goes to that person. Gotcha. Ochaic Bajie. All right we've got Zebra. Houston Rockets. Terry Eason on the rookie. There you go Houston. That's gonna be or is Houston at? Houston, Houston, Houston, Houston, Houston, Houston. Irene P. Congratulations Irene. Potential trade options. They're only good for you. And pretty silent. That's kind of cool. Oh did he? Oh good. I see my line. Christian Brown. Yannis Tri-Color. Cade Cunningham. Hello Alvin. Alvin. You all have a good night. There's Jabari Smith Jr. Silver rookie jersey. Oh right on. Chris Middleton to 249. No 299. Just gonna patch Balden. Lavert 32mm with the caps. Over how many years? Christian Brown. Osmain Jain. That is weird. That is supposed to be a jersey but they didn't come out the jersey piece. Look at that. I've never seen that on a select card. We'll send an empty box and wrapper with O.K.C. Sorry Chris. Kind of weird that they didn't cut the jersey piece out. It's a 249 RJ Barrett Benedict Matheran. Look at how goofy that looks dude. That's kind of funny actually. Kobe White 33 to the bowls. Drew U-Banks to the Suns. Nice. Where was U-Banks? Where was he on the Blazers? Kobe White I guess it's a re-sign. Two years for Lavert. 32mm. That's a good deal for the the caps dude. Wow. Alcai Branham. Silver is Max Christie. And Jaylen Wood. Just cooler like that. Kuzma. Kuzma's re-signing with the Wizards. What? Silver I would just soon move. I guess you know what I think happened with that? I think he fully intended to sign with Sacramento but they brought back Harrison Barnes last night. So I think that they're not bringing back uh or they just you probably decided hey I'm gonna get the Brinks truck from Washington. Yeah what? Jabari Smith yeah for 102 million. Come on dude. 31 out of 249. Oshai Baji. Nice one there for the Jazz. Congrats Utah. Nice little hit there. Benedict Matheran and Christian Wood. It's a tri-color Musa Diabate. Spicy Pete. And Fuego Trey Young. Silver Shade on Sharp and Scotty Barnes. That's kind of wild that uh that much for God I'm surprised shocked Kuzma went back. I would have bet my life that Kuzma was not going back to Washington after he opted out. Musa Diabate lined green to 49 on the die cut for the Clippers and Kevin Durant. Nice. Hey what's up ma'am? Hope you're having a great uh wonderful Friday evening as well. Yeah what up? What's up ma'am? All right. I keep thinking they shorted us a auto and they keep forgetting that. Oh they have a magged one in the palette. We might be shorted auto. Uh 14 to go now on Chronicles everybody. 14 to go. Let's get that filled up. Most inexpensive football break of the day at $75 a spot. Get you a random team. Plenty of hits to be had in there. Pulled two 1-0-1s on release day. Sean and myself back on Wednesday. Zion Williamson 2-1-1-9 and Blake Wesley. Looks like a tie-dye coming up here. RJ Barrett. Jabari Smith Jr. 17 of 25. Tie-dye rookie patch auto.  Alexandra has also taken 3-1-1. Congrats to Irene with this nasty Jabari Smith. That's kind of disgusting. Take that for sure. 17 to 25. Here you go Tic-Tac. Get a better look at it. Gorgeous, gorgeous, gorgeous. Silver is Jaylen Brown. Kauai Leonard. Got Kyle and Jake also live over on LSE 2. Later. See ya. Caleb Houston. Scope. And Anthony Simons. Yeah dude Kuzma. Resigned with the wizard. It's $102 million. Who would have thought that? Not I. Benedict Matheran. Silver, Dallin Terry. Steph Curry. That's a good deal for the good money for the bulls there. AJ Griffin. That's Jason Tatum. $2.99. And Luca. This is the City Connect Marlins hat. City Connect Marlins hat today. I think I'm going on a run of City Connect hats now. I think I'm going to target those a lot harder now that all of them are out.  Keegan Murray, rookie Jersey Auto. That's Sacramento. Go into the Kings. Where are the Kings at? Kings, Kings, Kings. Nick V. There you go Nick. Grats buddy. Joe H taking a spot in Chronicles. Thank you Joe. It's Malcolm Brogdon and Drew Holliday. Thanks for all the follows over on TikTok. There's Paolo. Jaylen Brunson. The Brunson burner. Blue Caleb Houston. Die cut to $2.49. And a Joellen bead. Another attack. I know Sean and I have matching hats on. Sean actually copied me because I came in first today. Jaylen Brunson and Deontay Murray. Yeah. You knew I was wearing a mono tag. You're like, oh, I got a match with him today. That's what you did. I have no idea what you were wearing. That's what you did today. I know. I know. I could care less. Oshaig Bajie. What you're wearing. Sean probably knew that. I wouldn't have wore this. Oh, you would have. You would have been running to your closet to grab it. Hey dude, I'm wearing a Marlins hat today. I've been like, cool, I'm not. A mellow ball. There's a white Jaylen Derren to $1.49. That's how it's going down. Yeah. That's pretty funny. Still copied me. Rudy Gobert. Throwback threads. Nice one there for the Jazz. Got a silver Chet Holmgren rookie and Jeremy Sohan. Jaylen Derren rookie. Silva Jha and Damian Lillard. Kita Bates Jop. Two year five to the Suns. Not bad. Not bad. It's a great three boxes select, man. Great three boxes. We've got Rudy Gobert. Usman Jeng. Again, there's air. They didn't cut the patch out. Jabari Smith. Miles Turner. Terry Eason Zebra. Keegan Murray. Ochaig Bajie. We also had a Paolo. Silver Rookie Otto to $2.49. And then the hit of the day so far I would say is this tie-dye Jabari Smith Jr. two-color rookie patch Otto for the Rockets. Congrats on that, Houston. That'll do it for the break, guys. Thanks again for the fill. Up next is number four.


Hello everyone and thanks for attending this talk. I'm sure last few days have been very enriching experience for all of us, and I'm sure today is even going to be better. I'm not sure about you, but at least for me because my evening flight is already canceled. So with that, let's start. Today I'm going to talk about a scheduling simulator for capacity estimation of Kubernetes cluster. Although it says simulator, but it's a real utility that you can run against your cluster. Simulator and simulation is just part of the design now. Just a little bit about myself. I work at Red Hat. I've been a core contributor to Kubernetes and OpenShift for several years, and for the last several months, I've been working on these two new tools, de-scheduler and cluster capacity. Cluster capacity is the one I'm going to talk about today. This cluster capacity effort is completely community effort, there have been several people involved in its design and its development, so I'm not the only one. Here's the agenda of my talk. I'll first talk about why we really wanted to build this tool. Then I'll talk about why we have designed the way we have designed. Then I'll talk about some of its feature, and then how we can use basically some of the best practices we have learned by running on some real clusters. In the end, I'll give a demo, I think the most important part of this talk. So a bit of history. Before OpenShift V3, that is based on Kubernetes, we have entirely different implementation of OpenShift in version V2 and version V1, and our OpenShift off-stream headed to where they could input something called Gears. You might think them as similar to Ports, but they are not really similar to Ports, and then that utility and tool used to give some output number of instances, and based on that, our off-stream used to decide or used to take some actions, whether we want to add more nodes or more capacity or not. So that's how it started. Because when we moved to OpenShift V3, that is entirely based on Kubernetes, that tool was no longer useful and we wanted to build something similar for OpenShift V3. So with this tool, basically we wanted to answer two very simple questions, how much capacity is left in a cluster, and when to add more capacity to a cluster. If you have been running some cube cluster, and you have been doing capacitive planning, you might be wondering about even so many other questions. But we just started with these two questions. Another thing we considered a workload type, like we wanted to have a tool that could process like uniform workload and variable workloads. Uniform means your applications have same requirements and variable means your applications have different requirement. Another thing we had in our mind when we were designing and we are working on this tool, initially we just wanted to start with very simple utility, very lightweight. We didn't start this tool with very ambitious goal, like we want to have all the features related to capacity planning in this world. We just wanted to very simple tool that can do its job and what kind of questions or answers, answers we are looking for, it can answer those questions. So now because we have been talking about capacity, what does it mean in the context of Kubernetes? When you have application, you want to deploy on Kubernetes as a pod, although like you don't directly use pod, you generally use some higher level construct like deployments. So when you think about capacity, the first thing that comes to our mind, resources, what kind of resources are provided in a Kubernetes environment? These resources could be CPU, memory, storage, or some special devices like GPUs. Since we are talking about these resources, another question that came to our mind, like is it possible when we are thinking about capacity planning, can we just think these resources individually? So basically like in the context of Kubernetes environment, can we think capacity in terms of individual resources? Maybe not, and let's see why that is not the case. Because I'm sure most of you are familiar with Kubernetes, pod is the smallest schedule unit. That means when you specify your application requirement, resource requirement, your pod has all sort of resource requirement, and that means those resource requirements are going to be considered collectively. When the pod is scheduled, you don't consider those resource requirements individually. So that is the main reason, we need to have some sort of design where we need to consider all those resources collectively. So as I said, we wanted to have some tool where we can input your pod spec that specifically mimics your application, and we can run that tool against your running Kubernetes cluster, and then it provides number of pods. Because if we know number of pods, like how many number of pods we can schedule for your application, it gives some idea about capacity, and if the number of pods maybe is less than, below some number, you may want to add some more nodes, and you can take some access based on that. So this is I think why we wanted to have this utility. Let's talk about its design. Initially, we considered two design approaches, like one is resource-based approach, or you might say resource-centric approach, and another is scheduler-based approach. First, I'll talk about resource-based approach, and then I'll show you what are the disadvantages and why we didn't go with that approach, although that might seem a little simpler. And then, and why we went with a scheduler-based approach. So just consider, let's say you have your input pod that mimics your application, and you specify some resource requirement, let's say R. And let's say you have your cluster where you have N nodes, and each node is already running some pods. So basically, it shows the remaining capacity on node one. For example, it's very simple to compute, like on any node, you can just find like what is the total capacity, then you find how many number of pods are running, then you just sum for all number of pods, and then you find computer, what is the total capacity that is being used, and you just subtract, you get the remaining capacity. And you do that for all the nodes. So that means now you are getting the remaining capacity for that particular resource for your whole cluster. Now, it's very simple. You can just divide that, your input requirement, and it will give number of instances. But as I said, when we are considering pods in the context of Kubernetes, we need to consider all the resources. That means this process, this computation, now you have to do for all the resources. Once you do that for all the resources, then you get the minimum among all the numbers you have got from all the resources. That means that many maximum number of pods can be scheduled. So, I mean, it's like we are just considering raw resource-based approach, and we are getting how many number of pods can be scheduled. But let's see what are the disadvantages. And maybe to put it in other words, is it enough to just consider resource only in the context of Kubernetes? Let's talk about that. What are the other factors in a Kubernetes cluster that impact scheduling? For example, let's talk about fragmentation. Let's just, we might take an example of CPU. Let's say your input port request is, it's asking for 500 millicore. And let's say you have several nodes, and it shows the remaining CPU capacity on each node. If you sum them, it might seem several pods of that request can be scheduled. But you know the way scheduling works because no individual node can satisfy that requirement. We cannot schedule that node. So, this is one disadvantage of that approach. Then, if you are aware of how actual scheduling works in Kubernetes, when you're using Kube CTL, you create your pod, it goes through several stages. One of the stages is admission plugins. The way you have configured your cluster, the way you have set up your admission plugin policies, what you input, and what is the output? The output port might be different because there are two kinds of admission plugins. One kind of admission plugin says that modify your input pod based on the way you have configured your cluster. And then, you have another set of admission plugins that might do something else, but don't modify your input pod. So, if you just consider your input pod without getting through them all the admission plugins, the way your cluster is doing, you might not get the actual or maybe more accurate answer. It might be in fact wrong. So, that is another reason. What are the other reasons? What are the other factors that impact scheduling? So, if you are aware of several features we have in Kubernetes, the way we have multi-tenancy, the way we have segmentation in your cluster. So, I'm sure you must have heard about node selectors and node affinities, because when you have node selectors, that means you have sort of segmented your cluster in several parts. And let's say if you have your application, you are specifying some node selector. That means you cannot consider the whole cluster. You just need to consider only those nodes with that node selector. So, that is one thing. Then we have node tents and pod tolerations. Tents are also like you are segmenting your cluster, because only the pods, those are tolerating those tents can be scheduled. And if your application has that specific requirement for those nodes that are tentator, that means you only need to consider those nodes. You cannot consider the whole, all the nodes in your cluster. Something that we were doing with resource-based approach, because we just had the idea or view of resources, we did not have the view of all the other factors that are impacting scheduling. Another thing I want to mention, like although it might seem in your cluster, all the nodes are homogeneous, but I think they are not. Even though you might have similar resources on each resources, on each nodes, but still like you might have different node selectors, tents and other things, that makes your nodes heterogeneous. And then you have pod affinities or anti affinities, like depending upon your applications, your application might have affinity to some other application. And that way it also impacts scheduling. And again, you just cannot consider a raw resource-based approach here. And another, it's a very simple thing, like max number of pods on a node. I'm sure you must have seen how many max number of pods you can schedule on a node. You might have all the resources available on your resource, but if you have exceeded this limitation, then you cannot schedule more nodes. Then definitely like pods storage requirement, the way you have configured your clusters, and the applications you are running, maybe all nodes cannot satisfy that your application storage requirements. So for that particular application, again, you cannot consider all the nodes. You only need to consider those nodes that are satisfying its storage requirements. So all these things impact scheduling. And when you are doing sort of like capacity planning for your application, you really need to consider all these factors. I think another question that might come to our mind, maybe is it possible, like all these factors we are considering, we might just implement as part of resource-based approach. Yeah, that's possible, but if we had done that, what we would have got, the default scheduler, the native scheduler we already have in Kubernetes. So why to reinvent the wheel when we already have that? So that's the main idea, like why we wanted to go with a scheduler-based approach. And now I'll talk about like how exactly it works, like and what's its architecture. First, it creates an instance of the default scheduler. Basically, it uses the same code. So it's like you are creating the same scheduler, but how is it different from the default scheduler that we have in Kubernetes? It maintains its local resources store. Why does that? So that it does not impact the actual cluster. When it runs its analysis, it only runs it in its local resources store. Initially, it fetches the cluster state from your running cluster. And as I said, it runs its analysis based on that. Again, it does not, after that, it does not impact your real cluster. Then what it does, whatever input pod you have provided, it schedules them one by one, the way default scheduler does. And it keeps doing that until it gets some error that more ports cannot be scheduled. Another thing what it does, like it does not bind those ports to nodes because what it's doing, it's doing analysis to get the number and the maximum number of ports that can be scheduled. So it does not bind ports to nodes because if you bind ports to nodes, that means you are really impacting your cluster. So it does not do that. And as I said, like it stops when no more ports can be scheduled. So I mean, this is the main core of this cluster Capsule tool. As I said, we really wanted to have a very simple tool that can answer what questions we wanted to answer. So what are the features we have? I would say it's kind of like proactive approach where you have your cluster and you have this utility and you run against it.  I'll show you how you can automate that. Either you can have traditional scripting or anything. But it's a kind of proactive approach where that you are regularly running this utility against your cluster and for your application, it's showing how much capacity is left and then based on that, you can take some actions. And it can be run via command line or as a pod. I'll show you what are the advantages if you run that as a pod. And if you have been running Kubernetes cluster, sometimes you might modify your default schedule policy. Maybe you want to do something more customization of your default scheduler. Because as I said, it is also an instance of default scheduler, so you can also modify or provide your custom scheduler policy that you are using in your actual cluster so that it can exactly mimic the actual cluster, your actual cluster. And as I said, by default, it outputs how many maximum number of pods can be scheduled. But if you are not interested in that, maybe you just want to know, is it possible to schedule just 100 pods of my application or maybe 500 pods of my application? You can specify that max limiter, then it will stop as soon as it finds that that many number of pods can be scheduled. It says it outputs that number. And if it's not possible, then it will output some smaller number. And pods resource requirement from limiters, that means by default, you must specify some sort of resource requirement, like let's say either CPU or memory, because if you don't specify that and you are just trying to find number of pods for best-ever pods, it's not possible to do any analysis because if you don't have any raw resource requirements, I mean, there is no way you can run any analysis. So basically, you must specify that, but if you don't specify that, another thing what you can do in your cluster, you can create another name space and then you can specify default limit ranges. If you're familiar with that, that's one way of defining default resource requirements. And then it will fetch it from there, if that application is also going to run the same name space or project. And another good thing, what it does, it shows not only the total number of nodes, it also shows how many pods on each node can be distributed. Let's say it shows 100 pods can be scheduled, but it also shows maybe 10 can be scheduled on this node, five can be scheduled on this node. So it also provides a distribution, so you might see what are the nodes, where we are able to schedule more pods and what are those nodes where we are scheduled less number of pods. So it might give all some more idea about your cluster. Also currently, it only considers uniform workloads. Basically, when I say like uniform workload, that means at one timer, you can only specify one pod, one input pod. Also, if you have multiple applications, definitely you can run that multiple times. And I'll show you what complexity is associated if we consider variable workloads, but definitely it's not that that cannot be solved, but I'll discuss about that soon. So let's talk about how we can really use this tool. So as I said, it can be run as a command line tool, and you just have to provide two parameters, a cube config to authenticate with your cluster, and input pod spec. So I think as I said, one of the goals we had in the beginning, we wanted to have very simple utility. And I think if you can run your utility by just providing these two parameters, I mean, at least I think this is simple enough. And as I said, like output is the number of pod that can be scheduled. And again, the same thing like resource request must be specified either in your pod spec or as part of limit ranges in your name space. And it has that verbose flag. Without verbose flag, it just outputs the number. And the reason why we did that, because so that you might have some automated scripting or some tooling so that you can just see the number and then your scripting can take some accents. But if you really want to see some more, like how on each node, how many pods can be scheduled, you can use this verbose flag. So what are the best practices? If yesterday, if you might have, maybe you saw Keynote by Clayton Coleman and I think he was talking about like OpenShift online clusters, and we have been deploying these tools on OpenShift, our online cluster to get more experience. And based on that, like we have found, like how, what are the best practices we can have to run these kinds of tools. So first of all, it would be better if you run this tool as a pod, either as a cube job or cron job, because then you get all the advantages you get by running a job or cron job. But for that, if you really want to do, you need to set up this environment variable, cc underscore in cluster to be true, so that the code knows that it's going to run inside a pod. It's called something called in cluster config in cube. Although like we might have some other way of also doing that, but I think this was, I think easiest way to achieve that. And then when you're running, I mean, I think it's true for any application or anything that you're running in a pod. You don't want to give all the permissions in your clusters, right? You always minimize the permissions that are required for your application. And that is true for cluster capacity tool also. So basically, the better thing would be, you just create another service account for that, so that you can limit permissions for that service account, so that somehow or for whatever way it gets hacked, it does not, it's the harm is limited. So what are those minimum required RBEC permissions? So these are the minimum required RBEC permissions you just need to run this tool. I mean, it's very similar to what default scheduler needs. The only thing it does not need like bind permission, because as I said, it does not bind ports to node. So this is the only like minimum permissions you need to run this tool. And then for easier usability, it's better like if you input your pod spec as config map, because I think if you have been running clusters and you have been running your applications, config maps are a really easier way to update your configuration. And because once you have specified that as config map, you can always mount that as volume inside your cluster capacity pod. So these are like the best practices we have been using to run this tool on our real products and clusters. This is the current status. It, like we have been testing with Qube and OpenShift clusters. It can be run against any Qube cluster or any Qube certified cluster, because it works with a real, I mean, stable Qube APIs. Currently, it's rebased to Qube 1.7, but soon we are planning to rebase to 1.8, and definitely 1.9. And it has been, this tool has been in OpenShift since 3.6 as a tech preview, but we just wanted to have more experience. Although, like I've been talking about OpenShift also, but this is a completely upstream project. It's part of Kubernetes incubator repo, so it's completely upstream. Everything is upstream in Qube. So let's talk about like what we can do in the future. Like I was talking about admission plugins, but right now we don't have that implemented and integrated in the current code. We definitely want to do that in future versions.  You always use some higher-level constructer, like replica sets, deployment, jobs, or stable sets. So definitely we want to have some mechanism where instead of pod, you can also import these things. And again, like as I said, right now we are just considering uniform workload, but we really want to consider variable workloads where like you can input sequence of pods. And as I was talking about like what is the complexity involved with that, let's say like you have two applications and you say, okay, just you input your two applications and you want to know about some more information about capacity. But the problem with that is when you schedule your two applications and you want to know what maximum number of pods we can schedule with those two applications, it is possible, I mean you can schedule like maybe 10, let's say you can schedule 30 pods for both applications, but maybe you can schedule five pods of first application, 25 of second application, or maybe you can schedule maybe 20 pods of first application or 10 pods of second application. So if you just specify your application, it might not give you definitive answer because there is no definitive answer for that. So better would be if we ask, like can we schedule like 10, maybe X number of pods of first application or Y number of pods of second application. But I mean like what I'm talking about, these are like my understanding, but if you have definitely like I would really like to hear like what are your use cases, how we can extend this utility. And if you have some ideas about this adjusting things we want to do in the future, I would really like to hear. Another thing like we wanted to consider multiple schedulers because now Kubernetes supports multiple schedulers. Also like in our scheduling meeting like we have been discussing whether like how to support this multiple schedulers. So that is another thing like we want to consider. So now time for demo. I'm going to demo it on our production cluster. And this is one of our online clusters and it has around 150, I think more than 150 nodes. And some of the things I have already done, like for example, I have created service account, I have created cluster, I mean role that I was talking about and I have also created binding between those two. So those things are already done. Let's see like about config map that we have. So these are the two config maps we have. I think it's visible like this is your input port definition. It's exactly like how you specify your port spec. So here you have a specified request of like 50 M CPU and memory of 128 and you have same limits. But it doesn't have to be the main thing it looks for a request. Because the scheduling and Kubernetes clusters what's based on request, not based on limits. Now I'm going to create a job. So this is the specification of job I'm going to use. If you see like this is like this environment variable that I'm using and this cluster config, capacity config map that I have created for input port spec and it's using its own service account. So what I'll do now I'll run this job and see let's see what happens. Again, it's real products on production cluster. I'm running, I take few seconds because there are around 150 nodes. I'm sorry. Around more than 150 nodes. So if you see, if you see this number it says like we can schedule 3441 ports of that pod. And it also shows some distribution like on each node how many ports can be scheduled. I'm sorry. Oh, okay, okay. So it shows distribution on each node. And if you see the reason like why it is stopped after that like it got insufficient parts sufficient CPU on some nodes and insufficient memory. Oh, so it seems like right now it has like 136 nodes. 136 nodes. I don't know like one week before we have almost more than 180 nodes somehow they've been reducing. I don't know why. In fact, I want to show another demo. Right now the input port spec does not have node selectors. It's considering all the nodes in the cluster. Now I want to show you if we have node selector as part of your pod input spec, what difference it would make. So let's first delete this and create another job. I'm going to delete this job. Well, it's deleted. Yes. Now let's create another job. Okay, first I'll show you config map for that. So this is the config map. It's exactly similar to the previous one. The only thing it has, it has also a specified node selector like type equal to compute. Like in our clusters we have two types of nodes, infra nodes and compute nodes. Infra nodes like where we only run critical system services and compute node where all the user workloads are running. So I'll show you like previously in the previous demo it was considering all infra nodes and compute nodes. But definitely like you don't want to do that because when you're deploying your application you are only deploying only this compute nodes. So now let's try that. And let's see what difference it makes. Generally, infra nodes are with more capacity. I just need to make one change to change this to a bright config map. And let's create this again. Again, the whole idea behind this too have very simple utility that can do its job. So you see now we can only schedule 2247 ports because now we have restricted how many number of nodes where we can schedule our application. And again it shows the distribution on each node. Like you see some of the nodes like you can schedule almost 81 but if you go down on some of the nodes only you can schedule like one, two or maybe under 10. So yeah, so that's it about my demo and other thing I wanted to, oops, sorry. Yeah, so these are the resources. Like as I said, it's a community effort. There have been several people involved in this design and development and it's a cube incubator repo. And this project falls under CID scheduling. You are always welcome to contribute and if you have more ideas, if you have your huge cases you are always welcome to communicate either via GIT or contact me directly or you might attend meetings on CID scheduling group. You can contact us on Slack channeler and it also have that images where like if you want to test, you can test. So I think that's all I have. Yeah, thank you. So if you have any questions. Actually cluster resource quota is part of admission plugins, right? As I said, we don't consider admission plugins here so it might not honor that but definitely we want to have like consider all the admission plugins. Yeah, yeah, yeah, yeah. But I think it's configured as part of admission plugins. If it's working as by default then like when we are scheduling because scheduler doesn't consider cluster resource quota, right? It's through admission plugins. But as I said, we are not considering admission plugins here. Definitely we want to have that. No, no, it's not like auto scaling for that. Like we have another project cluster auto scalar. As I said, like it's more kind of proactive approach. Cluster auto scalar is kind of like reactive approach where like it keeps and when there is problem then it adds more nodes. But we want to integrate this with cluster auto scalar also but right now we don't have that. Yeah, I mean, yeah, it's a very good question. Like we don't have that yet but as I said, like you're welcome to like join us, contribute, like definitely we work on it, yeah. I'm sorry, what you are not using? Okay, okay. Yeah, what we can do, we can discuss offline. I definitely can talk about that. I think we are running out of time. If you have any questions like we can discuss offline. Thank you, everyone.


The 14th day of Rabi'l Awal happens to be the passing of our master Imam Mahdi. The student of Imam Navi, the student of Sayyidina Abdullah Ibn Umar, the direct student of our master, the son of our master, Amir al-Mu'mineel, Umar al-Khattab, who is the direct student and the companion of our Prophet ﷺ. The 17th day is the birth of our master Imam Jasr al-Sadr, who was the teacher and the intern for our four Imams, the student of Muhammad al-Baghd, the son of Imam al-Khattab. Back for Imam al-Khattab, a direct great-great-grandson of the Prophet ﷺ. I'm very lucky.  And one of his Qalamahs that some of the people around him will say that he had an incredible ability back to communicating with them and what he would communicate with them was how to make sajda to God. He would teach animals how to make sajda to Allah subhanahu wa ta'ala.  This is a day that we should really be contemplating on. People that have hosa and imbaz in their understanding because of a lack of dhikr, because of a lack of fiqh in their deen. An understanding in their deen destroyed a blessed place where now Navi had been sleeping for hundreds and hundreds and hundreds of years. The 18th day is the birth of Bibi Um Khulthum ibn Ali. She was the fourth child of Sayyidina Ali ibn Fatim Zahra. She was then given a marriage by our master Imam Ali to Amir al-Mu'mineen, Sayyid al-Umar al-Khattab. She bore him two children, Zaid al-Nuqayr. This is a union, a blessed union between the daughter, the immediate granddaughter of our Prophet ﷺ and Sayyid al-Mu'ma. The 26th day was the death of Abu Talib, the father of Imam Ali. This happens to be, like I mentioned, a blessed occasion. This is a beautiful month. This is the month of Heja. This is the month of the Maudid. This is the month in which our Prophet ﷺ married our mother, Bibi Khadija, who bore him six children. This is the building, this is the month where the first masjid of Islam was built, Masjid Quba. We know about Masjid Quba that if a person is to make wudu and go to the masjid and perform two cycles of prayer, they get the reward of performing ulama. According to Imam Muhammad, he would go regularly on Saturdays to visit Masjid Quba. This is our history. And this is where we come from. And this is the foundation of our deans. This is the foundation of our understanding of our religion. You can't argue with history. So, we are commanded, commanded. And if you don't understand this, we have a very disfigured understanding of our religion. You as a Muslim, me as a Muslim, anyone who says, Ashadu ala ila ila illa Allah, and Ashadu an-Masjidina Muhammad Rasulullah ﷺ, must, must, must show gratitude to Allah Subhanahu wa Ta'ala and express happiness upon the arrival of our Prophet ﷺ into this world. Whether you agree on standing in saying salams, whether you agree that the 12th day of Rabi'il Awal is the actual month because there were some scholarly differences about whether it was the 12th, 17th, or 19th, fine. It's inconsequential whether you believe that this is supposed to be something an integrative part of our religion in terms of the actual recognition of the day. But if you don't, show gratitude to Allah Subhanahu wa Ta'ala on the arrival of our Prophet ﷺ into this world, as him being sent, as Rahmatil ila alameen, and something is wrong with our deans, and our understanding of our deans, in our practice of our deans. This is the day when we don't do something to try to change our religion. We don't put trees in our home and decorate them in a particular way. But it is a day where my teachers, I ask them, what's the practice of a true Muslim on the knowledge of the Prophet ﷺ? What are we supposed to do? And I was quoted from Ibn Hajjah. My teacher said, Ibn Hajjah, Ibn Allah, I'm said that every single day of your life is a celebration of the arrival of the Prophet ﷺ. I was taught as a child, literally. We did a celebration of the modus of the Prophet ﷺ every single month, every single week, every single opportunity that we had as a family gathering. We did, we gathered, I mean, and we beautified our gathering with Sadafah upon the Prophet ﷺ. So I asked, and I'm sure if my teachers told me, this is a time for the past. This is the time to recite Qur'an and Tani. This is a time to visit family members on this day. This is the day for extra players. Every single birthday I had, whether you believe in birthdays or don't believe in birthdays, this is what my mother taught me. Whether you believe in celebrating a Western birthday or an Eastern birthday or a Hijjahdi birthday or whatever type of birthday you decide to celebrate, my mother always taught me, whether you do any special recognition. You can have a cake and a this and a that, you can do those things. She said, what's most important is you stop and do two raka'a at the beginning of your day and shukr shukr to Allah. And thank Him for giving you life. And thank Him for giving you all the ni'amah that was sent into your life and asking to increase you in your remembrance and your shukr and your practice and the sunnah of the Prophet ﷺ. That's what I did, all the time. He said, this was the time to read some Sida because Muslims don't know when Harib Omar came and blessed us in this masjid with the gathering, that same evening we sat with him and he asked the children in the room, name the six children of the Messenger of Allah ﷺ, name his konya back to Adnan, name his in-laws. You have to know the Prophet. We know the members of our family like we know our own children. We know their names. We know their birthdays. We know their likes. We know their dislikes. But now we find ourselves on the 12th day of Rabi'l Awal and we have to take the opportunity to get to know the Messenger of Allah ﷺ. Who was he? How did he look? How did he practice his religion? Because if we're going to reach Allah ﷺ which should be our first and primary goal in our lives, to return to them with good akhlaq, to return to him, subhanahu wa ta'ala with qalz salim. And there's no better path than the way of the Messenger of Allah ﷺ. We're only going to enter into the presence of Allah through, as we know, the dua, the adhan, nil wasiha. Through the intercession, through the practice, through the sunnah of our Prophet ﷺ. So this is the day for us to seriously call upon you as Muslims, as fathers, as mothers, as children, as youth, as older people, whoever we are. What are we going to do to get closer to the Prophet ﷺ? And to his practice and to understanding this sunnah? Even if it means just sitting down to drink water and not standing. So, Allah ﷺ says in Surah Al-Taqarah فَاَذْكُلُونِ اَذْكُلْكُلْ وَاَشْكُلُونِ وَنَا اَذْكُلْ So remember me and I will remember you subhanahu wa ta'ala. And be grateful to me and do not disobey me. So that's Khudun. We don't attribute characteristics of Allah ﷺ to our Prophet. He's not a Muslim. We don't worship him. We don't do our prayers to him. We do prayers upon him subhanahu wa ta'ala. We try to connect ourselves to the Sadduat that Allah ﷺ His angels are sending upon him. But we're remembering him. Subhanahu wa ta'ala. I'm showing gratitude to him. And Lu was the greatest of the daqidi. The greatest of the people who remember. Our Prophet ﷺ. And we also know that Allah ﷺ connects his commandments and his obedience to obedience and the commandments of Allah ﷺ. Obey Allah and obey the Messenger of God. So it's incumbent upon us imperative over the course of our spiritual aspirations over the course of our spiritual careers in our lives. And do as he commanded and try to stay away from the things that he'd asked us to stay away from.  Ibn At-Taa'Allah. And so this is what he says. And reflection upon this verse. He says if you want the door of hope if you want the door of hope opened up for you. He said then consider what Allah ﷺ what is coming from him to you. Look at all the things that come from him to you.  And Imam Ali ﷺ says opening just a trickle just a trickle. A gratitude will open the floodgate. So if we just consider our ability to blink our ability to hear if anyone has ever been into the middle of the desert you will actually show gratitude for having nose hair. You will show gratitude for having hair in your ears. Because the dust is so profuse. You'll show gratitude for being able to blink or being able to relieve yourself. Being able to seriously feel things in your body the ability to feel nerve endings in your fingertips. This is all ne'amah from Allah. Even the ability to feel pain. Ne'amah. The ability that you actually when something's wrong your body tells you you can do something about it. Ne'amah from Ne'amah to Allah. He says but if you want the door of sadness to open up for you then consider what goes from you to him. Because whatever we do if we were to expend every moment of our lives. If we were to expend every single penny of our wealth. If we were to sacrifice every single thing that we had in this world for the sake of Allah it still wouldn't be enough. It wouldn't be enough. And if there's anyone that disagrees with me please talk to me after the khilda. We could literally give up every single thing that we have been given as a blessing from Allah and it would not be enough. We know the story, the beautiful story of the person that spent over his whole and higher life in a remote area simply milking a small plant engaging in a little bit of eating and then engaging the rest of his time in doing the good and then pray. And he's asked you're admitted to jannah by my my name is Rahmah. He said but not by my deeds and then the hisaab is shown. All the good deeds versus all of the ibadah and the good deeds outweigh. So in honor of the maulah of the prophet sallallahu alayhi wasallam we should also take him to a small plant something small from Sayyidina Muhammad alayhi wa sallam where the jams are sitting with one of the greatest scholars of our time. His father was the Imam of the Haram Sharif in Mecca before the current regime came and changed things. He was one of the greatest scholars literally of our time. He compiled this and he compiled it and many of the sources come from Jirid al-Qayyum and even Hajj al-Haitan. But he talks about the benefits of doing Sadawan because one of the jams who told me to be today is doing lots of Sadawan to follow the Prophet, especially during the Mughal and the benefits of doing Sadawan and Prophet sallallahu alayhi wa sallam. Number one he said it's responding to the order of Allah SWT Number two you're following the sunnah of Allah SWT and his angels. Number three ten blessings from Allah SWT reached the person who's doing Sadawan upon him even one time and ten degrees are raised and ten good deeds are entered into his account and ten bad deeds are erased. By simply reciting Allah SWT it is a du'a that is always accepted no matter who is reciting it. You could be a Muslim you could be a non-Muslim you could be anyone you could be a practicing Muslim a non-practicing Muslim. It's the only du'a that's always accepted, universal acceptance. Sayyid Muhammad al-Qadha used to recite the Sadawan at the beginning of the du'a and at the end of the du'a because if something in the beginning is accepted and the end is accepted there's hope that everything in between is accepted as well. He said number five it fulfills all of your worldly needs anything that you require of the dunya it'll be fulfilled through Sadawan of the Prophet s.a.w. Number six it'll increase your nearness to the Prophet s.a.w. Number seven for the person who is too poor the person who is under misad for the one who receives the cat from others this is their opportunity of giving Sadawan to the Sadawan of the Prophet s.a.w. Number eight know that when you say Sadawan s.a.w. an angel is appointed that takes your Sadawan directly to the Messenger of Allah s.w. and he returns the blessing and the greed Number nine it illuminates your gatherings Number ten he says it helps you remember something if you forget if you can't remember something Sadawan s.a.w. and you'll remember he said number eleven it saves you from miserliness because the greatest miser is the one who doesn't say Sadawan s.a.w. he says and it refines your character and increases you in good manners he said and it increases your love for the Messenger of Allah s.w. it will help you it will help you cross the Siyat on the Day of Judgment and it is your opportunity to express your gratitude to the Prophet s.w. for everything that he's done for imam in honour of imam because his grave is mentioned on the 17th day two years ago was destroyed and his teachings will not be imam now always says do a few things to keep your nafs in check to control yourself this is the day also where you're supposed to control yourself and show gratitude he says don't eat as much this is the Sunnah of the Prophet one third, one third and one third we all know this don't overeat we just finish Thanksgiving you couldn't even get into the car and unbuckle your belt before you left the house wear your spandex pants before you go to dinner this is not the Sunnah number two turn to Allah for all the unforeseen circumstances when it hits you your cryptocurrency went to 11,000 then went down to 9,000 okay turn to Allah people I'm getting text messages oh my god I'm losing every turn to God don't invest in cryptocurrency it might be a good thing number three stay away from situations where you're scared that you're going to enter into error if you think you might get into a problem stay away from it drive the speed limit ways tells you there's a cop ahead, slow down listen number four he says recite lots of astaghfaw and do lots of sadawats in the daytime and in the nighttime number five find a knowledgeable teacher and keep a separate keep with him as much as you can it'll protect you from everything unseen pray on time and pray your Sunnah prayers according to Abu Hanim there's 12 Sunnah prayers that you should do everyday pray the Duhal prayer it's giving zakat upon every joint in your body and you'll get the reward of your umrah pray 6 rakat between Ma'minah and Isha if you can and pray to Hajjud in winter before Fajr fast on Mondays the day that the Prophet was born Monday it's a good day to fast fast on Thursdays and fast on light days the 13th, 14th and 15th day of every month recite Quran with presence Imam al-Haddad says very clearly when you recite the Quran, when you read the Quran don't think of it as some imaginary person that Allah is addressing when you see a commandment, implement it in your life when you see a prohibition, implement it in your life when you hear the story find the correlation in your life he says and lastly do zikr of the Prophet in the morning and in the evening and we will be back Imam al-Haddad says Allah says in the Quran after the time of Allah the devil is a great man Allah and His angels will be praying to the Prophet O you who believe and pray to him and he will be accepted Allah is the greatest Imam al-Haddad and his wife we will be back


I'm ready for the wheel of debt doing whatever these guys are. Thank you Jared Godford. Let's go. Hey all my buddies, Tex and me now. Hey the funny thing is I didn't want to do it because it's $1,000 a square. I did not want to do it and I was kind of... I got pure pressure than I'm doing. No it's because I did it last year and I won it. I am a team of Val. That is a nice little payday. Man, I'm doing it again next time. You guys get shirts as well and you got to wear them. Thank you so much. Oh wow. That doesn't describe you today.  If market lost, is this fitting you? Hell no. Yeah, it would fit you just extra small. That shirt's smaller than the one I'm wearing. What are you talking about? You just show it off the guns. This ain't right man. Who's got... you going first? Congratulations. Greatness baguettes greatness. Doom doom.  Chocolate is the chocolate. Oh let me do that one. I'm still doing the chocolate thing. Let me see something. He thinks it's rigged. Like it's weighty. Like it's rigged to always do chocolate, see. Can I take that and just call it a day? No, nope, nope. Alright. Wait, is that your spin? Is that just a practice one? Venmo. I got to Venmo your mom $100. Yeah, I don't know if she's on Venmo though. I kind of want to do it. So spin again. Alright, comment if you want $100. Maybe I'll send it to you. I got to watch this chocolate thing. Not really. So you just eat it? You got to eat it. I'll read it. Smell that.  Oh, sorry about that. Smell that. That is violent.  Let me go grab my water guy. Violent. No. Hey man, where did I get this chocolate from? That's the way it is. I ain't gonna dog, right? You got $15,000 coming his way. No, I'm just kidding. Don't kill him. Just sign off the 15 grand of me and then... You got to eat it. If he vomits here, I will laugh.  No, nobody's recording. Nobody's watching this. Oh my God. It's pepper spicy. I want part of the sweat. I actually want to try it. Yeah. Just vomit right there. I ain't doing that. Wow. I'm really starting to smell it. I'm gonna just taste a little bit. How's it? Is it good? I just opened one. You want to try some? Who would actually think of doing this? Yeah, now I kind of want to try some. No, you don't. Just break me off a little piece. Put it on camera. You know what, just because camaraderie, we're all gonna try it. I thought it was not even helping. Mm-hmm. Oh, yeah. Wow. Oh, man. Okay. Okay. Okay. Wow. I don't think water's gonna help. Yeah, can you describe... That was a bad choice. Oh my God. Yeah. Oh. Somebody's just looking at you. He takes it. He's out. He's vomiting. How do you know water makes you waste? He's a bad place. But he's a man. Have you ever been pepper sprayed? All right, I have. I've been pepper sprayed before, right? My water ain't holding on. I've been pepper sprayed before. Drinking water makes it worse when you get pepper sprayed and you put water on your face, it makes it worse. You know what milk is supposed to be for? Try. You're crazy. That's really bad. He gonna come up out that sweater. He gonna come up out that sweater. Oh, my God. Yeah. Oh, yeah. Stop. It's cool. I get your argument. You're sweating already. Don't do it. Wow, that. I thought you were fine. Your mom would make food that spicy? Yeah. Don't you have that much on your entire plate? Where are you from? Nice to meet you. Boy, so you started sweating.  All right. It's hot. It's hot. I'd like to I'd like to drink some ranch dressing right now. It's the water's making it worse. The water makes it worse by far. It's the liquor?  You need some milk. Milk is, yeah. Wow. Who came up with that? You ate the whole thing. That was all he did. Pretty good. Too big. That milk is what does, yeah. Milk is supposed to be. That's good. It does something with the All right. I don't want. I just want a little swing. Yeah, I'll take a look. Right there. Right now it is. I'll take one of those. Oh yeah, milk. Give it to one of your friends. You don't mind. I want to I want to try the chip now to see if the chip is worse. I don't want to try anything else. Yeah, there's no way the chip can be worse. That was really bad.