We'll fix this on the fly down. Hello, everyone. Welcome back to another OpenShift Commons briefing. And today we have another in our GitHub series. So today we'll be talking about GitHub workflows and we're here with Ryan Cook. Ryan is out of our Emergent Technologies team in the Office of CTO at Red Hat. And myself, I'm Karina Angel. I'm one of the OpenShift product managers. And so GitHub is very important to OpenShift. And we're really excited to have you here, Ryan. Would you like to give a brief introduction and dive right in? Yeah. So Ryan Cook, I've been with Red Hat for seven years now and done various automation along the way. I stumbled into GitHub Actions thanks to a project called Scribe, which you also saw on OpenShift Commons a few months ago. So I kind of wanted to tell that story just to hopefully get people excited about it and kind of get them started. So with that, Karina, if it's up to you, I'll go with you. I'm going to go ahead and kick off. Yes, please. Thank you. All right. So the topic we're going to talk about is running my actions introduction to GitHub workflows. So to start things off, like I said, I'm a principal emerging technology developer, gluer of things together. So as you see with the infinity gauntlet of sauce here, products come into Red Hat or they're kind of found by various groups. And what kind of my role is to try to figure out what enhancements need to be done to let them run an OpenShift? Or are they a good fit to be merged with Rackam as an offering to customers and just try to put all of those things together to make an experience that a customer would enjoy? We do work on a lot of things that are about six to eight months out. So, but this is just something that we discovered along the way that's been incredibly helpful in speeding us up in our development pipelines. So what actually are GitHub actions? The easiest, simplest way to kind of dumb it down is to make it presentable. The fact that you can provide GitHub a series of workflows, series of steps to do and kind of an end result. So I can have GitHub manipulate my code. I can have it build an image for me. I can have it push the image to a registry. I can have it build a binary, save the binary, give the binary to someone else. And then it's just like it's unimaginable what you can do. You can actually have dynamic runners that come up and build like a REL7 instance and then test against it. The possibilities are endless. And so just to bring it back a couple steps, here is one of our projects. Simple. There was a push on the main branch, which triggers a build and a deploy. If you break down like to the simplest steps, this is exactly what it's all about. And GitHub provides this. And what we're going to kind of show today is we're going to start with just an empty project. And we're going to add a go file to it. We're going to create a binary and we're actually going to test it. And then from there, we'll do some PRs against it. And then we're going to move into like an open shift space, or we're going to build an image, push it to Kway, and then deploy it on that open shift environment. So this is our kind of simple diagram, but you'll see it again later because that's what actually we're going to use for open shift. So why GitHub actions? I think the nice thing that GitHub has really done in regards to first starting off with the ability to anybody in the world have access to a repository to store code, share code, collaborate with others. They have definitely lowered the barrier entry in regards to testing of your application code, verifying that it works or deploying it to an environment and verifying it works in an environment. And they provide the infrastructure to do this in regards to the Git repository hosting itself, as well as some runners and kind of workflow action computers that they provide to you, free of no charge. So this is just such a beautiful thing because you think about these startup projects or these college projects or countries where computers and technology aren't as, there's not a ton of stuff laying around like we have today. And it gives them the ability to create these projects, build mature workflows that can get the engagement with others.  So what we're going to do is we're going to cover some key concepts. There's the concept of the runner. The runner is actually just the computer that is going to perform the series of steps that you define. And those series of steps are called actions. And the actions are just a set of workflows. It's kind of like do these steps and then do these steps and then do these steps. Following up with that, there are integrations. These integrations can be things that are found in the marketplace, such as a plugin called Mergeify, which if you get a plus one in your code, it will automatically merge your code into master. Or there's also things in the marketplace that we'll actually show later, provided by various companies such as Red Hat, a series of actions that you can just automatically press the button. It goes straight into your code and can provide a lot of functionality where you don't have to actually code all of these things. So the integration in marketplace will do a lot of the hard work for you. And then finally, the gate repository. I know that everyone is probably asking why is gate repository on the list. It's probably a key concept we already know. With the idea of actions and everything around actions, there are a lot of extra pieces that you don't really get to see or that you possibly haven't seen if you've just been using GitHub for repository-based things. And runners.  There's kind of two sets of runners that you can do. You can run these hosted within your environment. And GitHub actually provides a binary for you to run in your systems. If you're running OpenShift, there is actually, and I believe it's in the Red Hat marketplace within GitHub, there is actually a plugin to allow you to deploy this into your environment via help chart.  So using that compute that's on site that has access to your internal resources and meets your kind of security standards that your company has currently set up. It's kind of cool because it's your computers, your constraints, your security team, and GitHub is just saying like just execute it now whenever that trigger happens. And then lastly, there's greater control of reversioning. And I bring that up because a few weeks ago I was working on a Go project and I had an issue where I was using my runner too new of a version of software. And when I was trying to run it within my Kubernetes environment, the version of the software within the pod and the image was too new to use the version. So if you actually host your own runner, you could be very strict with the versioning that you use. So going over to the other side, the self hosted and this is the GitHub provided infrastructure. So by default today, if you were to click on actions and create a workflow, these are automatically provided to you. The interesting thing is that GitHub provides all the infrastructure for you. It will spin up the worker, the runner and do the stuffs and then just go away. There are a limited set of operating systems that are provided to you, which depending on what your project really needs to do could be kind of a strength or weakness. But going back to what I had mentioned earlier in the call is that if you're an open source project without a budget and all of these constraints, it's a great thing that GitHub sets up for you to allow your project to be and have a mature flow and put on that really professional face and have a mature system that you might be able to build a beautiful customer base because your software is tested and everybody knows how to use it. So lastly, the Git repository. As I said earlier, you're going to have your application code in there, which is a given. But when we start doing these workflows and these actions, files are created within the Git repository itself, which makes it kind of cool because any time that you modify your workflow, the modification to the workflow could be a PR and you could test that new workflow as a PR. So you can ensure that you kind of keep yourself safe, you know, the whole time. And it makes a really nice process and then allows you to get community contributions on your workflow actions. It's not a hidden thing. And I bring up and I want to go back to that hidden thing. Previously, back in my other positions at Red Hat, I'd use Jenkins back in the Jenkins I believe two days. And you know, the tough part about that is when you have an open source project and you have all of the code and CI taking place in a different place where a user or a customer can't really see what goes on. It makes it kind of difficult to understand the workflow of what actually it takes to kind of build the project. If there was anything special that had to kind of occur. And I guess the nice part about GitHub actions is that you can't really hide it. There's no like, well, you got to turn the wheel this way just slightly to get it to run. No, it's part of this workflow and people can immediately see it within your Git repository and know exactly what it takes to run and be able to kind of replicate it within their environment. And then the last item is secrets. Secrets are, you know, similar to what we kind of see with Kubernetes secrets. You can save specific verbs of text or so on within your Git repository. And this actually allows you to use those as environment variables or runtime variables for your GitHub actions, which is really nice so that way you don't have to worry about like obfuscating a password or doing that. It actually handles all of that for you, which is incredibly nice. So I covered a lot of stuff and I actually want to take the time now to explore repository. So hopefully we are seeing a repository right now. This is one for the GitOps Primer project and kind of just what I want to show is a few things here. So the nice thing, I will go back one step and say that this green check mark is the most stressful thing in the entire world. Once you have it and your project is passing happily and working as it should, you will do anything in the world to maintain that happy little check mark because it's almost like a seal of approval that, hey, my stuff is working. I promise you. And so that's one of the beautiful things of the little check mark. So let's take a look at like the last run that I have. This is kind of advanced run, but I just wanted to kind of show the fact that, you know, you can do multiple steps. You can kind of do parallel steps in GitHub Actions and then use those to just kind of do a full workflow of your application code and then when complete, push that to a repository. So that's just a high level of actions. We're going to go back to beginner actions in just a moment. So don't stress too hard as to kind of show where things are. And then going and looking at settings, I had talked about those secrets. And the project that we'll show today that we'll do later on has secrets as well. But as you see here, you define the secrets, key, registry, whatever, whatever you decide, and they provide a nice way to update it. You can just pop in a value here. And the nice thing is you can't really, you can't really see your current value. So it kind of makes it nice. You can't hack it that way, I guess, if somebody were to see that or try to get into that. So go back to the presentation. We've talked about a lot of stuff and you're probably thinking, okay, this is OpenShift Commons. What about OpenShift? Okay, D. There is a full marketplace of items and actions that GitHub and Red Hat have collaborated on together to provide you as a customer, as a GitHub user, a super simple way to just plug these items in. And so we could take a look at that now. So if I wanted to just push an item to a registry, I can just push this button here. And it gives me all of the kind of the documentation on how to use that. Some sample code. As you see here, we're going to push to Quay, fill an image. So it's really nice that Red Hat and GitHub have kind of collaborated together. And there is a roadmap that I'm sure that is accessible, possibly from the previous call that was had between GitHub and OpenShift, which I'll link to later. But they're constantly improving these. So you'll see even more advanced ones in the future. So back to the slides again. So let's get our demonstration. And we're going to start at just bare level.  We're going to store in our repository. And then we're going to create tests based off that. And then we're going to do a PR. We're going to do just kind of enhancements. Everything that you would kind of do in your simple project. Then we're going to bring it to OpenShift and use some of the amazing OpenShift things such as S2I. We're going to use S2I to build an image. We're going to push that to Quay. And then we're actually going to deploy that to an OpenShift environment. While we're going to test it and then deploy it to an OpenShift environment. And so with that, let's break out into the command line. So I, before we started this, I created a empty GitHub repository called stock. There's absolutely nothing in there now. So if we go to cb2 stock, have a readme file, and that's it. So we are starting at square one. I found this really cool stock application which will take and at runtime I can provide a stock ticker such as GME or IBM. And it will give me the value of that stock at the time. So it's kind of a cool thing. Like if you're just sitting in a computer and you're previously this year, this year, if you're following the GME stuff, you could get the quote instantly and be able to operate. So what I'm going to do now is I'm actually just going to get the required packages to run this. And we're going to do a go build. And let's just go ahead and run it real quick. So as you see here, it's like I said, it's a simple stock price app. It gives you the name of the company as well as the current price. So let's go ahead and add this to Git and then let's build some GitHub actions on top of it. Go ahead and commit it. We're going to click straight to main because we live dangerously. And so go ahead to our stock application here. Enter. Okay. So here you see our stock application and I accidentally uploaded the binary as well. So off to a great start, Ryan. All right. That won't affect anything, but let's go straight into actions and our workflow. So just by clicking the actions button, it will give you a series of potential options that you can actually apply straight to your project and it will automatically set up the workflow for you. So looking here, this workflow is made for your Go repository, which is exactly what we just created. So I can just one button and click this, verify that it looks good. Go build, go test, which are the exact items that I needed for my project. And then go ahead and do a commit. So what's going to happen is that our project is going to do an initial test run. And it's going to try to build our project and run the test. And as I said earlier, it is going to use that infrastructure that is provided by GitHub. So it's a really nice feature that, you know, GitHub provides for us. And so we're doing our build steps now, which went through clean, as well as our go test and our test passed in 0.8 seconds. And the nice thing is we get that green check mark that I was talking about earlier. So that means our build is clean and we are ready. So now it is time to kind of add some functionality to our program. We want to make it so that we can see the values that have been for like the last 52 weeks. If we go ahead and take a look at our stock application here, we want to add in just a couple lines right after the ask price. That's going to show us kind of our 52 week high inlows. We'll go ahead and put that in place. And I'm going to remove the binary, and then I'm going to just update it with our new code that we created and do two weeks. And so what's going to happen now is we're going to click this link here, and we're going to create our PR. And the awesome thing is just by that initial action that we kind of created, it is going to automatically test our PR for us. So when you think about this grant scheme of a really large team, if you can build this workflow and the setup to be fairly confident in the results of which you're going to get out of it, you can actually take this and your team is not pulled off to manually hand test these new features, these new functionalities. If the testing passes and all of your items pass, then you have a pretty good assurance that the things that you've done will actually kind of work in your environment and work for your application. So cleanup is done. It looks like we passed again in .9 seconds. We will be getting our green check mark here hopefully very soon. And all two checks have passed. So our build has passed as you see here. I'm going to go ahead and merge this and then to just kind of show complete confidence that things worked as expected back to the command line. So run it again and then we see you may be able to actually see the 52 week high and lows now. So we added that functionality. I didn't actually have to test it on my system. I just wrote the code third to get and let it handle the hard parts of building the binary, testing it. And so really cool thing about this as well is that if you think about the possibilities here. As an example, last week I was sitting in the middle of traffic in the passenger seat of a car in Chicago writing code against my application on my phone. And the nice part about that was is that I could just fire and forget and know that all of the testing was going to take place. I just have to worry about writing the code. And if it was successful, then I knew that any of my changes were good. And so let's go ahead and do one last one. And this one we're just going to kind of put a message into our app. So let's go ahead and modify our application again. And so we'll just put a simple message in here. It just says diamond hands if you try to look up the value of DMA. So we're going to go through the same process again. We're going to do our, the code test is going to take place. It's going to do our building and it's going to do our check. So we'll just kind of watch this go since it's pretty quick. And as you see, we had a build failure. What happened? So I did not put the ending bracket in. And so the nice part is I, since I did not commit this all the way to main or my main branch, I can actually take and save myself from breaking the build. So I will go ahead and modify this just within the GitHub UI, just kind of talking about how you can kind of modify this anywhere you are in the world. Now update it back at the change. And then our check is going to go through again. And we were successful for 8.8 seconds. And we got a green check mark. We will merge the pull request. And as you see, it was kind of cool because we got to do it on the command line, as well as kind of use the web UI to kind of do that, that test. So if we do it again, get our message as well as the ticker. So that was just a simple go application. And I want to kind of just do this scenario as that day one showing you how you can use like these GitHub actions that are pre-baked to automatically kind of do the things you want to do with a binary. So with that, we're going to actually now change gears and do some work with an image and source image. So a lot of this we're actually going to do in the UI. So let's make that happen now. So I went ahead and before we started, I forked Christian Hernandez uploader application. You all might know him from the GitOps shows. He is an amazing engineer. So I stole his code and we're going to actually apply some GitHub actions to it. And what this is going to do is we're going to take these GitHub actions and we're first going to build an image with it. And then with that image, we're then going to push it to Quay. And the cool thing about this is this is going to require us to provide some secrets. This is going to kind of be that next level up in regards to more advanced type scenario that's still kind of easy to approach. So we're going to go to actions and we're going to kind of freestyle this one. So we're going to set up a workflow ourselves and we're going to take and we're just going to start off with we're going to go a little simple and we're just going to do the S2I piece. We just want to make sure that we have all of our stuff in place. We want to make sure that the steps are correct. We have the builder image we want to do and we're not sending like builds that we're not ready for to Quay yet. So we'll go ahead and start this commit. And once we kick that commit off, we're going to take a look at the file and just kind of walk through what we're going to do. So on any pushes to the master branch or pull requests against the master branch, we're going to run this workflow. So any PRs that come in or any, you know, automatic marches to master are automatically going to get tested. There's one thing that we won't cover today since it's just like a little bit more technical, but you could set up a schedule as well to test your project every morning at 7.55. So that way at 8am, if it's broken, you can immediately start working on your application. The next thing you'll see here is this workflow dispatch, this blank line. The nice thing about this is that we'll show this off in a minute, but you can go to the actions and manually kick off this workflow. So let's go ahead and get into these jobs. So what we're going to do is, like I said earlier, we're going to do a build. We're going to run this on Ubuntu latest and we're going to check out our source code from our get repository. This action slash checkout at v2. This is automatically, I guess, known or built into GitHub. We're going to see a couple more of these as we go. Actually, on the next step, the next step, we're going to build an image and you're going to see this here. This uses redhead actions. That was that marketplace of redhead actions that I showed earlier. And these are pre-built items thanks to GitHub and redhead that came together create these kind of, I guess, many applications within GitHub actions that allow you to save a whole lot of time in regards to setting up your environment. And then with our source image stuff, as you see, we're going to provide our kind of image that we're going to create source image off of that we want to use the PHP application, the PHP base. And then any time that we create this image, we want to tag it as the image name of offloader and with the tags of the GitHub shop. The nice thing about this is that we can take that tag and image and we can either update a deployment with it and roll out the latest deployment with an open shift. We could just shove this into a deployment YAML, which our get off system could take over at that point. It gives us a lot of good starting points. And the nice thing is that it's a unique image name that allows us to be able to trigger and do events off of. So if we go into our GitHub actions, we see one's already ran, but we're going to run one anyway. This was that line that I was talking about that workflow dispatch. So we're going to go ahead and run the workflow from our branch. We'll wait for it to kick off. And again, we're using that infrastructure provided by GitHub. And so what we're going to do now is our image is building and hopefully be successful. So it's doing the source damage steps. As you see here, it's pulling the latest CentOS PHP page, PHP image, sorry. And then upon success, it is done. Because right now we're only building the image. So at this point, we need to add some more functionality to it. This would be a great thing to have if you had multiple open shift environments. You can do this stuff to push your image to Quay. And then when each of those remote environments or test environments or various environments or ready, they could just grab the image that would have it from Quay. So time to move on to the Quay steps. These are the steps that are actually going to require us to create some secrets. So we're going to go ahead and here. So as you see, pushed to Quay. What we're going to do is we're going to do a Docker login into Quay. We're going to tag that up later in the GitHub Shaw to be at quay.io, my Quay username, and up later with the GitHub Shaw. And then lastly, we're just going to push this image straight to Quay.  But we need to do the steps of defining our Quay password as well as our Quay username. So I will go ahead and go straight to master again. And let's go ahead and go into settings, secrets, and then new repository secret. And we're going to do a Quay username or cook. And then I'm going to log into Quay and I will most likely be pulling this away when I create the next secret just because I don't have that much free space in my Quay repository. I would love projects to be able to use it, but I have to use it for various things. So I don't want to completely share that. So let's start here. I will enter the value here, but I'm going to just pull this kind of across real quick. Back in action. Okay. So now you see that the Quay password and Quay username are defined. So going back to workflow actions, as you see, we failed and we failed because we did not have those secrets that we needed in place. So we'll go back to actions, our image build, and we're going to run the workflow. So we're building the image now. And then we are logged into Quay and we're pushing that to the repository now. And we got our happy green check mark. We have officially taken and done a source to image with Christian's code, taken that package it up in an image using GitHub actions, and then sent that to Quay to be able to be used by multiple OpenShift clusters. So at this point, let's do some OpenShift. So I have an OpenShift cluster already deployed. If I can remember the name of it. All right. And so this is the standard token display token page. We will come back to this in a second. I will probably pull this across as well just to keep the token separated, but I will show you what we're going to do with the token in a second. We're going to use the token as well as the server address, the server URL, and a name space to deploy that image. So let's go ahead and write that deploy code, and then we will do our secrets. So back in here, we're going to go to our GitHub workflows again and modify it via the web. So you remember that first slide that I kind of showed really early on where we saw the build step and then the deploy step? Right now we're actually going to do the deploy step. And so how we're going to kind of start it out with, we're going to piece it together similar like we did with the build and then the push. Right now, we're just going to build the image, push it to Quay, and then we're going to log into OpenShift. And as you see, the OpenShift login is yet one of those things that OpenShift and GitHub well, GitHub had collaborated on to create this application within GitHub actions that allows you to kind of, you know, beat up your way of actually being able to use this functionality. So as you see, I need to set secrets of OpenShift server, OpenShift token, and name space. I will pop this open here. Go down the secrets again. New repository secret, OpenShift name space is uploader. Then I'm going to pull this across real quick so that I can put in my actual secrets and server name. And the secret that I'm actually loading right now is the OpenShift token. This is just the one that when you request the OAuth values, it provides you the token and it's good for X number of hours or whatever your administrator provides at the time. And then lastly, I'll be doing my OpenShift server. And then this is the API address, the 6443 address. So those secrets have been added. And we're back at our code here. I went ahead and added those items in now. So let's start the commit. And we are hopefully going to see those same actions take place, our image build, and then this deploy step. So as you see, we don't want to source the image, push the quay. That part is list on completed there now. And as you see, the build job is complete. But when we go and look at our actions that are summary, we see that we have the second deploy step that we just built a moment ago. And as of right now, we are just using it to log into OpenShift. And as you see, we're successful into logging into OpenShift so that we know we're in a good place. Now let's just take and deploy this application. So anytime that there is a change to the source code, this will take over and automatically deploy to our environment. So I am using just kind of a quick way to do this. This would be something that you've maybe used in a test environment, an environment that doesn't use GitOps. But I'm actually just going to delete the deployment, delete the routes, delete the service, and then use OCNewApp to create a new deployment based off of the image that I created in the steps above. And then we're going to expose it. So I'm going to do this in a PR. And then we'll just call this push change three, four requests. And our checks are going to kind of take place. And so the nice part about this is it's kind of very similar to what we showed with the go example. We're going to do all of our steps. And then even our PRs are going to be tested for us, making it so that if you don't have a readily available OpenShift environment kind of environment that you can actually just test the code and kind of be on your way. So we're waiting for the checks to occur now, refreshing here. So our build is actually already complete and we are on our deploy step. So as you see here, it deployed straight to the environment. But as you can see, that could probably be a bad thing that if you automatically deployed any PR that you've kind of accepted to run through your actions straight to your environment. So we're going to go ahead and do a file change on this really quick using the UI. And one thing that I wanted to call out is that our deployed needs the build process to pass. If the build does not pass, we will never get to the deploy steps. And then the last part we're going to add in here is this, this if statement. And what this if statement is going to do is that even if it's a PR, it will not execute this step here unless the branch itself is master, unless there's a push to the master branch. And what this is going to do is it's going to kind of save us from pushing when we're not ready or deploying when we're not ready. Or for example, if you're doing a like testing of multiple images, you don't want to just send those to acquire possibility to take up space or to not be potentially used. So we could put this in and only upon our master branch merging, we can, we're automatically going to run it. And so this is going to be kind of the final step in the piece. We're going to just see that once our build completes, it's going to stop before doing the deploy. As you see, it says pushed. So we'll go back to our summary. And we have a green check mark. And it's going to put a line in a circle through the deploy, because it did not meet the criteria to deploy it. So that's just a nice little like stopper just to kind of keep you a little bit safe and make it so when we verify that this image is good and ready, then we merge it. And then our default action that we initially set up will take place just here in a moment. And as you see, we merged it. And this is actually going to do our step of pushing it to our open shift environment. So I'm going to actually take now go back to the slides and kind of wrap things up and leave some time for questions. So I have a couple links here. The first link is to a presentation done by Red Hat and GitHub. Both the Johns show a very in-depth open shift and GitHub action scenario much deeper than this, showing all of those integrations in the marketplace that we showed earlier. They were the brains behind creating that. The second link you'll see is a link to introduction to GitHub actions. This is just a nice starting point that if I missed anything or if there's anything you kind of have questions on, it provides that really detailed write up on how to kind of get this off the ground. And then finally, if you would like to kind of get a hold of me, if you have any questions that you can get the answer in chat or if you watch this at a later date, here's my Twitter handle as well as my email address. So with that, I will stop sharing and we'll open up the questions if anybody has any. Thank you, Ryan. Actually, could you put back your last slide just for a few so people have time to capture that really fast? Yes, for sure. Definitely. Okay, there we go. Thank you. That was a great demo. I think that will also share your demo. Actually, my ask to you is your actions link, does that contain the demo links that you had in there? No, I will actually add those in right now. I will go ahead and put those just on the next couple of lines here. Thank you. That's perfect. All right. So first question, after we do our workflow, is there a way to create a kind of template of it? I mean, many apps would probably have the same steps and changing it in one place would be cool instead of doing it in each of the rebos. That is something that I don't have an answer for, I will say. I actually can see how that would work really well. And the only, I guess, concern that I could potentially have or I could see with it along the way would be that first step that we saw in our actions where we pulled down our code repository because it kind of expects it to live kind of together in that same repository, the actions and the code. So I don't know if there's any templating. It would be amazing if not and maybe something that GitHub would like to implement if not. All right. We'll follow up on that one. That was a great question. Is there a way to rerun one step that failed or maybe start from it? So you can re-kick off the jobs. I do not think that you could do them this out of order. I can jump back. Let's go back to our demo here and let's see what we can do. If I'm in the second part of this, yeah, it looks like there's just a rerun all option. I can't seem, it doesn't seem like I can segment off and just do one job out of the collection. Thank you. And I guess a downfall would be if you were to rerun a job that's out of a grouping. Sometimes there's parameters or an image that has passed from one job to another. And so that might be missing, which could cause maybe some pain if you were attempting to do that. I just realized I was muted. Sorry, everyone. All right, Ryan. Since you're in the Emerging Technologies Office, what else have you been looking at? You look at things before we do. We take what you're doing and try to make the product better. So what can you share with us? So there's been a couple of projects that have been really kind of, in my opinion, game changers and they're actually already in motion to be hopefully brought into products productized soon. Describe project that I mentioned earlier. Describe project, what it does is it allows you to replicate data from, replicate persistent data that is from one OpenShift cluster to another or one OpenShift cluster to many. You will hopefully be seeing that integration within Rackham soon. And the nice thing about that is, is because then Rackham becomes your one source to take and distribute not only your application, but your application persistent data from one cluster in a failover scenario, or like one in many clusters to edges, edge clusters, or just even distribute your persistent data as almost like a deployment. And then the last item that I probably had was that first GitHub link that I showed for the GitOps Primer project. And what we're going to hopefully see with that project in the future is something within the OpenShift UI that allows you to go to that developer console and play around and say, for example, I found this jar file, it's going to throw it into the developer console and see if it benefits our group. And then from there, I can click a few buttons and then download all of that object GML and then use that to either deploy into development cluster or put into a GitOps tooling. It's going to be a really cool way to at first just download all of that GML. So as a developer, the nice thing about that is, is that I can just play in the developer console or play around in the CLI. And I don't really have to keep track of how I got my stuff running. The GitOps Primer project will actually do that for you. It will just extract everything that you did in that point and allow you to rerun it again somewhere else. So that is the two that I've been kind of the deepest with as of late. And hopefully you're going to see those in the next few releases. Awesome, thank you. And I dropped the scribe one into the chat. So I hope I got the right GitHub link for those of you online. It's github.com slash backcube, b-a-c-k-u-b-e slash scribe, s-c-r-i-b-e. So yeah, that is a really interesting project. Thank you, Ryan. And that's all for our questions. Do you have anything that you'd like to leave us with, Ryan, as everybody's diving into looking at using GitHub workflows? I mean, I think it's just an amazing part of technology. I do really like the fact that it is so forward-facing. I feel like it lowers the barrier of understanding and figuring how to run something because people can kind of see it. People will be able to understand what it runs on or how it runs. And that green check mark really makes you feel good at the end of the day because you know that it's going to successfully deploy if you follow the kind of steps in the repository. So I'm very, very happy that this exists. Awesome. Yeah, us too. Thank you. All right. And thanks, everybody, for joining us. And until next time, thanks again. OpenShift Commons, make sure you go to the Commons website to view all the events. And OpenShift TV also has the events, openshift.tv. So thank you again.


From, Dr. ████ to Director Maria Jones, Record Keeping Information Security Administration Subject, Revision of SCP-076-SCP File ██████ I have to go on record to say that I seriously object to the proposed revision of the SCP-076 Special Containment Procedure File. I know that redact all important stuff already, claims it's a security wrist, but you and I both know it's just top brass trying to sweep their biggest and most embarrassing mistake ever under the damn rug. While Mega-7 happened, it existed. Those people died because you screwed up, and you can't change that, no matter how hard you try to hide it.  Item number SCP-076 Object Class Keter Special Containment Procedures Containment Area-25Bs be located 200 meters below sea level, tunneled out of solid bedrock in a seismologically stable area. Sole access to the containment facilities to be through a vertical elevator shaft separated every 15 meters with a reinforced blast door, constructed a 20 cm thick titanium shielding. Elevator shafts shall be flooded with sea water when not in use. Containment Area-25Bs be constructed with the following components. An outer security perimeter against outside threat, staffed by security personnel trained in close quarters battle and counter intrusion tactics. An administrative and support area ASA consisting of support facilities and living quarters for on-site personnel. A primary containment zone PCZ consisting of a 7 meter cube encased in 1.5 meters in reinforced titanium. PCZ is to be designed to be flooded and drained as needed and should remain filled with sea water unless access to contents is required. A 115 meter killing corridor which is to be the sole access to the PCZ from the ASA, including water power, drainage, and ventilation lines. The walls and floor of the corridor are to be reinforced in a similar manner to the PCZ with the addition of an electric deterrent system cable delivering a 20,000 volt shock. A security station located at the entrance to the killing corridor is to be staffed with no fewer than three armed security personnel on watch at any one point in time. Armament is to include, but not be limited to at least one ████ CIW system on a pental mount with a clear line of sight down the corridor with a plexiglass screen to protect the operator from throwing weapons. In the event of a full breach, all on-site staff are to proceed immediately to the closest security station for weapons and armor distribution. Staff will remain at alert condition 1 until SCP-076-2 is confirmed neutralized. Should 90 minutes pass through the decoration of full breach, without a stand-down order being given by level 4 higher personnel, final contingency measures will be activated, sending the entire facility in seawater and sealing off the access shaft for a minimum of 24 hours before retrieval is attempted. This will, by necessity, result in the deaths of all on-site staff. Description SCP-076 consists of two components, a stone cube, SCP-076-1, and a humanoid entity contained within. SCP-076-2 SCP-076-1 is a three-meter cube made of black speckled metamorphic stone. All surfaces outside and within SCP-076-1 are covered in deeply engraved patterns corresponding to unknown civilizations. Radioisotope analysis indicates the object is approximately 10,000 years old. A door is located on one side sealed with a lock 0.5 meters in width, surrounded by 20 smaller locks in a circular pattern. As of yet, none of the keys have been found making the door impossible to lock once closed. An interior temperature is approximately 90 degrees Kelvin, and cannot be altered by any means, internal or external. Located in the center of the room is a 2.13 meter tall stone coffin held in place and sealed shut by several chains of unknown-making substance, which are attached to the inner corners of SCP-076-1.  Subject is 1.96 meters in height and 81.65 kilograms in weight. Each tattoo is depicting arcane and occult iconography or present all over the body, mostly in the form of leering demonic faces and ranges from subtle to openly ostentatious. Subject when encased inside SCP-076-1 is technically dead. However, occasionally SCP-076-2 will awaken, effectively reanimating, complete with all its vital processes and needs to sustain a living human being. Subject will then attempt to leave SCP-076-1. If successful, Subject will enter a trance state and seek out the nearest human being, ignoring all their living things in the process. Upon coming into contact with living human beings, SCP-076-2 will enter a rage state in which it will attempt to engage and kill all human beings encountered. Today, only the subject's death has been shown to be effective at ending these rampages. Terminating SCP-076-2 is often problematic due to its significant physical abilities. Subject has superhuman strength and speed, and although not invulnerable, has shown remarkable ability to ignore pain and shock, pressing on despite what would be debilitating wounds in a normal human. Prior encounters have shown that SCP-076-2 has the ability to, among other things, rip through a reinforced steel security door over the course of four minutes to sustain assault. Clear over 64 meters of distance under three seconds. Take multiple 50-caliber BMG rounds to the head and survive for several minutes to continue killing, despite severe damage to the cerebellum. Put handgun and assault rifle caliber bullets out of the air with a length of steel rebar. Survive for over one hour to pride of oxygen before finally officiating. SCP-076-2's most unusual ability, however, is its ability to apparently materialize bladed weapons out of nowhere. Slow motion video footage revealed that the blades in question are actually pulled from a miniature dimensional rift described as a small hole in space, or that its portal lead is unknown, as is how SCP-076-2 is capable of generating said rifts. Footage of the blades in question showed to be made out of a completely non-reflective black material appearing as a black void in space. As the blades rapidly vanish after leaving the subject's possession, no structural analysis is possible at this time. SCP-076-2 has effectively been killed several times in various manners. Sustained fire from multiple heavy caliber machine guns. Asphyxiation. Crush beneath a 13.6 metric ton pizza elevator equipment for use on SCP-076-1. Premation through use of a thermite TH-3 grenade placed directly inside SCP-076-2's open chest cavity. During the worst breach to date, containment area 25 was previously housed SCP-076 was forced to detonate its on-site warhead in the last attempt to contain SCP-076-2, while it was attempting escape, resulting in total destruction of sight and all on-site personnel. SCP-076-1 survived. Upon death, SCP-076-2's remains will putrify rapidly until reduced to dust. SCP-076-1 to coffin within will then slam shut with great force, and the lock will rotate sealing it shut. SCP-076-2 will then reform within the coffin, a process taking anywhere between six hours to twenty-five years. What posthumous analysis of SCP-076-2 exists shows that it has an internal system highly different from our own, documented in ████████. Additional, SCP-076 was found in ████████ Mongolia in 18 ██████ by archaeologists from England. All members of the expedition were subsequently killed on the return voyage home. SCP-076 was recovered from the ship ██████ by the ██████ Society, one of the organizations that later merged into the Modern Global Occult Coalition and placed on display in their inner sanctum. SCP-076 remained in storage for ██████ years until SCP-076-2 became active and escaped on ██████. The reason for SCP-076's activation is currently unknown, but it was at this point that the keys to the outer shell were lost. A massive manhunt lasting over three years and ██████ took place until SCP-076-2 was incapacitated by ██████ killing it and causing it to reform inside SCP-076-1. By then, retrieved and secured by agents of the SCP Foundation. Subject was in custody for over three more years under constant supervision and was terminated whenever it became active, although it occasionally was able to escape for a short period of time. Often due to security breaches caused by attacks from other organizations, the Foundation's death toll due to this was ██████. After the last incident, the current procedure regarding SCP-076 were implemented, although they are upgraded regularly with the increase in technological standards. All information regarding Project Able and Mobile Task Force Omega-7 Pandora's Box are classified Q-Clearance by Order of the O5 Council. By proceeding, you are acknowledging that you have clearance to view these files and that you have received need to know permission from the appropriate Level 4 or higher authority. Mobile Task Force Omega-7 Incident Log From Director Maria Jones, Record Keeping and Information Security Administration to Level 4 Administrators Subject R-A-I-S-A Update to Security Protocol Reply Supplemental Information Reply SCP-076 File Name Addendum 076-1 Project Able and Mobile Task Force Omega-7 Prior Classification O5 New Classification Level 3 Needs to Know Basis Effective Date ████ Psychological Profile of Subject SCP-076-2 SCP-076-2 either possesses a mind constructed much differently than our own, or is completely insane with little empathy or ideas in a way we would understand it. Concepts of the sex, love, and equality are completely foreign ideas to SCP-076-2, or at least in comparison to its way of viewing them. Subject has shown that it is completely disinterested in sex, barely differentiating between genders except as a form of visual identification. Also, while subject has admitted greatly enjoying the act of killing, causing pain either emotionally or physically, holds no attraction to it, in short, a perfect sociopath. These tests have been wildly inconclusive when applied to SCP-076-2, and no accurate result has yet been obtained. This may be due to the alien thought processes of the subject. SCP-076-2 has, however, shown that it has great knowledge of human anatomy, although in a highly violent context, military tactics open warfare, metallurgy, and strangely enough, the care of livestock. Subject has knowledge of several languages including English, but most notable is its knowledge of several dialects of ancient Samaritan, which seems to be its preferred language. SCP-076 has nothing but contempt for human beings, with one exception. It seems to hold a wary respect for those that acknowledge it as its superior. This was discovered when Agent ██████ and Agent who had previously had a large amount of experience with SCP-076-2 did not appear once it escaped. Subject seemed distressed, asking several personnel where Agent ██████ was hiding, when it finally did learn the fate of Agent ██████ killed its collateral damage and an airstrike attended the haughty advance of SCP-█████. SCP-076-2 stopped its rampage and allowed itself to be escorted and restrained. Subject was then interviewed on the sudden drastic changes in its behavior. Dr. ██████, why are you so interested in the death of Agent ██████? SCP-076-2. Subject begins swearing an ancient Samaritan. Why does his death bother you?  Now speaking in English, different? Because unlike you, Samaritan word untranslated, he was a challenge, a real enemy. Why would that be good for you? Every time you have awoken you've tried to escape. He was responsible for apprehending you several times. Surely you must be glad he's dead. I would hardly expect you to understand. Do you know? He managed to shoot me in the head over ██████ times.  Not in some Samaritan words untranslated, destruction ordered by cowardly kings and princes safe from their palaces. The rest of you, SCP-076-2, spits.  Subject is silent from then on, refusing to speak or respond. This indicates a possible psychological inlet in the SCP-076-2's mind, and a possible control mechanism. Given the massive drain on resources SCP-076-2 caused due to its escape attempts, considering both commissions stated the desire to weaponize SCP objects for tactical purposes, I recommend that we pursue this course of action as soon as possible. Dr. ████ from Dr. ████ to Dr. ████, project Omega-7, subject. He said yes. Project Proposal Mobile Task Force Omega-7, Pandora's Box Mission Statement, Support of SCP-076-2, Able in the Field in High-Risk Tactical Situations Task Force Organization Task Force Special Asset Able Task Force Leader ████ 10-20 Field Agents divided into 5 teams of 3-5 each. Members of the team are to be personally selected from Elite Field Agents by Subject Able himself in order to maintain a smooth relationship between the artifact and the mundane element of the Task Force. Security Protocol SCP-076-2-Able is the wearer device attached to the neck that if triggered or tampered with will immediately detonate, terminating SCP-076-2 by way of complete destruction of the spinal cord, trachea, and all major blood vessels in the neck. A tracking device has also been attached to SCP-076-2's person. It is to refrain from killing unless ordered to do so and is to avoid causing damage to the organization's facilities. Armament and Equipment Team members are to be armed and equipped in accordance with Mobile Task Force Doctrine. As Subject Able has shown no inclination to use firearms or, in fact, no understanding of their use or tactical implications, he is instead to be armed with one or more edge melee weapons of his choice. Addendum For God's sake ████ Find these guys something to do. Able is getting bored and he started putting his team through live-fire exercises. They get bullets, he gets training weapons. Have you ever seen someone break a man's jaw using a Nerf Sword? He's not going to stop until someone gets killed. Dr. ████ Report by Dr. ████ Project Omega-7 In light of SCP-076-2's proficient use of Sumerian language, researchers ask you to translate several documents. While it originally replied with disinterest, it has translated some of its documents it found worthy of its attention. Most of the documents chosen by SCP-076-2 were regarding battles or legendary heroes, one of its favorites in particular being the Epic of Gilgamesh. However, one researcher presented with a symbol from SCP-077-3. Upon sight of this, SCP-076-2 became highly enraged, killing several of the researchers before its kill switch could be activated. When revived and questioned about this, SCP-076-2 responded aggressively, and that line of questioning would immediately dropped. It has recommended anything pertaining to SCP-077-3 never be brought to the attention of SCP-076-2, and that the two are never to be in the same facility. Addendum 076-07 Recently, SCP-105 had been accepted into Mobile Task Force Omega-7, having beaten SCP-076-2 in a content to see which of the two could activate several devices, each spaced over a mile away from each other and the starting point. SCP-105 managed to score significantly higher than SCP-076-2 by using her inherent abilities to her advantage. SCP-076-2 ceded defeat and allowed her entry into the group. Addendum 076-09 Proposed introduction of SCP-076-2 to SCP-682 put on definite hold. Those with security clearance level 4 are hired may request access to contingency 076-2. Number 3 Addendum 076-23 Per the request of the Boat Commission, Mobile Task Force Omega-7 to be filled in the ██████ region of ██████ against ██████ from Dr. ██████ to Dr. ██████. Project Omega-7, subject ██████, don't do it ██████. For God's sake, don't do it, it's bad enough that they're trying to weaponize Iris-2. Don't let the military bully us into doing their dirty work against some sand farmers in ██████. From General ████, Bo ████ to Dr. ██████. Project Omega-7, subject ████, a job well done. From Work Doctor to Mission 1 exactly as expected, we'll be calling you again if we need your help. General ██████, Bo ██████ from Dr. ██████ to Dr. ██████.   From Dr. ██████, project Omega-7 to Omega-7 team, subject reassignment. As of this moment, Dr. ██████ has been reassigned to SCP-682 as Level 1 personnel. From Dr. ██████, project Omega-7 to General ██████, Bo ██████, subject problems. Despite our best efforts, Subject A will prove him difficult to control. All our attempts to keep him engaged have been more or less unsuccessful. The problem is, he's a perfect killing machine, and that's all he wants to do, and it seems like exactly what we wanted, but the problem is, we can't seem to turn him off. ██████, I'm running out of missions to give him, and the ones I've got left aren't engaging him mentally. He's starting to lash out at the other team members. It's only a matter of time before something goes wrong. Request information to discontinue the project and neutralize Able temporarily, until we can find something more for him to do. From General ██████, Bo ██████ to Dr. ██████, project Omega-7, subject reply problems. Unexceptible, neutralizing Subject Able at this point is going to cause an unacceptable delay. We'll have another mission for you within a couple weeks. All you have to do is keep him busy until then. Send him on vacation or something. From Dr. ██████, project Omega-7 to all staff, subject alert. This is an automated alert. SCP-076-2 is disabled to explosive color, failed safe, and gone out of control. All staff to high alert. Fertile request is events warrant. From Automated Defense System, Containment Area-25 to all site, subject, final option engaged. This is an automated message, do not reply. As of ██████, Containment Area-25 is engaged as on-site nuclear warhead on 10 minute countdown. From O5 command to all site, subject, Containment Area-25, final option response. As of ██████, Containment Area-25 has been destroyed by detonation of its on-site nuclear warhead. Page 67 and 68 are to activate the FEMA protocol and secure the location as soon as possible. Official cover story will be released by RA-ISA to all personnel once drafted. Revised Psychological Profile of Subject SCP-076-2 SCP-076-2 either possesses a mind constructed much differently of her own, or is completely insane with little empathy or ideas in the way we would understand it. The concepts of the sex, love, and equality are completely foreign ideas to SCP-076-2, or at least a comparison to its way of viewing them. Subject is shown to be completely disinterested in sex, barely differentiating between genders except of the form of visual identification. Also while subject seems to greatly enjoy the act of killing, causing pain either emotionally or physically holds no attraction to it. Intelligence tests have been wildly inconclusive when applied to SCP-076-2, and no accurate result has yet been attained. This is due to the fact that no communication is possible with the subject when it is in rage state. Subject displayed knowledge of several languages including English but most notable is its knowledge of several dialects to ancient Samaritan which seems to be its preferred language.  No communication is to be attempted with the subject.


Good morning everyone and welcome. This is Melissa Armo with a stock swish, and I'm here today reviewing Nike Which was the stock swish play of the day really nice move in this immediate flush Boom, you could have shorted this right in here and got the drop Whether you get out here into the first drop here in the first couple of minutes Or you held it all the way down. It was a really really really nice move in this stock So it had a bounce you could have reshorted this it still looks lower even still but again the morning I think is the best time to focus on stocks and gaps and getting the moves And then you don't have to worry about the market and the market is pushing back a little bit right now Which is why this hasn't dropped and broken the low again But this was a beautiful beautiful move high up here was 5209 low in here touched on 5103 Dream target, which this did not get to but it could eventually is 50 But if it breaks below the next area would be 5080 ish Again, 51 would be the first target load the day than 5080 ish if anybody wanted to redo it this afternoon But it looks terrific. I mean this was a really nice short and and it's again very slow time right now to earnings season starts This was an earnings gap. You do get some late late ones in here in the season, but I'm just been so focused So happy that there's been some good things to do at least this month Even though it's been slow There's been some high-quality gaps and Nike definitely was one of them interestingly enough one of the students in the room pointed out that you know the the Report okay, which I do not read. I don't follow fundamentals, but the report was positive on Nike and a stock gap down So once again Technicals, which is what I focus on is how you determine where something's gonna go if the fundamentals match up and helps your conviction Great, but there's a danger in following only fundamentals because if you would have gone on this today, guess what you would have lost So that's the scoop so congratulations to everyone that did this if you're interested in more information You can email me at Melissa at the stocks wish calm and then You can sign up if you're interested for the golden gap class this weekend September 30th and October 1st It's a class before the earnings season and it's gonna be a good one and it's gonna be a great earning season And I'm very excited. Thanks everybody. Have a great day


What's up everyone it's your girl Kenzie here from late in sports cards and I am ripping a personal here for Noel a We've got two orders of the 2022 Panini National Sports Convention VIP exclusive gold packs. These come in bundles of five We've got one two three four five for the first one and one two three four five For the second. All right Noel best of luck Here we go Got a Nolan Ryan and Hyper Christiano Ronaldo Nice Ronaldo hyper there Emmett Smith base and cracked eyes Fernando Tatis Jr. To 99 Nice Tatis there that is 26 of 99 Kate Cunningham and Velocity of Spencer Torples in Nice Torque Chewie Bart rookie and Hyper of Walter painting for the bears Last pack of the first bundle here Adley and Hyper rookie Trevor Lawrence nice hit there for you Noel Beautiful tealaw not numbered on that still a nice hit All right second five Good luck magic Johnson And velocity rookie James Wiseman James Wiseman Tyrese Halliburton rookie And we've got camo Joe burrow on the Pandora four out of 25 Camo Pandora.  We will mag this one for you beautiful Joe burrow Still a little early got Shaq and Hyper that Shaq and that same pack Pack number four Got Julio Rodriguez and giraffe you called the giraffe earlier, didn't you? Giraffe One soda that is so cool.  Congrats again, and we'll get these right out to you


Hello everyone, another live video. In this one I'm going to be talking about the reason why you don't hear from the narcissist. Now there could be a number of reasons. It may be that they have found new supply. They have found someone else that loved bombing this new person and in that stage they're very excited, they're preoccupied, they don't have any time for you. So yeah it's true in that phase you will not hear from them and then when they begin to devalue their new supply that's when they will come back, that's when they will re-idealize you and love bomb you again. Yes there is some truth to that but that's not what I want to talk about in this video. I have talked about that many times already. There is another reason. It's not always about new supply. The reason why you don't hear from them it's not always because they found someone else although that may be what they want you to believe. With narcissists it's all smoke and mirrors, it's all deception, illusions, a lot of what they do is fake and many of you should know that already. When you look back at your relationship with them did any of it seem real? I mean if it was real how could they just pack up and leave like you never existed? And it's the same thing even when they move on to someone else or as though it seems like they've moved on to someone else. It doesn't mean that it's real. It's just as fake as it was with you but that being said it doesn't mean that they have found new supply. It doesn't mean that they have moved on to someone else. The reason why you don't hear from them it could just be that they've taken a fall. They failed at whatever they were trying to accomplish. They failed at trying to outdo you, at trying to compete with you in the arena where you play. They can't surpass you in those aspects so all they can really do is stay ghost. They have to just stay away.  They're not going to put themselves in a position where they may be humiliated where you get the chance to reject them. They're not going to allow you to do that. Most often the reason why they leave is because you have already caused an injury. You have already rejected them. So they're already hurt. They're already trying to make it seem like they're doing better without you and if they're not in a position where they're able to portray that to you the only thing they can do is just to stay away. So yeah it's not always about that. Just know that it is an illusion. It is a facade. When they disappear on you, when they ghost you, it doesn't always mean they have someone else and a lot of people won't come and tell you that but I want to be that voice for you tonight is that it doesn't mean that they've just gone and moved on to something better as they want you to believe. They want you to think that something was wrong with you that they could do better than you. It ain't always like that and I want you to know that. I want to provide some comfort to you tonight. I know many of you. You're feeling down. You're feeling rejected.  I know I get that. I've been there myself. I know what that feels and I just want you to know that it ain't always like that. Many times it has nothing to do with that. It's not so easy for them to just move on or replace you. They want you to think that it is. They want you to validate their false narrative. Yeah, they love you to do that because that gives them supply. That makes them feel better about themselves. But no, it ain't always like that. They will tell you whatever they think, whatever's going to make them feel better about themselves. Yeah, they're going to lead you down that path. They're going to make you think that so that they can feel high and mighty at the end of it. They're not going to tell you the truth. So yeah, I definitely want you to keep that in mind when you don't hear from them because they know you're an empath. They know that when all is said and done, you're going to question yourself. You're going to think that something was wrong with you. They know you're going to think that and they play on it. They feed that narrative back to you. However you're thinking about yourself and your mind. When you're questioning yourself, you're questioning if something is wrong with you.  And especially when you're bringing that to them, they're going to tell you that all day. They're not going to tell you anything else. They're not going to tell you that you were good for them. You did everything you could to make them happy. Even though that may have been the truth, they're not going to tell you that. They're never going to let you feel like you've done enough because nothing was ever enough for them. They always wanted more. They want you to think that they've gone on and they found more. They found what they were looking for, which is never you because you were never good enough for them. There was always something wrong with you. Or at least that's what they want you to think.  There was nothing wrong with you. You did everything you could to make them happy and that wasn't good enough for them. That doesn't mean there's something wrong with you. That just means that they can never be happy. But yeah, they go and they ghost you. Doesn't mean that they've moved on. Doesn't mean that they found better. Yeah, they will tell you that. Of course, their narcissist, what else are they going to say? They're not going to tell you the truth.  They're not going to say that. But many times when you don't hear from them, they have taken a fall. They've failed and the miserable, they're depressed. They just don't want you to know about it. So yeah, they they will stay far away from you. They will because they're afraid of being exposed for the frauds that they are. They're afraid of being humiliated. They're afraid of being rejected by you. They're never going to put themselves in a position where you have a power where you are now aware you have the knowledge and you can crush them. No, they're not going to put themselves in a position where you are able to do that. Never. But just know that you do have the power. I'm giving you the power.  I want this message to empower you. So yeah, that's all I've got to say for tonight. I hope that my passion comes through in this video. How I feel for you, everyone who is going through this. Just know that I am with you. I'm always there for you whenever you need me. You can talk, you can contact me anytime. You can book a session with me for my website, Narcsefiver.co.uk. You can save me a message on an Instagram. I'm always here. I'm always here. So I just want to give that message to you tonight. I love you all and I wish you all of the peace and love in the world. I really do. I hope that things get better for you. And as always, please give this video a thumbs up, helps the YouTube algorithm, spreads awareness of this and supports our community. Again, thank you all and I look forward to talking with you again in another live video very soon.


These are clear lenses with a black housing. So I think they're going to look pretty good on Project Storm and for the bulbs we went back to Bosla. This is the same company that I'm using for the LED bulbs on Frostbite Holler on my diesel truck and those bulbs are still working good. So we got a set of Bosla bulbs to put in the new headlights. What's up, Mopar Fam? We are back out here today and we are working on Project Storm. We have a couple goodies to put on Storm. We got a set of brand new headlights for Project Storm along with a set of LED bulbs as well for the brand new headlights we just got. So the headlights we have for Project Storm are blackout edition projector lights from AutoSaver and the LED bulbs we got are from Bosla and those bulbs are $6500K. So we already started kind of working on Storm a little bit. We got the old headlights out of the truck as you can see right here and we have the new ones and the new bulbs over here on my trailer. So we're going to go check them out real quick. We just unboxed them and here is the new headlights and the new bulbs. So these are a blackout version. It's got a black housing. These are projector headlights as you can see and here's the other one. Now the lens is a clear lens so we should have plenty of light transfer on the road. As some tinted lenses I've had those in the past actually look pretty cool but don't work so well but these are clear lenses with a black housing. So I think they're gonna look pretty good on Project Storm and for the bulbs we went back to Bosla This is the same company that I'm using for the LED bulbs on Frostbite Holler on my diesel truck and those bulbs are still working good so we got a set of Bosla bulbs to put in the new headlights. These are just a one color $6500K bulb. They do have fans on them. These are very good nice quality bulbs. Now the headlights from AutoSaver does include headlight bulbs as well but they are your regular like Hologin bulbs. So we removed those. We wanted to go back with LEDs so that's what we're doing. So we already put the new Bosla LED bulbs in these AutoSaver headlights and the other thing I want to mention is the AutoSaver headlights also supplies you with an instructions sheet of how to remove the old headlights and install the new ones and some wiring schematics on the back as well. So very helpful there and if you're interested in these headlights I will put the Amazon link in the video description below so just scroll down and you'll see the link it'll take you right to them and the same thing with the Bosla bulbs they will be in the description as well. Link provided will take you to Bosla site for their LED bulbs and they have all types of different LEDs for headlights and pretty much any kind of bulb or light out there you can think of. So other than that we're going to get these new headlights installed and see what they look like on Project Storm. Alright we got both of the new headlights projector lights mounted up in storm that's with the new Bosla LEDs and we have a fog light out on this side of the truck that we know about time to get some new fog lights for it now but the headlights look good we like them and again these are 6500K Bosla LED bulbs that we installed and these headlights do have the option to have a daytime running lamp which is this light strip right here we did not wire that up as we really do not want daytime running lights so we left them off frostbite is the same way I have similar headlights like this on frostbite as you guys know and I did not wire that up as that's an option we did not want that to be lit up all the time so we're just going to run just the headlights in there but that is an option if you want to wire that up and the instructions for that is in the little instructions sheet that they supply you with the headlights and it's pretty much a simple two wire hookup from what I can see in the instructions pretty simple to wire it up if you want to use those but that is an option other than that they look pretty good when it gets dark we're going to come out here and see what it looks like going down the driveway and see what kind of light beam that we get but it does look like so far it's kind of hard to see but those are definitely pretty bright considering how bright it is outside right now so we'll check them out when it gets dark and there's another close-up shot with the bulbs off so you can kind of see the housings but everything so new we got pretty good amount of reflection on the lens there so but I think it gets project storm a little bit darker parents but there you go guys like I said we'll come out here when it gets dark and we will see what kind of light beam we get with the new auto saver headlights and the bozzle bulbs we'll shot at the torque storm hiding under project storm yeah alright guys I hope you guys enjoyed the quick little video of the headlight replacement on project storm definitely gives project storm a little bit more of a I'd say a stormy look kinda little blackout feature there the bozzle bulbs are definitely bright as they've been working great for frostbite holler back there my diesel truck no complaints the bulbs work fantastic they're super bright and I'm definitely impressed with them so like I said we'll come out here at nighttime and we'll fire these things up and see what kind of light beam we get down my driveway right here so other than that guys don't forget hit that subscribe button hit the like button put a comment down there below what you think of these new headlights and if you're interested the link will be in the description below for the headlights and the bozzle bulbs if interested and we'll see you guys on the next one oh hell yeah


Two reasons. Cavs mad drunk. We all was drunk. But, first of all, Little Nas X should have never been put in that situation, right? And I'm gonna tell you why he should have never been put in that situation. He should have never been put in that situation because what Cavs said is absolutely true. We don't care. You know what I'm saying? Like if you want to have a moment with Little Nas X, talking about his sexuality, make that a real moment. Like if we were all in a barbershop for real and we was all drinking, I wouldn't be asking them about his goddamn sexuality. Nobody else in there got asked about their sexuality. You know what I'm saying? Nobody in there got, Kevin didn't get asked about his infidelity or anything sexual, like why bring that up? But I don't think people got mad at him getting asked about. I think people got mad because he was so dismissive and it was like, oh, that's his homophobia speaking. No, that was a little out of context. And the reason it was a little out of context is because what we was trying to tell Little Nas X is, bro, it's cool. Like you don't have to talk about that here if you don't want to.  Do you really think he's comfortable with his sexuality? And they have to live that out in the public eye?  I mean he's kind of took it in stride. He was the one making most of the jokes himself when he first came out. Yeah, but how do we know he's not at home crying? We don't. You know what I'm saying? Like we don't know. So it's just like why put him in the hot seat.  That was for TV. That was a producer question. Like make sure you ask Little Nas this so we can get these moments. You know that though. Anybody that does content, it doesn't mean that you know that. So why? Why? What was the meaning of that? That conversation went nowhere.  We had so many other great discussions going on. You can't even really talk about these issues. That's the tricky thing.  It's actually exhausting.  Listen, if we was being honest, we should have had, and I mean I'm not a producer on the show so I don't know, but I would have had Paul ask Kev about his homophobic tweets from back in the day. What did he learn from it? Yes. Little Nas ex, how did you feel when you saw that? And then you can have a good conversation. You know what I'm saying? Like that, like why do you do? I just put him on the spot about his sexuality.  I think so too.   And that's what they did with this episode last night. All he simply said was he came out and said he was gay. Who cares? Which is a great, it's a new drop for the breakfast. That's our new pause, by the way. Whenever somebody says anything remotely gay, you go, who cares? No, we play in the Kevin Hart drop. Oh, I'm saying, you know what I'm saying? It's a great drop, you know what I mean? But that is the truth to the matter. I like how little Nas gave a pushback though. He was like, cause Kev tried to act like there's no homophobia. Boom. Now that would have been a great conversation. I like that. Cause he was like, bro, if you, I like how he kind of checks his camera. But we said he's right. I know I was like, I was like, I know he's right. But like he was like, But they cut you out of all the clips and it was a problem son. That's the thing.  But I was like, yo, you were right. Like we can't act like pause and no homo didn't exist. I wish that made it to air. I wish that made it out of an important conversation. I think it should have given you more respect over there. They did.  Right, like off camera, like a producer. One day you're gonna, that was great. And even the seat you're in had had your name on the back like the director's chair. I don't even think you were supposed to be in the shot. Did you notice? Wow. I'll tell you. I'll tell you. I was proud of my performance. I wish I could be. Emotionally stable Charlemagne, bro. I was good.   I did well. I did well. I did well. That's the best thing you've ever done. If y'all made a meme of me. They made a meme of me and one of my quotes from the show. Wait, what are you saying? Have you seen this man? Listen, listen, listen, listen. Since you guys asked. Hold on. Hold on. Hold on. That's not a meme. That's missing. Well, hold on. Since you guys asked.  I don't know what to say like, you're not going to find that. But I did feel like they'd taken care about a context-based office. And I'm going to say what I was like. You got to Amber Alert Charlemagne. I was there. It was, Kaz really set you up, bro. Listen, all I was trying to say was, what the heck is going on? What I was trying to say when this conversation started was that when I see those conversations happen, I don't look at being like, oh, Kevin Hart's homophobic. I just look at, oh, this is somebody who just hasn't been educated enough. Kevin Hart.  Educate it on what, though? Just like why the way he, why people. All right. People get mad at him with the homophobic comments. Whatever. There's a height requirement for homophobia. I think, I really do believe it. No, I agree. And racism. It's like when a kid says something bad. It's like, it's not affecting anybody. And sexism, like you're short.  Come on. That's probably why Kevin Hart jogging all the time.  Like he can't run out of breath. I just think that we're so quick to label people things that they aren't. Like I'm reading, I just finished reading Malcolm Gladwell's new book. It's called Talking to Strangers. It comes out, I think, September 10th. And it's about communication. And how nobody has it anymore in 2019, 2020. We don't know how to communicate with each other anymore. So I think the subtitle is like the things you should know about the people you don't know. And we try to judge people based off demeanor. Like that's the problem with police officers and everything. Like you might be sitting there, gray hoodie, thick thighs, you know, looking at me like that.  Throwing it inside, he's hurting. Yeah. I'm just saying, we're like all week demeanor, we just, we look at somebody's demeanor and we think that we can judge a person. That's wrong. And I think that we do that with Kev just because Kev said, why do you think he's gay? How does that translate to homophobia? I think Kev was trying to cover for the, whatever he's been labeled as homophobic in the past and try to be like, I don't care. I think his mind he was trying to say, Calculate, how do I prove to everybody that I don't care if somebody's gay?  Big deal, cause it's not a big deal to me. That's what he's trying to do. And it didn't come across like that.  I definitely didn't care. Like all the different conversations we could be having right now. Why are we putting this little, this young man on the spot? Do you think you would care more if he was more thick? If he was thick? Yeah, like if he had that.  It's Ham Hawks. I'ma be honest with you. You know the kind. Cast the body, mix, family eat it. Cast the body, family eat it. Everybody knows like a stallion, bro. Everybody knows, cast the stallion, bro. Don't carry it. You're not even a stallion. You're just being dragged by the horse, bro.  And Charlotte may want to be your gladiator.  I like them loud, okay? I like them loud and outrageous. Flamboyant. I don't even just, not even flamboyant. Like you can, I just like you to be loud.  You can see the gay from a mile away.  Right on your seat.  I feel kind of turned on just now. You're real. I was like, I like that compliment. Like my whole point there.  Who cares? Dark clip. Who cares?  Who cares?