 Hello internet. Can you see me okay? I hope. I imagine everyone is. I can't see you all raising your hands. So we're just going to have to assume that you can for now. So you're looking at a screen that says HelloCubeCon on it in giant ASCII letters, which is in fact exactly what we are going to build today. We're going to be doing it on Raspberry Pis though, using a Kubernetes cluster and a open source framework called OpenFAS to deploy serverless functions. So it's effectively, I believe, one of the more complicated ways on Earth to generate ASCII art. I'm pretty excited about it. So we have about half an hour, I understand. I'm going to jump right in here, but you have a Q&A function here and you can go ahead and ask me questions and I'll try my best to answer you as we go along here. But let's start off by showing you this here. These are the Raspberry Pis that we're working with. This is a Raspberry Pi 4. See if a camera fixes it up there. Yeah. This is the 4B, the newest one. It's got a big heat sink on it, so it's a little bit hard to see right now. But along the side you can see you've got GPIO ports. I'm powering this heat sink on the top with the two fans on it. You've got an Ethernet port here and USB. On the side you've got a couple of the USB micro ports. One of them doubles as a, well, either of them doubles as a micro HDMI port, any of the USB-C port. And you put in the SD card over here. That's what you need for an entire computer. And with four of them you make an entire cluster. So we are going to be burning our Raspberry Pi images here to these SD cards. I've actually already burnt the images, but they're just fresh, raspious images on the cards. And then we're going to go and SSH into each of the Pis as we boot them up and install Kubernetes from scratch using, well, actually K3S, a lightweight version of Kubernetes that runs well on Raspberry Pi's. And then we're going to deploy OpenFast to that new cluster that we've built. We're going to create a function and finally we're going to monitor the whole thing with New Relic. Or that is the ideal case. So we'll see how that all goes for us, but we'd better get started if we're going to make it. So let's get back over here to my terminal. And I will throw these cards in here. I'm just going to put one of these in here. So raspious has a partition called boot that will mount on any operating system you're using. And you can manipulate files on this boot partition to do interesting things with the Raspberry Pi. And one of those things you can do is to enable SSH. So that's our first step here. So this is our boot directory here. And a lot of the times when you need to repair a Raspberry Pi, you're going to be doing a repair on some file in here to modify it. And that's why it's important that it boot on anything. We have a question. Docker images on the SD card. Yes, we are going to be deploying containers to the Kubernetes cluster, not necessarily Docker containers. So we are going to touch on this file, on this boot volume in SSH file. This empty file then will tell the Raspberry Pi when it boots up to enable SSH by default. And that's really all you need to do once you've installed the operating system is turn on SSH. So when it boots up, because we're doing this in a headless environment, if we had a monitor hooked up, it would be easy to do it that way. But we aren't going to hook up a monitor in this case. So I'm going to go ahead and plug the rest of these in here. And we'll see them appear as different versions of boot. They should all mount that boot drive. Got four cards. Let's see here. So I can actually touch the same on volumes boot. One SSH and two and three. Assuming they are all live now. All right. Looks like that worked. So now I'm going to go and use Disk Utility to eject the drives starting with disk four. Disk four has been ejected and we are doing then disk five, disk six. And for some reason it usually skips eight. So I bet that this last one is actually going to be, or it usually skips seven and goes to eight. Now let's try seven. It was seven. All right. Look at that. So now we've got all four of our cards ejected. And when I put them into these pies here, the pies will boot up with SSH access. We'll be able to SSH in on the first boot of a Raspberry Pi. They actually will join the local network with a host name raspberry pi.local. So you want to boot them all one at a time. As you're booting them up, you'll be able to get in there and make some small modifications. I'll walk you through the first one and then I'll just kind of fly through them without much explanation on the others. But there's a lot to get changed on these pies. We want to change the password, first of all. When you're playing around with Kubernetes, it's actually quite easy to accidentally expose your cluster to the internet. And you want to make sure that you have a secure password. In addition to that, though, we're going to take the extra measure of turning off password logins for our Raspberry Pis so that we won't be able to do that. So I've got internet here and I'll power this one up. And very shortly, you should see that one come online as raspberrypi.local. And got back over here to the desk. So you can kind of see what I'm doing here. I'm just plugging in all the pies. This is just the internet cables here. I'm not going to power them up until I'm ready to go and add them. Because again, I don't want the Raspberry Pi local hostname to get used multiple times. The second time, one logs on the network and tries to get the same hostname as the first. We're going to have a problem, of course. So there we go. This first one, you can see on the side here, has a little green blinking light. That indicates that it's writing to the SD card. So the first time a Raspberry Pi boots, it will be expanding its partition. It's expanding the partition to the full size of the SD card. So we've installed the Raspbian operating system, Raspius. It's now called Raspius and it is normally much smaller. It doesn't know how large your SD card is. So these are quite large. These are 128 gig cards, which I actually would not recommend that you use. You do want to use nicer cards. So you have the speed, but they do get destroyed actually. And I have a request for, oh yeah, of course. The request was to turn off my dang music, and that's totally fair. Thank you for mentioning that. The point was that the music is distracting for people who are non native English speakers to keep up with. So as I was saying, this is expanding now to the full size. And as you can see, it's now just a red light. So this means that it is basically done. And I can go back over here to my terminal. And I will SSH to pi at raspberrypi.local. And I'm actually going to use some command line arguments to make sure that I don't save the host key to my host file. These dash o arguments here, you can effectively ignore these. These just prevent me from remembering that I'm connecting to raspberry pi and memorizing the key. So that I don't get errors when I do it again and again to different Raspberry Pi's. So one of the first steps, actually, I want to go ahead and copy over my SSH key. So I'm going to go SSH copy ID dash o strict host key checking. No, use your own host file DevNol. And then I'm just connecting here. So if this was your own Raspberry Pi at home, you would leave out those middle arguments. It's not really necessary. And you can always clear your known host file if you need to to get that accomplished. And now we should very shortly be able to connect to this Raspberry Pi dot local on this one. Hypothetically, let's see. I'm popping over to another terminal to just confirm that our Raspberry Pi up. I see the problem there. Okay, we type out the command. Is there anything that you're showing to do that requires the pi for will the pi three work? Yes, the pi three, I understand does work. But I would not recommend it. I think that the the pi three turns it into like a yes, you can do it. Everything is slow and not very useful. But yeah, I mean, you can definitely do it. There's no reason that you couldn't do that. So now I'm going to SSH over to this machine. And again, I want to change this to Raspberry Pi local. All right, I'm in. So first thing that we want to do in here is to edit our SSH config and we're going to do this so that we can turn off password logins. So since we've copied over our SSH key now, one of the best steps you can take to secure any box is just to turn off password authentication. So now only the people who have that SSH key me will be able to get into the box at all. So I've saved that now. And now I'm going to make one more change to a file on this machine. I'm going to go and change the boot command line dot txt file. Now it's important that you don't change this file before you boot for the first time because on initial boot this actually contains an instruction to do that resizing of the SD card that I was talking about and of the volume. And if you inadvertently override it, you will effectively break your Pi. You don't break it like it's destroyed forever, but you'll have to reimage the card and start from scratch, which is something you should get used to actually in Raspberry Pi land. You'll have to be doing this kind of stuff very many times over. All right, so what I'm doing now is I'm pasting in the kernel options to enable C groups. C group enable CPU set allows Kubernetes to control the percentage of CPU that is available. It allows it to control and allocate CPU. And then we have a secretive memory equals one and C group enable memory. And this is what you need to type. They are very poorly documented, but you'll find these examples on other tutorials around setting up Kubernetes clusters on Raspberry Pi's make very certain that you don't insert a new line here or your file won't work. It should just all end on the same line with a space in between. And the link on the page there if any of you are frantically taking notes right now that is unnecessary the link on the page there will take you to a tutorial that walks you through all of this. So when you get in here now there is a command line. There's a CLI tool for configuring the Raspberry Pi and it'll walk you through some of the other steps like changing a password. So we're going to go ahead and change the password here to something very secure. And that's again only necessary now in the off chance that we screw up our SSH access again and someone could get into the machine. When you're setting this up I mean it's likely you're going to make this available to the public internet at some point just be very cautious. So we're going to change our host name here I'm going to name this first one Pi Queen. And Pi Queen is going to be our primary node the server for our cluster that we then joined the other nodes to. So we have Pi Queen set up as our host name and we are turning this finally over to the memory split. This is the last feature we need to change in here so the GPU by default is allowed to use 64 megs of memory. We only wanted to have 16 because we're not going to be using a GUI so that will give us more memory for Kubernetes to have access to. So we just turn that down to 16 we hit OK. And then when we finish up here we're going to be ready to reboot finally and I'm just going through my checklist in my head to make sure we did all the things. We changed the command line TXT to enable the kernel options we changed the host name we changed the password. We changed the memory limit for the GPU and we turned off password authentication. So I think that is everything and now I can go ahead and just start rebooting this one. And now these next few I'm going to go through kind of rapid fire and I'm just going to boot this one up and I'll be ready to boot the other two as soon as I can get into that one. Well I talk a little bit more about what we're achieving here. So the project that we are using is called open fast. It's an open source functions as a service open fast stands for open functions as a service. Oh, here we have a question from John that says it's a more of a comment in fact that the Kubernetes on Raspberry Pi has worked since Raspberry Pi two. But it is much much better on the Raspberry Pi four. Thank you John. Yes. So the the open fast allows you to deploy functions quite easily. You can write your own of course and it comes with a short library of functions that we're going to use some of to start generating some traffic for our application. And one of those is called figlet. That's the one that generated that ASCII art that I showed you at the beginning. So let me see if I can get into my next Raspberry Pi here while the other one is rebooting. We are trying and we are back in and the fact that it's asking me for a password reminds me that I actually first want to copy copy up my creds. All right. There we go. So I'm copying over my SSH key and now I am SSH into the thing. And now I am editing this file. Maybe. And now I am going to edit this other file about this time I want to start booting the next one so it's ready when we get to it. And here we are turning off password authentication. All right. Changing our password changing our host name now this one I'm going to call drone zero we're zero indexing our three drones here. And this one I need to turn off the memory split as well. All right. And now we're done and this one is rebooting. And hopefully our next one will be online very shortly and we'll be ready to copy over ID. So I'm again watching here on the desk for this green light to turn off that would indicate that it's done writing the card when it's real solid like this. It's probably in the process of expanding the partition and then when it starts to blink a bit it's maybe booting again. So SSH actually turns on before the green light will stop blinking but when you're just looking at a solid red light you know that it's ready to go. Let's try it now. There we go. Look at that. And we're in. And we go again. Second verse. Same as the first. Editing this to turn off our password authentication. And this one here, the command line options which are actually kernel options here. There are a lot of cool tricks you can do with this though this file if you ever forget your password or you lock yourself out of your pie somehow. That's your rescue right there is to get into that command line text file you can actually set in its scripts in there to run automatically before anything else on the system so you can modify things move files around whatever you need to get things working again. So here's our drone one. And we are almost there. We have our memory split. There we go. And we are rebooting and I should have already started this third one. That's okay. There are no mistakes just happy the laxatives right. All right, here we go. I'm back over to the terminal now. And we are right now waiting for our last pie to boot up. And in the meantime, we can install a couple of things here locally. So one of the things that we want to install is called arcade, and you can get arcade from their website. There's an instruction here in the tutorial, but it's just a one script install kind of thing. And if you look in the directory here, it's this this arch SH file that installs arcade and they have good instructions to walk you through and set up arcade in the first place and you'll end up then with this arcade command that allows you to get various things to tools to work with your Kubernetes cluster so you can use arcade to get cube CTL and you can use arcade to get. This is short for arcade to get K3S K3S up ketchup, this ketchup tool installs K3S K case K threes onto our cluster. So now that we have our drone, our first drone online we can actually get the IP address like this, we know it's running on on 192 16814. So this is going to go ahead and use ketchup to install to that IP address on our user pie. So this is going to go ahead and install here. After I enter the passphrase for my SSH King, it's going to install the code to run the server. And after this step is complete, we will have a Kubernetes cluster, albeit with just a single note, which is our pie queen dot local. The server we then use for the join commands, which you got a little preview of there just a moment ago. And it looks like my last pie is online. So as soon as I get my console back here, after we start up key threes, then we'll be good to go. I'm going to SSH into that last one and set it up here. All right, so here we are copying this over and there's our password. And we are going to go again like this. And now I am in the machine and running our last couple of bits of code. I guess our last making our last edits is more and then finally we go into this raspberry config tool. We change our password. Oops, let's try that again. I typo it. There we go. And our network options going to change the host name. This last one is drone to pie drone to I wonder if I've made that mistake already. Maybe ask a question if you noticed me name one of these drone to find out pretty quick. I guess we'll have to go and find them all. It's not too big deal. So there we go. And I am rebooting the last pie. So in the meantime, I can start joining the other ones to the cluster that we've already created here. So we have, if we say, looking here in this cube config, we will be able to see our client certificate something, something here. And our IP address, there we go. That's the IP address that we have available. So we can say cube, cuddle, get node, and we should see pie queen online. Look at that. So now when we want to set up K threes on the next one, we're going to join this time. We want to join the IP for our next node. Let's grab that real quick. We're going to ping pie drone. Zero dot local to get the IP address. Or we're going to realize now that we maybe called it drone zero. Yep. Okay. So we've got drone zero. We certainly have pie drone to let's go with ketchup. Join and our IP address here is five joining to four, which is the original one. So our server IP in that case is going to be pie queen. So now we're telling it to join this one here to join the original server into a cluster. For some reason or another on the join command specifically, you have to type the passphrase for your key twice. I suspect there's a bug in the script when you do the join. But to whoever is feeling particularly motivated, please come along and fix that for us. All right. And now we are going to ping. Maybe it was pie drone one that I got correct. I called that one drone two, didn't I? Yep. All right. And then finally we're going to have our pie drone to which I did fix my mistake on, which then becomes the anomaly. So we have six and eight that we're going to join. We're going to join six here into our cluster. Again, we've got to authenticate twice. I should probably just hit enter the first time if I know it's already busted. And it was the other one that was six and eight. We decided with the last two notes. Okay. Now we're going to go one more time. You're joining eight. Oops. That's why you don't just hit enter, I guess. All right. Let's try this error. And again, there we go. And now we're deploying the last of our notes. So we'll be able to get all of the nodes here and they won't all be ready yet, but they'll be close enough for government work. And we want to then get node nodes. There we go. We got two of them on. So I actually want to go ahead and, um, and label these label nodes pie drone. Let's call. Okay. So drone zero. We're going to turn drone zero into a worker with this magic label here. We label that first node drone zero into a worker and we're going to label drone one the same way. And then we're going to label pie drone to our artisanal hand grafted last one as a worker there. And now when I go cube cuddle to get all of my nodes, I can even go wide with my answers here. I have all of them up. None of them have external IPs yet. But look at that. They're all ready to go. Okay. So now we're going to go ahead and install open fast. So I'm going to say catch up install open fast. And that will install open fast to our cluster here. I think I actually want to get a different command. Yeah. So I want to do, um, arc install open fast. So the first thing that you want to install is actually this fast CLI. So that will set you up to work with your cluster. And now you can open, you can arc install open fast. And it's using this cube config that it found locally here in this directory. I did, uh, the instructions will walk you through this. But when you install it, when you install, uh, open fast the first time, you'll have a, um, a variable you need to export. So this is the command that I want to run to get my password. I'm just going to save the password for my, um, gateway for my open fast gateway into this environment variable password using this. So that went and grabbed the secret off of open fast running in the cluster and it saved it after decoding it from base 64 over here. And then I can log in using this command right here. This, these instructions up at the top to deploy the gateway. We actually need that for this portion because we're not going to have our, um, let's see here, what did we do wrong there? We can't go into eight to find our credentials or to get things set up here yet. Let's see here. What step are we missing? So after installing open fast, you need to, let me just walk through this tutorial that I've included a link to on the bottom. Um, you install it, you would install a catch up. Yes, we've got cube cuddle and we have already seen all of our nodes online and joined them. And then we installed open fast. Yep. And we got our password. We exporting the URL, I think is maybe the step that we got wrong here. So let me go back over here and check. There is an open fast URL that is set. And I bet that I set it on one of my test runs. So what we're going to do actually say export open fast URL equal to we're just going to use pi queen so that we don't have this problem again. And we can say pi queen 31112. Like that. Let's try that again. Okay, let's see if we can log in this time. All right. No such host. We don't like that either, huh? Okay. Well, let's try again, but with feeling think our IP address was four. And this would be our last attempt before we surrender. And I fall back to my SD cards that are already pre baked, because I do want to show you this all working and install it to. All right, let's just see what we've got. We've got going on here. So the listing of the deployments is actually the part that is most relevant to us right now. So I can go here and get all of the deployments for our name space. This is all of the stuff that was deployed for open fast. And it looks like our gateway is down, which explains it. And we don't know why that is down, but we could try kicking it and restarting it, or we could do that thing where we surrender. So I'm actually going to pull the plug on all these pies. I have here on my desk for cards waiting to go. This actually has happened once before. But fortunately, we got very nearly to the end here. And the finished one you're seeing here is actually exactly the same as what you were just looking at, except that the open fast has already been installed successfully. And we have deployed a function. And then you'll get to see the bit where we set up New Relic. Yes, you can go there to the KubeCon webinar link and find out what it is that we're looking at. And that link will go and walk through this tutorial with you and take you step by step. It gives you links to the relevant projects to help me identify any steps that I may have left out there. There are quite a lot of pieces moving around here in this mess. One thing I do know is that we're probably going to have to go ahead and change that URL back. All right. So actually, I'm going to go with the original export because I'm pretty sure this will work. This should work just fine. If I export our open fast thing here. And at some point I will be able to ping piequeen.local. And in the meantime, we'll just kind of do this live Q&A as we wait for this other piece to pick up here. If anyone has questions, now would be an excellent time. I feel like you've all been asking some good questions along the way though. So maybe you don't. All right. There we go. Now we've got piequeen online. And if I get our deployments for open fast now, it does not like that. Because our cube config, I'm just going to hack the cube config in place. Because our queen now is actually on port eight. Yeah. Let's try that now. Oh, dear. Doesn't like that at all. Okay. Well, let's try and set up our cluster again. We're going to go with ketchup and installing to the IP. But this time we're going to reinstall to eight. See if we can get there. If not, I can still walk you through the process that you would be using here. So the gist of it is that open fast comes with you have a tutorial on installing Kubernetes on a boon to with raspberry pies. I do not, but I don't imagine the process would be so terribly different. The, the piece that we're doing here, most of the pieces that we've done, I think are just generally applicable with the exception of maybe the way that it went to would handle the boot partition. I'm not sure if that's a raspios feature or a raspberry pie feature. But let's try and get our nodes again and see how far we got here. Whoops. Cuttle get node. Anyone? Anyone? Hey, look at that. We've got some friends. All right. These ones were named correctly. Look at that. So now we can do that thing where we get our, we check our deployments. Let's just get all the deployments. It's like our gateway is busted on this one too. It doesn't like this gateway thing. All right. Well, let me see if I can curl that function here on eight. Yeah, it's not going to allow that because the gateway is broken. And I maybe can restart the deployments. Let's see. Deployments, deployments, deployments roll out restart deployment of gateway. Let's try and restart the gateway deployment. But I imagine that that's what it's doing. It's flapping right now. So it should just be trying to do that over and over again. That's sort of the point. And we can switch to your terminal. Oh, I do want to switch to my terminal. Thank you. You all can't watch what's happening right now. I mean, probably for the best. What's happening is our gateway is down. And we are not able to use our little function, which is the whole fun part, but that's okay. What are we going to try and do here? We wanted to do logs. Logs gateway. There's our gateway. We don't need this, do we? Can we just logs gateway in the open fast? I don't think that works. Pods, we need the actual pods. Let's get the pods in open fast. See what we got here. That one has seven restarts, but one of the two of them is working. Oh, maybe, maybe not. Maybe that one's just coming on and off again. Crash loop back off. See, there's our problem right here. All right. And let's see. We still got a little bit of time. We made pretty good time here. So let's look at our logs. Employment gateway. We already restarted that. What are we trying to do here? We're looking at logs, logs, this one. And instead of this, we want this. See what we got. So it looks like our health check is just failing. Our gateway health check is just failing. All right. Well, if we do this thing, then it will give us those post-install instructions again. We can try re-rolling out the gateway using that. I just want to get the actual command here. So we can go to deploy our gateway. We already have the fast CLI installed. So I'm going to just roll out, get the status of the rollout here, actually. One old replica is our pending termination. Yeah, see, that's the one that is in real grumpy at us. Well, we don't actually need to do this. We just need to do it so that we can see it. But we can see our data coming in. We can go ahead and edit the file. Let's just go ahead and edit it here. So we can go to our Prometheus install here. And we can actually just edit our config map. So there's a config map set up here for that Prometheus. That is going to be pulling from this configuration here. And this is the piece that you want to change to get new relic running on your cluster, which maybe would help us debug this, actually. So we have our Prometheus YAML section in this file, and this is the bit that we want to change. In order to generate that, we're going to go to the new relic page. There's a link to this in that tutorial. I'm going to pop over here to the browser, and you can see now that here in my new relic account, I can generate a remote write URL. So I just select my account here, and I'm going to add a label here. So we'll just call this kubecon webinar. Is my instrumentation source generating a URL. I have this remote write bit of code there with my bearer token. I will cycle after this webinar, and we are going to paste that in here. All right. Oops. Let's just get them all spaced in. I got a manually spaced because my other bits not, but you want it on the same indentation level as global. So under this Prometheus YAML section, you have a global section, then you have a remote write section. So you're telling Prometheus, as you collect all of these metrics, I actually want you to store them over here. And that will deliver your metrics from Prometheus through the normal scraping process that Prometheus uses up to the telemetry data platform. So now we've got that set up here with this remote write endpoint and kubecon webinar. And when we exit out of here, that edited the config, and we will, for good measure, just restart that deployment. Restart Prometheus. I actually think that Prometheus live reloads this configuration in OpenFast, but I think it's actually a configuration option that someone has to turn on. It may be just part of how Prometheus works inside of this, but just to be sure, we're going to go ahead and restart it. So we can get all of our deployments there. We can see that our gateway is still grumpy at us. But if we go back over to our browser, we should see now that we can check for data here. And New Relic is listening for our data, and look at that. We've already received 223 metrics. So we can go ahead and explore our data here. And you get all of these metrics for free, just with that one little change to your YAML file. So you have your Go GC and all of your metrics around the actual processes that are running. And then you can track your Prometheus information here as well. You'll have queries here for OpenFast if the OpenFast gateway was up. So the OpenFast gateway being down means that Prometheus can't scrape it either. But when it does, it's actually quite a lot of fun because I'm sure when you walk through this tutorial that particular step will go better for you. But when you get to the part where the gateway is up, then Prometheus will scrape the function allocations and all sorts of, are the function invocations and all sorts of metrics about the functions, about how long they take. And then we get to run Siege on those function endpoints and run 100,000 requests through them and watch the graphs show up over here. But in the meantime, you can look over here in your Go information, like how long your Go processes are taking. Look here, we have how many seconds of GC? We had two seconds of GC from our Go. These are less interesting, I think, than the function metrics, but the moral of the story is you install these two lines into your YAML file and then you can immediately begin reporting data up to New Relic. Anywhere you have Prometheus, Prometheus is just one of the integrations, of course, that New Relic uses. You can plug all of your data into one central place, into this telemetry data platform and build dashboards around it together with your logs and your alerts and all of the rest of your dashboards. It's a very convenient way to get information out of anything that is running Prometheus. And let's just see if we can guess one more time. The gateway is not starting up because, does anyone have any ideas? We're in this together now. We have another 17 minutes on this webinar. Any more questions? Let's brainstorm here. Someone here, I think, knows the answer to this question. I am going to cube cuddle and restart again. This isn't actually doing anything, is it? Maybe I will try turning it off and on again? Do you think I should try turning it off and on again? I think we already tried that effectively. We can't get into our gateway. I can show you other things. I can show you the FastCLI store. This is all of the stuff you can get from the FastCLI store. These are the built-in functions. This is the one we were going to use, this figlet one. You can also get the node information to get the node info for the individual nodes. Can you do a describe on the gateway? All right, Papa, I'm following along. You just keep asking questions with what command to run next. I'm doing a describe on the gateway. I'm going to say cube cuddle, describe our pod, our deployment. Cube cuddle describe deployment.apps and then I put gateway in here like this. Is that how I do it? Someone give me a hand. Hey, I did something. I think that's what I wanted to do. Let's see. Here is our gateway. All right. Using up some memory. What am I looking for here? I have two unavailable replicas. One desired, one updated. Anything in here? Three failures, lots of failures. If I log them, they just say they're failing their health checks. There has to be a way to be getting more information out of those logs though. And we don't know what it is. They are not available. They are progressing. Well, when in doubt, we Google things. Let's go back over here and ditch our page and we'll just search for it. How about we're going to say open fast, gateway, what am I saying? Health's failure. Health's failure. How about that? Troubleshooting. A common user error is to try to invoke the gateway from within a function using this thing on local host. Yeah, we're not doing that. Error with our fast provider. No. Don't suppose that's true. This is all for troubleshooting our open fast deployment. Do you have to do a port forward to this one? Ah, yes. Okay, so there is that piece, that port forward piece though, I think is if we want to use the GUI to get into this piece. But let's find out. There's that, let's say, what I'm looking for here. I have in my inbox here a tutorial from Alex Ellis himself, the creator of this thing. So let's go and find Alex's instructions. Alex will be our guide together here. I'm hoping you all can see this one clearly. Oops, looks like I tapped away. There you go. So this is a tutorial that's just for connecting a single pie here. He walks you through some of the tooling. And when we get around to the open fast installation here, let's check that out. That's for the dashboard. We did not set up the dashboard. We installed open fast. All right. Got this. Our open fast URL is set up. I wonder if that's incorrect. Maybe. Well, see, no, we're not even getting that far, right? Because we can't connect to the gateway. That's the problem. We could go into... Yeah, if the gateway is down, we won't be able to load it on pyqueen.local either. I mean, we could try. Let's see. Let's see what that does. Three, one, one, one, two. Dusty. Yeah. We don't have a gateway to go to. We are off the beaten track here. Which is fine. This actually did happen to me one other time just spinning up these nodes. Let's check one more time. We don't have our gateway online here. So, you know what? It doesn't say that... Oh, no. Okay. I thought maybe it had said that it worked once, but it didn't. Yeah. They're both unavailable. And I don't think that I can install just that piece. If I say get the tool, install Kubernetes apps from Helm charts, right? So, let's try one more time. We're going to arc install open fast. Maybe it actually has like a component thing. You can break it down. Okay. When you open fast, you can install the replicas of the gateway. Oh, we could try more gateways. Why not? Let's just crank up the gateways to 11 here. Do I need to use... No. It is for the flag. All right. How many gateways? I want five gateways. Give me all the gateways. There we go. One of these is bound to work. What do you think? I think we have five times the odds. Let's see what our status is here. That would be a trip if one of these worked. I would expect that if one of them doesn't work, wait, four out of five new replicas have been updated. So, four out of five of them actually work, and there's the first one didn't. I mean, okay. Is that actually what we're seeing there? Did it look like it worked? Hey, we got three out of five gateways online. So, that's pretty good. But we're out of time. So, it worked. We have a gateway. We reported some data to the New Relic. I hope you enjoyed it. Have a wonderful day. All right. Thank you so much, joining for your time today, and thank you to all the participants who joined us. As a reminder, this recording will be on the Linux foundation YouTube page later today. We hope you're able to join us for future webinars. Have a wonderful day.