 The challenge that he will dance is Shuffle. If you manage to run GKD, the idea of production on GKD. We committed very heavily to this challenge and we have two persons, two people that will be presenting it. One is Jason, the second is Paolo. So give them a big applause. So I'm going to go ahead and kick right into the demo. You actually will be surprised how quickly we can get everything done. Now the only thing I have to do is tell you that you would go ahead and create yourself a free account. Go ahead and create yourself a free account on the YouTube platform. We have prepared only one step which is set up by a static IP address for the node because you need to set up a DNS address that will actually work. Other than that, we have done no other configuration out of this time. I'm going to do a few steps. I'm going to create a cluster and from that cluster I will then connect to get my authorization token and then I will deploy everything. This process should take less than 10 minutes in total from nothing to an entire working installation with all features. We do it in the one-man foundation of these two BCUs. Yes, thank you. That's better. Okay, so apparently I have a new assistant. Everyone, welcome to the stage. Now this process, like I said, will take a couple of minutes to go ahead and run. We expect it to take two to three minutes. In the meantime, I will show you some of the things that we've done. The first thing we've done is we've actually based this on the original I2P that we did in the past based on corporate chip. It's also based on Kubernetes as is Google Cloud. The advantage is that it's an entirely public cloud that you can get access to for free as opposed to Origin where your two options are render on cluster which has the entire system overhead required for that, the engineering, the maintenance, etc. You can come to Google Cloud, get a free counter, 60 days, try out the CUE version entirely in cloud without costing you a dime with infrastructure that you can count on. And set it up without our help in approximately 10 minutes. So the first thing we actually have is the Kubernetes GitLab demo and in this we actually have all of our configuration that's required to set this up. This is actually a lot more complex than it looks because we've actually had to create 24 separate animal files with all of the individual components that are being done. Your database, your read-its, your workflows, everything else that goes for that as well as setting up completely automated, less input access. So if not only will your node set itself up, you will have full secure communications on everything you do including all of your review apps. So one of the things I'm going to do ahead of time is we know where we're going and I can say the tiny bit of time by just exporting two things, our actual address and domain that we're going to use. And in case you can't see that by the way, yes that is makesitdance.com. Behind that all I have to do is do boss generate. And now I have a configuration file that I've been used to pass directly to Kubernetes and it will load everything I need right to work with makesitdance.com. All the old NSSL configured with lots of trips out of the box with two settings and a single batch script. Now we are not doing this with WebUI because apparently we found out there's a bug where they don't actually validate properly. So I do apologize and we can't do this in all pretty pictures. And we just wait for the cluster to be done. So while we wait for this, this process took us pretty much until yesterday about a long time. Cid caught me and Camille out in the corner here and asked what are we working on and where are we getting ready to go. And we said, well, you need to dance. It was taken at most of our time for the last several days. And no matter who you ask to work on the project, whether they think that they've put in a little bit of work or a lot of work, we've all had to come through a lot of documentation and a lot of features to make sure that everything works perfectly for the ICP. So if you were involved in any way, we appreciate the help. So for here, I'm actually going to go use Web console. So I shall grab really quickly over to the console endpoints for our cluster that we've just spun up. Now they don't have lots of trips set up. Now when we log into our Kubernetes cluster, we can actually see that there is absolutely nothing configured with the base system. Whatsoever. No services, no volumes, nothing other than default tokens. So I'm going to come back here and I'm going to just copy one thing out from the group console so that we can run Kubernetes directly against their cloud. And then we have all this in place. So I would do one simple command and this will load up all the address that we've taken, bundled into one and shipped off. So everything is up and it's now in progress. Now this process again can take two to three minutes because it's now spinning up all of these individual nodes including going out and making acne calls for all of the lesson from certificates so that we have everything across the board. And let me tell you that was a pain in the butt because apparently the lesson doesn't like it when you try over and over and over and over and over again. Apparently they don't like spamming. We thought. So we can figure everything here. While Google Cloud does support its own load voucher through the Kubernetes engine, we have chosen to actually implement an individual engine X control for that so that we can do multiple sub-domains as well as handling review apps and multiple environments such as staging and production. So we have to wait for that one to spin up and it takes just a little bit of time. That might mean we'll air it a couple of times a day. Basically what's down is it's trying to actually set up the secured storage and it's going a little slower than Google likes. So that's all. Now you can see that we're already up and running but it's finishing the configuration of everything. So while the node for GitLab is not completely online yet, we do actually know that it's there and functional because we've got 503 services. Yeah, average. Okay, we've got all the reins. We're not supposed to be on this DNS problem all week. No, actually it's right now configuring this package. Oh no, I'm aware. We didn't get to figure out a way to postpone making the deployment to be green before actually the deployment was finished. That is the wrong path for the next week, by the way. We're going to change our Uptops and we'll be going. Uptops and we'll be going this week. So I will be showing you the whole idea to production workflow using the GitLab that Jason has just provisioned. So let's go to... Thank you, sir. Yeah, that's really useful. This is how I contribute. Everyone can contribute. I'm going to the web page, setting a new password. That's secret, I won't tell you. Look safe. That is a secret password. Let me show you again. As you can see here, I was here before. Okay, so now I will set up a new project, import an application I want to deploy and show you all the whole thing. I will create a new project and import... So let's go to the GitLab, and take the simple application and import it to the instance we just created. Simple application. So many things to click. Public. Create. This is a simple application. Actually, NICS can help us reduce its size even more. So first we had a Sinatra application. That way that... Sinatra image weighted around 17 megabytes. So thanks to NICS contribution, we reduced it to 15 megabytes. But it still takes 15 megabytes to deploy Ruby application. So as you can see, it's just a simple health world. We'll work with that. Let's see what we can do. Okay, so first we need to set up a Kubernetes integration that will be used to provide all the things on Kubernetes. So I go to the service Kubernetes. My case is active. I need an application where all the... Remember the dashboard JSON created. So I take the URL from there. Here. There's the secrets. I need an application token and a certificate for the SSL validation, which is required because we are using the token. Set the changes. Now I'll maybe test the settings and everything's work okay. It works okay. So yeah, we're good to go. So I set up the Kubernetes integration. Now I have to set up how to deploy. I can use one of the templates that was prepared before. So Kubernetes template. What I need to change here is only one thing. It's a domain name. So we set it up so I can reuse that makes it dense. This is the script that actually does the deployment. I think Kamil could go into more details about it. Okay. This is the deployment that's needed. All the things that are required to set it up. So this will prepare a CI configuration that I will be emerging already to master, which will start deploying the application already to the staging environment. So let's go to the pipelines. As you can see the application here is building. Once it's built, it will start deploying to the staging environment. So while that's happening, I want to also configure mother-most integration, which is quite a nice thing to have. So let's go to the mother-most. I need to create a team. Let's create a team. Since the mother-most integrated into the kitlab, I can log in with kitlab.hogan. Let's create a team. The code and the same set. I hope that's not the only thing we'll see today. Okay. Let's skip the tutorial. Okay. We have one half of mother-most integration done. So the other thing is... Probably you have to go back. Ah, yeah. Thanks. Yeah, right. Let's skip one step. Thank you, Kamu. Okay, so what I need to do is finish the mother-most integration because I only set it up at the team now, so now I'll finish this part. Simple half. Okay. So I've changed this outside, so now I'm exiting by canceling. So some simple application is already integrated. I can issue comments from here. But I need the first authorize my kitlab.hogan for mother-most. Let's do that. Authorize. Okay. I'm sure we can do go. Let's see. Yeah. Okay. That's very good. So now I have my mother-most integration. I can create new issue. Let's create an issue, an application. That's very unique name. And I have created an issue, a native application. So you can see here. I can go into the issues. Go into the board. The defaults. So as you can see, I have an issue board. I can move issue to do, to do, to win. I can move it to download as I finish it a bit. Okay. I guess the deployment has finished. So I can show you. It usually just takes a couple minutes at most. So if it's finished, finish deploying. And I can go to the stage. Okay. So once I have the application deployed, I can do a couple of things. Like launch it, and visit it, and see how it works. It works. It shows how the world. Success. I can also launch a terminal. And this is where we'll connect it to the application instance. So I can see all the files that are there. I can check the process list. Everything is available. That's my place. Okay. Back to the project. Okay. So now I have an issue. Let's try to resolve it somehow. I'll create a modification. So since we're in Mexico, let's rename it to Allah. I'll create a branch name that automatically be connected to the application number one. Okay. And now I have a set of controls. Okay. So now I submitted the merge request. What's now happening is that we will be launching a review version of our application. So this is a special version that takes the code from the branch. Launches a special instance that's only bound to this branch. It will live as long as the branch lives in the merge request. Sure. Okay. It seems like it deployed over here and see the same things like show the web page. Well, obviously it can seem like it did better. Well. Okay. So I have a version of the application. I can verify it. That's cool. There's also information about the deployment should be visible in the merge request. I just created it. As you can see, you can click here and get the same result. So I can go to Kubernetes cluster. First and show you the instance that was just created. The deployment is pretty fast. So I can show you how it's deployed. How it's deployed. I can show you where you have to consider. You can see all the deployments of this application we've created right now. We have only two instances. You can modify it if you want here. That's not going to go into that. And you can see all the resources users that are available from the Kubernetes cluster. You can. So. Okay. This is my application. Once I access it, I can configure everything in the public GitHub. So those are the words that you can connect Kubernetes to the GitHub.com. Okay. So since I've verified everything works, let's merge the, accept the merge request. Merge this in progress. So once everything is merged, the application will be updated. New staging version will be deployed. You can see it here. It's running. It's just, you can see it here. Staging version. It's a whole world, but it's just an update to... Merge to my star. Okay. Yeah. The production. So how can I do that? Let's go to where I'm most. Do you like startups? Okay. Let's deploy it. I am trapped. Deploy. Staging. To. Show you. It's called right? Yeah. Yeah. Yeah. It's almost show you it's not state. The simplest thing is also difficult for your presenter. Let's try it once more. Simple. It's starting to deploy into production. So we get a new pipeline job executing here. You can go to the production and see what's there. Nothing. No wonder why. It's still deploying. You have to wait a little bit. Oh no. And it's... The magic messing with us. Let's go over here. To the environments. And see. Let's make a production. Connection is not right. Yeah. Now our issue is deploy into production. Let's check how long it took to get there. You can go to the cycle analytics. And see it took seven minutes to get from the coming to production. And two minutes to stage it. So that's critical. You can go to the production and see each particular issue to the six of us. So yeah, that's all. Quite significant group working on that. We had Jason, Paweł, DJ, like the asset working members that actually did manage to finish that. But we had a number of people that got involved. We had a class with them. We had a branch that helped us with the existing volumes and run and configuration. We had Digger, who was working on run and configuration. We had those who worked on initial deployments and ingress configuration. And we have Tom that just helped us with... Spice it with us. I will say a few words about what we have done. You saw that we actually prepared a full working installation of Github, the official Github Docker image running on Kubernetes. We saw a number of challenges that were connected with that. We integrated container registry, something that was not really part of the original idea to production demo. We integrated matter most in the way that we shipped it with 8.15. This is basically the complete direction that we plan to deliver in the last year, the complete cycle of idea to production in a very automated way. And all of that is with ResM Clip, so actually you automatically have your application configured with SSR certificates. It's very easy to use and it's just a problem to be working. I would also like to say that we have three new Kubernetes experts because of that. We have Jason, Stan Lap, thank you so much for being the official of our Kubernetes experts. And it's your good luck.com, so... But this is not what we met here for, right? You probably saw this video. Are we just... Is it working? So while we're starting out the audio, I want to say how happy I am to see this. Although I'm slightly nervous. This is what we wanted to get done. This is where we're going. This is where we're going in the first order. And by finishing this up now, two days ahead of schedule, basically, we can iterate on this, make this better, make this even more slate, train our salespeople to give this demo, work on the features to improve this even further. So we're now unblocked, and all the people in the community that said, that's an awesome demo, but I can replicate it. We can now go back to them and say, hey, we have a way to replicate it. This is how you can do it. So I'm very excited. We're stopping the music. We managed to do it, and thank everyone who has been involved. The team that worked tirelessly during between the times of our activities, it was really hard actually to get it done. So thank you very much, and see you next year.