About this video
What You'll Learn
- Explain how Waypoint splits build, deploy, and release into separate workflow stages
- Show GitOps-driven Lambda delivery with HCL, build packs, and Horizon routing
- Compare Kubernetes and Minecraft deployments while using Waypoint runners on Kubernetes
Taylor Dolezal walks through HashiCorp Waypoint's build, deploy, and release model, showing the HCL config, GitOps workflow, the server and runner architecture, and three demos deploying to AWS Lambda, Kubernetes, and a Minecraft server.
Jump to a chapter
- 0:00 Holding screen
- 1:18 Introductions
- 1:20 Introduction
- 2:11 Introducing the Guest
- 3:57 What is Waypoint?
- 4:10 Waypoint's Core Concepts
- 7:44 Waypoint vs Terraform Analogy
- 8:17 Waypoint and CI/CD Landscape
- 9:46 Setting up for the Demos
- 9:50 GitOps (Demo 1)
- 13:56 Exploring the Waypoint UI
- 15:38 Waypoint Architecture (Server & Runner)
- 16:08 Demo 1: Automated GitOps Deployment (Lambda)
- 17:05 Waypoint HCL Explained (Demo 1)
- 20:43 Configuring GitOps Sync
- 22:44 GitOps Triggered Build
- 23:05 Understanding Deploy vs Release
- 23:37 Handling Authentication & Failures
- 31:31 Successful GitOps Deployment
- 31:48 The Horizon Service (Public Access)
- 33:42 Demo 1 Recap & HCL Breakdown
- 34:26 Waypoint Plugins & Extensibility
- 38:39 Gated Releases Discussion
- 40:00 Deploying to Kubernetes (Demo 2)
- 40:22 Demo 2: Deploying to Kubernetes (Kubectl Apply)
- 42:45 Waypoint HCL Explained (Demo 2)
- 44:50 Installing Waypoint on Kubernetes
- 46:22 Waypoint vs Helm Comparison
- 47:19 Waypoint Open Source & Roadmap Discussion
- 50:11 Running Waypoint Up on Kubernetes
- 50:17 Understanding --accept-tos
- 51:20 Demo 2 Deployment & Application Check
- 51:51 Updating Application Code
- 53:53 Intentional Failure Demo
- 54:43 Handling Failures & Recovery
- 58:31 Demo 2 Conclusion
- 59:12 Waypoint and Dagger Comparison
- 1:00:00 Deploying minecraft (Demo 3)
- 1:01:02 Demo 3: Deploying a Minecraft Server
- 1:01:25 Waypoint HCL for Docker Pull & K8s (Demo 3)
- 1:02:51 Entrypoint Binary & Architecture Doc
- 1:06:20 Running Waypoint Up (Minecraft)
- 1:09:16 Connecting to the Minecraft Server
- 1:11:08 Demo 3 Conclusion & Future Enhancements
- 1:11:42 Demos Summary & Audience Feedback
- 1:12:41 What's Next for Waypoint? (Roadmap)
- 1:14:23 Final Q&A
- 1:15:00 Conclusion
Full transcript
Generated from the English captions. Timestamps jump the player to that moment.
Read the full transcript
1:20 Introduction
1:20 Hello, and welcome to today's episode of Rawkode Live. I am your host, David Flanagan. Today, are taking a look at Waypoint from HashiCorp, a tool to build, deploy and release software. Now, before we get into that, there's a little bit of housekeeping. First, please subscribe to this channel and tick the little bell button to get alerts for all new episodes of Rawkode Live. We're gonna be exploring the vast cloud native landscape together, learning along the way, and trying to make all this mess a little bit easier. So subscribe and join us. We also have a Discord server available at
1:52 Rawkode.chat. So if you wanna come and chat with 500 other cloud native and Kubernetes people, then come and say hello. I look forward to meeting you. And then also we have a membership program on the Rawkode Academy, which gets you access to exclusive courses. Check that out. If you have any questions, jump into the Discord. Alright. Now to guide us on our Waypoint journey today, I am joined by HashiCorp developer advocate, Taylor Dulzal. Hey, man. How's it going? Good. Happy to happy to be here this morning, evening, afternoon, just a a dollar sign time zone, I think, is is pretty much the
2:11 Introducing the Guest
2:27 time it is. Right? There's no there's no time zones on the Internet. Right? Exactly. It's just we're we're we're just here as I think how it is. Happy to be here today. So for happy to e meet all of you. If you have any questions during these sessions, please feel free to throw comments in the chat. Be more than happy to to expand upon those answers, get things just to kinda help illuminate on these concepts and these topics. Always always fun to have the opportunity to do so. My name is Taylor Dolozolt. Like David said,
3:01 I am a developer advocate at HashiCorp, and I work mostly with infrastructure workflows, application delivery, developer experience. Basically, if there's something that we want to do in the cloud and there's not an easy or straightforward way to do it, let's solve it. Let's do that together. Let's, if if you want to see more examples on that front, that's something I love taking the time to do, meeting with people on calls, and and just kind of really digging into what the problem is. What's the problem that we're trying to solve here is, is typically how I like to try to frame things.
3:32 So, have a lot of fun working at HashiCorp. Really always excited to work in the cloud and and see what everybody else is working on. Awesome. Thank you for that. And I I think we all heard it. You just offered to fix everybody's cloud problems. Darn it. I did, didn't I? Like, oh, my calendar is all filled up. Sorry about that. You're gonna have to open up some more office hours I think now. But So thank you for that introduction. That's great. It's nice to learn a little bit more about you. Now why don't you, for the people that
3:57 What is Waypoint?
4:05 are not aware, share a little bit about Waypoint? What is it? Absolutely. So great question. Great question. It's it's it's almost like you've been practicing that I'd say so what Waypoint is really when when I talk with people about it, people that have had the chance to take a look at it might have kind of framed it as a CICD tool. And you're right. Though it's so much more, Waypoint helps build, deploy, and release your applications, your containerized applications. And so when it comes to each of those concerns, you know, you have tools like Flex, you have tools like Argo, and those
4:10 Waypoint's Core Concepts
4:43 are mostly focused on the release the, you know, deploying release factors of that workflow. When it comes to build, I know that I I haven't taken a look at Argo. I need to. I I've taken a look at Flux and have seen that they're starting to add in that build capability. And to me, that just that checks all the boxes when it comes to actually getting an application, you know, sharing an application with the world or or showing people what you're working on. So that's what Waypoint seeks to do is just to make all of those steps easier.
5:12 If you're trying to deploy to Kubernetes or Nomad or Lambda or ECS, you have you know, the goal is to have one platform to be able to do that and to make it easy for operators to actually set that up and give teams the ability to choose what workflow works best for them. Now personally, I really like working in the CLI, but it doesn't hurt to have a nice UI to be able to go and look at things, make sure everything is as you expect it to be all in one place. You can do that again
5:41 with the CLI, but having that UI, that single pane of glass, the legendary mythical single pane of glass to see everything that is important to you is quite helpful. So that's that's what Waypoint is. Really, the short answer is, you know, TLDR is that it's it's a lot of things, but mostly focusing on helping people solve problems, helping people deploy their applications and releasing them to the world. There there are two big workflows that it's, that to to kind kind of help better illuminate. What Waypoint does is say you're a developer and you haven't really
6:18 you know, you've heard about this Docker thing, you've heard about containerization, and you're just like, ugh, this is just another thing to learn. That's it's it's not something that's really gripping to you. You know, some people love to write Docker files, myself included, but say say that's not your that's that's not your passion. That's something that Waypoint really helps with in the build step where if you have an application that has a package manager, say it's a Go app, a Ruby app, a JavaScript application, and you have a package manager, what Waypoint uses is cloud native build packs
6:49 so you don't even have to have a Dockerfile and you can start building right away. Now it's not going to be, you know, it's not going to be a one kilobyte image or or anything like that. It's not going to be as reduced in size as you might want, but it's going to be a starting place, right, and and kind of give you that that ability to deploy your stuff and and get an example of of what it looks like in in the wild in the cloud. If you do have a Dockerfile, you can bring that with you. You can build for
7:18 that. And then when it comes to releasing to each of these platforms, you you no longer have to rely on that bash script or that wild, you know, like, we do deploys a little bit differently here as you might hear at just about every company that you work at. So really just kind of hoping to unify that workflow and make it easy for people to switch out their platforms, to switch out their build processes. I think that's really where the power of Waypoint shows, frankly. Alright. Awesome. Lots of great context there. I'm gonna try and take everything you just said
7:44 Waypoint vs Terraform Analogy
7:50 there and surmise it as one line. But then there's there's my mission. Right? So is would it be would it be fair to say that Waypoint as to software, what Terraform is to infrastructure? Exactly. Wonderful summation. Waypoint has this concept of plug ins kind of and then you see that with providers in Terraform. So whether you're deploying to Kubernetes or to Lambda, you you are working with these different contexts in these different plug ins. Okay. So one would use tariff oh, sorry. One would use Terraform to spin up some VMs or some bare metal Kubernetes cluster,
8:17 Waypoint and CI/CD Landscape
8:27 then they who can Waypoint and it will deploy their application to that platform. What about the Exactly. Continuous integration stage? Is that something that Waypoint handles as well? I think you kind of maybe said yes there with the Dockerfile a bit. Yeah. Okay. Yeah. That's what's really nice is that it's at the current point in time, Waypoint doesn't have that capability to to act as an Argo as a flux type of platform just yet. That's something that we're talking about with the team. And so I'm I'm really invested in kind of what those workflows will look like. Right now, it's
9:01 I do have a demo today. It'll kinda, like, showcase what it is to deploy a Lambda application when you get that set up with GitOps and if you were to make a change and and kinda push that forward. So that's that's that's quite cool. So I'll I'll be showing that today and kinda, like, what that workflow looks like. But when it comes to the the the piece that's missing there is is authentication and and tighter integration with Kubernetes. So being able to Waypoint has a server and then it has a runner, in its architecture. I'll also share out a
9:32 a link on that front too as to, you know, how you can better understand Waypoint's architecture. But that's that's that's really cool to see working and running and and yeah. That could talk for a very long time about it. So it's it's quite nifty. Alright. Well, you've teased the demo a few times now. So why don't we get your screen shared? Let's head over and I'll just keep throwing questions at you as we move through. Fantastic. Alright. So you should see the so you should see my browser window. It's it's got my my homepage loaded on
9:50 GitOps (Demo 1)
10:03 it for for for today for today. So what I'm gonna be doing today is quite a few things. I don't have two demos for you. I've got three demos for you. So we'll do a hat trick of demos. Fingers crossed. These are all live. So fingers crossed everything goes swimmingly. Let's so we'll we'll get right into it. The the repository I'm gonna be working from today is on on my username. I I can share these out a little bit later. My Waypoint GitOps repository. In here, I've got some Terraform. I do have to backport some things, so
10:39 I'm actually gonna go ahead and set up an EKS cluster using this repository. I've updated this EKS in action repository with examples for Terraform1.0 as well as added KMS keys and just kind of made a little bit easier debugging experience for, you know, for for people that want to kind of have that experience as well as add dependable so I can tell when things are out of date, which, you know, pretty pretty helpful, I'd say. Alright. So I'm gonna jump into this Waypoint GitOps repository here. But first, let me kick off this I'll just run that off to the side.
11:15 So I'll go ahead and run a oh, wanna know something? Probably would help to see this. Right? Okay. Yeah. Was about to add. Always always always a plus. Okay. Terraform, Annette. Alright. I'm gonna go ahead and kick this off. Terraform. I've already done plans and applies with this, so I have a high confidence this is going to work. So I'm gonna go ahead and do what I call Terraform YOLO, which is going to be this auto approve appended here. People, please don't do this in production. I'm a trained professional, so mistakes are okay. So I'll I'll I'll drag this shell off
12:00 to the side and kinda let that go, and it is off to the races. Awesome. K. I'll bump this up as well. So let's get started. Let's get started. So I'm going to be starting from scratch today. We're going to be installing the Waypoint server and showcasing, the the entire workflow from zero to Waypoint, with with production applications. Granted, I I don't think that any of these need a fully staffed team to administrate or operate, but, you know, who knows? Who knows? Okay. So let's go ahead and get started. So first, what we're gonna want to do is we're
12:39 going to want to install Waypoint. So Waypoint I'll actually go back to my browser. I'm on a Mac machine, and one of the easiest ways to get started with Waypoint is to just use brew. You can tap HashiCorp's tap where we maintain and release all of our software, and then you can just install it using these instructions here. We do support ARM. We do support a whole bunch of other builds. Please feel free to refer to the downloads page, and we've got some guidance for you there. Also, learn.hashicorp.com has some pretty good walk throughs of this
13:12 as well. Or if you're hitting a snag, please at me. Let's let's work through that. So good news is I already did that kinda like the pulling out the cake from underneath the countertop. I've already done that. I've already gotten Waypoint installed. So if we do Waypoint version here, we'll see that Waypoint zero five is here. We're getting an error when showing the server as is expected. We don't have that set up just yet. I've I've neglected to say too that Waypoint zero five just came out yesterday, so you'll see a few of the new
13:42 features in here. All these demos kinda focus on zero four functionality, but, don't fret. We've got, we've got some zero five niceness in here, some zero five sparkle, in here that we'll be walking through. Cool. So, how do we install Waypoint? So we install Waypoint by doing this. So we want to just Waypoint install. We wanted to find the platform that we're going to install Waypoint on. Today, we're gonna install on two platforms. So while I'm spinning up Kubernetes on the side, right now, I'm just gonna run this in Docker just to give you an idea of
13:56 Exploring the Waypoint UI
14:14 how to install it locally. There are some features that you won't get when you install Waypoint locally on your machine, and I'll get into that here in just a little bit. Alright. So let's go ahead and get this installed. And this won't take too long to to get done, but really straightforward. It's nice to be able to have have this kind of experience and not have to, you know, mess around with configuration, things like that. It's it's it's nice and simple. So we can see that Waypoint's been installed. It's been it's been configured. Let's load up that UI. So if I
14:47 if I type in our let's let's do a version here, and then now we'll see both the CLI and that server are the versions that we want to see. Let's say that we want to take a look at the UI. So how do we do that? The UI is has a is backed by a token system. Waypoint zero five released this capability to integrate with OpenID Connect. So if you want to use GitLab, if you want to use Google, you have the option to do that and then invite users that way. We're not gonna get into
15:18 that today. We're just going to authenticate here and use that token system. So you'll see this is connecting over HTTPS, so we are almost secure, as secure as can be on local host. That's why we're getting this alert. So we're just gonna go ahead and proceed. This is as expected. So great. We have installed the Waypoint server. Now as of, I think it was Waypoint zero three, we had this capability of runners, within Waypoint. So, not only when you install your server, you also get one runner. So what that does is it handles things like
15:38 Waypoint Architecture (Server & Runner)
15:54 handling runs and configurations and things in the back end. That's going to be crucial for our GitOps workflow that we're going to work with today. Alright. So we've installed Waypoint server, and now we can actually take this for a spin and actually get an application deployed. So let me go ahead and set this up side by side, and let me also bump this up just a little bit too. K. So you'll see we have a few directories here. So these these are our demos. These are in fact our demos. Let's let's kick things off with the GitOps
16:08 Demo 1: Automated GitOps Deployment (Lambda)
16:31 demo. So the way that Waypoint works is that you can run different commands in Waypoint, obviously. The first one that we're gonna want to run is init. This is going to initialize our project, and then you actually don't have to refresh this. In real time, it will appear. It takes just a second, and there it is. So we have that loaded, and and and we're good to go. We could run Waypoint up, and then this would go ahead and install just about everything that we need for this demo. So what is this, though? Let's let's actually learn about what we're going
17:05 Waypoint HCL Explained (Demo 1)
17:07 to deploy before we go ahead and do that. So let's jump in here into GitOps. My apologies. I'll bump this up. Alright. And then let's let's use some. My goodness. I never remember my hot keys when it matters. There it is. Okay. And then let's set the language. Language mode. Let's just do a terraform because HCL is HCL is fun. JSON would be fine, but HCL is better better colors. So what are we doing here? So we define the project name GitOps because that's what we're going to showcase is the GitOps workflow in this demo.
17:47 So in this application stanza, we'll see that we have a build step. Great. We're going to be using Docker to build out this image. Inside of this build stanza, we have a registry, and we're gonna be using AWS's ECR, the elastic container registry, because when we deploy to Lambda, that is all that we are allowed to use, from from Amazon's guidelines. So, wouldn't recommend this in production, setting the tag to latest, but Waypoint does have the capability. There are stubs that you can put in so you can get like a SHA value. You can iterate
18:21 Waypoint zero variables, and so you can kind of define some other things if you kind of want to decorate this a little bit better or fill this in with a little bit more certainty. Again, definitely definitely don't recommend latest for for anything unless you unless you like puzzles, escape rooms, and the like, or 3AM calls. Those are I'm I'm not a fan of of many of those things, but, mostly mostly last one. Escape rooms are fun. Awesome. Next is our deploy step. So, deploy and release sounds similar, but they are in fact different. So what what what does that mean? Deploy
18:57 the Stanza, we we specify which plug in we want to use within Waypoint. So we're gonna be using Lambda, and we're deploying to The US West 2 region. I live in Los Angeles, California, so this is closer to me. Little bit better, latency time. We could get really crazy and use local, local availability zones, but haven't, haven't gotten there just yet. Lastly, we specify that for the release. So that's deploying. That's actually pushing our image onto or or application onto the platform of our choice, in this case, Lambda. But how do we actually tell Amazon,
19:30 let's shift to that new version? You know, say I have three versions. I wanna go from two to three. That final piece release is actually going to to specify that we need to shift traffic over. And so that is, that is everything today. Let's go ahead and take a look at our actual, application that we're deploying today. This is a very simple Ruby application. Apologies for all the all the you need to update your system. That's try to do that just about every five minutes, but clearly, failed. So this is pretty simple application. We can see that we this is just
20:06 handling a we're gonna be making a call. This is gonna return very, very simple, straightforward HTML, and and we can see it's gonna say happy day ending in y name. So we could probably make that a little bit more specific too, but we'll go ahead and handle that after we get this deployed. That's maybe that's a feature request we'll get from our stakeholders. Let's let's find out. So that's that's the application. We do have a Dockerfile for this as well, so we're not gonna be using those cloud native build packs to craft this image. So this is, again, pretty pretty straightforward.
20:38 Feel free to to ask any questions on these fronts if you have time. Instead of calling Waypoint up and actually running this manually, what I'm gonna do is I'm just gonna use that GitOps workflow right out of the gate. So we've initialized our project, which is necessary. You can't you could set this project up completely within the UI, but but with I I like having that Waypoint configuration file because it's it's a it's a declarative state. When working with any kind of operations or deployments, declarative state to me is just something that's really important to have because then we know
20:43 Configuring GitOps Sync
21:15 what we're looking to expect. So awesome. So let's jump in here into GitOps. Let's actually manage this through the UI just to kinda get an idea of all the fields available. You can do this through the CLI, but for for demo's sake, it's a little bit easier to walk through when we've got a UI. So you can see here the input variables is is one of the new features of zero five. We won't walk through through that today. Alright. So we have our repository here. I'm just gonna go ahead and grab this HTTP endpoint from GitHub,
21:48 and we can put that in here. This GitRef, we could use head, but I'm just gonna go ahead and use main. You know, let's let's just push to let's just push to main. I think that's how people do deploys now. Right? Sounds sounds safe. And then we're gonna wanna specify which actual path that we're going to want to look at. This this demo is kind of a a mono repo, so we have different folders for different demos. So I'm gonna go ahead and specify that we want to look inside of the GitOps GitOps folder. And then we're not gonna use
22:19 any authentication. I know that sounds risky, but this is a public repository, so we we should be safe on that front. And then I'm gonna go ahead and turn on automated sync so that as changes happen, they actually get pushed to, our our deployment platform. So I know that was a lot. I know that was a lot to listen to, a lot to see. Let's, let's let's see if everything is working as we expect. So the nice thing about Waypoint is that we can actually jump into this build and and kinda get some the telemetry on what's happening and some different
22:44 GitOps Triggered Build
22:54 logs. So here in a little bit, this build is already kicking off. I didn't instruct this to happen Because we're using that GitOps workflow, this is something that kicks off initially. So this will take a little bit. I'm more than happy to answer your questions at this time, but this this probably take, a minute a minute or two to actually spin everything up, build, push the repository, deploy the application, and then we can actually go ahead and test it and and push some changes to it. Yeah. Could can we just clarify the difference between deploy
23:05 Understanding Deploy vs Release
23:23 and release again? Like, I'm not sure I got that. Absolutely. Absolutely. So if you have an image and you want to get it onto your platform of choice so so in in this example, we're pushing to Amazon Lambda. Oh. There was there was actually one thing I I forgot to do. I'll I'll go ahead and do that in the background. That is we we have that Waypoint runner that I talked about, but it needs authentication to to AWS to actually carry forth these things. So I'm gonna go ahead and set that configuration. I'm gonna go do so in a, in
23:37 Handling Authentication & Failures
23:55 a different terminal just, due to some sensitive credentials there. So I'll go ahead and handle that, and then we'll we'll get this spun up, and then we'll actually kind of start to to kick around and get things pushed. So, what are the differences between deploy and release? We've our our platform of choice. So say that we have an image, a container image, we wanna push to Kubernetes. The deploy step for that would essentially be the kubectl apply. It's actually pushing that image and that deployment to your platform of choice. And then, with releases, that's deciding where you want to route your
24:32 endpoints to which version of your application. So, the deployment is really just kind of a push operation or or setting things up, making sure everything is is staged appropriately. And then, you know, you could almost think of it as GitHub branches. You know? You pushed up your code and everything like that. And then the release step is actually pointing, which is my default one that I'm going to use for these operations. It is it's kinda what's going on there. Does that make does that make more sense? A little bit. I think so. Yeah. I'm just trying to kinda work it in my
25:04 head of of what I was doing. Does does that mean that Waypoint and nowhere in the future will have the kind of built in primitives to do canary style deployments? Or does that come down to the platform of choice that we're actually deploying to? My favorite answer, it depends. So it's it is it is a little bit of both, honestly. So as long as your platform of choice, it it it allows for that to happen, then you're going to be able to do so. I I think that that's the the the niceness of Waypoint is that we can
25:32 kind of try to think about different ways that we might be able to enable that. So that that might be something that, you know, either that we handle more of on the Waypoint side, but if there is a platform if that platform supports that, then that's gonna be pretty straightforward and and pretty easy to do. Yeah. So if I wanna update my DNS on a deployment, would I ever do that in the release step? Exactly. Exactly. So inside of so inside of here, what this is with Lambda, I I'll I'll I think I'll be able
26:05 to show you with this example after I get all the credentials set up. Lambda is going to kind of keep track of all the versions that I push, and so with release, I could actually shift back. So if, if I've deployed, you know, a a new, title for for the web page, you know, it's just going to diff default to the latest release. But if there's let's say, like, oh, no. I can't know, I made a huge bug. This is this is not what I wanted at all. I'm gonna be able to actually shift back using that
26:36 with with Waypoint, which is which is quite nice. Okay. Is there any difference between running Waypoint up and what you've done through the UI? Absolutely. Or or in this example with GitOps, it's kind of list it's tracking the repository itself and then facilitating all of those operations. So I actually didn't need to run Waypoint up. What what the runner is doing, what the GitOps workflow is doing is essentially running up. And and everything in the UI should map to that same type of CLI workflow for sure. Okay. So, like, I'm trying to build correlations in my
27:14 head now. I wanna understand where Waypoint is. Is can I think of it as like GitHub actions or Jenkins? Like, is is it a traditional build system with some extra stuff on top or is it something else that has the build that kinda and I know that's a weird question, but hopefully it makes sense. Yeah. Absolutely. It's it so it it does encompass quite a few things, honestly. It it's it's it's it is a little bit more general, and I think that's that's one thing that I, is a question I typically get asked is that, you know, is is this just c
27:47 CICD? Is it just this thing? Really, it's trying to tie all of the things together when it comes to application, deployments and and releases and versioning and builds and kinda, like, make it all a platform. Very it's like almost like the, the Heroku effect, if you will. You know, kind of you you would start with your Ruby application. You would push that up, and then Heroku as a platform is able to kind of add in all this functionality to build your application, deploy it, handle the c CDN steps, handle your Ruby and Rails migrations. And, so that was very specific to Ruby
28:23 on Rails, though. And then Waypoint kind of operates that's mentally where I put it. And then Waypoint operates in this space where it's handling all of those things for you with the ability to have all these plug ins too. So future platforms that haven't been yet released are going you know, are are potential place that Waypoint could operate and and people could develop plug ins for as one example. Okay. Thank you. We have one question in the chat. So Raja Salan is asking, does the build run as a container on the host? Yes. So so what that's doing
29:02 so the right now, this so I've installed Waypoint server and actually, let me show you. So if I do a docker p s, we're gonna see a few things running here. Now I've got docker docker desktop running, you might see a couple other things and and some other things from previous demos. You'll see that I've got this Waypoint server running, which is actually handling all of the API requests and, like, you know, scheduling out all of the the work that I'm I'm throwing at the API. And then this runner is actually, you know, is doing all of the
29:35 work for me. So looking at these logs, this is what's handling the builds and the pushes. So, that's that's where all this work is happening from a compute standpoint, and then all of this is is on my machine right now. But later, when I install this to Kubernetes and and that platform, that's where all of those things are going to be executed with the with some exceptions, and I can talk about that once we get to that too. Okay. And there's a a follow-up there. So holy cow. Is this, your personal CICD with a DSL for multi cloud app deployment?
30:11 Exactly. Exactly. So if you if you do want to kind of fix that, you know, you you build it. You should only have to do that once. You know? If there are different platforms or architectures that you wanna build for, of course, you you you have to handle those. But, you know, it's it's nice to have that ability to swap out, say, I don't want to deploy to AWS. I want to deploy to GCP, and I want to use Google Cloud Run instead of Lambda or something like that. It's it makes for stubbing out that functionality
30:39 quite easier. Alright. Thank you. Absolutely. So we can see v two. Everything is better with v two. We that got kicked off, and this did fail because I didn't have the right credentials. Something that's nice was added in Waypoint zero five were these we we had statuses and reports, but they were just kind of like a, you know, didn't work, did work kind of UI, UX representation. And now we can actually start to hover over these things and get a little bit more context as to what didn't work. So, yeah, if something doesn't work, Waypoint's
31:15 going to do everything it can to let you know why that that you know, what happened there as well. So we can see this failed and and we know why. Of course, you realize the reason why as soon as you push the button or initiated the operation. I think that's how that magical law works, but yeah. Let me know if I got something wrong there. Awesome. So this is going to push up to ECR and then we're actually gonna start to see some things happen. Now once these items have been pushed, what's nice about Waypoint is that it has a service called
31:48 The Horizon Service (Public Access)
31:48 Horizon. And what Horizon is is kind of like if you've ever used something like ngrok and, like, a reverse proxy to show your deployments and your applications to people. That's similar to how Waypoint operates. Now because I'm on my local machine, I don't have that functionality with with this kind of deployment. It's not going to share publicly my my machine or those ports, which is like like, thank goodness, you know, that that would be quite a bit of trouble, especially for people that don't know that something like that could happen. So when you deploy to a public
32:21 platform though, that's when and it's publicly routable, then you get that feature add and that capability. So once this actually gets pushed up and deployed onto Lambda, we're gonna see a release URL and we'll actually be able to, see our deployment URLs too. Because this is Lambda, there's no way to wrap to that without having that ALB and, like, setting up many ALBs. So there is just the one, which is handled in this release step, but we will see all those deployments, but they won't have those, like, if we click this link, it's not, it it's not gonna go
32:53 anywhere, currently. Alright. Got it. Cool. So we have our deployment. We can see our status is unknown because it just takes some time to evaluate that status. And then finally, once that's released, we can actually click on that. I I have noticed that there are some cold starts with this too, so it might take just a second to actually get traffic loaded in there, but no no stranger to that kind of of outcome or operation. Available. There you go. Like, yes. Okay. Here we go. Here we drum roll, please. Yes. Okay. So, yeah, it's gonna take a second to load up.
33:30 And then let me double check what that URL parameter is here. I think it's name, if I'm not mistaken. Yeah. Name. Yeah. Yeah. Cool. So Okay. So just to make sure I understand everything that has actually happened here, maybe we could look at the HCL as we run through this. Absolutely. But this from this Waypoint HCL file, we've described our application which has a build step which uses a Docker file and pushes to to ECR Container Registry. Once the build stage is happy and passed, it moves on to the next phase, which is the deployment stage where it's actually going
33:42 Demo 1 Recap & HCL Breakdown
34:07 to create a Lambda function that uses our Dockerfile, And then there's a final phase of release where it's going to connect the application load balancer to the Lambda function exposing it to the Internet. Exactly. Correct. Phew. Okay. Very cool. And I guess I mean, I can add as many use steps to each of those phases as I need to describe my application. Is that correct? Exactly. Exactly. What's nice is the the ability for all of those plugins. So I'll go over here to the the documentation, and we can see that there are quite Could you zoom in on that? Yes.
34:26 Waypoint Plugins & Extensibility
34:45 Absolutely. That should be good. So here in Lambda, we can see all of the items that are supported, all of those different flags or options that we have available to us. So if we wanted to, say, change that tag from latest to actually getting the git reference, we we could go ahead and do that here. And then if you wanted to take a look at, like, the the l b, that's think that's this is part of core right now, so so we don't have that documented. But but Lambda, Kubernetes, other things like that are referenced,
35:18 and then all of there's different context too if you wanted to say say you wanted to not for Lambda, but for other examples, you wanted to just use local support for your image because, you know, if you're running your Waypoint server on your machine, it might not make sense to actually push your image to, Docker Hub or any kind of container registry. Right? You might just wanna be you wanna test something or, oh, no. I'm operating in stealth mode. I don't want I don't want my people to know about my secrets. You you you do have that capability. Support
35:49 too, I've seen there? Yes. Yes. Yeah. I'm a big fan of build kit, so that's awesome. It's it's it's quite nice. I I'm excited to see some more work done around, like, Docker less builds and and things like that. There's some well, the team, you know, we just put out zero dot five, but already talking about zero six and some features on that front. If you do wanna take a look at the milestone, as as things get identified for work for zero six and some other, you know, minor releases, things like that. Definitely worth worth checking out on on GitHub
36:25 to see what is what what the team is starting to plan and think on on that front. It's the more that can be done there, the more that we can kind help enable these non root type type containers, I think is always React to root all the things. What's the what's the problem? What's the worst that could happen? Right? Is it easy? I mean, I don't want to say easy as a terrible choice of word, but I mean, can anyone write a plug in like if they were to kinda sit down and spend a bit of time?
36:50 It's not terribly complex, I hope. Absolutely. Absolutely. It's and more than welcome to. If if that's something that you you're you're really keen on doing, please feel free to reach out on that front too. I I haven't built one yet. I I I'm looking to do so soon, as well as, like, use feature flags and there's like, it's it's unfortunate. We only have, you know, the time that we do today to to to chat. You know? But, otherwise, I go into so many features, but happy to happy to do that offline, happy to do that
37:19 on Twitter or email or whatever to jump on a Zoom call. But there there is things like dynamic configs and using configuration maps or secrets in Kubernetes. And, you know, if that changes your reload your application, live reload it. There integrate with Vault so that you don't have to pull those credentials from one source or another, you know, make it a one time password. There's there's even though this project is still relatively, you know, new, it's there's so many things that that are in it's just chock full of features and enables quite quite a many
37:53 So we do see our application is running and working. In the interest of time, I'll I'll I'll spare you, some some changes and things like that, but, just because I forgot that first step. But, but if I wanted to change this to, you know, change this to Friday, I I could go ahead and do that, push that, and then Waypoint's gonna go ahead and if I choose the right browser tab. Waypoint's gonna go ahead and load that in, show that build, show that deployment, and then go ahead and release it. Really, really fantastic. The more that gets added to this, I'm
38:27 I'm I'm really excited to see it start to kind of evolve to match some features within and Argo and make it easier for for people to actually load these things up. Is it possible to have gated releases, like, that require manual approval of some way? I I've been asked that question a few times. I'd there there is. One way to do it is you could use GitHub actions, for example, and then use those gates on whether it be a quality gate, whether it be a manual gate, and then you could actually so so Waypoint has
38:39 Gated Releases Discussion
38:58 the help. So Waypoint has all of these different actions that you can run. Build, release, and deploy can be run separately. So if you wanted to say build it and then like hold off, let's let me, you know, I wanna make sure this this check sum is okay or whatever it might be. You could actually run those atomically rather than just running up. Up is just kind of like the the I can't remember what it was in Ruby, but I'll remember it someday. The the was it, like, d b seed migrate, all of those things? There was a command
39:31 that you could just, like, do everything, and it it works, like, 5% of the time. But if it did, that was really nice. But, yeah, you you do have those options available to you. And then that's the way I've seen it done so far is whether it be whatever CI platform that you have, you could separate that if you want it. Okay. Thanks. Absolutely. Awesome. Well, that is our first demo. That is GitOps and quite straightforward to use. I never use the word easy because easy is is is never easy. Let's just be fair. Awesome.
40:00 Deploying to Kubernetes (Demo 2)
40:07 I'm gonna go ahead and take a look. Oh, I've got some good news. Our EKS cluster has been set up successfully, and looks like that is ready to go. So let's let's get let's get dangerous here. So we unfortunately, listing my file system might contain some spoilers, but Yep. Let's go ahead and move into the kube control demo, and let's let's talk about what that is. So in zero four, we got this capability for so let me step back for a second. Waypoint contains the ability to deploy to Kubernetes. But let's say, you know, HCL is nice
40:22 Demo 2: Deploying to Kubernetes (Kubectl Apply)
40:49 and all. It's pretty straightforward, but let's let's you know, what if we have some deployment YAML that we have instead. Right? I don't wanna have to rewrite all my code. That doesn't make sense. Right? Let's the goal is to meet people where they're at when it comes to making these these processes easier. Right? That's the hope hopefully, the goal. So in this example, I've got a pretty pretty straightforward, pretty simple deployment here, and then I'm gonna go ahead and be building this this Python application. So you can see we've got a requirements text here. Other fun thing about this is that or
41:31 or no. This one's not gonna use, Cloud Native Buildpacks. I I I don't have any demos for that today, but we get to see a Dockerfile with a little bit more to it, and and then we can kinda walk through that Waypoint deploy really quick too. Let me go ahead. At some points in time, I I I I've been talking with the teams about, like, HCL colorization, tokenization, and support. Right now, we do have oops. Here's my Terraform. We do have Terraform, obviously. But when it comes to creating something for HCL, I know there are couple of Versus
42:07 Code plug ins for that. But when it comes to visualizing things, I think the intent is to want to provide a nice Terraform experience, a nice Waypoint experience, and kind of, like, make that customization, something that's a little bit better within Versus Code. So if you have any ideas on that front, please please feel free to forward them, and I'll get them to the right team members. But, that's something that's one of my personal selfish wants is is this ability to kind of have this nice, like, tokenization of Waypoints and and things like that. Right
42:33 now, I'm just changing my language for Kubernetes, but fingers crossed, we can we can make this happen. Awesome. So this so let's walk through this this this demo. So Kubernetes apply. Like I said, we have this Kubernetes support, but what if we want to use YAML? Waypoint zero four releases capability so that we can actually perform these kube control apply types of operations. So in this in these examples, we won't actually see that release because we won't have an artifact to to to look at or or to gain, but we will see that final deployment.
42:45 Waypoint HCL Explained (Demo 2)
43:10 So let's go ahead and and do that. Here, I've I've specified some labels that I want to add to our deployment. So that's just an arbitrary assignment. Right? You're you're just making up that name labels. That's nothing special in the ACL. Okay. Exactly. Yeah. This this this is a callout for the application stanza, but but like the service environment, all of these are are completely subjective. Yeah. We could alright. Shh. Don't tell anyone. We're just gonna we're just gonna push this live. Could you change labels to just tailor? Could you call it tailors? This this one is within
43:43 the Waypoint's name spacing. Alright. Okay. So this this will actually track to to the labels object. But but, yeah, these these here are are the ones that are a little bit more subjective or nonspecific. In this build stanza, we're also gonna use Docker, and then we're going to be pushing this to my repository. This is going to use Docker Hub. And, again, don't use latest if you can help it for for this demo. This should this should be okay. And then inside of this deploy stanza, you'll see I've kind of flushed this out with a little bit more information.
44:17 What this is doing is it's taking a look at the path, and and Waypoint does have its own functions just like Terraform, just like other other instantiations of HCL across our products. So you so we're gonna be taking a look at this path, looking in the Kubernetes folder, and then anything with the Kubernetes apply label is what is going to be used. So we could have a a whole bunch of YAML, but only specify, you know, the exact pieces that we want to pick out. Alright. I'll go ahead and save this. Let's go ahead. So we've worked with Waypoint
44:50 Installing Waypoint on Kubernetes
44:52 locally. Let's let's to the cloud. Let's let's go to the cloud. I'm gonna go ahead and do let's let me update my cube config. We're using that EKS in action repository, so I should be able to. I also do use shorthand. So if you do say see me just typing the letter k, that it's completely intentional. I've aliased it to kube control. Kubernetes, if you haven't used it, has shorthand as well. So I could write this, which is so much typing. Right? It's like a full sentence. So I or I could just do this, which, you know, looks looks kinda like standoffish.
45:31 No. You know, the word no. But it gives us the same results. So I'll show you I've got nothing up my sleeves. I'll get the pods, and we'll see that we've got nothing in our default namespace. How the heck do we get Waypoint installed on Kubernetes? Well, it's pretty simple. That's straightforward. Let's let's go ahead and install that here. We just specify that we that's that's that's all. We just switch out the platform. It's that easy. Where's the complicated find the helm chart, rate the values, fail, run the template, run the apply? You're just you're just doing it in a
46:07 same way. No regular expressions. No go template string templates. I'm really sorry if it's if if that's something that you're passionate about. That's you you won't find it here today. Awesome. So Nice. I do I'm starting to appreciate these these helpers a lot more that we're seeing from commands. I know Stellium does this. Waypoint's doing it. We're seeing it more and more, and it's yeah. I'm all helmed out, I've gotta say. So Exactly. It's it's it's well, you know, well well stated, well charted. I'd it's it's I I I really like Helm. I like it in terms of package manager
46:22 Waypoint vs Helm Comparison
46:42 and being able to have all these options and that declarativeness when setting everything. I'm a huge fan of the project though When it's using it is fantastic, and I think that's the biggest thing that I I hear feedback on too is that, you know, when it comes to writing a Helm chart, writing Helm chart is it it can take a lot depending on what you're going to do as well as the people that want to create operators and then wrap their operators with the Helm chart, and it's this, you know, gargantuan her just crazy feat to to put together. But alas.
47:15 Is there a managed Waypoint server by HashiCorp? There isn't right now. So Waypoint's a a % open source. So so if there's something that you want to see added, please open up an issue for it. It's it's it's different in that, you know, as as projects get to different phases of their life, there's more help needed in certain areas. It might sound obvious, but so, like, right now, Terraform core we've hit Terraform1.o. So if there's a core functionality or feature, it's probably going to be the HashiCorp internal team that's working on that as an example.
47:19 Waypoint Open Source & Roadmap Discussion
47:49 So it it are are we looking for a lot of help there? Not not really. But when it comes to providers, documentation, some other instantiations of Terraform, that's that's going to be a lot more helpful and and and definitely a better use of time. I haven't tried opening anything up on Terraform core just yet, but but, yeah, I would it it'd just be harder to identify something that's there because it's been so well built out. With Waypoint though, it's it's it's very open. So if there is something that you see or you wanna collaborate on, I I know
48:19 there's some, like, good first issues that are marked in there too. So but, yeah, no no managed offering just yet, but but who who knows what the future brings? I don't have any I I don't think I've found a crystal ball that's been reliable just yet, but, you know, goodness. Awesome. So looks like we do have our Waypoint server installed on Kubernetes. Let's go ahead and confirm that that's the case. Let's go ahead and get those pods again, and we can see we've got our server. We have our runner. Fantastic. Let's go ahead and authenticate and jump into that
48:56 UI. Let me go ahead and close some things out because that would just not be fun to be in the wrong context. Alright. So this should look pretty familiar. We've got our projects. We don't have anything instantiated just yet. I'm not gonna be using the GitOps workflow with these, so I don't have to go and set any AWS credentials or anything like that. I think in the future, it's it's it'll be nice to have when you install this, kind of have it bootstrap itself. And so, you know, that's I'm curious to see how, we start to think
49:28 through that as the project matures and, how do you how do we, you know, bootstrap with Kubernetes authentication? How we bootstrap, running in AWS with instance roles or or, you know, switching policies and things like that, assuming roles and whatnot. It should be an interesting conversation. Let's go ahead and initialize our demo here. What this demo is going to do is kinda show you again how we can get that YAML into our Kubernetes cluster and then kind of with the, you know, with our Waypoint Waypoint tinted glasses on. So let's jump in here. We'll see everything's all built out. I'll go
50:07 ahead and put this to the side, and then I'll do a Waypoint up, and we should be off to the races. Okay. So while that builds, we got a question from Rajasthanan again. Why do we always have to dash accept toss? So right now, the so because of that integration with the Horizon service clear that up. That is the terms that's the TOS right there. So if you don't accept that, you can you can work without that Horizon service, but that is that's explicitly why that TOS is there. And just just to make sure because there is that transference of data and
50:17 Understanding --accept-tos
50:48 you're linking together these applications in a public space. I just wanna make sure that people are aware of that and, again, you know, aren't aren't, sharing applications that they didn't intend to, and that's kind of the the the TOS thing that is at the end there. But, not not, not you don't have to use that if if that doesn't make sense for for your team or for your workflows. Okay. So if you didn't include the flag, would it have prompted you to confirm or accept? Okay. I see you Exactly. Thanks. Absolutely. So we so here, I'd I won't be able to
51:20 Demo 2 Deployment & Application Check
51:23 click on this today either. For for the next two demos, I won't be able to click on that deployment and show off that Horizon feature just because I I I don't have a service defined here. I could go ahead and create one, but I I don't have one defined here. And then or or never mind. I'd I'd forgot this one did work. We get our adjective and that works for me. We get we get our adjective and our our animal, and so we can actually see this this service working as we intended. Let me go ahead here and and actually
51:51 Updating Application Code
51:53 change out this code, and I can show you the difference between releases and deployments too. So let's go ahead into the application. I think we're gonna want to go in here to templates. And then very cool Waypoint. Let's we can be more descriptive than this. Right, David? Like, let's let's, make this Presumably smashing? Oh, I like that. Awesome. Okay. I like it. Let's let's let's ship this. Okay. So I'm gonna go ahead and view a Waypoint up. And you can start to see now that, you know, we have things like this. This kind of workflow makes it
52:34 really easy, especially if you're hacking on something or or trying to get something out. It really it works well for that kind of workflow. Know I've gotten quite a few demos pushed out this way, and and it's just kinda fun to have that feedback loop. That's the goal of Waypoint is to make a, you know, developer's life a lot easier in that respect rather than have to worry about getting all of these things set up and and running and working. You know, you could actually focus on what you're trying to do rather than how to
53:01 set it up to do the thing. Okay. So let us jump in here, and now we can see that we've got presumably smashing, and then we could use this release to to point back and forth. So I don't know if I can jump in here. Yeah. So I can jump back with Waypoint release. I'd specify one and that would shift it back. So Okay. I'm going here. And then oh, and that's what it is. We won't get that final I I just had it mixed up. We won't get that final release endpoint just because we don't have that service defined, and that's
53:36 that's okay. We don't wanna share this with the world. I I think there's there's more that we could add to it. You know, OpenID Connect, some more features, different colors would probably be helpful. So that's our second demo showing off kubectl apply in that plugin and how that works. Okay. Can can we try something? I just like Absolutely. You know, everything's worked so far. So, you know, well done. But let's break it. What's the feedback like if my Docker build fails or my Kube control apply fails? Could we maybe just intentionally break the Docker file and the and the
53:53 Intentional Failure Demo
54:09 the deployment template? Absolutely. Let's go ahead and do it. So here, we could try to would you rather how how do you wanna break it? Do you want to we could either blow up the image. You know, we could do, like, p ubuntu, like, an the not so great smelling ubuntu. Ubuntu. I like it. Or just, you know, part of a pub sub thing, maybe. I don't know. We'll get somebody marketing to work on that. Yeah. Alright. So if we start to build up here, we should see that so we get that feedback immediately within our CLI. And then here
54:43 Handling Failures & Recovery
54:49 in just a second, we should see that build fail. And then we can actually go in and introspect this, you know, what the heck is going on. So we could see Docker login. It's assuming that it must be private because, you know, it can't find this anywhere in the public registry, which is which is good. But, yeah, that's the that's the status report kind of functionality that we get to. Let me do that actually. So Waypoint status, we can actually start to see that in the CLI. We we we get that visual representation of it over here in the UI, but we
55:20 can actually see, you know, what's going on. We don't have a deployment status. We don't have that release status because we just failed our build. If we fix that and push that back, then we're going to get, you know, available, looks good, checked, you know, x x moments ago. But but, yeah, that's that's what that looks like when something fails. And then we do have that helpful context in terms of go ahead and just run it again so we can see that error. We get that feedback immediately as well. So if we now fix the image but break
55:51 the deployment YAML and then run a Waypoint up, it's gonna do the build, fill the apply. And then if we fix the apply and run a Waypoint up, will it skip the build and do the apply? I think so it should do the apply. I'd I'm curious to see. Let's go ahead and give that give that a go. I think that my prediction is that should be deprecated. Right? A bit of you. Yeah. Go for it. So let's go ahead and do that. I think it should break because I think Kubernetes will hand it back. This Kubernetes one dot
56:30 two one that we're running to. I I was I did run something earlier locally where I had one nineteen installed and because it is using my local cube control applied binary, that that's where okay. Cool. So we we get that feedback there. It it was saying that because of the the version differences, the cron jobs and and it was basically having an issue with an API version at at the end of the day. And so I got that feedback, but looks like we do get that as well here because that tag doesn't exist. And then we
57:03 can actually see let's go to this deployment. And then, yeah, we can actually see via the statuses that, that is not what we wanted to see happen, which is nice. Cool. Okay. Let's fix it and run it one more time, and then I'll let you move on to your last demo. Yeah. Yeah. Alright. I'm just too curious. That's my problem. Oh my gosh. It's it's the best thing. Never stop being curious. It's it's, it's fun working on these demos too, frankly, because there are so many, it's I feel like that's the best way. It's it is as as backwards as it
57:47 sounds, I feel like working on demos and trying to find, you know, all these use cases and workflows, to me, is a lot of fun because then you get to find these edge cases in these wild kinds of states and things that come up. I when you're working with something in production or, like, working on a pipeline, yeah, I feel like you don't always get that experience because you're so focused on making it work. You are with the demo too, but, you know, it's with the demo, you can be a little bit more curious and push on it and see if
58:13 it's got any flex to it. So always always fun. Awesome. So it still did the build, but it was all cached. So it kinda flew past it, but it worked well. Awesome. And there we go. Just like that. Cool. Any any questions on this front? Otherwise, I've got a fun way to cap things off with a final not not not quite typical demo for y'all. No. I think it's all starting to click, and it's starting to make a lot more sense in my head. I understand kinda what its responsibilities are, what it's trying to do.
58:31 Demo 2 Conclusion
58:51 It's yeah. Definitely making progress on my end. So all good. Awesome. Awesome. Always a good thing to hear. Yeah. If I can understand, everyone can understand it. So That's that's that's always the goal. That's always the goal. Exactly. Go ahead and actually jump into this. Are you familiar with the Dagger project? Yes. So I I haven't gone to check that out as much as I've wanted to. I I really want to I I haven't done a deep dive with it just yet. I I I've been invited to the repository and so I've gotten to like build it.
59:12 Waypoint and Dagger Comparison
59:27 I've done a couple demos locally, but it definitely something I've I've got my eye on, you know. It feels like there's quite a lot Dagger, so it's cutting edge. It feels like there's a lot of crossover between what what Waypoint and what Dagger are trying to offer. They're both kinda using BuildKit or can use BuildKit. Except this is obviously using HCL and Dagger uses Q, but yeah. Really cool the way they they're both trying to solve this this this problem. Like this is a real problem that needs some better tooling. I agree. It's just too it's too specific.
59:56 There's no, like, ability for dependency injection or or really anything like that for for this kind of tooling. So it's well, you know, like I said before, I I think that honestly, every single company I've worked at except for HashiCorp, they say it more tongue in cheek, but, like, we do things a little bit differently here. You know, it's it's it's honestly what I've gotten every time I've been like, can we go over the build system? Can we talk through this? I don't really quite understand how this works or how do you do this here.
1:00:00 Deploying minecraft (Demo 3)
1:00:22 So those those conversations are as really I find those really interesting to to kinda talk through. Alright. My car alarm's gone off. I'm just gonna quickly go turn it off. Absolutely. Absolutely. Well, please please feel free if you have any questions on these fronts to to put them in the chat, and we can get to that. Otherwise, I'll get things kicked off while David handles one alarm and and one rear in IRL status. You know, like like we've seen here. We've got some successful statuses here, but, yeah, car alarms definitely definitely worth getting fixed. So
1:00:59 our last demo today is going to be something a little bit different. They're like, yay. Okay. Congrats. Congrats, David, on your on your car. Sorry about that. I'll just leave you hanging there. No worries. No worries. It's it's your show now. Yes. It's actually, yeah. It was it was actually me that did that with the car alarm. So okay. Let's let's get into let's get into the next demo. And that is it's gonna be a Minecraft server. We're gonna go ahead and run that on Kubernetes. We're going to deploy it with Waypoint. And because this image is already defined, we we don't
1:01:25 Waypoint HCL for Docker Pull & K8s (Demo 3)
1:01:36 wanna build it. We kind of just want to shim this together so that we can actually use Waypoint to deploy this. You know, probably not the most practical example, but it is if you like playing Minecraft and you wanna set the server with with one of your favorite tools out there. Am I right? Okay. So let's let's let's take a look at how we get this done. Go ahead and do my favorite thing here. And there we go. So you won't see things that look too different here. You shouldn't see things look too different here. We've got our labels, we've got our
1:02:08 projects, we've got our app stanzas. The real thing that's different here so right now, it's it's a requirement within Waypoint. You don't have to have a release stanza, but you do have to have a build and a deploy stanza as a bare minimum. It's you know, we we've talked about this with the I've talked about this with the team in a few different contexts, but it's my hope that these kind of get separated out over time. But, you know, Waypoint doesn't work best when you're not using it all of the pieces of it. You know, it's
1:02:36 you you'll get those feature ads. You'll get those benefits. But, you know, it's it does work better together. But if you did just wanna build something and use Waypoint to do that, that's that's something I'd like to see in the future, you know, personally, selfishly. Here, we're just gonna be pulling down this docker image here. What Waypoint does one thing I forgot to mention was when we were let me actually go back to this. We're seeing all these builds, we're seeing all these logs. Where the heck are they coming from? Waypoint injects an entry point
1:02:51 Entrypoint Binary & Architecture Doc
1:03:12 binary into your docker image when you use Waypoint to build it. So in the example of our lambda function, it was actually be able to look at the CloudWatch logs and pull those in. And that's the benefit of the entry point is getting the application logs. That's how we can then evaluate the status. Is it up? Is it down? What's going on? And then that entry point will allow for some neat functionality in the future too. I I can only, you know, only only assume. One one also thing to point out is that in this release,
1:03:44 we Mitchell and and the team wrote up the architecture document with, oh my gosh, pictures. This is so helpful to kind of understand, you know, it's you can read things all day, but like this, when you have this summation, the the boxes and the arrows, really, really makes for for some good good reading. Boxes and arrows. Yeah. It's it's it's it's nice. That's I think that's what I'm best at drawing. If it's like actual art, terrible. But when it comes to boxes and arrows Yeah. Pretty good at stick people. It's a a mix for mix for good
1:04:18 past time. But, yeah, if you're interested in the, like, internals and the architecture of Waypoint and, like, really wanna understand the deep technical pieces of it, definitely recommend checking out architecture.md in the root of of the repository. Lots of lots of time care and and and just chances for illumination on that front. Cool. So apologies before I get too too sidetracked. We're going to so I talked about this. We talked a little bit about entry point. Finally, this deploy step, we've seen this before too. So this is just using the Kubernetes apply. I've got a deployment
1:04:53 file and some other YAML items which you can take a look at right here. So I've got my deployment, a whole bunch of things here. I do update this I do increase this initial delay seconds because since it is a Minecraft server, it has to generate some assets and that does take some time. So like David, I was I was curious and, like, is different compute? Can I make this any faster? But I had haven't really been able to find out anythings while it's initializing just yet. But if you if you have some tips or some suggestions on that front,
1:05:27 please let me know. I'm I'm all ears on that front. We are defining a service here too because I'm gonna want to connect to this with my local desktop client and specify that load balancer address so that I can connect this. And if anyone out there has Minecraft Java Minecraft on their machine too, you know, you you would be able to join as well. Alright. So let's go ahead and kick this off. Let me close out things I don't need. That's always a plus. Okay. So probably probably getting the hang of this by now. We wanna run our Waypoints in it,
1:06:05 and we will see that project instantiate. And drum roll, please. Still waiting on the team to add music sound effects to this, but I don't know if they're gonna accept that feature request. Yeah. Like, oh, yes. Okay. I I would I don't have a drum roll, but I'll work on that for next time. It's I I I got it. We we have to keep doing streams because that's that's yeah. That's that's that's where that's the magic right there. Awesome. So we've initialized this, and we are connected to the right Kubernetes cluster. Everything is good. We don't need any authentication
1:06:20 Running Waypoint Up (Minecraft)
1:06:40 details because they're all accounted for. The build is going to be very quick because it's it's it's just a docker pull. And I did run this as did run a couple tests on this beforehand, so we have that already instantiated and good to go. Cool. We're not going to or we should get this release status here in just a little bit, but looks like everything has loaded up just like we wanted. We're not gonna have the entry point because we did a docker pull, so there was no injection into this pod. So we won't get those logs
1:07:15 in Waypoint. But at the end of the day, this is really just, you know, off the wall demo and that, like, let's just get a Minecraft server up and running. So let's go ahead and take a look at the logs. I guess I could do that with a sidecar injection as well though, right, as part of the deploy step for when you do use a Docker pull? That's true. That's true. I I do like that. And and and and, honestly, I could probably take take a look at the how that how that Docker file is written, and then
1:07:44 we could actually just kind of, like, port that over to be its own Waypoint project or or file, you know, basically put it into the repository. I like this. I like this. Yeah. TBD. I'm gonna have to open up an issue for that. That's that can make for a fun time. So this is the main craft doing the generation thing. Right? Okay. This yeah. This was this was a fun demo to work on because the fact that there was so much going on with it's it took like oh my goodness. It was it was a very frustrating,
1:08:14 like, thirty minutes the first couple of times that I was trying to get this set up because it would keep crashing just before it would like get here. So so we we we yeah. So just like this. This actually I think it's yeah. I think it might have crashed here, but let's let's just go ahead and see. Might have restarted. Yeah. It's it's always fun. Okay. So so, yeah, it'll it'll do this. It's it's probably about it's like it's finger fingers crossed. I think it's like 5% of the time it it doesn't work a %, but that's that's okay.
1:08:49 That's that's the the stakeholders have deemed that as acceptable for for this demo. I'll go ahead and get this loaded up too. I'm using the latest version here. I I think I've migrated my account to I I I haven't checked out some of the newer Minecraft stuff in dungeons. I've heard it's a lot of fun, but I got some coworkers that are are quite deep into dungeons, funny enough. But definitely, you need to check that out later. Alright. We'll do this. The music, didn't pipe through, so it might be a little bit loud on my end, but whatever. That's just that
1:09:16 Connecting to the Minecraft Server
1:09:24 makes it more engaging for me. I'll I'll save you from blowing out your eardrums. Cool. Alright. So let's go ahead and actually get this get this service. Let me pump this up. Alright. And so oh, that's right. Let's go ahead and close that. I don't I use one time logins in my terminal and so I don't have AWS credentials over there. Shoot. But I I have them over here so I'll go ahead and get them here. Alright. So this is the cool. This is what I want. This is going to be the load balancer that is
1:10:11 in front of our Minecraft server. It's it's all up and running. We check the logs. We're good to go. I'm gonna go ahead and pull those logs back up so you can actually see me join into that session. Clear the buffer and let's do a direct connection. We can see we've got a load balancer from before. Clear that out. Join that server and then we should see only dull is my moniker over here. We could actually see that I've joined the game. I can run around. Hopefully, this isn't clipping too bad for for anyone. I think I've
1:10:43 done some streams in the past and spend like lag lag lag. But but yeah, we could we could enhance this. We could add in the ability to like jump and fly. This is just very very base bone bare bones right now. Not not too much functionality added, you know, pretty pretty static but we've done it. You know, we could we could have people all over the world joining our Minecraft server and we deployed it with Waypoint. Like David said, quite a quite a few many opportunities to we could enhance this. We could add entry points.
1:11:08 Demo 3 Conclusion & Future Enhancements
1:11:15 We could even add, like, configuration map integration with Kubernetes. We could add in some secrets of vaults and kinda make something shift around and change. And it seems you've got me thinking, David. I might have to let you know when we have a v two of this demo because that's I I didn't realize how much more we could actually do. This would be kind of fun. That Awesome. That concludes my my demos. I'll go ahead and disconnect. You'll see that I just left the game, and that is that's Waypoint, folks. Awesome. Thank you very much for that. Let
1:11:42 Demos Summary & Audience Feedback
1:11:44 me pop us back over here. Yeah. Three really great demos. Nothing went wrong, annoyingly. Well done. I think each of those demos really helped cement the idea of where Waypoint fits in, what its responsibilities are, and I think that's the the best takeaway we can get here. In fact, we got a a comment to send demos great. It shows how Waypoint is progressing and I do get it more than when it's first released. Yeah. Me too. I I I was confused. Today, I'm no longer confused. So thank you very much for that. We got another comment from Russell w.
1:12:20 I find we do things differently here equals we never read the documentation. Yeah. There's there's probably a bit of that. That's funny. Alright. Awesome. So if anyone has any more questions in the chat, you've got about one or two minutes to get it in. Otherwise, we will be saying goodbye and leaving it there. So what's next for Waypoint? Can you share any any juicy gossip of us? Yeah. Yeah. So that's it's and and one of the fun things too. I used to work at Walt Disney Studios prior to working at Hashicorp, and so it was very difficult
1:12:41 What's Next for Waypoint? (Roadmap)
1:12:55 to talk about. You can't talk about movies and things that are happening. So I I I do like being able to work more in open source and being able to talk and and kinda share on that front. But so so really so, zero five was really focused on this visibility, this governance, this, you know, input variables, OpenID Connect, those statuses that that I just kinda, like, very quickly walked through. And so zero six is really going to be more focused on platform is is the initial thought. So when it comes to making those Kubernetes workflows work better,
1:13:28 if you're running on something like ECS or Nomad, that's kind of going to be the the more generic drop in that focus is what it's looking like right now. So as we start to, like, do sprint planning and and identify some more things that we want to do, you you'll see those things get added to the zero six milestone within GitHub. That's the best place to tune in and check to check things out. I think that there might have been a public board at one point in time, but I'd say milestone's probably the best thing to
1:13:55 take a look at if if you're curious on things that are upcoming or things that got kinda pulled down and and planned as it moves into those phases. So I'm really excited to see what makes it. As with any release, you know, there's things that get worked on, things that don't make the cut that fall on the the cutting room floor. But the good news about that is they don't get put in as DVD extras. They probably just get deferred to a later release or a minor release. So that's that's always good to know. Awesome.
1:14:21 We have a tongue in cheek question from Russell. So which movies are HashiCorp Studios releasing next? It's I I I can't talk about that. I I can't talk about that. But maybe maybe we could talk with Mitchell and Arman about that. You know? Maybe we wanna start up a new a new studio. It seems like there are a lot of streaming platforms now. Definitely learned some things at at previous job with the with streaming platforms. So I'll get back to you on that. Yeah. I mean, Mitchell might be looking for some new things to do. Now he's got a bit more
1:14:23 Final Q&A
1:14:53 time. So maybe maybe HashiCorp Studios is the next venture. Right? Alright. I don't think we're gonna get any more questions. So, Taylor, I'm gonna leave it there. I'm gonna say thank you so much for joining us. Really, really great demos. They they really helped my understanding of Waypoint and others. So thank you for that. And hopefully, we get to do something again soon. So have a wonderful day, and I'll speak to you later. Thank you so much, David. Thanks everybody for joining. Cheers. Bye.
Technologies featured
Meet the Cast
Stay ahead in cloud native
Tutorials, deep dives, and curated events. No fluff.
Comments