Good morning. Good afternoon. Good evening. Wherever you're hailing from. Welcome to another episode of OpenShift.tv and other show about Windows tools for OpenShift. I'm joined by two of my favorite Red Hatters, Christian Hernandez and Andrew Sullivan. I only said in that order because I did an alphabetical order last time. So boom. So please, I am for short. I work at Red Hat. I'm a CNCF ambassador. I'm on the OpenShift team.  So I don't mind being your second favorite behind Christian. That's a worthy fight to lose. Yeah. So I am a technical marketing manager. Same team as Chris. So we are the cloud platforms business units technical marketing team responsible for mostly OpenShift, although there's a little bit of Red Hat virtualization and OpenStack and some various other things mixed in amongst us. But as Chris mentioned at the top right at the start here today, we'll be talking about Microsoft Windows. So this could be interesting. Yes. Yeah. Bunch of Linux guys.  Oh boy, here we go. There we go. What's the worst that can happen? Well, what's funny is the reason we wanted to talk about this is that we get kind of a little insight for everyone, a little insight, a little back behind the scenes news here is that we get statistics from our blogs. Right. So we get statistics coming about every week. I think the report comes out. Yeah. Or at least the report comes to us every week. And Windows tools for OpenShift has been like consistently like number one, number, the top five right since the original one was posted right it keeps hitting the top five and we realize we haven't actually really talked about people using Windows as a client to interface with OpenShift, but that's probably like the bulk of our users, right? The enterprise users, you're either on a Mac or a PC and for most enterprises you're on actually on a Windows host. So a little background there for you is why we're doing this Windows stream. Yeah. And if you're, if you've seen this blog post before, or if you have good eyes on the screen that I'm sharing right now, you can see that I was the sucker who updated it. No, I'm kidding. So my background, I was a customer for a long time. And as a customer and the environments that I worked in, I always use Windows, right? I didn't have a choice. Windows is the only option I had and it was domain joined Windows at that. With all the, all the fun, all the appropriate security lockdowns and everything else, right? Administrator access is forbidden, right? All of those things. So, you know, as Christian mentioned, this post was consistently in the top five after it was two or three years old, I think. Yeah, about two years old, three years old. You know, it came up of, hey, we should really update this.  So as I was going through updating this, I tried to do it as much as possible. And I think I was successful entirely without needing any sort of administrator privileges on your desktop for any of those steps. Nice. So, yeah, hopefully I was successful. I'm pretty sure I was because it worked on my desktop. Now, that being said, it works. And it's containers. So, yeah, totally. Yeah. So that being said, for this particular live stream, I have commandeered my, my middle child, my oldest daughter's desktop. So this is a Windows 10 desktop. It is not domain joined. So, but you should see, right, if I try to do something that requires admin privileges, it'll still come up, it'll still UAC, you know, it'll still go through the normal. It'll freak out. And the goal here is not that I want to literally go step by step through the blog post and show you what's happening here, but really just to explore what it's like to be an OpenShift administrator that is on a Windows desktop. Yeah. Because there's a lot of administrators find themselves, you know. Yeah. And as always, please feel free to ask questions in the comments. I will trust these guys to keep me honest and all of that. Chris threatened me with a backup Windows desktop in case something happens to this one. Oh yeah. We'll see what happens. I got you. I think it was first right here. Windows. Alright, so first things first. So I, Microsoft, and I don't remember what version it was at some point Microsoft, you know, switch the default console or the default terminal inside of Windows to PowerShell. So anybody who has known me for any length of time, I'm a PowerShell person. I used PowerShell for many, many years. I think it was at one point many years ago. I like to think I was savvy with PowerShell, particularly when it came to doing things like administering VMware environments, doing things like that. So, which you'll notice. Didn't you RTFM? I don't know. He actually W. Didn't you write a book about. Andrew, so Andrew's a little, a little timid, but or a little humble, he actually wrote the book on PowerShell. Actually, he wrote a book talking about interfacing PowerShell with the sphere. A book. He wrote a book, not the book, he wrote a book. I mean, it could be a book. I was a co-author, but still. You know, anytime I have a PowerShell question, you're like the first person I've seen. So you're now, I guess, I don't know. Yeah, that's another one. Definitely. Thank you. And, and I will try and wash those bus tire tracks off my back. Still. Yeah. That's true. I was a co-author of one of the power CLI reference books. I don't remember which one now it's behind me somewhere. Or I guess it's on this side. So, yeah, I am, I'm a PowerShell person. I've used it for many years. Microsoft switched the default over to PowerShell some time ago. So on this particular desktop, I'm running PowerShell seven and I'm running it inside the new Windows terminal, which is a fancy new one that you got on the store. Yeah, nice. I have to say, I really like this, this terminal. It's super fancy. It's super nice. I haven't tried it yet. So I'm curious to get your feedback. I have no complaints about it whatsoever. You can see I can do things like open in Azure Cloud Shell directly from inside of here if I choose to. Wow. That's awesome. You can go back to the. You can go back to the old way. The new hotness that they released, like Scott, someone was talking about it months ago kind of thing is beta. Yeah, and it does the dynamic resizing and all that other stuff. So very much like the Linux terminal terminal, right? If you have something that wraps and then you widen the window, unwrap it and all that other stuff. Yeah, it's nice. Yay. Okay. So, so I have PowerShell seven. FII PowerShell seven is shipped as a MSI or you can install it from the store. Currently the default version of PowerShell is still five dots something. Do note that PowerShell six PowerShell seven do work in Linux as well.  I think I can brew install PowerShell to I'm not sure I forget. Yes. Yeah, you absolutely can. So I also have my internal cluster here that I need to find the link to. Very secure with your DuckDuckGo, I see. So this is literally your... Using Brave, using DuckDuckGo, like DuckDuckGo. Wow.  It's a lab.lan URL. So it says, I don't know what this is, I'm going to search instead. Of course. So this is my internal cluster to, and I use for all of my demos and stuff like that. Anybody who's seen me demo anything before has probably seen this cluster. So I'm using this because this will be our example cluster. This will be the one that I'm connecting to and doing actions against throughout. And then the last thing that I need is to go to cloud.redhat.com because I need access to all of our different resources. And you can get one of these accounts for free by heading over there. It says create one now right underneath this block. You just went to cloud.redhat.com. And you can get off and running just like Andrew is. So this is, there was an interesting, so I am a Linux admin, always use Linux for everything, even my desktop. So someone in the chat mentioned something called Cobra. I don't know if you know what that is, Andrew. Is that a Windows thing? Well, apparently it's a, it would be nice if Cobra will support PowerShell completion. Which Cobra? There's a lot of things called Cobra. I don't know. Yeah, I don't know if it's a, well, is that Cobra like the, like, the language guys? Not bad. Not that guy? It looks like, yeah, it might be the language. You're talking about PowerShell and Cobra? Yeah, okay. Oh, okay. That is one thing that I did some, I did a little bit of background research. So I know who SPF 13 is. Before this around whether or not there are PowerShell modules for Kubernetes, et cetera. So, you know, can you get the native PowerShell experience interacting with Kubernetes? And I wasn't able to find anything official. There was a couple of very unofficial, very kind of not complete looking things out there that I didn't want to subject myself nor the world to. Although I'm sure that they would be perfectly functional. So when we look at, even though I'm in the PowerShell terminal here and everything else, when we're looking at the OpenShift command line tools, whether they're OpenShift or Kubernetes command line tools, they are going to be kind of the native compiled, right, they're written in go, et cetera. So unfortunately, what that means is I can't pipeline, if I'm talking, you know, if I'm using PowerShell, I can't pipeline as easily as I would want to. I would have to wrap it. I would have to do like string extraction and all kinds of other stuff like you would in Bash.  And being able to pipeline those around would be just phenomenal, but it's not there, at least not that I could find. If anybody knows differently, I would be very, very interested. Yeah, and we'll happily share it out, you know. Yeah. So all I've done here, I went to cloud.redhat.com, I went to the OpenShift page, I clicked on install, I selected a random infrastructure. And really what I'm looking for here is this link, this download command line tools. And I am using Windows, but really what I want is the link address. And the reason I want that is because this is actually a directory that we can browse. Right, so I can come in here and I can look and I can see all of the different tools that are inside of here. Being Windows, of course, I'm going to want to download the Windows zip, which I will go ahead and kick that off now. Yes, go ahead and save. But I can also go up a directory. And I can see all kinds of difference, all of various releases, all other stuff that's going on inside of here. I'm not terribly interested in that at the moment. But rather what we want is all of the other tools. So this is my secret method of finding the quick and easy way to all of our command line tools, all of our other stuff. So you see each one of these projects has a top level directory in here. So for example, if I want ODO, I select the ODO directory, latest. And then we see we have access to all of our downloads. You can of course, so the official way of finding all of these things is to go to the docs. Or at least the official way I use when I use the official way. Go to the docs here. And if we scroll all the way down to, you know, pick whatever one of these I want. So CLI tools. And then ODO, I can go to installing ODO. And you see here it has links to each one of these that I want to do. So if I scroll down to Windows, it says download the latest file and it has a link over to that file. So one thing to note here is that the documentation takes a very safe route of, you know, you see, they're saying create a folder at, you know, see at the root level of your C drive of Go Bin. Again, not everybody has permissions there in addition to which it's not going to be in your path. So they very generically just say add the path variable to your, or the variables into your path and, you know, they don't always provide throw directions. Additionally, I wanted to try and be conscious of things like roaming profiles. So if you want to put it into your, you know, your documents directory or something like that so that it's a part of your roaming profile you can. I would not recommend doing that with code ready containers, however, because it's like two gigabytes in size and your admin team will hate you. But otherwise, yeah, there's nothing wrong with putting them in there. I think the directions that I have in the blog post put it outside. It's still in your profile so that if your admin team has something that goes through and periodically cleans up user profiles, it'll still get wiped that way, but it is not part of the roaming profile. Okay, all of that stage sets. I'll get to these other tools here in just a moment. But the core of what I want to do here is quite simply unzip our file. And seven zip extract here. Did you, did you remember to pay for it? Which one was the one, the one that like you're supposed to pay for it, but like if you didn't, it still worked. You never had to pay for wind zip, I think it was. No, no, I'm talking about like windows like 90. That's what I mean, right, like when zip, the actual. Oh, I think, I think it always gave you a prompt. Hey, you could pay us. You know, you're past your 14 day trial or whatever, but you could continue to use it no matter what. Yeah. I see somebody asking about increasing the browser font spas. So I'm doing that now. I didn't call you out on that. Hopefully it will carry across when we're here. When rars the one I was thinking about. Yeah, did the same. So I've used seven zip for years. I actually, when I install a new windows desktop, I use a tool called nine nights. So it's a pretty simple thing you go through, you select all the things that you want to install, put a checkbox for each one. Click the download, it'll give you an executable and hit it and it downloads and installs everything for you. Look, look at all those wares. And you can wow, you can continually use the same executable and it'll just go through an update each one of the tools. Oh, interesting. Dang. Okay. So like, you're getting hacker hack on easier from manager. Yeah, that's awesome. I am bookmarking that for sure. Because for the longest time I did not have a windows box, but then suddenly I started live streaming and I needed a windows box for certain things. And the first time in ages I have a windows box at my house. So yeah. This would be very helpful. So you can see I downloaded OC it's in the downloads directory I extracted it into its own directory here, and I can of course CD into this directory and I can do the standard dot slash, you know, OC. And it will give me all of the options all the things that I need spread I can do a, you know, follow the standards control you doesn't work in windows. I always forget that. So all of the things that I need I can come here. Log in again. And if we take this guy, another thing that works well with this client is copy and paste works as expected. So you see I can't just copy and paste right I need to do the dot slash OC dot exe. And yes, insecure. So now I can use the again dot slash OC, you know, get node. So it's kind of obnoxious constantly having to provide either an absolute or relative can't talk today path in order to access all of my resources. So instead what we want to do is put it somewhere inside of my folder inside of my particular set of documents. So we look at our user directory, there is a hidden object or a hidden folder for app data. So if you didn't know this is where Windows keeps all kinds of user information relating to all of your difference you know applications programs etc. You can see that we have this local local low and roaming roaming of course being a roaming profile. This is the folder that would be replicated around with roaming desktops or roaming profiles and active directory. Whereas local is not. So quite simply, I'm going to create a new folder inside of here so control shift in is the shortcut for that. We're going to do red hats. No space because I see that most of these others don't have spaces there's one or two but even though it makes me twinge a little bit not having the space in red hat. So from there all I want to do is copy my downloaded file in there. We go here and simply drag it across. So, first of all we can see inside of here it's gone from there I can also go back to my home directory and now I can do OC.exe. It's not in my my environment I'm getting ahead of myself here. So now that it is in a common location get the step I did now that it is in a common location I want to add it to my environment. So there's a couple of different ways of doing that. And if we look at our blog post I documented three of the most common ones. So the first one is adding it quite simply to this PowerShell session. So all I'm doing here so dollar sign a ENV accesses our environment variables colon path is the specific one that I want. I'm going to append to that variable semi colon local app data red hat open shift. So you can see I did not use the same path. So I can also do quite simply things like ENV path to see the current path. You can see that there's a bunch of things inside of there. I can also do local app data and see which particular folder that is referring to. If you do just go like this dollar sign in give you the same kind of output like in a Linux desktop would know. Okay, never mind. I was hopeful. There is a way to enumerate those. I don't remember it off the top of my head. Is it like colon star maybe. I forget someone in chat will probably pop up with it. Yeah. So the PowerShell ISE will will give you a whole list of them. It reads into those and it'll help you do the predictive selecting. I just I don't remember the command off the top of my head to enumerate them. I didn't mean to put you on the spot there. No, no, you're good. So all I'm going to do here is copy my path here into my or append the path that I just added that file to so local app data red hat and append it to my path. So for this PowerShell session right here, I can now do oc.exe and you can see it gives me all the things that I have. So still retains my session and everything. But if I create a new session and you want to have our standards blow it up right oc.exe and it's going to say, no, not there. So that's fine. Right. You can work around that and have basically that command executed every time by adding it to the PowerShell profile. So if you're not familiar with the PowerShell profile, this is kind of like a bash RC right or a ZSH RC or whatever that happens to be. It is a file. Okay. Yep, it is executed. It's sourced every time you open a new PowerShell session. So you can see all I'm doing in this particular command is saying add what I just executed up here as you know to the end of that file. So that every time a new PowerShell session is started, it's there. So that's good and bad. So one it's it's good because well if I'm banging away on the command line. Great. It's bad because if I have a script that is being executed automatically. So I've got a scheduled task or something like that. It's not going to get. It's not going to pull that in. Great. It's only it's only executed when I open a PowerShell session. So if I have, you know, like PowerShell dot exe this dot ps one, that doesn't get read. So the way around that or the most robust way of doing it is to actually add it to your environment variable. So I documented here how to do it programmatically. If you don't want to do it programmatically. I understand blindly executing other people's code. The way to do it is a little bit hokey and it always takes me a while to remember and Windows 10. You would think I would remember this after doing it a bunch of times, but, but no. Yes, I mean, it's like bash right like we tell everyone not to do it, but I ended up doing it anyway. Not supposed to admit that Christian. Yeah. I mean, I never do it. So you saw what I did there. So all I did here was I right clicked on the start menu went to system it pops up this settings menu and then I went to system info, which pops up this particular one. And then this says advanced system settings. It has the little you act icon next to it. It won't actually you act unless you do certain actions in here. So, if I go to this advanced tab. So this is where I could, for example, change the name of my computer rights. If I want to do things like disable the system or store points, etc. This is how I turned on remote desktop. Anyway, so we have this environment variables. You can see by clicking that I can edit my users variables as well as system level variables. So remember system variables will apply to every user across the entire system. User variables are only my user. So I can go in here. I can hit edit and add a new path. And I will use the same path that I use over here. Copy that guy. Copy what you're going to copy what I'm going to copy that guy copy copy that string. There you go. So one thing to note here. This won't actually work as I've copied it because this is a PowerShell environment variable and you can see it's using the old command style. You can simply do substitute that with percent local app data percent. You can validate that that is correct by copying it. Okay, first. And if I do a run and just paste that in there, it'll open up that particular folder. You could also from a command prompt. So if I open old school commands. And again, we'll make it bigger so everybody can read it old school. And if we do an echo on that, it'll echo out to that particular variable. Cool. And I keep trying to hit the Mac OS super up so I can see all of the windows tiled up and that doesn't work very well. Across remote desktop. So I've added into my path I've added my particular environment variable so I hit okay a couple of times here. And we'll exit out of all these two sessions and open up a new one. And now assuming everything went according to plan. We should have our and it didn't. So let's see. I love it when it breaks. Everything goes according to what happens. Did you is this the new log out log back in. I don't think I have to log out and log back in. Close the window. I don't know. I bet it's having to close the window. I bet you're right. I remember this correctly. The power show was blue. That's the other one. The other other one. So if I just bring up. Okay. There we go. That's the one I'm used to seeing. Oh, okay. This is the new windows window thingy. Okay. So if we look at this, this is also power show version 5.1 as opposed to 7.03. And then this is the windows terminal. So I can still just round it out here. I can still open up in this. This is kind of the same. So, but yeah, it did change from blue to black. Cool. I guess black is cooler or something. Not as cool as red, but it's something that's something. All right, there we go. So very much to your point and thank you for the reminder. Christian, I did need to actually close out of the window, which is the Microsoft terminal window. I've been using the other, like had I tried with either of the ones that I just brought up, it would have worked as expected. So Microsoft's terminal, this new fancy thing was what was preventing that from working. So at this point, I can do my O.C. .exe and I can also do tab. Do you need that exe? Yes. At least I think so. Let's check. Oh, no, I don't. Now that it's in the path. Oh, cool. Nice. Even better. Yeah. It's even more native. We'll come back over here. And now if I just paste my O.C. login commands, it just works. Now you're open shifting with windows. So now I have that same O.C. experience across both. It's not bash, which means that you don't have the same text manipulation. Right. I would still need to pipe into like a. And unfortunately, even though this is PowerShell, things like where doesn't don't work. Remember each one of these isn't a object. It's one string. So grepping and stuff like that to find an individual line.  There's probably a workaround for that. If I had to guess, there's got to be like a windows equivalent of that. But I don't know off the top of my head. Got me. So. This is where you have to learn the JSON path. Really well. If you want to grab individual components.  You know, underscore. Name equals. Now. Andrew is. But it doesn't. It doesn't work because there is no, there is no. Properties associated with each one of those. Right. Got it. So inside of PowerShell. So where that object is basically a select. Right. And inside of the loop. Dollar underscore is referring to the current object to the current iteration. And then this would be a property on that particular object. So going back to the conversation before of, if we had native PowerShell, you know, object extensions for Kubernetes, then this would absolutely be from phenomenal. And we could interact with it in that way. But instead this output is treated as a single string. So, you know, there's some, I see somebody saying fine string is the windows grep. So after this, now that we kind of have these preliminaries set up, which is really more or less creating the folder over here. And then adding that in variable to the path. At this point, it's more or less just going through and downloading all the different tools. Yeah. So now you can just basically pop in ODO. You can pop in Coup CTO. You can pop in pretty much. And then just, you know, you can just go and add it, right? So it's like a one-time setting. Exactly. So from here, right, I'm going to go into my folder here. That I downloaded or that I put this in before. And red hats. And I could just save this inside of here. So one thing I will do is as it downloads, I'm going to rename it to just ODO. Instead of all of those other extensions. kids that talk because I see fortnight folder. Yeah. Yeah, there's, uh, so there's Odeo. Yeah, there's fortnight. There's star stable. There's roadblocks. There's, there's all kinds of stuff. I just want all the old games to work on my new hardware. Use, uh, uh, okay. That's true. So there's Odeo. Um, so here, let's go and grab, you know, helm and do the same thing here. Yeah. So unfortunately the only Windows tool that doesn't work or the only tool that doesn't work in Windows is OpenShift install. I wish I had an answer for that. I wish I had a way to get OpenShift install to work on Windows, to kind of complete all of those requirements, all the things that are needed. Um, but unfortunately I just, I don't. Well, okay. So yeah, it is everything else. Yeah, it is macOS or Linux only. Um, yeah, everything else works as expected. Um, going back to what I was saying before about, uh, code ready containers, just be aware that you see this is a 2.2 gigabyte compressed file.  Yeah. Yeah. Um, someone mentioned we need a chocolatey package for Odeo. Um, so I saw some conversation about chocolatey recently and the last I saw was we weren't sure who was creating and maintaining the chocolatey right package. So I don't know if that was created by a third party or if it was created by a Red Hatter who has since forgotten about it. Um, yeah, we should probably figure that out. A great mystery. Well also, I think it's the same with brew, right? Like if you brew install, like OpenShift clients, the brew install installs OpenShift, the OC client version 4.1. So that means whoever originally created it is an ATM. Because we're, because we're on 4.5 soon to be 4.6. 4.6, yeah. Yeah. I think 4.1's deprecated. So, so it's even on Monday. So yeah, unfortunately, and you can see Windows directory only OC.zip.  Oh, this is because I'm in clients. Um, if I go up a couple of directories here and I go to, to pill up a couple of directories, the most one directory actually now I've confused myself. I don't know where I'm going. Um, yeah, you're looking for not, not you're not looking for fortnight. Yeah, there we go. Not looking for OC. I'm looking for OCP. And now we have our OpenShift install. You can see we just have OpenShift install and OpenShift client. There is no install for Windows. Cool. So as I was pointing out before, if we switch over to our Red Hat directory here, I will quickly extract this guy twice because it's a tar file and I wasn't paying attention. Just thinking you not have ODO as a Python library. What do you like that was go? Yeah. Yeah. I don't think it's a, I don't think you can do like PIP install ODO. Oh, yeah. No, I don't think so. I cheated and I just opened the cheater cheater pumpkin here. Opened it instead of trying to do it the other way. And I always do a PIP install for globally too. I want to talk about bad habits. Yeah. I'm the only one that's going to use this box. So. Exactly. Exactly. I mean, let's face it. Oh, the other one that we want to grab is KubeCo or KubeControl or however you want to pass. However you prefer to say it today. Yeah, this is how I feel like today. Kubectl, I've heard. Kubectl, QBectl, QBctl, yeah. QBE, someone spelled all things QBEctl. So one thing to note, I don't remember if I don't think that it is included in this. Yeah, this just includes OC. So we basically were expecting folks to go to Kubernetes to download Kubectl. I think I always just Google for it. Kubectl, Windows download. Yeah. So super complex. Let me actually use the menu here and not just randomly browse.  That was what you were doing on Tuesday. And you can see there's a bunch of different ones here. Anyways, it's Kube, KubeCutl. It works exactly as expected inside of all of these. The goal here was to show that it's straightforward. It's easy to get all of these tools set up on your Windows desktop without being an administrator and have that same administrator experience with the exception of installation, which does unfortunately require a Linux desktop, although you should be able to use the, now I forgot what it's called. What's the Linux thing in Windows? WSL, that was going to be my question. I forget what it Windows system, subsystem for Linux. I was wondering what the, when you use one for the other, but I guess you would use this method when you don't have an admin, right? Yeah. So to my knowledge, interacting with folks, talking with customers, there's not a lot of enterprises that are allowing WSL. It just doesn't have the same controls. It doesn't have the same ability to lock down that WSL environment the same way that you can the rest of Windows. So it's not common, but you could use that. You can't control it with like group policy or something like that, which is probably why. I guess. I don't know. Yeah.  Patent violation on Windows. I've faced many problems with that before. I think is what this says. Yeah. Yeah. And you can have, if you're an administrator or if you have a separate group policy or user policy for an administrator team, etc., you can always push out all of these tools. You can update their path automatically all using group policy. I mean, these are tools we provide. Red Hat provides these tools for you to use on Windows machine. So you can totally add this to your group install for OpenShift admins or container admins, whatever you want to call them. Gotcha. Okay. Cool. So like if I'm just at home sitting at home, I would probably use WSL or WSL too. On an enterprise, though, I may not have that flexibility of just calling a Linux VM, right? Yeah. You might end up using Hyper-V or a VMware box, maybe something like that. So honestly, and this is something I would be curious about from the audience, which is most of the enterprises I have either worked for or worked with, the data center is strongly isolated from the rest of the environment. So oftentimes it requires you're already either VPNing or otherwise connecting securely into that environment. Or there is no direct connection without a lot of bureaucracy around firewall, exceptions, etc. So many times you end up with a bastion host regardless. And using that as a Linux-based bastion host to run OpenShift install, to run the rest of the commands from for administrative purposes. From a developer perspective, from a user perspective, I think the OC command running from Windows, right? Port 443 access or 6443 accessing the API, you know, pretty straightforward from an exception standpoint. Yeah, it's because I've worked with customers who've had things pretty isolated. And you're right, Andrew, like the financial services. Yeah, they have a bastion box that I'm always jumping through somehow. Or like Citrix, right? Like they'll like open up a Citrix session that connects them to a client that then connects them to the production environment or the development environment. And then there's the other side where it's like a completely disconnected environment where you could go into like a whole another area to interface with it. Even then there's still bastion host to some extent, right? So yeah, I see Paris mentioning DSC, right? There's also PS remoteing and all of that other fun stuff. Again, a lot of that varies based off of the security team, the Windows team and whether or not they're accessible. But it's also an option to do that whole hopping around through the data center or into secure enclaves. Does anyone happen to have an answer for Vinay Vanu here? While I'm using S2I for a Java source code and get with OpenShift and getting this error, then SH user lib exec S2I assemble not found. That's where you're doing that. Yeah. Yeah, because that should be built into the S2I image. Image itself, yeah. Because the assemble is actually part of the S2I process. So what is the source image I'm guessing might be at the issue here? Yeah, the source image, the image you're using for S2I, whatever it is, there's something wrong with it or There's something not configured right with it to get. Yeah, because assemble I think is the second step in S2I. There's like three or four steps S2I and like assemble is like very early on in the process though. I'm just a simple fake Windows administrator. Yeah, I don't know. I mean, I know this probably isn't Windows related, but I'm not a S2I expert either. I feel like I could drop that to Jason Dobies though real quick and see if he can give me an answer. Another guy who has another book. Yes, which I have actually, yeah, although he's offline. So you have Dobies' book but not Andrew's book. Andrew's book is six years old. Someone sent me Dobies' book, by the way. I asked for it and it was sent to me. Andrew, could someone send me your book? Yeah, do you have a box of books? I have a box of books. I wanted Autograph as well. I gave away all the ones I had. Yeah, now that makes sense. When it was published, but they were all given away. Yeah, no, so I have Autograph copy by every author of the DevOps Handbook, I think. Yeah, it's pretty cool. But I would love to have an Autograph copy of an Andrew Sullivan book someday. And Christian Hernandez. Me too. Yeah, one day. One day I'll write a book. Yeah, we all will. One day. One day. So there's no question in chat, but something just popped into my head about using an IDE. Does this either work with, like I say, Visual Studio? Or does it work with or does it circumvent any of that? I don't know how Windows developers or because we've been kind of focusing on the admin aspect of it. So I don't know how this would work. So I'll bring up the ISE, even though it's deprecated. It's there by default on this Windows. But so the modern method is using VS Code and the execution extension to bring your PowerShell session into VS Code. Basically PowerShell ISE was the first version of that or the first iteration of that. Gotcha. Okay, so it does so you can't bring in your PowerShell. Yeah, because I'm a VIM guy. So I'm kind of right. So it works just as you would expect, right? You can see I can paste my code in here and hit the execute button and it logs in and then prints out my results and you do all the same modification, all the same inside of there. Note that this is because it's old. It's PowerShell, come on, PowerShell version table. This is PowerShell version 5.1. So you see I was using PowerShell 7.03 and this other big one back here and this is PowerShell version 5 and it works equally well with both of them. Nice. Let's see. When you create a service account, is that account related to the account in the container or is it just used to give service access permission to the container? So service accounts are for providing gated access to the service itself. And that service could be a container or a series of containers, right? Yeah. So a service account, when you launch, deploy an application on OpenShift, it uses the default service account, right? So there's a few default ones. There's one called default, which is the one that it uses at run, right? The service account that it uses to run the actual container. There's the employer service account that basically it's just the service account that is responsible for deploying your application. And I believe there's the build service account that is responsible to if you're using S2I or just not an S2I to build your application, right? So when you create a service account, it's actually nothing happens other than the service account gets created.  So it just depends, right? So if you're going to give special permissions, usually when you create a service account, you're giving special permissions or you're either restricting or widening the default permissions of the default service account. So depending on what you're using it for, right? So like if I am creating an application that needs to do some admin work, I may have to widen the permissions. I don't want to touch the default one, right? Because that's like a global one. I create a specific service account and attach it to a specific application. Right. So it uses that service account. Yeah, cool. So I remember to look at my sticky note that had the things I wanted to cover. Good for you. So I've been, yeah, I know with only 11 minutes to spare. So, you know, I've been logging in just using an OC login. If you want to use the kube config, you can absolutely do that. And you can do it just like you would expect inside of any of the others. So all I've done here, I connected to my bastion host. So this was the one that was used to provision the cluster. I'm looking at the kube config here. So if I were to do a cat on that, oops, if I could type correctly, I'll get there eventually, right? I can copy all of, basically copy this file out. I don't have scp on this or when it's on this particular host, but I can copy that out and I can provide it into a number of different places. So if I do OC help and I do, or excuse me, OC options, there is this. It'll tell me where the default kube control or kube cuddle or whatever you want to call. There's a kube config, right? So more or less the default location is my home directory. See users, Andrew dot kube. And I can put that even though it says htb cache, I can put the kube config file in there as well. And it will automatically ingest that and automatically use it. So similarly to on Linux, you can put that anywhere you want. So if you wanted to put it in your roaming profile, for example, so that you have those files everywhere you go, you can do that. And then you can put an environment variable that's kube config equals and the path to that particular file. So just like Linux, you can direct it over to anywhere that you want it to go. And then you can do that password list login using the kube config file. Also helpful for, remember, if you're using that kube config file, you're connecting as the system admin. So one of the useful ways of connecting when you might have accidentally locked yourself out of the cluster or removed administrator access in other ways. Yeah.  So there's a, you know, I guess collection of pods. If that is down, you may have to log in using this, the, what we call a certificate method, right? So this authentication, I don't want to say bypasses all off, but it uses a different authentication method, not connected to all off. So, so yeah, so if you're all off this having problems, this is how you would connect.  So, and note, as you all were talking there, OCD bug, like connecting to the nodes, all that other stuff still works exactly as expected. Beautiful. So that's awesome. I can still connect in just, just like I need to. You saw me SSH into a host. I didn't install SSH, by the way, SSH comes with the new terminal. Yeah. Nice. Like is it open SSH or I have no work or something. Okay. We don't know. Okay. But it works as compliant. Seems to have all the flags that you need. Yeah. So yeah, I, I don't, I think putty is on this host, but you saw, I didn't use it. I just use SSH. Cool. That's awesome, man. So yeah. The putty, the putty guys must be crossed that they're not, it's not included. SSH is not included in the, well, it's about time. I mean, it's been an open standard forever. So like, come on, right? Like, hey, I'm happy just to have one tabs and two, a resizable interface that behaves appropriately. Right. All right. Yeah. Line wrapping is good stuff. Yeah. Again, you can see, look, it wrapped the way it's supposed to. And as I expand it out here, it fixes itself as it's supposed to. So very nice. I'm, yeah, you know, Microsoft is doing a lot of really interesting things, both in the open source world and with Linux as a whole. Yeah. So I am excited and interested.  Yeah. And I have a Microsoft Linux tux here. Yeah. Yeah. The Microsoft booth was giving us back when we had conferences. Yeah. Back when we had conferences, there were Microsoft tuxes to be had. Yeah. No, Microsoft has done a lot to get Linux working on Azure, to get Azure working, you know, better with Linux, and has done an enormous amount of work in the open source world, as well as working with us on getting OpenShift running in Azure. So yeah, like we're super happy to be working with them now, like as equal partners. It's great. Yep. Now we just need to figure out how to get a, you know, this, this Azure cloud shell. I just need an OpenShift cloud shell. Prompt inside it. Yes, that'd be cool. That would be cool. Yeah, that'd be so cool. Where do I put that request in? When you're bored this weekend, Christian, that's, Yeah, that's a project for this weekend. That's great. There you go. Yeah, you don't have anything else to do. All right. Anything else? No more, no more questions. It doesn't look like, I don't think. Just double checking. Haven't seen anything, yeah. Yeah. Last call for questions. Last call. You don't have to go home, but you can stay here. I mean, like, you can watch something else. Actually, you know what? Let's do a raid. You want to do a raid, guys? You can raid. Yeah, you can raid. Let's raid the IBM folks. Yeah, let's see what they're up to. Let me get the interface here. Okay. So we've never done this before, but we're going to raid a channel. And that channel is going to be, if they're still online, IBM developer? They're not online. They're not online. Ah, shoot. Okay. So I'll take requests, but it looks like might have gotten another channel here. Has anyone fit another question? I mean, has anyone faced any challenges when adding a machine to your machine nodes and have they experimented with machine auto scalers? I believe, Christian, you have plenty of experience there, don't you? Yeah. So I'm trying to understand the question. Is it machine config like you're trying to scale vertically? Yeah. So there's, yeah. So there's the machines, right? Or the machine sets that actually, as actually Andrew actually explained it pretty well on Tuesday, how to scale your clusters. So if I wanted to scale my cluster, I just add another machine. And then if, sorry, I scale the machine set, which then adds a machine, which then adds a node. And then there's the machine config operator, which is used to manage the actual node. Andrew kind of went through that a little bit on Tuesday. So if you guys haven't checked out Andrew's operations or admin hour, I just happened to have an AWS cluster up that I'll be using for another demo this afternoon. So we can talk about a little bit. So yeah, so the principle is, so machines are the representation from OpenShift Kubernetes to the underlying infrastructure as a service. So this represents the, or this, sorry, represents the, in this instance, AWS virtual machine that, and how to interact with it. Whereas nodes represent that machine into OpenShift into Kubernetes itself. Right. So one of these is, hey, you are a member of my Kubernetes cluster, right?  I need a schedule workload to you.  I need to add or remove as the case may be. So there's two aspects to scaling machines or three aspects. So one, you need to be using an IPI deployment, something with a cloud provider integration so that it understands how to talk to that underlying infrastructure and do things like request new or destroy existing VMs. So the second thing is you need a machine autoscaler. And I'd also, I think it's worth noting that that means that you're using DHCP. We should call that out. Thank you. Thank you for doing that. I really appreciate that. Could you say that one more time? You need DHCP if you're going to do machine autoscaling. There we go. Yeah, thank you. It's an inside joke amongst us because we get asked all the time. If I can do IPI with static IP assignment, no. I just want that out in the universe as much as possible. So the first thing I need is a machine autoscaler. And I define a machine autoscaler for each one of the machine sets in my deployment. So I haven't pre-staged any of this. So I can't, I'm not going to do this because I'm pretty sure it'll fail. But essentially you would want to create a machine autoscaler for each one of these machine sets. And these machine autoscalers you see represents the minimum and maximum number of machines from that machine set that it will manage. So if you wanted it to scale all the way to zero, right, put a zero here. If you wanted to scale to 100, put a 100 here. So the third thing that you need is a cluster autoscaler. And I'm going to completely forget where the cluster autoscaler is at. It is underneath administration, I believe. That's what I thought. Cluster settings. Oh, I don't remember where it's at. A dag nabbit. Cluster autoscaler. We'll go the old school way. There you go. Yeah, go with the CRD. Yeah. All CRDs. So a cluster autoscaler defines the size of the cluster as a whole. So if we look at our cluster right now, we have six machines or three worker machines inside of here. So you would say I want my cluster to be between maybe one and 50 nodes. And what will happen is when a pod is unable to schedule due to an out of resource condition, it will say, okay, I need to scale up. And it will select one of the machine sets that has an available capacity to scale as defined by the machine autoscaler and increase it. And that will result in machine API talking to the underlying infrastructure saying, hey, provision me a new VM. All right, it boots up. It goes through the normal node joining process, et cetera. So where can that go wrong? A couple of different places. So one, if you don't have kind of all three of those things configured, in particular, both a machine autoscaler and a machine or a cluster autoscaler. And E-HTP. Yes, and E-HTP. So it won't trigger that to happen. Two, you need to make sure that you have a machine set or an autoscaler definition that has additional capacity, right? If they're all maxed out, then it says, I can't increase the machines anymore, sorry. So two, it could have issues communicating with the underlying infrastructure. Oftentimes, we see this internally, like my AWS account is linked to our engineering team. Our engineering team, as you would expect, is doing lots and lots and lots and lots of builds, which means that often I get throttled. I'm a low important account. I get it, that makes sense. But it means that it can take, what would normally take three to five minutes to provision a node can sometimes take 15 to 20 minutes because AWS is saying, your low priority, I'm throttling you until an appropriate time. Right. Also quotas is another thing you make it. Yeah, quotas with your underlying infrastructure as a service provider. If you change credentials, something like that, something happens to your credentials, your permission set changes, all of those, you can find those errors. If you go into the, as soon as I find what I'm looking for here, if you go into the machine API project, which it was conveniently pre-selected, and then if you look inside of these pods, there'll be errors inside of here about why it can't talk to that underlying infrastructure. Okay, so here's, okay, Venu Vinay Kumar has responded about his source to image issue. He's trying to build, created a build config, Java source code and URL builder is wild fly, image stream tag of Java eight and step nine and getting issues frustrating me. I can understand why I'm frustrated at you reading it. Not found sub-process. Exadata status 127. Does wild fly include S2I? I don't remember. Yeah, I don't. This is a Jason, this is one of the developers. So I'll tell you what, email me, cshort at redhead.com. I will get you an answer, promise. And just do it like that. Well, yeah, we'll go direct. Yeah, I'll get you an answer. That's the best I can do right now. I'm sorry. Yep. But yeah, none of us are developers unfortunately. None of us right now are developers, neither Chris nor Nermeen or Andrew. All right. Well, but yeah, so thank you all for joining. I really appreciate time, Andrew. Thank you for updating the blog post and doing the video for everybody. So, you know, people can come watch this later if they so need to. And yeah. Yeah. I have to go join a very important KubeCon booth meeting. So likewise. Yeah, I'm on the same call. So I guess I'll see all three of you. Yeah, I'll see you in about 30 seconds. 30 seconds. That's right. Bye, everyone. Bye. Thank you all for joining. We'll see you tomorrow.


Unlock the mysteries of history with Transcribis. Dive into a sea of documents effortlessly with AI recognition. Train custom AI models with ease, tailored to your unique needs. Our powerful transcription and layout editor helps you enrich your material, making every detail stand out ready for the world to see. Publish and share your discoveries with Transcribis sites. Extract information in a structured form ready for analysis. Together we have created 150 plus public AI models and the world's largest historical training set. Our intuitive web app brings history to your fingertips. Start unlocking the written past with Transcribis. Sign up and process 100 pages for free every single month.


The INA Commission in charge of voter registration exercise has suspended the exercise in the Iheche Obamaloka government area of Evo Street. Earlier tonight on PlasPolitics, INA Commissioner Festos Okoei said the decision was taken after an INA staff of Walker Anthony was shot dead by gunmen. According to him, the other staff were injured, but are now in a stable condition. You know that from the 11th of April this year, we developed the continuous voter registration exercise to the registration area levels on what you call world level, on a rotational basis. So some of our staff are doing the CVR in Iheche Obamaloka, local government, more particularly in where they call Iheche in P004 in Amakahia ward RA02. When they were attacked by some unknown gunmen, unfortunately, one of our staff, by name Ngokori Anthony, lost his life in the process. He has been moved to the mob and then the remaining two staff that we couldn't locate initially have now been located. They have injuries, but are in very stable condition. So that is the situation as of today and so many of the potential registrants we are injured in the process. Consequently, we have suspended the registration process in Iheche Obamaloka.


Then Mayor went on to show Mayor went on to show that this beautiful analysis that he has done he went on to show that how this analysis that he again did the maximum term method he picked up that particular cluster ML star that particular cluster which and the analysis fully given here that maximize the partition function is the same as the grandian multiplier but before that he showed that my fsm term maximum term method is the one that works that is the maximum term method that that is sufficient in the in this in the in the limit of infinite size of the system n going to infinity total number of particles going to infinity volume going to infinity such that n by v the ratio of number of particles volume density is fixed in that limit that maximum term that distribution ML star this distribution that maximizes that is enough everything else is redundant that beautiful analysis maximum term method combined with Lagrangian multiplayer and he could show that ML and Z here is the max the Z here which tells the weight of a cluster that is the undetermined in the Lagrangian multiplayer undetermined coefficient Z is the undetermined coefficient we show later that Z is nothing but the fugacity but if it is that then LML star equal to n and then we get n over there v and we get the beautiful thing which we call me a cluster expansion that density L, B, L, Z, L so now we have a beautiful relation in terms of the cluster integrals B, L and cluster integrals and nothing but those integrals those integrals that contain interval interaction so because of the cluster integrals we have now of the connection we have built the connection we made the connection with the intermolecular interactions and the way so this is a beautiful stuff then you went on and go back so this now write the partition function and about one particular distribution so we are talking of distribution of distribution because ML gives the number of clusters of 5 L and but we have picked up one particular such distribution we will call it ML star for example that can be in a 100 particle system M1 can be 58, M2 can be 32, M3 can be 12 something like that and they must adapt to A so M1 is 58 that means there are 51 monomers then I say okay they are 12 dimers that means 2 into 12, 24 particles in that 58, 24 did now 82 then I have 6 trimers so that is 18 so I will have now 100 I say I have that for distribution I have that maximizes now when N is not 100 but billions of billions then a distribution I pick up like that is one that is representative of the system then I can go and calculate the partition function once I know the partition function I get the free energy and then from this portion I get the free energy and from the free energy I can get the pressure which is the adbt here and then I can show by using this relation ML star VBL0L I get this thing okay so now this is another such cluster expansion and then further developments is done in terms of reducible cluster integrals because those are VL contents both chain and ring so you have to break down into rings and chain separately and evaluate them separately that has been done for fairly complex number of systems very large number of things and so this is called deduction in terms of reducible cluster integrals and the definitions one can do like a beta 1 is this quantity is beta 1 then this is called beta 2 now you can see if I have only chains and rings that beta 1 beta 2 is enough and if I have only chains in my system no rings like in dilute light gases then beta 1 is what turned out now beta 1 is the second barrier coefficient these become the third barrier question that is the beauty of mayors theory now we play the same game how many of these beta 1 in the system I call that NL and then how many ways I can distribute into the NL the same omega and then I make the product of the two and I get a just like me are partition function another expression which is the story goes that well when the Joseph mayor could do the earlier these derivation he could do this thing he was he was he could do the he was stuck he could not go to reducible cluster integral and the further development was done by his wife Maria Gopatmeyer who entered to give a get a Nobel Prize for his work on nuclear cell theory. So, Maria Gopatmeyer whom may have made made in Göttingen and married and brought her to Columbia University was instrumental in many many such such calculations of combinatorics and difficult things. So, when does that then one goes on and one can go on to describe the theory of condensation into in a beautiful way that means he could he could one could use these things and one could now show to get the maximum term method and one can show from the maximum term method that this is two things that one does that maximum term method give this ML start what we already showed is VBLZL and Z is the fugacity and BL one can show is this quantity it has it exponential scaling then one goes to ML and since ML goes as BL to the power ZL and since BL BL sorry ML is V BL ZL and V goes as V naught to the power L ZL. So, you combine and get V naught to the power ZL and when fugacity changes such that Z becomes greater than V naught inverse then you suddenly have very large clusters appearing in the system which is shown here as a distribution of L ML versus L ML is the number of clusters of size L and L is number of particles in that class that ML is number of clusters of number of particles in this size of cluster L and that then has this beautiful mayors picture is that a big large cluster appears in the system and that is the gas liquid transition. So, this is the co-existence this would become the liquid. So, mayor did not quite get there but he got the picture right is formulation was rather extended to in many many great directions and so there is a beautiful scaling also that is a plot depicting the distribution of cluster sizes then what one does the next thing was a wonderful wonderful thing that is a virial expansion of the mayors theory. So, mayor then went on to show that in a low density or large volume he can work this theory around and show that the free energy and the partition function and the free energy and the pressure has an expansion in density which essentially comes from these two things one is pressure is D L z to the power L and density is L D L z L. So, these are two series this is series one and this is series two now I can eliminate the fugacity from series one and two and I can get a series of pressure in terms of density and that exactly is the real series that was what was done by mayor and it is described here. So, we go now write down the partition function just like this is all the binary this is the tiner so these are all the binary chain these are these things two a bonds and just keep these two terms nothing else because this low density or large volume limit then I can do so this one is just ideal gas V to the power N then this is the way there are how many ways I can have the N number of particles get into thus the dimer that is N into N minus 2 by this and V to the power N minus 2 come out because the two integrals are here so it is V to the power N minus 2 and then I have other one will be three particles N into N minus 1 N minus 2 by 6 and V to the power N minus 3 I am not taking that into account so now I can if I take that this quantity then I can change again origin to one and this becomes one to this one to then I this becomes that thing and one I integrate I get a V so then I get this kind of thing then N is very large so this can be neglected I get N square by 2 V N minus 1 then V N minus N square by 2 and this integral now I define this integral as beta 1 and then I get N square beta 1 by V as this this term then I go and calculate the free energy from in this lower case Boltzmann constant then I work it out then this is ideal gas term then this is the term that coming from retaining only the chain diagram beta 1 dimer sorry only the dimer and then when I do that I found that this is the sorry this is all the work is this is the correction that comes to pressure beta 1 by 2 V and this small V is V by N and then you get this is the correction that comes out that means pressure P V by N K B T becomes 1 minus rho beta 1 by V and this we know now compare this with the virial series you get 1 plus beta you will find all these calculations are done here and this will be passed on to you so one gets the first term of the virial series and that is a beautiful things that you get now molecular expression the important thing is a molecular expression of the virial series and that is in terms of the series is to be u r so I now have second virial coefficient in terms of d r r square f r so this is the second virial coefficient and f r is e to the power minus beta u r minus 1 so this now tells a way to do the second virial coefficient now this is played a very very important role this particular derivation of second virial coefficient very exceedingly important role and this is the following so now I have a second virial coefficient which is given in terms of every factor I am not interested in that d r r square a square and then I have okay of course 4 pi and other things are there and density now you are so before this we did not have we had forms like linear zones interaction potential but I did not know how to get them quantum calculations they are far off and very difficult but now suddenly I have a beautiful expression of the second virial coefficient so I go equation I can I get the this part which will be quite nicely given by the second virial coefficient now I do the temperature dependence of this guy so I get now second virial coefficient temperature dependent so now I fit it so by knowing the temperature dependence of second virial coefficient experimentary and knowing their expression of the second virial coefficient in terms of interaction potential I could now get the my so this was the first time so these values of epsilon and values of sigma in the interaction potential they came out first time were calculated by using mayors expression of the second virial coefficient so mayors expression of second and third virial coefficient and fourth virial coefficient they are very very important though people started doing a molecular microscopic theory of condensation they get the virial coefficient now they see the virial coefficient which were introduced phenomenologically the virial coefficient because this was written down P P P by rho k B T P by rho k B T it was written at 1 the ideal gas the ideal gas B 2 rho plus B 3 rho rho q so these are just virial coefficients second virial coefficient third virial coefficient fourth they are phenomenological this was virial did it phenomenologically we from the experimentally determined equation of state but now we are told as what is B 2 in terms of interaction potential we are told as what is B 3 in terms of interaction potential now I can go back use mayors expression and the experimental values of second virial coefficient temperature dependence I can get interaction potential so this was the huge significance of this approach the cluster expansion the mayor a function the cluster integral V L and irreducible contrasting beta 1 which you can work out they are all done here was to get the interaction potential so though they we talk all these days the force fields all the all the all the glory of things to computer simulations we derive very complex system but the fast things came out so the virial series more than 100 years old even at the time of mayor it was 40 50 years old but one did not knew that it is coming from interaction coefficient one can expand when the was equation of state and get the virial series but one found out that does not work that means that is why actually A and B was determined but that did not work well because they are not robust but mayors theory gave us a robust way to look into the interaction potential and evaluate and that played extremely important role in our development so even today the values of the force field that we call for argon the sigma and epsilon come from these kind of things that epsilon is 119 K that comes from these analysis and so so there are certain limitations of mayors theory that this is the ideal gas and this is the mayors are unfortunately if you do mayors theory you know it it it kind of gives the condensation but then it it remains flat and there are many many reasons for that and we are not going to go into that in in this detail you can get that in the book then there are many studies beautiful beautiful studies that have been done so we are talking of this finite finite through the bell polynomials the bell polynomials are a class of generalized polynomial very powerful polynomials which exactly has the same formula with nobody mayor did not we did not know for many years but the advantage is that if that is so then they have a beautiful recursion relations which we can use now and this is the recursion relation bell polynomial recursion relation which now can be used to evaluate mayors function function and that is a beautiful stuff and you get this beautiful relation of mayors body so now if we can have some reasonable cluster integral then we can do a good job but the difference is that this problem remain we made considerable progress but we did not solve the problem because the reducible cluster integrals are not available even today they are not available a useful cluster integrals have been evaluated by great pain and it did not it works out somewhat better for many techniques are there for hard sphere kind of a system when there is no attraction it works out is in the well there is a very large number of real reducible cluster integral virial coefficients has been evaluated up to 11 and that means beta 11 beta irreducible cluster integrals of the beta 10 has been done by graph theoretical methods method may are initiated but but for linear zones it has been done only up to some 6 or 7 reducible cluster integrals that is not enough because when it goes to liquid phase then all the particles become connected so there is kind of jail that forms and the mayors theory breaks down but you know but you should be happy what you have got and some things that so we will stop here today and there are some old articles that we wrote long long time ago and this described in the book that the applications of mayors partition function to the real systems and so we stop here now.


Hello everyone, welcome to today's lecture. I hope that you had the chance to go through the last lecture and we will briefly look at what we did last time before we start a new topic today. The last lecture we had discussed Tamao Flaming Oxidation which is basically a conversion of the chiral or even a chiral but chiral is more important. If you have a chiral silicon bonded compound such as this here as shown and if this is treated under Tamao condition then we get the corresponding alcohol that means the carbon silicon bond is broken and carbon hydroxy bond is formed and this condition is that we discussed last time in detail. In Tamao's condition we have three different types of conditions. On the other hand the flaming oxidation involves two types of possibilities as we discussed one is a two-pot reaction and the other one is one-pot operation or a reaction. In both the cases in the Tamao's case as well as flaming oxidation case eventually we get the same product as retention of configuration of the hydroxy group from the silicon bonded group that we started with. So and both are important and in a similar fashion when we had the alkenyl silane like this we discussed towards the end that if we have neutral or basic condition like this and if it is a disubstituted olefin then we can get the corresponding aldehyde or if it is under acidic condition like this then we can get the corresponding acid provided that the silicon has substitutions like this. On the other hand when it is a trisubstituted silicon containing alkenyl molecule then either whether it is acidic or neutral or basic condition we get only the corresponding ketone because there is no chance of getting any acid. And as we discussed that we have acidic conditions in which we have hydrogen peroxide, acetic anhydride and this fluorine source and DMF at room temperature neutral is also the same except acetic anhydride is not there and of course you heat from room temperature to 60 degrees and the basic condition requires potassium carbonate in methanol and 60 degrees temperature. So this is how the Tamao flaming oxidation is utilized and it is a very important reaction as we discussed and we saw some applications. Now one more example that I had shown last time was this silicon molecule this molecule containing silicon group and the fluoride here at this position and I showed that it forms a corresponding hydroxy group with the intermediacy of this kind which essentially was shown by Knoelker a German scientist Knoelker whose reference I have given here in Sennelet 1995. He actually isolated when he did the work he actually isolated the corresponding methoxy or hydroxy group here. So this particular molecule was isolated by Knoelker during the reaction of converting this particular silicon containing molecule to the corresponding hydroxy molecule and showed. So the work by Knoelker showed that the intermediate methoxy silane when R is methyl or silanol when R is hydrogen could be isolated during the oxidation of the fluorosilane under Tamao's basic condition. So this is the condition under which they isolated. Now it is very clear that when they did prepare the alkoxy and hydroxy silanes these molecules separately not under these conditions and then subjected these this molecules under the same conditions of Tamao they did indeed get the hydroxy compound. So it is very clear that under these conditions at least these the Tamao-Kuma the oxidation proceeds to the intermediacy of the methoxy silane and the silanol at least in these conditions or for this particular molecule. It is very clear that the intermediate would be something like this starting from this particular intermediate where there is an OR or OH the hydrogen peroxide would attack and eventually one would get something like this which finally will give the product of this type. So this is a very clear indication of how the Tamao oxidation can proceed and there is a very clear evidence that some intermediates of this kind can be isolated. We start now with oxidations of a different kind which is oxidations with dimethyl dioxidane. As you can see the name dimethyl dioxidane. So this is the structure of the dimethyl dioxidane. So it is a three member cyclic peroxide as you can see there is a peroxide bond and since it is a three member ring with two oxygens obviously it is a very reactive substrate. It is a very reactive reagent and it reacts readily with all kinds of double bonds but obviously it would react much faster with electron rich double bonds. As we go along we will see how the reactivity of this dimethyl dioxidane can be understood. How do we make this? It is very easy to prepare on paper but it is not that easy to prepare in the laboratory that is because the boiling point of this DMDO which is dimethyl dioxidane is minus 20 degrees that means it is a very low boiling compound and it can be easily prepared from acetone and the oxone which we discussed about oxone last time. Oxone is nothing but potassium monoperoxy sulphate along with potassium hydrogen sulphate and potassium sulphate but this is the main oxidant and it is a very useful oxidizing agent. Now when acetone reacts with this oxone you get the corresponding DMDO which has to be distilled out very carefully at low temperature with all protections so that the molecule the DMDO does not escape out. Now there are several ways by which this reaction can be done you can either isolate this DMDO by distilling and cooling it at low temperature so that you can isolate this DMDO and then you carry out the reaction. So you can have an isolated way of doing it or you can also do it in situ. In situ means inside the reaction we put acetone and also oxone and as soon as the DMDO is formed the DMDO reacts with the olefin and the epoxidation occurs. So basically olefins react with this DMDO to form the corresponding epoxide. Now the side product as you can see what once one oxygen of the DMDO is transferred to the olefin the side product is nothing but acetone. So it is a very useful way of regenerating the starting ketone that means your starting ketone is acetone that reacts with oxone forms DMDO and in if that DMDO reacts with the olefin you get the corresponding epoxide and acetone back. It means that we can start with a small amount of acetone and a large amount of oxone and as soon as the reaction of olefin occurs with the DMDO acetone is back and that acetone again reacts with the with the oxone to prepare to form DMDO and then the reaction continues. Now this is a very general way of reacting. So various ketones of different kind have been found to react with this oxone to form the corresponding dioxidane. So that means we can here write a general way of representing that we have a ketone which is an acyclic ketone right now can form the corresponding dioxidane. So irrespective of what our groups are you can have the corresponding dioxidane in a similar fashion you can also have corresponding cyclic ketone that can give the dioxidane of this type. So this advantage of this is that we can prepare the dioxidane from a chiral ketone. So if the ketone is chiral that means optically active then we can have a small amount of or a catalytic amount of ketone we can use it and react if the dimethyl to react with oxone and then we epoxidation is expected to take place because the chiral ketone so any chiral ketone will give the corresponding chiral dioxidane. So supposing if you have a R group here and here is R1 group and your ketone is like this and one of these is having a chiral center here. So once the corresponding dioxidane is formed which contains now elements of chirality here in terms of R group here. So when this transfer the oxygen to the corresponding olefin then one can expect that the epoxide that is going to form would be optically active. So I will show the so you have two asymmetric centers here and if these two groups are different of course then you will have chiral epoxide. I will show you the examples later on. So now epoxidation can take place but since if we take a chiral ketone and if we have to use one equivalent of chiral ketone then it is not going to be a very easy process it is not going to be a cheap process and therefore it is nice to see that the after the transfer of the epoxide after the transfer of the oxygen to the double bond and when the epoxide forms the ketone which is now in this present case it will be chiral that chiral ketone can be recovered and will be reused during the in-situ. In-situ means inside the reaction will continue to keep on generating the chiral dioxidane. Now this particular dimethyl dioxidane or any dioxidane is very reactive because of the main reason that it is a three-member ring with two oxygens and therefore it is a very strain ring and transfers the oxygen readily and that is the reason why there are some limitations such as amines and sulfides also react with the dimethyl dioxidane even more rapidly than with the double bond obviously because we have a lone pair of electrons on the amine as well as on sulfides but since this is a metal free protocol it is useful and people use it. The only disadvantage of this use of this dimethyl dioxidane is that it is a bit difficult to handle because of the low boiling nature and also in some instances it has been found that it is in explosive so it can explode if the reaction is not carried out at appropriate temperature. But then the formation of the in-situ method for dimethyl dioxidane or any other dioxidane is very useful and can avoid the isolation of the corresponding dioxidane. Commonly used dioxidanes are DMDO that is dimethyl dioxidane and also this methyl trifluoromethyl dioxidane. So you have a methyl and the trifluoromethyl dioxidane. These are the two which are used very often of course both by in-situ preparation and of course this can be easily isolated. This will be little difficult to isolate but then in-situ preparation would be relatively easy. So for the in-situ preparation in this case you will have to take this ketone which is relatively easy to handle in this case of course you will have the acetone though. So both the cases we can easily do the in-situ preparation. Now what is the mechanism? The mechanism is via a spiro transition state. So as you can see here we have the dimethyl dioxidane which is transferring its oxygen to the olefin which is present here and the transition state is a kind of a spiro transition state which is that this is the spiro center in the middle and the transition state involves transfer of the oxygen in a more or less like a concerted process. So if we start with a trans double bond we get the corresponding epoxide we retain in the stereochemistry of the double bond. For example one can see that if we start with a molecule like this which is a racemic molecule which has an isopropyl group as a substituent on the top when the reaction is done what is found as that this particular epoxide where the isopropyl group and the epoxide group are opposite to each other that forms as a major product with 78% yield. On the other hand the cis product where the epoxide and the isopropyl group are cis to each other it forms in a minor way. So it is very clear that the product is formed from less hindered side the major product is formed from the less hindered side. Of course here we are talking about the relative stereochemistry we are not talking about the absolute stereochemistry because we have started with a racemic compound. Now what do we do to make the molecule that is the epoxide as chiral. What are the ways by which we can use this dioxirane to get epoxides which are chiral. There are two ways by which one can do it. For example if this is the olefin that is taken and if we want to convert into the corresponding epoxide in a chiral fashion here and here what has been utilized is manganese cell and complex. This is the manganese cell and complex which was reacted with DMDO to form this reagent in the reaction. That means if we begin with this manganese cell and complex react with DMDO in the reaction it forms the corresponding manganese this oxygen double bond here based reagent which then transfers the oxygen to the olefin to form this particular epoxide. This is something that we will discuss little more in detail later on when we do the asymmetric epoxidation. So this is called Katsuki Jacobson epoxidation and I have mentioned here mainly because it utilizes DMDO in the reaction. Of course you can also use some other oxidizing agent but again advantage of using DMDO is that the side product is ketone that is acetone. Now this is one way of doing the epoxidation in a chiral fashion. What is the other way of doing chiral epoxidation is you can start with the chiral ketone. So as I discussed earlier the chiral ketone can be utilized in a small amount like for example in this case conversion of this still been to the corresponding still been oxide in 97 percent enantiomeric excess under these conditions where the chiral ketone is used which is only 30 mole percent. Various kinds of chiral ketones have been utilized. For example this is one of the chiral ketones which has the CF3 methoxy phenyl and this particular methyl ketone or this type of ketone where the chirality comes from the corresponding atrop isomerism. So this is the ketone which is going to be reacting with the oxone to form the corresponding chiral dioxyrene. But more than these is the she is catalyst which is utilized which is reported by Y in the United States and that can be easily prepared from the defructose. As you can see here the top one which I have shown here are the ketones which are not sterically hindered. They are chiral they are optically pure but they are not sterically hindered. On the other hand if we take the defructose which can look somewhat like this and can be converted to the corresponding ketone by the oxidation of this hydroxy group after the protection of these two hydroxy groups as the corresponding acetonides you can oxidize the hydroxy group into the corresponding ketone. And this ketone as you can see is flanked by two bulky groups here the two bulky groups are present here this part and this part. So therefore if the dioxyrene is formed in the middle we can expect a fairly good amount of stereo selectivity because of the steric hindrance. For the in-situ epoxidation a two-phase system is used as this potassium monoperoxy sulphate is not soluble in organic solvent. So we can use water dichloromethane or something of that sort. Hence substrates which are or the products which are sensitive to hydrolysis cannot survive under these conditions. So if we do the in-situ epoxidation inside the reaction we take the ketone and add oxone and if you are starting olefin or the epoxide which is formed is sensitive to hydrolysis then obviously it cannot survive under these conditions. So there are advantages of using in-situ epoxidation but there is also a somewhat disadvantage. Both electron rich and electron deficient alkenes undergo epoxidation but as one can expect electron rich alkenes would react faster. Electron deficient epoxides also exhibit enhanced hydrolytic stability that means although the electron deficient alkenes would undergo epoxidation somewhat slower than that of electron rich alkenes but the products form with electron deficient substituents and the corresponding epoxide which is formed would obviously not undergo easy hydrolysis. Say for example if you have an electron withdrawing group here on the epoxide and you have another electron withdrawing group here obviously this formation would be somewhat slow but then the during the hydrolysis this bond would not easily be breaking because we will be generating here a some positive charge and that would be next to the electron withdrawing group. So there is a advantage of hydrolytic stability once the epoxide is formed after the epoxidation of electron deficient olefins has occurred. Now electron deficient olefins as I mentioned take longer time as you can see here this is an electron deficient olefin it gives 100% of the epoxide but then it has taken 57 hours time. So it does not really matter the time but then at least it is not unstable molecule because of hydrolytic stability and as you can see that yield is 100%. Now one can also use quite sensitive substrate such as this sugar derived olefin which can react with a DMDO and at 0 degrees centigrade in dichloromethane this is the reaction after isolating the DMDO that it leads to 99% of this epoxide since these groups are here particularly this group is beta oriented here the epoxide attacks or epoxide forms from the alpha side. So you can see here 20s to 1 is the alpha beta ratio but then this epoxide is a very sensitive epoxide because the lone pair of electron can easily open the epoxide here. So therefore there should not be any possibility of cleavage of the epoxy epoxide compound. But you can use of this epoxide which is formed from an olefin which is electron rich and it can be hydrolyzed to the corresponding hydroxy ketone. Say for example if you start with an enol silyl ether which is an electron rich double bond and if we do the reaction at minus 40 degrees with DMDO in acetone and dichloromethane reaction mixture within 3 hours this particular epoxide is formed and as one can imagine that H3O plus that the under acidic conditions this epoxide can easily open the protonation would occur here and then the bond will break and eventually you would get the hydroxy ketone. So you can get alpha hydroxy ketone readily if you start with enol silyl ether. So sensitive epoxide prepare since DMDO works under mild neutral conditions without any nucleophilic component. So this is the sensitive epoxide which is formed and since there is only acetone as a side product therefore there is no nucleophile present or under neutral conditions the epoxide does not open. When olefin is bound both to electron withdrawing group as well as electron donating group the olefin more like more or less like behaves like the former that is the electron withdrawing group and generally takes long time with some occasional heating we may have to heat in some cases obviously people try to avoid as much as possible. However as we discussed earlier the products are relatively stable to hydrolysis. Now one example is somewhat like this here you have an electron withdrawing olefin here as well as you have donation of electrons from this side. When the reaction is occurred in an in-situ fashion now you can see here the starting ketone is taken as trifluoromethyl methyl ketone and this is mainly because if the epoxide is to be formed you need to have a very reactive dimethyl di-oxidane and since there are there is an electron withdrawing CF3 group present here the reactivity of this di-oxidane is very high. Therefore now if this particular starting olefin has an electron withdrawing group and therefore the nucleophilicity of the double bond is somewhat less than electron retrolefin therefore you increase the electrophilicity of the di-oxidane that you have you are going to use and therefore if one makes the di-oxidane of this type which has a CF3 group attached here the oxygen can easily be transferred and that is the reason why it just takes say 1.25 hours to form the corresponding epoxide. So basically you have to have a balance between the reactivity of the olefin as well as the reactivity of the di-oxidane that is used under the conditions. So this is how one can carry out various kinds of reactions of different olefins that can lead to the corresponding epoxide formation. Now if we have a substrate which has both electron rich and electron deficient olefins such as here like this is an electron rich and this is an electron deficient olefin obviously the electron rich would react faster than the electron deficient therefore the epoxide forms from this end of the double molecule and one can also see that in its application wise that is somewhat complicated example this tricyclic molecule which has an electron deficient olefin here reacts to form the corresponding epoxide. Now you can see the formation of the epoxide is taking from the beta side because the groups which are present here they are all alpha oriented. So due to steric hindrance the formation of the epoxide occurs from the beta side. So we will stop it at this stage today and then take up the other examples or other applications of the dimethyl dioxane and the mechanism how does it happen in the next class. So till then you can go through these things which I have discussed today. Thank you.