 Good morning. Good afternoon. Good evening. Hello everyone welcome. We're very happy that you're joining us today I am joined by our developer experience crew who are very savvy and all things open shift kubernetes and club native today Our our main driver will be mohit who's gonna take us through what what are you taking us through today and mohit? Like you're gonna take us on some kind of adventure here Yeah, it will be around developer experience. How you can do that using different IDs? Awesome Are you ready sir? Or do we need to introduce? Oh, sorry? I'm a technical product marketing manager here at red hat mohit is a developer advocate here at red hat I'm assuming or Yeah, I work as a senior engineer at red hat randy based out of India Perfect. Awesome. Well, thank you for staying up late. I guess is it late over there? What time is it over there? Yeah, I'd say 30 at night. Oh, okay. Well, hopefully this will be enjoyable for you at the very least So, let's get started man. What you got? Cool. I'll just start with the demos then and I'll quickly share the screen Yeah Okay, if you can let me know if you can't While mohit's working on that. We also have Serena Doyle is on the call Feel free to drop questions into the chat and we'll do our best to try to respond to those Absolutely, sorry. I mentioned that. Yeah, thank you Ryan for the top cover there. Yes I have Integrated chat tools and everything so that I can see all the chats as they're happening and get them answered for you all as soon as possible So ask away if you have questions Mohit take it away, buddy. Okay, cool Thanks So today the main agenda we have here is to explain that how we are enhancing the developer experience around open shift and This will basically cater to whatever plug in plugins or extensions. We make for different IDs The primary demo will be focused on integrating this experience with Microsoft VS code That is currently one of the most favorite ID used by developers around so we'll just quickly highlight that what it is all about So if you see If you see the slide, these are some of the cloud providers We just supported by Red Hat currently and we have open shift from AWS open shift from Azure open suite of GCP and a local instance of open shift 4.x running on your laptop, which is known as Red Hat Coready containers so all these Cloud providers can be directly used inside your editor and you can connect to them You can deploy your applications on top of it. You can do all the debug deploy push commands directly from your editor You need not toggle between your ID your command line on your console to just work around this So the demo will showcase how that works So the basic question is for whom this is all about right so The basic answer is we are targeting developers who are the real king makers here And so this extensions which are being developed is for the developer community how can they strengthen their workflow around open shift and The demo for today is Red Hat open shift integrated with VS code. I Have some slides which are like very funky here, but yeah, that's just for the demo to different customers and different Developers around the world. So this is the very basic template which I have The main use case here is why do we need to have Extension on top of VS code it can be also done directly from a command line, right? But as a developer when we are working on any say code Which is written on Node.js or written in Java and we directly want to test that code on top of a production instance of open shift I did and that instance can be deployed anywhere on cloud on AWS or on Azure or wherever And we need to update continuously push our code on top of it to test whether it works seamlessly or not So this extension will help you to do that update very quick seamlessly It's a self-service deployment where you can just do the push pull Images you can see the logs you can start the logs directly from your ID You need not go to the console and verify that what type of logs are there should I start the build again? Should I start a deployment configs again? And those are the other things and even if you need to scale up them Right if you have a node which needs to be scaled up, right? You can do it everything from your ID And this is this is how easy it has become for developers to work around the code Right, my code can be deployed on any instance and can be tested very quickly the same node Yes, code can be tested on AWS can be tested on Azure can be tested on GCP Anywhere it is and quickly I can just figure out whatever changes are needed and I can just work seamlessly without worrying about Do I need this type of setup? Do I need that type of setup and basically improving the workflow, which we have for And as VS code is a very smart idea, right? So it has everything with what the code needs and to integrate OpenShift extension on top of it But things are whatever Kubernetes and OpenShift Scenarios are needed. We have embedded that in the extension and this extension is Open to the community so we get more feedback from the community that how it needs to be Changed what feature needs to be added with every release of new version of OpenShift Currently we are testing on 4.5 and 4.6 and we are keep on having the new releases every three weeks So the iteration of the release is very Quick so the changes keep on happening with the extension Currently if you go ahead and see on a marketplace, so this extension can be downloaded from Visual Studio marketplace where this is hosted from Red Hat So that has multiple extensions for different scenarios like for a YAML extension for a Java extension and same goes for OpenShift So the name of the extension is known as OpenShift connector And this is hosted by Red Hat and currently if you see it has approximately 19,000 installs So there are two parameters where Microsoft allows us to see the number of installs and number of downloads So the download currently will be very high because every time you update your VS code It keeps on increasing but the number of installs are those which there are unique users for that extension So this is one of the more one of the most used extensions for VS code and we are looking for improving it in the future and this is where you can go ahead and install and once you do install It will be automatically installed on your running VS code in this instance. I will showcase that later on in the demo But just for the heads up. This is how it is Great. So these are some of the features which we have in the extension itself I will focus on every one of them individually when I demo it, but on the upper level as I mentioned We can streamline the build and the deployment conflicts directly from your IDs If you need to push your code, be it in any preference of the developer any language preference of the developer You can continuously push it and you can directly stream and View your logs from your ID itself and see what is breaking what is what changes needs to be done You need not go to the main OpenShift console logs and see what has been broken So every interface every inner loop scenario, which is there for a developer is there in your ID itself You write your code you deploy your code you check your code you see your logs everything from your editor So I guess this is how we are trying to improve the developer experience around this So I'll quickly go ahead and do a demo. I guess that will be more Good way to showcase what are the features we have right now there So, okay, so this is my VS code instance and I'm running this in the debug mode because we have more Additional features which are currently not released in the marketplace, but we have them on the master branch. So this is a VS code instance. So if you go to the VS code tab There's extensions column here Chris, can you just tell me if you can see the size of the VS code is perfect or should I increase the font? I always tell people to increase the font, but it doesn't look that bad. So probably just plus one. Okay Cool. Thank you Yeah Okay, so if you go to the extensions tab here, right? So there are multiple extensions which are there on for VS code right you and for our extension name is OpenShift So just have to search OpenShift here And you see this is the latest version of OpenShift which is there and I as I showcased on the marketplace instance This reflects the same data which is present there So you just follow the demo purpose. I already installed it But if it is not installed You just have to go here and do an install and it will be automatically installed So once this extension gets installed in your VS code so On the panel here, you can see there's a open shift icon which basically Means that your extension is successfully installed here. So you have to click here Now this is the view which is provided the next thing is we need to connect to an open shift instance So for the demo purpose, I would be connecting to our open shift in open shift which is running on Azure and it is OpenShift version 4.4 and So these are some of the action items which are available for the extensions. This first one is how you can log into a cluster Logging to a cluster can be done in multiple ways. One is one of them is you can provide your credentials Which will be your username and password and the second one will be your Broken authentication. So if you have any one of them that should work This one is switching the context. So whatever entries which are already there in your cube config and you want to work with those entries You can just do a switch context here And once you do that, it will list down all the entries which are there in your cube config You need to select one of them and the context will automatically change to that cluster Another thing is that cluster should be up and running. Otherwise, it won't show anything. But yeah, you can anytime round the Up the cluster and start working Now let's go ahead and do a login of it Okay, so it mentions do you want to log into a different cluster? I would say yes I would log into a different cluster. So as I mentioned, we have two options here One is you can log in using your credentials and the other one you can log in your token. So let me just grab the credentials quickly So I will be running on Azure instance Go here and I provide new URL and I provide this URL It will ask me to provide the username. Let me get the password also so the new user will be let's say cube admin and I Will just say the new password Okay, I feel to log into the cluster. Great. So this happens in the live demo, but yeah, okay. Yes All right, let's see Odeo command not found. Oh, is it tests with Odeo log into Yeah, yeah, okay, so this is it happens because we already are on the latest branch of them And it will always figure out the latest order. So let me quickly. Yeah. Yeah, so you need to drop that in real quick Yeah, so I'll worry is man. This is how it goes. Yep. Yep. It's not a real demo unless something goes wrong Exactly Kiss this was yeah, I guess this was a part of more script as well just to convince us Yeah, if you I mean if you're on the chat right now, right, like feel free to drop in questions We have a lot of talent like just hanging out on the call Ready to answer whatever you may have The issue mohit is struggling struggling with right now is he needs a latest version of Odeo our developer open source tool Though as soon as the extension so yeah, meanwhile this gets loaded So just giving a reference so we this extension in the hood uses Odeo Which is a command line tool to interact with all Kubernetes and open shift Related stuff. So whatever commands and whatever actions which are happening with this extension is basically running an auto command in the background so Be strongly integrate with the new features which Odeo has and with this extension. So Every time what it was does a new release there will be a new release with this extension also Okay, it should not take time but that's right Just for a quick review. Where's the VS code running is that's on your laptop, right? Yeah Yeah, okay, and so Odeo is your downloading to your laptop to get this connection set up Yeah, so the thing is in the previous versions of extension what we are had was the users Got a problem that made they need to download two CLIs one is OC and one is Odeo but in the Latest release what we have done is we have already embedded the OC and Odeo CLI tools directly into the extension itself So now the user need not worry about anything they as soon as the download the extension These tools will be available to them This has increased the size of the extension, but this has also given a flexibility for the Developers not to worry about any CLI stuff related. So they can just work around the extension itself Okay, so Is it strong or is it connecting? Just kind of trying to connect trying to connect. Okay The internet Yeah So just to let everybody know our follower count is a little off I'm gonna turn it off here in a second, but basically or a little over 800 users We're trying to get to a thousand users by the end of the month. It's the 23rd Like go tell your friends and family come follow us on twitch. I would I would really appreciate It's twitch.tv slash red hat open shift Give us a follow and greatly appreciate it. Thank you Looks like you might have a space after the password. Oh That would suck Yeah, I'm not sure if it gets stripped or not Yeah, so So now The extension will basically once you do a new entry for the username and password extension will ask you to Does do you want to save the password for and the username for the future references, right? So that will allow you to Just do a quick one. We don't have to mention the username and password every time So now I'm already connected to this instance But it is doing the background check to see all the parts are running and all the operators which are running or not So if you see on the extension side, so this is the extension which is Connected to an open shift on Azure and if I go here and then do open console dashboard, right? Internet is really true, but okay, so it will allow you to open this instance directly on your browser where you can see the Provider of this open shift, right? So let's open this quickly and and your dissolve just right there Yeah, so everything is done to VS code. You just have to do a few clicks and you're up there Mm-hmm Also, so now if you see here, this is the version of open shift 4.4.9 and It's loading loading. Yeah, and you see the provider is Azure here So this is basically open shift running on Azure Okay, the same way I we can connect to an instance, which is like running on AWS But I'll showcase that in the later part of the demo So now I hear here you can see there are multiple projects which are listed by default So I go here and do a new project and the project name will be 2h Nice So T should go at the last I should not have done the twitch one. Okay, but okay Basically sorts you to the alphabetical order, but let me do a new one. No issues. So I do demo to There we go. That's so we have everything at the top So yeah, we have some funny things which happened in the live demo. So this is how it is So if you see this is how The project get to God successfully created but this is currently on your local instance It is not deployed onto the main production instance of open chip on Azure, right? So this will happen when we have all the components up. So let's me do a new component So the next functionality which we have for a project is you can create a new component A component can be any type of project which is our node or which is on Java or on go and The services are the new services are basically the services which are supported by service catalog in open shit 4.x This also supports open shit 3.x So it's not necessary that you need to have open shit 4.x to work with this extension This extension also supports in the open shit 3.x Also, nice. So if I go ahead and do new component, so basically this will Ask me that which application we want to create this Component upon right so you saw I just created a project. I did not create an application So now I can go ahead and create an application and I name that application is application 123 and then There are three different ways where we can create a Component that can be your git repository. You can just copy paste your git URL and paste it here and that will create a component out of it Based on the supporting language, which we have you can also have a binary file It can be a tar file It can be an xv file and you can just provide that location and it will create a component out of it and It can also create a component based on the files which are present in your local directory Right. So for this one, I'll just quickly show a good one. I have React a simple react application, which basically allows you to see the current weather in in part of world So I'll just go here and do good repository and after doing this Basically every component should have a context folder So the usefulness of having a context folder is as soon as we create a component It creates a dot conflict file inside that folder and that conflict file can be shared across teams across Organizations so that people need not do the same step again and again They can just use that conflict file and create the component out of the box very quickly And that conflict file will have all the entries which are needed for the component to start So once we have this component created, I'll just showcase you that how the conflict file looks So let me just do a new folder, right? I'll go to download and I'll do a new folder and I say And Let's add Now I'll paste my git repository URL here and I'll go here and so it will automatically figure out Then a branch which you want to select so right now my repo has only one branch So it provided me only one option But if your repo has same multiple branches and you need to test out one specific branch to create a component For example, you have a node just application and on a test branch You have deployed new features and you want to test those new features on OpenShift So you can use that branch itself and test that branch completely on top of OpenShift You need not Worry about changing any branch and testing it so it's it becomes very useful for new features to be tested So I'll just select this And once that is selected Me a new option so once that gets selected it will ask me to provide what type of component I'm creating what will be the version of that component And and so it so let me name the component as node to edge I'm just keeping everything as to it so that we have that consistency there for the demo Now this will basically fear Pop me the list of components which are available for this extension to work upon so as I mentioned previously this extension works on top of Odo and whatever component types we just supported on Odo Will be present here. So as soon as we keep on adding the component type support in Odo This list will keep on updating Listers are more to that like There's more than there's more Languages there does that scroll or is that the entire list? Like Ruby's not there what's going on Yeah, we have whatever we supports I guess this keep this will keep on updating as soon as we have more support around it But these are some of the ones so now my repo was a react this application So the component type is supports this node. So I'll just do Node.js and It will prompt me which version of Node.js I want to select So this also gives an advantage for example if you need to test your code on say Java version 8 not on Java version 10 You might just need to see that so you can specify that specific version also and once you specify that version This code will be the component will be created on top of that version itself So that is really cool. For example, I just need to test this one on Node.js version 10 such as just select 10 and once I have that It will basically prompt me to Push that component directly on the cluster as now because this so if you see the component is successfully created It gives you a message that to deploy it in cluster You need to push do a push option, right? And it also allows you to have this action known as push Nice. And if you see on the view side, you see that command currently is not pushed Right, so it also on the left hand side. Could you right click that? I'm just curious the options are yes So now if you go here, right you okay, you can you can do multiple options here, right? So as this is currently on the local side of your Open shift it is not deployed on the production So you have you can create a new route for it You can create a new storage for it you can describe the component and from here you can do a push Beautiful So there are You can do a push as soon as the component was created or you can do a push later on So for example, if I want to create a route also and then do a push so I do go ahead and do a new route And then I can select. Okay. This was my Twitch app no twitch not push the route will be there when it gets pushed. That's awesome So it'll be probably accessible the second you push it Yes, as soon as I do a post once the command gets a post it will Change here and it will update it And there is one and there is one more third option which is there which is known as no context So for example, let me just create this URL so I'll so the no context part I'll explain first and then I'll go ahead with this So the no context part is basically for those components which have been migrated But they do not have that context folder with them For example, if you remove that context folder from your workspace that will the status of that Component will change to no context because then it Figures out that okay. I do not have that configuration file. So I cannot do anything So But there's an option we have provided where you can do an import and as soon as you do an import It will ask you to provide that Context folder and it will again move back to its original state be it a post state or be it a not posted These are the three states which we have so now moving on to the creating URL So as I you saw I created a new you all right, which is basically a route So it has two supports one is you can create a secured URL And another one is you can create non-secured. So just for the demo. I'll say let's not go with the secured one Let's go with the non-secured one. Yeah makes sense for demos Yeah So we see it basically prompts you a notification that okay the URL is getting created here And as soon as the URL gets created it will again ask you do you need to post those changes? I'll go ahead and do yes. I need to post those changes now into my cluster because I am I have my instance up With my route So as soon as I do that if you see here Uh, this will basically open an integrated terminal on vscode side And it will basically run the odo command Which is running on the background for every action which we have and it will give you the status of the component deployment Right. So now it has verified all the Component prerequisite it has figured a build and now it is dating for the build to finish Uh, this will take some time based on the speed of the internet that you have So, uh, we'll just keep it that way let it finish So now if you see here, right, uh Okay, so This currently is having So this is a twist demo which uh Context folder which I created and it will have a dot odo folder inside that dot odo folder. We have this config dot yml Now if I open this config dot yml Go away terminal. Yeah So if you have this uh yml if you see uh, this will have all the configuration details Which are needed for the component to be deployed, right? Nice. It has the name of the route. It has the port which is getting, uh, selected For this application, I had only one port which was open So that is why it took the default port, but if your application for example have multiple ports Uh, when you create a route it will prompt you to select the uh, different ports you want to create You want to select for that route? So that option is also there. So right now it was default. So it took 8080 the name of The project uh, the application the component What is the source type? So there are three types right one is git one is binary and one is local So it provides. Okay. This is a git type which branch I selected. This was the head branch. What was the name of the, um GitHub location. So this was uh, it what is the type of the component So all the other information related to that component itself is deciding in this config file And once we share this config file and use the same config file in that context folder Everything will be replicated again And we can we can we can check that into git and everybody else will have it too So everybody will be just in sync Yes, awesome running. That's awesome. Yeah What's uh, waiting for build to push is that what is it? What step is that? Is that actually building on the back end? Can we see that an open shift happening or Yeah, so, um, let me just quickly go there. I'm putting you on the spot here in my bed. Sorry No, no, that is I'm sure serena's shaking her fist at me. Why are you asking these questions? No, that is Those features are awesome. Okay. It did finish now. It's deploying the component. Okay. So it actually pulled the image It did all the building It paired it up with the binaries and a lot of fun stuff. Okay, cool Okay, let me go here on the dashboard. Okay I know the idea is not to leave the idea but it's sometimes it's cool to see it happening Yeah, and we have also integrated everything which uh user wants to do it To see it on the console also. So for example, whatever actions which are happening in the id and they want to see it on the console We have actions for that. So oh, wow That is pretty much there for the user to see it's not uh, they can easily go ahead and check it out So if I if you see this is the project which was there demo twitch and I Let me go for the bills part This in the bills part would have this Meanwhile, this is getting loaded. So, okay So if you see, uh, it has finished basically and if you go here and if you see this is already created here App 1 2 3 was the name of the application and the name of the component And this is there Nice, so it sinks. Uh, the sink is pretty much there. We can see on the console side on the editor side Everything is there now as soon as this is created right now You would definitely want to see the component which is deployed right like so either you Open the URL directly from here or you go here and To the component and in the component you have multiple options now now as it is post The number of actions which are available into that component has increased right if you see when it was in not posted You just had few options which basically is because the component is still in the local It's not there in the production But now as it is there you can now show logs you can follow the logs And you can link multiple components. I'll get back to how you can link multiple components But now let me showcase you how the route works. So now I've created the route. I've deployed it on the cluster I will just open in browser And it will prompt me to open that in Whatever instance we have Let's pray that it works Because sometimes this is the first deployment we have so There's no brain involved. It's just internet connection that I'm worried about it. See it already says react app. Yeah, there we go Nice So do whatever you so let's like okay. I live in punay And this is I apologize for my dog in the background. Sorry folks And this is india. Okay, let's see what's the weather here. I hope it fetches it awesome Oh, nice Okay, and let me do Seattle Yes, okay, so we have a clear sky in seattle today so So yeah, this is Be sure this app is working right Okay, are the mountains out today people watching from seattle? Yeah, I got uh, I checked with my friend. They said that okay. It was raining yesterday. So Okay, cool. All right Okay, so yeah, uh, this is how you can just create deploy a quick application on open ship and this is currently running on open ship And it's your the same way we can run on If you have an open ship cluster on the aws right for example So I have a cluster on aws if you see I can do the same process exactly same process and just deploy it on this aws cluster and the things will be pretty much same Now if I go back to my vscode id, right? Okay, so now it is in the posted right now if I need to undeply this right I want to remove this from the cluster But I want them to be on the local instance. I can just do undeply The next step is the debug step where I can debug my application directly real time on the open ship directly Nice, but the thing we debug is it currently works only when you have created a component out of a local workspace Okay, because it allows you to debug set breakpoints and everything and then you can debug your component directly So the support for debug is currently for local components and it supports node. Yes, and java as of now We are going to add multiple Languages on top of it, but currently it has no and java support Can you can you help the audience to understand what local means? Yeah So okay, so this is the component which I created using a git repository, right? Now I can create a component directly from our local workspace, right? So I'll just go here and add a folder to workspace And let me just Node just Okay My zoom instance is weird, but okay that looks Okay Yeah I pull it to workspace and I will just say node Oh, so you would have to just check out the thing locally. Yeah, I have to basically See what you mean. Yeah Yeah, so as long so as long as you're pulling down to get repo locally to your machine Yeah, it's but the way you're doing it where it's just you know deploying from get directly from open ship It takes out that step It makes everything in the node or in the cluster As opposed to having to bounce back and forth between. Oh now I need to check something in the git locally to do something to push it Right like it's just all yeah in the cluster on the other way and this frat. It's There is the there is a git repo on your machine You're using it explicitly for interacting with open shift and your application Correct good assessment. Yeah. Yeah. So and one more thing here. We have is for example This is the local for example I have a node node just repository right which I cloned it on the system and I added it on to my workspace Now if I go here and I gain in this project I go and do new component and I select the same application Now if I do workspace directory, this will Automatically prompt me whatever folders which are there in my workspace So here I need not worry about okay, which folder it was I have already the drop downs available I'll just say node.js ex and it will ask me to say Provide the name. I said node local And the the steps are same So after that you just select the type of the node.js for a type component type at node.js version as the latest one And just post that component right So I guess here here and The workflow remains the same whether it's a git component or binary and whatever it is So again, I do a push here and it will against the deployment again So meanwhile, this is happening. Uh, I'll showcase the other features which we have Okay, so Now if you see this company is already deployed on my cluster, right now I need to see the logs of it. So I go and do a show logs Now if you see here Yeah, that doesn't do that arrow is deceiving I'm already getting confused with that, but okay So the idea of having logs directly into the editor was so there are two ways where people check logs, right? They are They have an habit of doing the command line stuff and checking the logs there But what we have done here is as soon as you do show log It will open up a panel in your editor itself and all the logs which are there for that cluster I will be here and you can do a quick search. For example, I need to search what was the debug port So it will give you a way of graded and now if you do enter So we have this search support also into the logs and this is basically the logs which are currently Not updated dynamically because what I did was show logs. So there's one more option which is known as follow logs which will basically do A streaming of the logs if you see this is already streaming If you add more if you do more actions or if you change something it will automatically keep on updating and this will be dynamically updated That's all you can anytime you can anytime stop the streaming or you can anytime stop the autospelling So these are some of the ui announcements which we have for the And that's just all baked into the connector, right? Yes. So everything is Checking the logs pushing everything is done on the connector side. You need not go up outside of the editor for anything Yeah, like you just go click click click and there's your logs. Yes, exactly. So and one more thing So the thing is if you have multiple tabs opened here, right and you need not worry about okay, this tab is showing the logs you can go here and In the open editors tab, you can see these are two which are open So you can anytime go ahead and click on them and that will automatically pop up here Nice. So the idea here is to support that But for some developers, they need not want to see this in editor They still want to see the old way where logs are shown in that integrated terminal So we also have that feature enabled. So this is by default. You go here and do in settings And you do Logs Yeah, so this is the by default which is there The show log and the follow log and the describes command will be shown in the terminal But once you check this, it will be shown in the editor So we have this flexibility for the developers to update this based on their use case or their preferences But if they don't want this to be updated, it will be shown in the terminal every time And if they want this to be shown in the editor, it will be done that So we have provided some of the flexibilities using this Okay, so let me stop the streaming and Close Close this too and open the terminal Okay, so you see this is the local one is also post and let me just open this in browser So now as you see, I have not created the route yet But if I do open in browser It should prompt me to I shouldn't show me that okay, the route is not created. Wow. What should I open? So as soon as we do that, it says, okay, there is no route here Do you want to create a route and open it? I said, yes, go ahead and do and do a create and then it will be asking me to do that Nice and the same way it is. So for the user, it is much easier to Understand if they have missed any step the extension will prompt them that okay, this is not there So you need to do this So the route is created again. I have to push it So as soon as we create a route or create a new storage on top of it We have to always do a new push So that it gets But if you are not doing the push, it will always remain on to the Local instance of that So now if you see the as the company was already deployed, right? If the step became very quick, it just needed to apply the changes with the url and everything was done Nice. So now if I try to open this From here itself I think this should work. Yeah, so we have this Node.js page which is there Are running. So now if you see we have this no database which is showing as configured Because it is not linked to any database, right? Makes sense. So now if I go here and I do link service So basically this link service command is for to link any database on top of it I need to link a MongoDB service or I need to link a mysql service. I can link that But for that, I need to have the service catalog enabled on my open shift instance So that is one of the prerequisites that we need to have if we need to link any services The same way we need we have a link component. So by link component For the users, this might be confusing how link component and link services are So I'll explain this in more detail. So link component is basically The original component is a Node.js component And I need and for say it's a front end front end component, right? Now I need to link this with a back end component and that back end is written in Java So now to link these two components, I need to have one more component created as on the same lines as I created the front end one And the back end component will be created Using Java now we have two components And now in the first one, I go ahead and do a link component and I will provide the Name of the second component here and those two components will be automatically linked So basically to link the front end and the back end You need to have this link component and if you need to have the linking of front end with a service like a Database service or anything you just have to do link service And once you have these two done and then you want to unlink them. You also have an option to unlink here So all those scenarios where you need to work with multiple components Component and a service is everything is done using these actions here itself Now for users these actions are also available using the command palette. So for example, if you do on mac It is command shift and p And this will open and you just have to type open shift So if you see all the actions are there so describing a url deleting a url Swing the logs opening in browser creating a new service everything is directly on the command itself So if someone is very much familiar with bs code and wants to Use using the command palette also these actions are there and if someone is very much Useful with the actions using Click animations. It is pretty much here, right Now once we have this this component was created using local workspace directly Right as I mentioned previously the debug action is only be supported when you create a component when from a local workspace So let's go ahead and do a debug here As soon as I do a debug the debugger session will start. So this debugger session is basically No just debugger session which comes by default with bs code But if we need to debug see a java application. So there is a debugger for java extension from red hat itself if you go here and see Then a different extension which we have from red hat, right? For bs code Let me open it. So there is extension on as debugger for java and we you need to use this So this is one of the extension which is which it needs And so as soon as you do this it the extension will prompt you that that extension is not yet installed You need to install it or else if you already have that extension installed into your VS code it won't prompt you and it will start the debugger session. So now the node just Was already installed by default It didn't prompt me to install any extension and it said debugger session has started and you see here the debugger is already running So if you see this is how the debugger looks here And if I need to go here and say debug which application, okay, let me go here and say views Index data statement Okay, so I can any application which I have I can debug it directly from here and I can just keep on working with that You can also write this Let me just check if it has Connected to mango So for example, if my MongoDB was already up and running right and if I added a break point here and then again I had to press that code It will basically Stop at this break point because the debug session is already enabled and this will work on top of this application which was deployed here So this is how the debug feature is interlinked with this Okay, so now Once we have this scenario up and running right If I go here and see in this local workspace. I have this config file And here you see the entries are different for the config file right because the source location is the root folder because it's in the root of my workspace The type is local And the port which is hosted and other names which application project component everything is currently present here Now for users who want to see the build configs the deployment config directly from the editor itself. We have the Dependency known as for kubernetes extension. So this is a kubernetes extension, which is developed by microsoft And this is added as a prerequisite when you install the open ship connector. So for this what we need to do is Okay So if you go to this kubernetes extension, if you can see what are the clusters which are present So these list of clusters are basically The entries which are there in my cube config in my local cube config, right? So I have this entry here and if I So we have extended the api of the kubernetes extension to support open shift here So the kubernetes extension is developed by microsoft folks and we work in tandem with them to create Extend this extension and add support for open shift. So if I go to the project section here So if you see this is the default project, which is loaded and these are all the open shift ones So for example, if I go here and say twitch one and I want to This one to be the default one. I can say that use this project And all the entries like department config workloads, everything will keep on updating based on this project But for now, we already have this demo twitch as the current project. So That won't be updated and from here. Also, you can just open this for directly this project into your console if I do this And that will open the specific project in your console. You need not Go to the console and switch between different projects. This will open the direct that project itself That console you can see the cluster projects and the url is automatically created and that should be there So while it is loading, I'll go To the workloads Okay, so in this workloads, we have this build configs. So if I go to the build configs I have this build which I showed a few minutes back, right? This build was running Now I can directly rebuild this from here itself. I can show the logs here itself I can follow the logs and you can even I can delete this build from here itself I did not go to the console again and to do this, but let's rebuild this like I do a rebuild of it And that that will start this and let's go to the console and see the builds whether it is rebuilding or not So if you see it's uh, the new build is automatically running It is created and it is just done from your vscode instance. You need not do anything on the instance Less than a minute ago and it's running And the same way uh as As I open a specific project in console. I can also open this specific build in the console So if I do open in console, this will open that specific building in the console So the advantage which we have here is the users can work on a specific build specific deployment configs specific image streams Which are available here and just check those specific things in the console directly instead of uh navigating the console and seeing which which elements are present where And everything is happening from your editor itself. So you can just Need not worry about that. Okay, where it is What is happening in the console the things are running seamlessly And the same goes with the deployment configs So now I have two deployment configs And if I do uh, if I do a right click onto this, it will open the uh deployment config yaml directly into my editor So I can still view whatever Entries which are there for that deployment config the yaml entries and I can work around it and if I open this again, I can also show the logs here and Let me just check so if you see uh As I showed we can directly go to the specific build directly here and we are already on that build section directly in the console and this feature is there for uh Any resources of kubernetes, right? It is just not specific to open shift here. It is uh, you need to any kubernetes resources. So uh, for example, if you are just working on an open shift uh cluster, you can Do the resource working with open shift if you're just working on a kubernetes cluster, which is not on open shift You can still do the same things Okay I had a couple questions from the chat stream I wanted to check in on if if you're all right with that someone asked about Whether this build was happening whether there was a jar file involved. This was a node j s or javascript React repo, right? Yeah Yeah, so this uh for folks who maybe are less familiar with open shift Your build and all of that is going to happen on the cluster using this uh build config resource in order to kind of Spec that out how it should happen. Um, I tried to lay out kind of a flow of which resources you might interact with um in the in the chat For folks that are trying to trace that flow Um, but this should make it uh very easy for you You shouldn't need to interact with these directly very much unless you need to go back and customize them But this is great that uh, they're all exposed and accessible right there. So um, super cool I also I think I saw when you did a right click Um, was there an option for uh watch? Uh in the right click menu On So yeah, so in the build section there is no option for watch But if you go to the open shift extension and if in that project itself in the component you can do a watch of that component So if you continuously keep on updating your uh files and you need to see how they're getting deployed So this watch feature will be very much useful there So we have the watch we have the push we have the undeploy command. Uh, everything is there for that specific component And even when you pull up the watch it's still right here in ide, right? Yes, everything. Yeah, you you need not change the ide anywhere, right? Yeah, like it's all right here into this one screen for you Yeah So and one more thing which we are going to add in the future release is right now You need to have the instance of open shift from uh, you need to create an instance of open shift, right? Whether it's on ide blue s on azure or your local system But in the next release of this extension, we'll provide an action where you can set up an open shift 4.x instance directly from your extension itself So for that also you need not go out of your editor You just have to do a few clicks and a new open shift instance will be up and running and that will use uh red hat code ready containers Uh, I see under editor itself. So yeah, so that will be a new feature which will be releasing soon, I guess So we are working on that and we are getting few few feedbacks around it. But yeah, once that is up, we'll have updated on The marketplace and maybe tweet around it so that people can know about it. Oh, yeah, absolutely Maybe you can come back on and show us that'd be cool Yeah, I think yeah, that's uh, that feature is really exciting. So yeah, maybe Yeah, like that would that would be a pretty cool stream. I think for us to to do together. Absolutely I'm looking through the chat ryan. I'm not seeing Much of anything there is a survey that serena would like everybody to take I will copy and paste that Survey feedback form I'll just say feedback form I apologize for the dog again Many things are happening here today But yeah, so the Thank you so much for joining us today. Thank you ryan. Thank you serena. Thank you everyone When is our next one it is two weeks from now right ryan I I believe let me confirm with serena, but I think she is available One week from today. Oh fun. Okay, so we could serena. Are you are you around to confirm? I am around to confirm. Yeah, I'm available next week and what we would talk about is the plan upcoming plans for 4.6 the developer experience there Okay console so so next Tuesday is pretty booked for the stream scheduled to be honest with you, but We could slide you in Tuesday afternoon or Wednesday or Thursday We might have to shift shift that week If we're going to do this weekly, we'll we'll have to establish that in the streaming calendar But yeah, no, I look forward to having y'all on next week. Sounds great The next stream that we are having here Is Uh, looks like two weeks Yeah every two weeks for uh us here on the developer experience office hours kind of deal And then tomorrow we're doing multi cluster management on open shift explained for developers As part of our open shift commas briefing Um, so that's at noon eastern GMT switch to 1600 GMT UTC So yeah, join us tomorrow Uh follow go to yeah, please follow mohit on all the things Hit up open shift tv to see where all we're streaming And uh, subscribe to our calendar from there as well We have a public google calendar that you can just add in to your google calendar And it will let you know where to go to find us when we are live streaming So thank you everyone for joining us today Mohit, thank you again for another wonderful absolutely great demo and ryan and serena. Thank you so much for answering questions Thanks everybody. Thank you for next time. Have a wonderful day Bye. Bye. Thank you. Bye. Bye