Let's get this thing started. Hi everyone. Thanks for joining us today. We are going to have a wonderful webinar. I am Chris Short, Principal Technical Marketing Manager at Red Hat. I am also a cloud native ambassador. I'll be moderating today's webinar. A few housekeeping items before we get started. During the webinar, you're not able to talk as an attendee. Sorry. But there is a Q&A box at the bottom of your screen. Feel free to drop your questions in there and either myself or I will ask Tim. We'll get those answered. And without further ado, I'd like to introduce Tim Atnall, co-worker and senior product manager at Red Hat. And they'll be talking about building Kubernetes operators in an Ansible Native way. Take it away, Tim. Thanks. Great. Thanks, Chris. And thanks, everyone, for tuning in. Like Chris said, my name is Tim Atnall. I'm a senior product manager with the Ansible team. And I'm a longtime Ansible guy. Really know my way around Ansible having been a contributor and then later was a user customer and joined Ansible and came along for the ride when we were acquired by Red Hat. So I'm actually not a Kubernetes guy. I mean, I've been learning it. I really love it. But I come from this Ansible background. What I wanted to share is a way that you can use Ansible and Kubernetes together. So let's see. Am I sharing my slides, Chris? Can everyone see? Yes, you are good to go. OK, great. Excellent. So what we're going to be covering today is just a little bit of background about what are operators for those who may not be as familiar and why you'd want to use them. And then why would you want to use Ansible to build them? And how do you even do them? Why would you want to build them using Ansible? Because isn't Ansible one of those traditional IT tools? What does that have to do with cloud native applications and architectures? And then I'm going to show, do some demos of how you would develop your first operator with Ansible and actually show a basic one that we've developed and then give you some information on how you could learn more about this. So with that, I'm going to start off. This is clearly a CNCF webinar. And we all know and love Kubernetes and what it can do and all the functionality and how it's bringing web scale architectures to our industry and how you can utilize it and all the great things that it can do. So it's just worth pointing that out because what operators can do is build on all of that great functionality and all that power of Kubernetes here. And then what Ansible can do is make that more accessible to more people to be able to use and automate what happens on their Kubernetes clusters and with their cloud native complex applications. So what most a lot of people don't realize is that really Ansible and Kubernetes are quite a natural fit and have a lot of similarities in a number of ways. Both of them help make hard things easier through automation and orchestration. And they're both very active, widely used open source projects. And last year, I think we were 6 and 7 on the GitHub Octoverse report when it came out for activity. So we were Kubernetes and Ansible projects were right there neck and neck in the top 10. So we both have very vibrant communities working together to solve common problems. We have KubeCon coming up and it's going to be, from what I'm hearing, 12,000 people gathering there. I'll be there in the red hat booth for any of you who want to stop by and say hi. I'll be talking about this there. And the other thing is that they both use YAML to describe this desired state of the world. They're both desired state engines. They both use YAML. And here's an example of what I mean. On the left here, we have a definition file that you could use with KubeControl, for example. Setting up a config map. And you could feed that in. And great, you have a config map now in your Kubernetes cluster. On the right side is a single task from an Ansible playbook using our kates module that defines the exact same config map. And you can see by the parts that are in red are almost identical to the definition file you would use with KubeControl. Now the one thing I always like to point out, and one of the first advantages of using Ansible for this is if you look down there at the color, there's a Jinja 2 variable there for templatizing what you do. And this is something that hopefully I'll be able to show you in the demos that you could templatize your definition files and how you deploy and manage things in Kubernetes. If inlining the definition file, like I showed in the last slide, isn't your thing, you can also do something like this. In fact, a lot of people do this, and we actually have it set up this way in our demo operator that I'll show later. You can keep the definition file separately as a template or as a YAML file and read them right into your playbook and feed them into the kates module to get passed on to the kates API. So it's a nice little piece of syntactic sugar you can use to manage your files differently if you don't want to keep all this in a playbook. You can keep it separately as files and manage them accordingly. All right, so that was a little bit of the similarities that there are between Kubernetes and Ansible and how they can work together. Let's do a quick review of what are Kubernetes operators for those of you may not be as familiar with it but we're just to set some context here what we're talking about. So as I was saying, we all know Kubernetes, love Kubernetes, and it's incredibly powerful and brings a lot of functionality to doing things in highly available, scalable manner in a consistent way, bringing a lot of best practices and functionality there. And that's great and gets us so far, especially when we can make our applications or our services stateless because that's easy. It can be very genericized and it can be handled in such a way that if a pod dies that Kubernetes can just replace it and things continue on and they work great. But what do you do when you have to use state when your application needs this special handling and how you manage upgrades, how you manage scaling events, how you manage failures, things of that nature? Kubernetes cannot in and of itself capture all of that operational knowledge in order to manage that application. And that's where operators come in because that stapleness is hard and is unknown to Kubernetes and operators let you bring that extra smarts to what Kubernetes can do. So like I said, operators are there to manage complex Kubernetes applications. They can encode this human operational knowledge. They can handle things such as patches, upgrades, scaling events, things of that nature. And to do it in a Kubernetes native way that we can just do it right on the cluster itself. So these operators are purpose built for your specific applications and services to give Kubernetes that extra smart and to not just handle installing and setting up your application but do all the day to management of what happens, managing the entire life cycle and what happens after the install and the setup initially happens. So without operators, what happens is we get and when we have these special, these stateful applications that require this extra knowledge, extra handling, you end up in a reactive mode without operators. You have to continually check for anomalies or for events happening in your cluster and alert a human if something happens so that they can respond. So one of your operators has to deal with possibly intervening and it could be, it could take them minutes, it could take them hours, it may require them getting up in the middle of the night to deal with this stuff. So that's less than ideal. With an operator, you get to be more proactive. Because it's running on the cluster and it is continuously adjusting for that optimal state and monitoring what is the current state of what's happening on the cluster, it's able to react within seconds and make the adjustments and perform the operations needed to keep the application healthy and running as expected. So when we look at what an operator is, it really is a controller with a very specific pattern.  Then the operator itself is just a controller and that has two special parts to it or two functions going on. One is for the controller to watch events happening on the Kubernetes cluster for the resources that your application is using. And then when something does occur to do something called a reconcile loop. And what a reconcile does is take the actions necessary to get the application in the desired state it should be in when the state changes. And so what's happening then is this controller, this operator is managing your Kubernetes application on the other according to the operational knowledge that you fed into it. So the operator, just to take a step back for a second here operators are part of come from the operator framework. This is something that CoreOS began and then when they joined the Red Hat family we've continued to invest in and advance further. There are three parts to this operator framework this toolkit to build and manage operators on any Kubernetes cluster. This is all I should have mentioned this earlier on this is not specific to Red Hat or OpenShift which is our cloud native platform which Kubernetes is very much at the center of. This can be used with any Kubernetes. In fact, I'll show this a little bit later when I do my demo I'm using MiniCube. So there are three parts to it. I'm gonna be talking mostly from here on out about the operator SDK which is what you would use to build your operators. And specifically the part of the operator SDK I'm gonna be talking about is the Ansible part that's built into that. There's also implementations for doing it in Golang of course and then also some limited stuff you can do with Helm. Also part of the operator framework is the life cycle manager for doing install updates and manage of operators and their dependencies. So it's a nice kind of package manager like tool. And then they're also for doing operator metering so that you can get metrics out of that and for customers that need to do things like charge backs and things of that nature. That's what that's there for. But we're gonna be focusing on the operator SDK part from here out, but that's what makes up the operator framework that's out there. And all that is of course, we're red hat, it is open source and can be found at this GitHub repo you see at the bottom of my slide. Okay, so that was enough about operators and some background on that there. Why would you wanna build an operator with Ansible? Well, okay, so the idea is we're taking a lot of the same principles that have gone into Ansible in general in traditional IT space, whether it's cloud or networking or bare metal or windows machines. The idea of making things easier to do. So taking this, doing powerful things in a very simple way. And so in this case here, we're trying to make it easier to deploy manage these Kubernetes applications but do it in that Ansible native way. So what we're trying to bring to that is taking, we have this traditional IT, a lot of people have invested in automating with Ansible and to really reuse a lot of those skills in this existing ecosystem and this thriving community that's out there. So using all those tried and trusted Ansible tools and to reuse that knowledge that a lot of organizations are already have and are using for managing things that aren't cloud native because as much as we all love cloud native, there's still going to be traditional IT around for the foreseeable future. So this gives you a chance to use that same, the community and to also be able to automate entire stack, whether it's cloud native or traditional IT with one simple language and one automation engine. It also allows, it lowers the barrier of entry to what type of skills and knowledge a person needs in order to automate these applications and to manage these applications. Because it's Ansible, you don't need programming skills in order to automate what is happening on your cluster with these operators that are written in Ansible. And even if you do have the programming skills to do this type of thing, this will let you iterate faster and it'll make maintenance easier. So you can focus your time on other things that require your attention, that cannot be as easily handled as what we can do here. As I already showed is it uses declarative state definitions just like Kate's itself and you can template all that which can make things much more repeatable and reusable than the standard tooling that's out there. So it can really help you do get more out of all the great things that Kubernetes and cloud native systems can do. As I mentioned earlier, there's three ways that the operator framework lets you develop operators. There's Helm, but Helm's limited to only doing what you see there is phase one, the basic installation. Ansible and Golang, those two types, you can do the entire lifecycle of operators. It's one of the things that I get a lot as I talk to customers and at events and conferences, a lot of people think that, well, I'm somehow gonna be limited if I use Ansible and I really need to use Golang. And what we've found is in the people that are writing operators with Ansible is that it can do pretty much everything. There is going to be that very, very, what we believe, small edge cases where you really need to get into and very closely control what's happening on the cluster in the Cates API, where you then may need to move to using Golang itself. But for the vast majority of use cases that we've seen out there, Ansible's been able to handle them all and go across and do the entire lifecycle that an operator needs to manage. All right, so let's take a little bit of a closer look at how an operator written in Ansible looks. So this is another version of the diagram I showed a little bit earlier. And what's different is that you see that we have a few extra things going on inside of this operator. When you build an operator using Ansible, you get this binary, this generic operator that's been written that gets packaged in and bundled for you. This comes for free, you don't have to touch it. We'll talk about that a little bit later. Now, the things that you as someone developing an operator with Ansible are responsible for is the watch file. And what the watch file does is define the group version kind that you, the resource that you wanna watch. And then you define what playbook or role should be run when something changes in the state of that resource. So this is how we map events happening in the Kubernetes cluster to an Ansible playbook or role that is inside of the operator itself. So taking a deeper dive into that and going through the workflow. So you have this operator SDK binary that's part of the operator that gets built. And that has a number of functions in there for you. Generic, well, I don't know if generic's the right word, but all the common plumbing that you really have to take care of and be mindful of when you are writing an operator that you don't, that you really need to take care of. So for example, it provides a reverse proxy and that proxy takes the calls coming from your Ansible automation and adds owner references to it. And that's to make sure that garbage collection works correctly. It does a fair bit of aggressive caching so that you don't pound your, a Kate's API proxy too hard and essentially create a denial of service attack on your own Kubernetes cluster. So it's doing a lot of things like that. And that's actually written in Go. So it's a very, very efficient operator going. The other thing that this is doing is that when the container initializes, it is reading in that watch's file so it knows what it is looking for. So at that point that binary, when it sees that an event happens, it will then look at what was defined in the watch's file and then run the Ansible playbook or role that's been defined for it, take the response coming back from Ansible itself and then pass that along to the custom resource to update the status of your operator. So events are happening, it's going into the operator itself, the Ansible automation runs there, it goes updates the status and manages your Kubernetes application, does its reconciliation on the cluster itself. All right, so that's how Ansible operators work. Developing them can be quite easy and we've tried to make this as frictionless as possible. So there's a few steps that you have to take here. You can get the operator SDK, said completely open source tool, it's available through a number of different ways. I'm using a MacBook here, I used Homebrew to install my copy here. So what you do to get started is use the operator SDK to do a new and hand it a few pieces of metadata, what is the operator itself, what's the API, what's the kind and then the most important part if you're going to be using Ansible here is to use that type equals Ansible that you see there in red at the end of the command. One thing I wanna stress, I've said this once, but I think it's worth repeating again here is this is a native part of the operator SDK. This is not a plugin or some extra thing that you need to add. When you install the operator SDK, you get this right out of the box. So at this point, what'll happen and I'm gonna show this to you in a moment in the demo is this will build out an entire project for you. Not only will it create the skeleton of a role to write your Ansible automation, but it will also create deploy files for you. It will create a build file for you. It creates basic tests and molecule which is a testing framework for Ansible content. It creates a whole bunch of really nice things that really get you up and running quickly to developing the operator. So at that point now you have a project ready to go. You just need to write your automation with Ansible. Whatever those steps are, often it's going to be using the Cates module which is pretty much like cube control but with some extra Ansible things to it. So anything you can do with a cube controller or even the OC command if you're an OpenShift user, you can use that module for to get things done. So you write your automation, you then have to define your watch file. In all actuality, that new command creates a watch's file for you based on the inputs you've given it. Sometimes you don't even have to touch the watch's file but if you do, there's already one started. It's a pretty straightforward small little YAML file that you have to edit, very straightforward thing to use and manage. At that point, you have your automation ready to go. You've run your tests, you feel good about what you want to do. You then run this build command. It's actually a very shallow thing that's been added for convenience but at this point, everything gets assembled. It takes your Ansible automation, it takes a lot of different, a base image that has all the necessary dependencies of Python and Ansible, Ansible runner, some things like that bundles it all up into a container that now you can deploy to your Kubernetes cluster through any means. At that point itself, it's a container ready to go. You do not need to install anything special on your cluster. You do not have to use OpenShift. It should work on any Kubernetes system at this point. It's just another controller container. So taking a step back and I've been talking about this but again, this is worth repeating. This is the anatomy of an Ansible enabled operator. What you see in the white is for all of you that are developing an operator with Ansible, that's the part that you are responsible for, creating the roles or the playbooks and the watches file and managing that. Everything you see in that Raybox, you get for free using the Ansible operator SDK when you do the build command.  So far that binary, that generic go operator, the Ansible, Ansible runner, all the Python libraries, all the things that you need, you just get and so that you can focus on just what is it I need to automate about my Kubernetes application in order to keep it healthy and running smoothly and kind of creating that public cloud native experience of managing services through a UI or whatever you're using to manage your Kubernetes services. So that's I think a really, really nice thing and really speaks to how using Ansible can make things easier and more accessible to more people in your IT organization to participate and contribute in your cloud native systems. Okay, so drum roll here. I'm going to do, try and show some examples and do some live demos of what I've been talking about to give you a sense of how this stuff works. So you're right on schedule. Oh, excellent. And I've been ignoring my clock. So that's, wow, I'm even impressed with myself right now. Yes, I'm quite impressed as well. Yeah, so there's one question in the chat that I'm going to try and answer live while you're getting set up here. Okay. Atensood said is one new controller created for each entry in a watch file with Ansible operator or just one controller for the entire watch file. My understanding one, yeah, my understanding is it's one controller to the entire watch file AKA the entire operator equals one controller. Yes, one operator can be watching multiple things. Correct, correct. Aten, if that does not answer your question, let me know. Do Ansible based operators handle concurrency in the sense of what? Yeah. Concurrency like go in the sense of like a programming language? Obviously not, because Ansible is not a programming language like go, but if you mean like executing multiple tasks at once, it is achievable. And then there's one question here. I got to reread while you're still getting set up. Okay. It's a follow-up. Go Ansible. Chris, is my terminal window displaying? Yes, it is. Okay, great. You could increase the font like a little bit, that'd be great. I'll plug in that. Looks good. If anybody can't see, let me know. Handle multiple events to reconcile. Yes, Carlton, it can handle multiple events or can watch from multiple events to reconcile. It creates a CRD. So you can have it essentially watch for, it watches for any event to happen on the group version of the kind for the CRD and then triggers as a result. So it does handle multiple events and reconciliation loops. Okay. So I'm gonna keep moving on here since I hate typing live. I've been running this through. So the first thing I'm gonna do here is show you how easy it is and what's in a project when you use the operator SDK to do a new. So this is the line that you saw in my slides just a couple of minutes ago where we're doing the new. I'm creating something called the null operator because it's not gonna have anything in it. But the point here is to show you what you get when you initialize a project. And so it's of kind null and there's that type equals Ansible at that point. So if I run that, I get this input that comes out of all the things that created. We're gonna take a look at that. Though I now have this directory here where we have a build to deploy a molecule that's the testing framework that I talked about. We have a roles directory in the watches file. So let's take a quick tour here, what's in there in the build. We get a Docker file and we also get a Docker file and a shell script that helps you run your tests. So when you're working locally and trying to work this stuff out, you have something there to speed things up. Under deploy, we have a number of manifests that can be used with Kubernetes that gets built out for doing things like setting up your role, role binding service account and also the CRD and the custom resource itself so you could just feed them right into cube control and get something up and running very quickly. See here, and then I'll show you what's under the role. So any of you that are familiar with Ansible, you see you have what looks like a starter role here of something that you could write your tasks in. You can add your default variables or internal variables or templates or whatever it is that you're doing. It's already created out a skeleton of a role for you to do your automation and so you don't have to create that yourself. So again, it's trying to make it really easy for you and then we have the watches file here that it generated for. So we see the group version kind based on the input that we gave it and then we see that it is calling the role null that it created for us. Again, you could, this is just a starter so you can add more entries to the questions that were being asked to have it watching multiple resources and calling, you could have multiple roles. You could add multiple roles to your operators or different playbooks. You have a lot of flexibility at that point, a lot of power of Ansible in that. And some of the things that we've started internally working with is you have the entire power functionality of Ansible here that you can use. One prototype that was done internally was for LCD and that can do a backup and restore to S3 because it's using the S3 module that's built into Ansible to send it off the cluster and store a backup in an S3 bucket. So something to consider. This is definitely a bonus of using Ansible and you had the templating but then you have all those modules and all that functionality that Ansible has for uses outside of cloud native there. All right, so let me see here. Let's move on to the next thing. I'm not gonna do a build here because I think moving on to some of the other material that I have here will be more interesting. So let's see, I should be back to my slides now at least I hope. So the next thing I'm gonna show here is deploy a Kubernetes application that has to be orchestrated and managing multiple pods. We've tried to keep it as simple as possible just so that you can follow along and get an idea of what's happening but also get a sense of the power of operators and how Ansible can help manage these type of things when you need to coordinate multiple pods and services and things. And what we've come up here with is a scalable caching service and there are two components to it. We're using Memcache, which has been around a really long time. It's general purpose, distributed memory caching system for database calls, APIs, like I said, it's been around a while. It's very generic in nature. It doesn't have a lot of fancy features like replication and fall over and things like that. It just so happens and I know this from experience that I was actually somewhat involved in Memcache community almost 20 years ago, Facebook makes extensive use of Memcache to this day. So they created a project called McRouter. And McRouter sits in the front and it's a Memcache protocol router and it can help scale Memcache deployments and add all type of extra distributed functionality like connection pooling, flexible routing is a whole lot of things you can do with it. So what we're doing here is we've created this caching service around these two components where we're gonna have a McRouter operator that we're going to deploy and that is going to manage a single pod running McRouter and McRouter needs to know how many Memcache nodes does it have in its pool and be configured to know that. So as things happen like scaling events or errors happen and a Memcache pod goes away or we scale back up because we're thriving as a business and we have more data and we need more caching capabilities and we add more that service McRouter knows about what is in its pool and is being adjusted for dynamically on the cluster as these events are happening. There's no need to go in and manually reconfigure McRouter for what it has to work with and this will happen within seconds of each other. So with that, I'm gonna move back to, going to move back to my terminal, sorry, struggling with my multitasking right now. Okay. Sorry, that's why I'm trying to be here and feeling in better. So I think I've got all the questions answered. If you feel like your question is not answered, please re-ask or rephrase. If you feel like I've dismissed your question unnecessarily, I'm sorry, this isn't a place to talk about GitHub issues. Yeah, so I think one of the questions that might be remaining, I understand that you can use Ansible to manage Kate's clusters like KubeCuttle. Yes, you can. Yes. The Kate's module can allow you to do that. You can, Tim showed earlier in the presentation using the Ansible Lookup plugin to deploy any kind of Kubernetes resource via AMO Lookups. But there's probably some edge cases where the module and KubeCuttle might be out of sync right version-wise. So that's always possible, but edge case again. We're not saying Ansible can replace or Ansible should replace, it's just, yes, it's there. But the case module exists to make things like the Ansible operator possible. Right. But it is, and this is something I was just working on. This is still something that we're building up. I do have some of that sort of KubeCuttle replacement to show the use of templating here and reusability. Yeah, absolutely. Like I love to use Ansible for templating like a lot of KTML, right? Like if I need to change, like I use Ansible variables to manage resource limits, like a lot just because I'm always tweaking those. So like each application will have one big group bar and I'll manage it like that. All right. Okay. Cool. I'm going to move ahead and we can come back to more questions. Hopefully I get through this without incident. So what I have running here on my MacBook is a mini cube and that's all up and running and looking great. And actually what I should have done is show you that I have nothing up my sleeve so to speak here and nothing's there right now. So great. Let's give it something to do. So what I did here is just to speed up the time is I've taken a lot of the role, role binding service account deployment files that were generated and I put them into one file here, MacRouter operator. I'm going to run that here. And now we've created the custom resource definition, the role, the role binding, all that stuff I just said here. So if I go back, actually what I should have done is this. All right. That's a little more readable. There we go. We now see that just by running that it's deployed the operator. So now our operator is out there. It's waiting for something to do. So at this point, what I can do is let me see here. I'm trying to remember where I put things on my machine. Okay. Yes. So actually I should have shown you what's in this here. So what I do is I created a file at have time. And all I did here was I added the a custom resource called MacRouter. I given it the name, my cache service default namespace. It's going to have a memcache pool size of two pool sizes replicated instead of sharded. That was something I built in so that I can control what type of pool setup I'm using. So what I'm going to do now is use that file to deploy things. And what I get when I do that is, oh, what did I just do? Where'd it go? All right. There it goes. The needed a second. All right. So just by creating that custom resource, that one API call, we now see that we have a MacRouter instance up there, which is that first my cache service there, the second line, the second pod that's listed there. And I got two memcache nodes that came up right away and they created all the necessary services and deployment and replica sets out there to make this stuff work and run. So now we have an entire caching service ready to go. Now let's see here if I can get a little fancy and to some of the questions that were put out there. What I was trying to do earlier today is I started creating a playbook to templatize that last step that you saw here. So what I did was I created a, I took that file and I put in ginger to templates variables in there so I can control things and I could roll out multiple of these cache services under different names or namespaces or give it different pool sizes. So let's, in this case, try and do increase the size of the pool. So I'm just gonna do this in the command line. You could have done this using something like Ansible Tower or there's a whole bunch of other ways I could have been feeding this in, but for simplicity, I'm using the command line. So I have Ansible running on my machine. I'm gonna call the playbook that I wrote and I'm gonna tell it to give me a pool size of three will do. Let's see here if I get this right. So our playbook just ran and now we see, I probably got the variable wrong back here. Oh, right, I know what I did. Forgot that. That's more like it. All right, there's a feedback that something changed when I ran that command. So if I do that, now we see I have a third memcache node came up and McRouter has been informed that it now has a third memcache node to work with in its pool. And this is a generic thing about, I should have mentioned about operators in general, not just with Ansible here, but it can really help you enforce policy. So if you are like, we need three nodes in memcache and someone comes along and is doing things manually and doing things that they probably shouldn't be doing, what happens is that this can help enforce that.  What happens is the operator is monitoring and says, hey, I'm supposed to have three memcache nodes in my pool. That's the policy here. What happens is, is that we see that the pod, the one that was in that I deleted was brought right back up by the operator that's out there. So if we, so that's an operator in action. Let me, let's see if I can take it a little bit further. I guess we have some time for this, right Chris? Yeah, it's a 48, so you got about 12 minutes left. Okay, so let's say I need to deploy another one here. So I'm gonna do one called CNCF cache and I need to quickly roll out a separate caching server for whatever reasons we decided we wanna segment this and have the one that we already put up, but we need another one. So I'm gonna create one CNCF cache at this point and this is gonna run and give it a second, did I, there we go. We now see that we are getting these CNCF services coming up and now we've been able to repeatedly very quickly rolled out a new instance of our service. So we're seeing all of the, in this case, I didn't change the pool size. So we got the default of two memcache nodes coming right up and it's created the deployment and the service for that memcache. And again, this is all just using the basic templating that Ansible allows for in order to very quickly adjust and redeploy in a repeatable way what we're doing on our cluster. And then let's see the last thing I will show is let's say, okay, we use that, we wanna get rid of it. I created a variable called state and if I change that to absent, that should then bring down the stack. So we see now you see things have already disappeared and it's terminating all the parts of that application service that we had out there. Okay, so with that, I'm going to pause and see if there are any questions out there, Chris.  I'm not sure if they're fully qualified answers at this point, so let's just run back through them real quick. So the contents of the playbook that you just ran. Yes. So think, can you show the playbook? Oh, yes, sorry, I skipped that. I didn't mean to. No, that's fine, someone just asked. That's it there. So I could have wrote this a little more elegantly. I'm just running it on my local host and I'm calling, I only have one task in this case. It could have been a lot more and there are examples of it having more. I'm calling the Cates module. There I have the state where I'm, that variable that I used in the last step. And then I'm calling the template file that I had and feeding that in as the definition that goes off to the Cates API. So it was a pretty small basic playbook. I could have done more if it necessitated it, but in this case, one task was enough. Yeah, I think I said this every time you and I have been in the same room together talking about this. One of the hardest problems we have in demonstrating just operators in general is that like we're trying to do something that manages state and potentially like status and all these other different things, but package it up into this tiny little demo and that's oftentimes very hard to do even when we did a workshop at Ansible Fest a couple of weeks ago. It was a full day workshop and we still used the same McRouter example because explaining the entire concept and then demoing it is cumbersome to package in such a way that is demonstrable. So one more follow up question here or a couple more. So how does the operator come into play in the delete pod example? The stateful set controller would recreate that pod without the operator. So I don't think I quite understand the question perfectly. Do you by chance? Yeah, well, it's that the replication set would know to bring the pod back up itself too. So I guess what I should have done is changed the, I think if I would have changed the replication set the operator would have kicked in to snap it back to what it should have been. That probably would have been the, I believe the more accurate demo. Yeah, so okay, so here's some good ones. Where are the parameters stored that you changed with the playbook, right? Like you've got your variables here. Where do you have those far stored right now in this playbook? So I think what they mean is like in this case, I'm just speeding up. I was speeding them in through the command line. I could have put them in a file that was checked into to GitHub and fed them into the playbook, for example, or if you were using something like, plug it AWX or tower, you could have built them right into the job template itself. So there are a number of different places you could have done it. In this case, I was just doing it right on the command line. And then I used a lot of the default filter that it's built into GINJA too. So let me see here. Yeah, in theory, you can store these in a groupfars file like you would in an Ansible role. You could also potentially store them as config maps, I think. Yeah, I guess you could. I could, right? I didn't think that. If you somehow expanded the config map via groupfars, maybe. Yeah, they didn't think about trying that. You should probably come up with an example of that. Yeah, I haven't either, so. I'm an Ansible guy, so I think, you know, I'm still thinking most of the most Ansible terms. Bridging both worlds right now, so I haven't thought about that, but I will definitely go back to our team and be like, hey, is this possible? Yeah. Yeah, and so what I have here is I highlighted one of the areas where I had a default. So if I don't set that variable, it'll default to my cache service. If I would have taken a little bit more time and I probably should, I could have created this as a role and used the defaults file in there or var file in there to make this template a little less verbose itself and also make that easier to edit in the future, especially if I had a lot of different defaults. This is a pretty simple definition, but you could see ones that could have dozens of parameters and then be better off in a separate file. So Lucas is asking, can you give any examples for open source operators that are using Ansible right now? Operatorhub.io, I think has one. Yeah. I'm trying to think of other ones that are out in the wild that are open source. Yeah. Well, there are, this is something that we're working on and yeah, I'm trying to think of- Right, Ansible in the operator SDK is fairly new, right? So just the presence of it is within the past year. I mean, we just started it when I joined Red Hat last June. So yeah. So yeah, I mean, this is relatively brand new stuff. So the fact that it's not in production use cases or open source use cases is not surprising because we have done like just recently started the talking about it, if that makes sense. So Lucas does point out the operator framework has an awesome operators repo. I just found that the other day. I didn't even know it existed. So that's also very good. Yeah, there are a number of examples. Just say, you remind, you know, this question reminded me the question from Lucas reminded me that I had a couple more slides here. Yeah, definitely check out operatorhub.io. This is just ready to use operators that have been put out there by the community. They're not necessarily by Ansible. I think a lot of them are actually Golang, but still it's something you should be made aware of. And also as you create your own is that you could contribute them here. And the other couple other things to mention is for those of you looking for more information, some of these links already had in there, there's ansible.com slash operators is a good jumping off page to other resources. And then also there's the operator framework getting started guide that's out there. And yeah, here's a couple more resources for you to look at. I need to update this once I publish the McRouter one that I've been using here to one of our group repos. But there is an Etsy operator that was done by our team and they were developing the operator SDK to validate how far can we push this thing as this thing as feature complete as we want it to be. And then if you're looking for another simple operator very related to what we were just doing, there's a memcache operator that you can find here under the operator framework organization. We hope to put more examples out there. It's something that I need to work on personally, all these talks. Yeah, we just started the work to contribute operator framework to CNCF as an incubator project. So there's a lot of work going into this kind of all at once. So yeah, there's much, much, much more to be done. So some questions going back to your demo. Can you delete the deployment instead of the pod so that the actual operator is recreated or re-creates the pods? Okay, let me switch your terminals back. Let's see, in Ansible, can you filter for specific events in the watch's file? Yes, I did that one live, that was easy. So yeah, you can filter for any of those things with Ansible. Yeah, there's a number of features in the watch's file. You can do like finalizers too that I didn't go over. But if you go and look at the documentation under the operator SDK in the Ansible section, you'll see more options there. All right, sorry, so we were looking to... So someone's asking for examples of upgrading Memcache versions. I would say like there's tons of examples of upgrading Memcache Ansible Galaxy, galaxy.ansible.com. That is the place for people to share roles and you can take those roles and then reuse them in your Ansible operator. And that would be, I'll just close the Q&A window. That would be the best way to like figure out how to do that with an Ansible operator because I don't have an example to do that right now. Yes, and that's done. How do Kate's secrets and Ansible vault secrets play along together? They really don't, they're kind of two different things. You can use them both in this use case, but I would recommend sticking with the Kate's secrets for now and using those inside your cluster as opposed to trying to expand Ansible vault things on the fly. All right, let me, I'm gonna give this a whirl here and try to delete the CNCF cache deployment and the operator should bring that back. Let me see here. I've never tried this before so this should be really interesting. There you go. There it is, came back. All right, can you, so I really like, we need multi-threaded Q&A in Zoom but we are at the top of the hour. Everybody, I'm very sorry if I didn't get to your questions. Please feel free to reach out to Tim or myself, via Tim Twitter, GitHub, email and we will be sharing this webinar at cncf.io slash webinars and thank you. Come see us at KubeCon. Yeah, come see us at KubeCon. I'll be in the Red Hat booth presenting. I'll also be presenting at the, was it the Cloud Native Rejects Conference the weekend before KubeCon. Yes, I will also be at KubeCon as well. We look forward to seeing all of you at the next CNCF webinar. Thanks for joining us today. Have a good one. Thanks everyone.


Hi everyone. I'm Ed Baker. Welcome to the Addiction Recovery Channel. I can't even tell you how excited I am today to be with this distinguished panel of guests, mighty warriors, trailblazers of recovery in Vermont. For people familiar with the show, you know that we've always been devoted to reducing and eventually eliminating the stigma that's wrongfully attached to people with substance use disorder. And the way we do this is by raising consciousness. Today, the show is very special indeed because as we raise consciousness, we're also going to be raising funds for two of the three keystone components of this recovery movement that we are building in Vermont. The two components being recovery housing and recovery centers. My distinguished guests are Ron Stankovich, Community Outreach Director for Dominion Diagnostics. Thank you Ron for your dedication over the years. I'm Ron Spinshade, President of Recovery Vermont. Part of everything recovery. Thank you, Peter, for your service. David Regal, the Executive Director of Vermont Foundation of Recovery, really, really setting the standard for sober housing in Vermont and elsewhere. Thank you, David. And Tracy Hauck, who is the Director of the Rutland Turning Point, one of a system of 12 turning point centers in Vermont that are out there. They're the heartbeat of recovery in Vermont. Thank you so much, Tracy, for your work. With that, I'm going to begin the show by handing it over to Ron, with his very, very special announcement. Thanks, Ed. I will hopefully not take very long here because I really want the focus to be on our recovery centers, our recovery homes and the very, very important role that Recovery Vermont is taking in this recovery challenge. And a couple of heartbeats that the challenge is designed to challenge perception. By addressing the stigma of substance use disorder, in which we showcase and promote and celebrate the fact that Vermonters can and do recover all the time. And it's about celebrating the support that is given to Vermonters in recovery, in particularly our 12 recovery centers, which have a vast array of programming to meet someone in recovery where they're at so that their goal of a lifelong journey of recovery is realized. And in concert with that, it's about providing a safe and supportive environment that our recovery homes do it. And what's, what many may not realize is how intertwined our centers and our homes are. That V, in particularly for homes in high quality neighborhoods that are close to recovery centers. So it's almost a 24 seven approach of arms being wrapped around a person in recovery. So, aside from addressing the stigma, showcasing that with support individuals can and do recover. It's about celebrating what our centers and our homes do. And also to provide the opportunity to recognize that our centers and our homes, their nonprofits, and that hopefully during recovery for month and our theme is recovery and the community side by side. Our homes and our centers support individuals in recovery. Now it's time for us as Vermonters to support those homes and those centers period. Now I would be really remiss if I didn't give a lot of credit here to Peter Espin shade and recovery Vermont. When we first floated the idea of a challenge. He said look recovery Vermont shouldn't be part of this in terms of monies received but he wanted to play an active role. So recovery Vermont is serving as the fiscal agent, which simply means they will receive all donations, pay every related fee under the sun, such as cash apps and credit cards. So that 100%. And I'm going to say this again because you rarely if ever find fundraising public awareness campaign, or 100% of monies raised will go to one of the centers, or one of the homes. So that's why these three are here, because they do the direct service work dominion my role was really providing backbone support and bringing the group together with the conscious effort of we need to celebrate recovery. We need to promote what recovery organizations do, and also showcase that your generosity can and will make a huge difference in the lives of those in recovery that they support. I think that's enough for me. Wonderful and thank you. Thank you run just to mention that during the show, there will be a banner distributed or exhibited down the bottom of the screen that'll tell you what the site is for for donating and at the end of the show. There'll be a lingering screen that will also show the link that people can donate to. So along those lines. So at the beginning of the show if every Vermonter gives $1 will have $560,000.  With that I'm going to hand it over to your husband shape Peter would you begin maybe talk a little bit about recovery housing and what what you've seen over the years what it means to you. Yeah, I mean just to take a step back one of the things that I'm really excited about with the recovery movement is how we're defining the term recovery itself. So back in the day it used to be recovery was defined as abstinence or sobriety, and you know that's obviously part of the picture, but it's not the whole picture at all. And it's not really the way recovery works. We're now operating kind of under Johann Hari's theory that the opposite of addiction is connection. That's what makes recovery strong, you know, a connection to a place to live reconnection to family connection to employment connection to one's community and hobbies we know that that's what really defines recovery. And one of the real innovative movements in Vermont and nationwide is what we call the recovery residence movement. If you don't have a safe, clean supportive happy home, your recovery is going to be so much harder. In Vermont we've got a whole series old network of certified recovery residences, these are places that meet the best national standards, and that serve as homes for folks who are working really hard on their recovery and working really hard in their communities to give back to be good citizens to be employed to be good neighbors etc. And I think we need to keep bolstering that, and we need to keep growing that movement, and it is so well personified by my friend and colleague Dave Regal, and his work at V for and sort of the work throughout the state. Thank you. Thank you Peter to just underscore that the American Society of Addiction Medicine in 2019 when they were commenting on their new definition of addiction made a point to stress that people who were denied access to adequate housing, who were at risk for addiction would be more at risk to develop addiction because of housing frustrations, and people who were striving toward recovery would be in fact less resilient and less capable of achieving and maintaining recovery. If they experienced housing frustration so just to underline what you're saying Peter about the the absolute crucial importance of housing. We have a Harley la rock, we have a video vignette of Harley la rock who's going to tell us exactly how important recovery housing was and is for him. So we can roll that vignette now please. Hi my name is Harley rock. I'm a person of long term recovery. I guess I'm an awful just say like as a kid, I, you know I felt fear and anxiety, and I just didn't just didn't feel right. So I spent a lot of my future life, you know trying to escape reality with substances from, you know, one to to the next, and just just to kind of escape reality. You know, 2016. I overdosed and ended up in a coma and ICU, where I damaged my heart and my brain, and fortunately I woke up, and I realized, you know, maybe a couple weeks later that I had to change, or I was going to die. So a friend had suggested recovery housing. I gave me the number to Vermont Foundation recovery. And, you know, I joined as a member in February 12 of 2017.  And I, I believe that there was a lot that I had to change the way I was living my life and the rules that I had adopted and were living by definitely did not work. So what before offered me was structure, accountability and rules to live by that I had not been born with or been taught up until that point in my life. I believed in the process. And my life changed very quickly. As I was, I was following these rules and living this new life. You know, change happened pretty quickly. And, you know, I guess that's what I needed to believe in the process. And because of that, you know, I left a career of fine dining cooking to become a recovery house manager at V4 in 2019. And, you know, I've kind of stepped the ladder at V4 and become an admin. And I still manage the recovery house in St. Albans. And I guess, you know, how the life has changed for me is there's been a lot of firsts that have occurred in my life. First car loan at 39. I'm now in my first apartment where I pay the bills and rent on time. You know, I enjoy volunteering and helping my community. I try to hang out with my family as much as I can. You know, I've adapted writing, I'm a poet. I do other types of art. I've been a musician while living at V4. Many different things that I wasn't able to like focus on and do while I was in active use. You know, what V4 has given me is a life that I never knew I wanted or deserved or could achieve. And just by adapting these rules and policies and living them to the best of my ability. I have a life today that, you know, is a miracle that I'm very grateful for. Well, thank you, Harley. Thank you for your courage and your genuine, you know, just the truth about your life. I mean, I could see and everyone's faces, the panel's faces were all filled with joy. We all have goose pimples.  A few months later, he registers at V4. And it's a life changing experience. He talks about structure, accountability, rules, you know, everybody's pathway to recovery is different. You know, David, can you just please elaborate on what's going on at the Vermont, you know, Foundation of Recovery. What are these miracles that are being enabled there? What's going on? Well, thank you very much, Ed. And I mean, Harley, I don't know that I could ever say it any better than what Harley did, right?  And Harley deserves the credit. And one of the things that I will say is that, you know, recovery housing is amazing. And the magic of it is not anything that we do. The magic of a recovery residence is the peer to peer support and the connections that the members of the home create while living. The magic is what happens at eight o'clock at night when people are sitting on the couch flipping through the television talking about their day. Somebody's explaining how frustrated they were that their supervisor at work got on their case because they took too long of a break. And the other person who maybe has been there a little bit longer or maybe just has more work experience says, oh, well, that's interesting. The way that I found to avoid that is to not take too long of a break. And they just keep going about watching television because it's not coming from an authority figure. It's coming from somebody else who is walking the same path and is moving in the same direction is genuinely sharing their experience of a strategy that's worked for them to overcome that particular challenge. Right. And that's a very, very small example, but it happens, you know, on an exponential scale in recovery residences every day where people are creating these connections. They develop a bond and trust with each other. They're comfortable sharing about their real life experience and learning from one another. So it's just an incredible environment and our role at Vermont Foundation of Recovery is really to try to create those spaces for that magic to be able to have. And have homes that are set up in a way that is as family like as they can be in good neighborhoods like Peter had mentioned earlier, that are close to recovery supports, close to transportation, close to employment opportunities and really, you know, allow people the very best chance at connecting with the community within their home and connecting with the community that their home is in and really, you know, getting back to being valued members of society, because, you know, I myself am a person in recovery, and to me that means that I haven't ingested a mood or mind altering substance that wasn't prescribed by a doctor since January of 2007. And I can tell you, thank you, I, you know, I really appreciate it, but a lot of the credit goes to the people that came before me, and the folks that were there and were present and available and supportive and willing to share their experiences when I finally became willing to enter into recovery. And if it wasn't for that support and it wasn't for the people that came before me, I would be lost. And and that's, you know, the environment that the recovery centers which we're going to hear about later, they create those opportunities for connection with people who have been in recovery in some way shape or form for a period of time that people who are new can relate to. And the same thing with the recovery residences and my experience was that I entered recovery without a lot of life skills.  I didn't know how to write a grocery list, go shopping, buy those items and create meals out. Right, like that's not that was not my experience when I went to a grocery store I wandered around and I found things that I like to eat and I put them in the cart and then went home and tried to figure out how am I going to eat off of this for a week I just I didn't have that skills. But when I was in early recovery I had other skill sets that I could bring to the table and share with others and we were able to learn from each other and grow based on all of our collective experiences. And so, you know, it's really a privilege for me to be a part of Vermont Foundation of Recovery I consider myself, you know, blessed to be able to serve and the mission of the organization is to create a statewide network of recovery homes to help people suffering from substance use disorders, reassembly into society by supporting the transitions from active use to recovery to independent and so when Harley shared about the first in his life. I mean, my, my heart is full right to hear somebody be able to share about having their first, you know, automobile loan, and having their own apartment to call home and the utilities and their right because that's what it's all about is just providing people with the space to to grow personally, to achieve whatever their own goals are. And, and there is structure within the home we do hold people accountable. Anybody that's a member of the four can choose their own recovery path, whatever that may look like for them whatever they believe is the right combination of resources and supports that are out there. However, you have to have a recovery path, you know, and you have to be engaged with that. So that involves a certain number of activities per week that changes as you've been in the home for a little while. You know, it requires people to either work or go to school or volunteer at least 20 hours a week. So that is based on self esteem and people build self esteem by being active members in communities outside of the home and and also feeling like folks are able to stand on their own two feet. So people do pay weekly membership dues to be part of the organization. And again, that comes back we charge people about half of what the cost is to actually be able to provide a space in one of our homes, and for people to be, you know, engaged with the other supports and member services that come with membership. But we do feel like it's important that there be something that people are doing to be self sustaining and self supporting and that there is self esteem that comes from. And then you know there's a weekly house meeting where people come together and sort of talk about the challenges within the home and how to resolve those and develop those skills of working together and connecting with each other and managing conflict and being good roommates and all of those types of things that come along with living with others that again our skill sets that I spent a long time living with other people when I was in active use of substances, but I don't know that I was a very good roommate or in that period of time right and and those are skills that I needed to develop I needed to think about others and I needed to think about being selfless and trying to give more than I take and you know all of that are things that are sort of guided or cultivated through house meetings and in recovery residences and then you know I think what's really important for folks to understand is that, you know, as Peter will remember a lot of the work in Vermont stems from a task force that was born out of an advisory committee at, you know, I think back was referred to as bamhar but now is recovery Vermont and and you know we created a task force to look at bringing a Vermont affiliate of the National Alliance of Recovery Residences which is called NAR to Vermont and get it started and that's what that task force did it created the Vermont Alliance of Recovery Residences which is Btar. They have national standards and national code of ethics there's a national conference that goes on best practices are shared there are two different week monthly information sharing sessions that you know utilize video technology like we're doing now to keep people connected and really moving forward and making sure that that social model of recovery is practiced in certified recovery homes. And so the Vermont Alliance of Recovery Residences certified seven homes. Sorry, 17 homes before has six homes and we have three transitional apartments, serving up to 40 individuals at a time and we also employ about seven people who are in recovery themselves because the majority of our board of directors are people who are in recovery. You know so what a gift to be a part of an organization that touches the lives of, you know, 50 or so individuals on any given day who are in recovery in the state of Vermont, and what a gift to be a part of this kind of a initiative, and I can't thank Ron and dominion and Peter and recovery Vermont and add yourself and the art show for giving us the opportunity because the recovery centers and you know people like Tracy are doing incredible work to support folks who are in recovery and not only is it, you know, morally and ethically the right thing to do to help our fellow communities and provide all individuals with the best chance at being successful in their lives as possible, but it's also good for our community. So it is a good investment of time and resources to give people the best chance because as hardly mentioned, right, like he is giving to society, there is a return on the investment that was made in Harley's recovery, right, and there was a return to society and the investment made on my own recovery. You know, people who are in recovery have higher than average earning potential. You know, they are the first ones to volunteer and want to give back. They are coaches of sports teams and they are serving on, you know, boards and they are, you know, at the community, county, state, federal, right, like all of the people who are in recovery, given the opportunity and the space to be able to get well and the support and the guidance and the love to be able to be healthy again. Give back and contribute to our society in a really meaningful way. And it just makes sense that we would want to give those folks the best chance that we possibly can. And so, you know, the efforts that Recovery Vermont is making to allow this project to move forward and not have any fees and be that fiscal agent, the efforts that Ron and Dominion Diagnostics have made to make this possible and just have the idea, your efforts had to help get the message out and always be combatting stigma and giving Vermonters the best chance is just incredible. And we're so grateful and we hope that, you know, people will learn a little bit, people will understand that, you know, folks who are in recovery are just people like any other. There's a good chance that we are all interacting with folks who are in recovery every day of our lives and we don't ever know unless they take the time to sit down and share it with us. And, you know, I hope that if folks are able to they're, you know, willing to contribute to the challenge and support great resources like the recovery centers that are out there and and recovery residences throughout Vermont. So thank you all very much for allowing us to be a part of it. Well, well, thank you. Thank you, David.  But while our minds are occupied with all that stuff, our hearts are in compassion and that's the best possible combination you can have. So for the viewing audience out there David was very articulate and, you know, in closing he mentioned what the people on this panel are doing. I just want to extend the invitation to the viewing audience because I know how many people want to do something. Not everybody is fortunate enough to work in this field or even to know what to do, but I know you all want to do something. So jot down the link that's running in the banner on the show. And don't hesitate. Just don't hesitate.  So, with that, I'm just checking our time here. We're doing we're doing pretty good so is there anybody else that wants to pop in on this particular topic of, you know, recovery housing and maybe, you know, comment on a little further on this. I'd like to say, you know, recovery housing I mean the work that we do at the recovery centers. You know the frustrating part is that there is so many people we serve that are homeless. Right.  It's very hard for people that are homeless living in tents couch surfing to even get a smidgen of a hold of what recovery looks like. Yeah, very, very difficult. In fact, maybe, maybe impossible.  Many years ago it's very basic. Abraham Maslow came up with a single the hierarchy of need. And the most basic needs are at the bottom of a triangle, and then they got more, you know, refined over over over time the highest need being the need for creativity. But but housing, the safety of a place to be is a very, very, very basic need. What can you do if you don't have a safe place to be practically practically you practically set up to continue to to use drugs. I'd like to move into the next segment, Peter, would you care to comment a little bit on, you know, recovery centers in particular. Yeah, thank you, Ed. The, you know, again, I think we've seen a big paradigm shift in recovery over the past decade or so. 10 years ago or 15 years ago if you, if you were an individual who was curious about recovery or wanting to get into recovery, you know, where did you go, where did you, you wouldn't know where to go in many cases. So over the years, Vermont has developed an entire network of recovery centers 12 in Vermont, there is one in every community, there is one that is near every single Vermonter Bennington to St. John's Berry and everywhere in between. And they're sort of getting at what you were referring to earlier. It used to be that substance use disorder was a was a hidden condition filled shame stigma. And now we know that it's simply health condition, and it's a health condition for which we can bring evidence based practices. And most importantly, it's a health condition from which people recover. We see that every single day. So there is a recovery center near you that you should go visit and learn about even just as a community member. One of the great examples of this is the Rutland Turning Point Center in Rutland. We're going to be hearing from Tanya and Tracy in a minute, but they've done I think two really powerful things. First thing they've done is they've opened their doors to anybody who's interested in recovery with a huge variety of programs. You know, seemingly seven days a week, just amazing the amount of supports they give their meeting people where they are at. And then number one, and then number two, they're opening their doors to the community itself. You ever drop by there and visit you may see the local police officer just chatting people up or folks walking in from the street or folks dropping off lasagnas. They're really saying that we are a resource that's here to support the community and the community saying, we love you, we want to support you because you're doing mission critical work. So I love our recovery centers. And I think if you're ever curious about it, their doors are open for you as well, and you should go visit the local one. Thank you, Peter. So at this point we have another tape vignette for a person with with lived experience in addiction and recovery, and specifically with a recovery center Tanya, right. So if we could please play that vignette now. Thank you Tanya thank you so much for being with us. I'll just hand the floor over to you to share your, your lived experience. Thank you again. Thank you so much, Ed, and thanks for allowing me to speak here today. So, my name is Tanya right. I'm the associate director of the turning point center of Rutland. I'm also the recovery coach and the emergency department supervisor. I am also a person in long term recovery, I've been in recovery for about six years now. I started using when I was very young about 12 years old on my using progress pretty rapidly throughout my teenage years and into my 20s. Got on a maintenance program when I was about 35, one of many attempts on but something about this time. I was just extremely focused and really, really wanted to. Well, I was desperate for something anything different. So, I was placed at the Rutland turning point center in order to complete my community service commitment, because I was receiving reach up at the time. I, at that time in my life was extremely had been isolated for many, many years on very untrusting of other people. I had no desire to be at turning point whatsoever. You know, but it was something that I had to do. I showed up every day. Sometimes on time sometimes not, but I showed up. And I think the thing about it was that when I went there terrified, very shy, very withdrawn. Nobody judged me. Nobody looked down on me. Nobody treated me differently. I didn't have to tell my story 8 million times to a million different people. I was allowed to just kind of be. And, you know, the more that I showed up at turning point, the more that it started to feel comfortable and the volunteers and the staff really made me feel like I was accepted. And after a while started to kind of feel like a family and kind of like home, which wasn't really a feeling that I was accustomed to. So, you know, over time, I went from community service to volunteering. So I suddenly wanted to be there. And I spent about six months volunteering in that time. I was offered recovery coach Academy, different responsibilities at the center. And for me, it was kind of life changing because nobody had ever trusted me with responsibility or believe that I had the ability to fulfill these tasks and, you know, do the things that I needed to do. And before I knew it really I was completing all these trainings and I was talking to people every day and doing presentations and meeting with court people and police officers and correctional like all the people that normally I would have tried to avoid. And now just community members and people that I met with day to day just in the job. And I think the biggest thing that really hooked me for turning point was when I started coaching individuals that were like me. You know, turning point really allowed me to do something I never thought I'd have the chance to, which is just comfortably and on my time to figure out who I was and what I had to offer. And then I think, you know, people kind of overlook that that when you're using for pretty much, you know, most of your life, childhood into adulthood, you don't learn the normal things you don't know the things that people expect you to know and having that safe non judgmental environment to figure out who you are and make mistakes and learn from mistakes and, you know, just move forward in your life and your recovery, while you're also helping other people do the same. It really was like priceless for me. I, I don't know how else I could have achieved that really turning point is a huge part of my life. I've been working here for five years now, worked my way up and, you know, it's just, it means so much to me, and I know that it means so much to the people that come in every day. I can't even thank you enough, Tanya, for your honesty and your courage and for being with us here today. Congratulations on your many, many accomplishments and and once again, just just thank you. Thank you for the opportunity and thank you so much. So, so once again, we have a panel filled with with joy, and we have a window into two people that is just an incredible, you know, we actually got to see a brain healing in action. You know, she talks about it she says, suddenly, I wanted to be there. It's the moment suddenly something shifted suddenly she went from being terrified to wanting to be there. It's that stigma free environment that allows people to grow to people she began using drugs when she was 12 Harley said, I never wasn't born with and I never learned the rules that it takes to live. And that's what before gave to him so this is just these people are incredible examples of what you do, what you create the environment said you create for them to become the people they can be recovery supports just so so beautiful. I'm going to hand it over to Tracy I saw you kind of bubbling over with joy so so go ahead Tracy. Oh, I'll probably get emotional. Thank you Ed. I'm kind of at a loss for words I watching that video. I've seen time is transformation. You know I've been director since she started here I'm the one that hired her. And it's just such a beautiful thing. You know to see her gain self esteem established boundaries have values have morals, have confidence in herself. You know, and what she gives to the people that we serve in our center is amazing. And she's just one example of the staff that I have here everybody I have our people in recovery. And most of the time when they start here they're probably within their first year of recovery they want to get a job, you know and it's, they volunteer for a while and, you know depending on their, you know, ability to show up and be there on time and be reliable. You know they can move into a paid position. And you know with that comes the building of their confidence and the acceptance and you know what's given to them they give back to others. And I think in recovery centers it's a unique work environment because I have my center not just thinking of the people we serve and how we can support them but I also have to be supportive and somewhat flexible for some of the staff I have, because of their own recovery, things that come up situations that come up. And with Tanya, I mean I could tell you in the beginning it was like whatever hours she could show up here to work. And Tanya had to accept.  You know, and so she couldn't get here till 11 o'clock. She got here at 11 o'clock, but she put forth the work because I gave her that ability to have the flexibility, you know, and I have to do that with all my staff I have to be mindful of where we're at in recovery.  I believe that's the way it is with all the recovery centers you know and, and we kind of, I'm struggling for the word I want to use but it's like we are there before, during and after. And while they're using we're there when they're contemplating changing, we're there when they're going through clinical services, we're there if they get kicked out of clinical services we're just a constant. You know, we're always there as long as they want to come and access our services. There's no fine line that says okay you can't come back here anymore. You know, just, I think about our correctional program that we launched here in Rutland when we were going into the correctional facility, and yes a lot of my staff that went I mean Tonya and I were the first ones to start doing that going into a male correctional facility. Tonya knew some of the people that were in there, but the way that she was able to learn how to set boundaries with that and you know what we gave to them was it wasn't asking them questions about what brought them into jail.  And it's, you know there's many of them I mean during COVID when we couldn't go we still can't go into the correctional facility but when COVID hit we wrote letters our recovery coaches that were coaching and mates at the at the jail at the Valley started writing letters, we got letters back, we had several individuals that were released during COVID. They stayed in touch they're still in touch to this day. You know, and I mean my own story is is very similar to that my my story is you know my recovery I came to my first 12 step meeting here at the center. I didn't know where I began I didn't I didn't know where to go I didn't know what to do. But that feeling that, even though it was awkward and it was uncomfortable that feeling that I felt walking into the center of being welcomed and feeling safe and not judged and not question. And that helped me get through that uncomfortable feeling of being there, you know, and, you know, and now here I am now the director and and I didn't plan on becoming the director I thought I'd go back into nursing, but I felt like this is where I needed to be because if it was given to me so freely, and it helped me think about how many more people that can help. You know, it. I don't know it's just in recovery centers being nonprofits I think a lot of people don't understand that. So many people in recovery want to do this work, but being a nonprofit. That's why I'm so excited about this fundraiser is that we don't have the funding to offer anybody any benefits. I have to limit how much staff I have. I mean, I don't even have health insurance. You know, that's the reality of it. And it's a struggle but we do it anyway regardless of not having benefits because it feeds our soul and it feeds our recovery. And I apologize for getting emotional but when I talk about this people just think you just pull people out of the air to do this work. And that lived experience is what really helps other people. Thank you. Thank you, Tracy. You know, your story is beautiful and your rendition of your experience with Tonya at the recovery center is also equally beautiful I can see the panelists deeply deeply touched by by your sharing. You know, I was I was part of the north central Vermont recovery center. When I lived in LaMoyle County and I used to spend a lot of time there because I too like, like, like all of us I'm also in recovery and it was a place to go to continue to grow and also to kind of give back as you mentioned it's so important to us. And I can't even begin to tell you how many times I've heard people say, if it wasn't for this place, I'd be dead. If it wasn't for this place, I'd be using. If it wasn't for this place, I'd be in jail. And they weren't being figurative. People being literal. When when we started that recovery center in Marsville, we received $50,000 from from the state of Susan Bartlett was a person in the Senate who kind of led the effort for us. And I did some research on incarceration and I found out that it costs exactly $50,000 to incarcerate one person for one year. So it's just it's pretty incredible the return that we get on the investment in recovering is mind boggling. I'm going to say that to the viewers, you know, if you're motivated, don't hesitate. Just don't hesitate.  So don't hesitate. If you want to give a little bit, go ahead and do that.  And so we're now to the panel members to just join in the discussion either about recovery centers in general or wherever you want to, wherever you want to jump in. And I'd like to jump in real briefly. This, this challenge is so critical and important to substance use disorder is both preventable and treatable, but more importantly, with the support that our centers and our homes provide, recovery is sustainable. And this challenge is not just about raising awareness to the fact that folks recover with support, incredible arm wrapping almost smothering support from our recovery organizations, because that's what's needed. Now it's time to celebrate what they do to support all of us in recovery. This is deeply personal to me because when I first entered recovery, I had an outpouring of support that most people don't have. For me, it's a sense of gratitude. I wake up every day working for a company like Dominion Diagnostics that not just values recovery in its employees, but hires folks like me to support Vermont's continuum of care. So I guess I will implore I will encourage and I will throw out an impassioned plea. Tracy said it best. Our centers and these homes are nonprofits. They don't have a for profit mentality, but that all of us, every Vermonter should recognize and be willing to step forward and support in whatever way they can. And as we value and we thank what you do because we appreciate and see the results of your effort. So now it's time for all of us and a tenant of recovery is about giving more than you take. And that's how we all sustain our lives of recovery because we understand the service component and everyone here on the screen does this, especially Peter Dave and Tracy. They do it every hour of every day that they wake up and work so my hope is is that Vermonters will not only understand the beauty and value of recovery but understand it's time for us all to step up during recovery during recovery month to support and recognize and value what they do. Thank you. Thank you Ron well said, and let's just continue with our, you know, our group discussion we have Harley we have Tanya, you know, does anybody want to jump in. I just want to add that I think about generational addiction, you know the cycle of addiction, and by watching Tanya's video and seeing where she's at right now if we want to get rid of, or, you know, reduce the numbers affected by this disease. We got to, we got to change that generational cycle. Tanya is an example of that she has two young girls, you know, hopefully she's going to break that cycle. That's going to heal more families that's going to touch more people it's going to make a healthier Vermont. You know, and I think that's it's not just about one person it's about every person that that person touches. Yeah. Yeah, you know, Peter, I think alluded to it a little earlier. When he, he referenced this concept of a sea change that that there seems to be a cultural tipping that's occurring at this point when it comes to stigma and eradicating stigma releasing compassion and really providing people with the love and care and support and services. They need to both achieve and as Ron had pointed out sustain hell. And it's, it's evident. I think it's more evident in Vermont than it is in any other state in our nation. We should be very proud. The legislature is behind us the governor is behind us. The recovering community is incredibly incredibly powerful. You know, Ron, Ron mentioned, you know, people who are employed in in, you know, providing services and this is crucial to this movement in Vermont but I also I would not hesitate to give a shout out to the many thousands in AA alcoholics anonymous and narcotics anonymous who tirelessly work in their own way, giving back and supporting each other literally 24 seven for giving freely of themselves, you know, at any hour of the day, you know, to, in some sense, to complement what the people on this panel are doing. They're out there 24 seven 365 days a year. And I think this panel includes where we're all part of that too but I just want to to recognize them, them also. So who wants to join in now. We'll have a few moments left we're lucky. Well, I Peter mentioned earlier, Johan Hari and, and there are a couple of books that that Johan has written that speak to a lot of the concepts that we're talking about today and I would encourage anybody to, you know, look those up and, and, you know, take a read through and one of the concepts that's mentioned is aces in terms of, you know, childhood trauma and the indicators that that puts on somebody's chances of developing substance use disorder later in their lives and, you know, Tracy, I think is right on the money in the sense that, as a community, we have the opportunity to change the time and break those generational cycles and, and that's going to yield tremendous results over a long period of time and we've tried a lot of strategies as a society to, to, you know, address these types of topics and, you know, we are where we are right and if folks are interested in trying some different strategies and, and leaning on folks with lived experience and peer to peer support and, and, you know, sort of going to the experts who are the people who have lived and been through it. This is a different way that that we can go and I would also point out that we still have a long way to go recovery centers are not that old in the state of Vermont, even though the concept essentially originally right like recovery residences in the state of Vermont, while they may have been around for a long time this new idea of multiple levels to recovery residences and all paths to recovery like it's a different concept and there are still room to grow I'm sure there are many things that Tracy would love to be able to do at the Rutland Turning Point Center provided the resources to do. There are a lot of ways that V for and other recovery residences would like to evolve and like to focus on people and supporting individuals when they do have moments of crisis and, you know, the administration and Harris administration is called out recovery residences in their policies. You know, there are all kinds of new things that are being learned and developed in and looked at and I would just encourage anybody that's out there to understand that you know none of us are perfect. None of our organizations are perfect. We are nonprofits we are all doing the best we can with the resources that we have available. I mean Tracy mentioned not having health care benefits. We work another full time job, and I'm I'm compensated by V for for 20 hours a week and I wasn't compensated at all for the first four or five years the organization exists. And that's just the reality of nonprofits in the state of Vermont and starting from nothing but everybody cares about the work care about Vermonters and we want to grow and we want to get better and we want to evolve and we want to help. And at Ron's point, you know that means that we need your help. Right on. All right, thank you. David we have only a few seconds left so I'll close the show to the viewing audience. Remember, Harley. Remember, Tanya. Remember the the great healing forces at this panel tends to put in place and then sustain over time because they care. Remember the importance of caring. And if you can, I'll say just one more time, express your care by by donating and supporting this this great, this great recovery movement in Vermont. So, so thank you on the screen will linger now, giving you the information you need to donate and thank you so much to my panel I couldn't be more proud than to be here here with you mighty warriors all of you thank you. Thank you.


statistics and excel normal distribution heights of baseball players data example part number two get ready taking a deep breath holding it in for 10 seconds looking forward to a smooth soothing excel here we are in excel if you don't have access to this workbook that's okay because we basically built this from a blank worksheet but we started in a prior presentation so if you're starting from a blank worksheet you may want to begin back there if you do have access to this workbook we now have six tabs down below the two green example tabs in essence answer key the two blue practice tabs having pre-formatted cells in them so you could get down to the heart of the practice problem the two white blank tabs are where we started with just our data set and a blank workbook so we can practice formatting the cells within excel as we work through the practice problem this is of course where we will continue at this time let's do a recap of what we did in the past we started out with our blank data over here we have data related to baseball so baseball statistics which you can get in different places if you don't have any data sets you might want to go to Kaggle.com is one resource and there's also a lot of baseball related data that you might be able to pick up to practice with we then sorted this information created a table from it picked up what we wanted from it which are the heights and we pulled the heights over to our blank tab as our starting data points we could just work with this information we picked up the mean the standard deviation the median the mode we noted that the mean is similar to the median as well as the mode which is an indication that our data set is following a bell shaped type of curve so might be able to approximate it with a bell curve so we then plotted the bell curve figuring out the bottom and top point of our x's so we can plot out our x's which are going to be on the you know the x axis here and then we used our norm.dist function and we also then compared the actual data in a frequency distribution and look at the percent of the total compared that to the normal distribution so that we see this chart so now we can see that they're pretty similar in nature which again is an indication that that bell curve will give us some predictive power we looked at the difference which also indicates that there's a fairly small differences that the bell curve will give us some predictive power so now what we want to do is think about how can we create a bell curve with an area type of graph and then think about how we can kind of draw a line so we could see the above part of the bell curve the below part of the bell curve and like in between type of questions so let me show you what I mean here we could ask questions such as what if p of x is greater than greater than or equal to let's say 79 and close that out now in order to plot this I'm going to let's let's actually bring this down here and I'm just going to say above this x is going to be 79 or let's actually I'll just keep it where I was I'll just pull this back up what I want to do is make this dynamic so I can change this 79 and it will change this label and we'll also use this label up top so this is our fancy label here I'm going to double click on it and in the front of it I'm going to say equals I'm going to put quotes around this because this is the text all the way from the p to the equal sign I'm going to end that quote so that means it's just going to show up as just the text then I'm going to connect it to you with an and and then this 79 I want to refer to this cell you can't see it anymore because it's covered up but I'm going to select this 79 put my cursor down here and then up to that cell so now that 79 is in that cell so I'm going to replace it with that d13 which will give me the 79 and make it dynamic and then I'm going to say and to connect it again to the last bit of text quotes which is that bracket quotes and then close it up so now it's dynamic so I can make this 80 and my title turns to 80 right now if I was to if I was to do that now I'm looking for everything that is above 79 so if I was to go here you would think it would be from here to here and you can highlight that it comes out to 1.78 but I can't do it I can't do it that way I can't just sum it up because we need the area under the curve so if I was to do this I would have to say one minus the norm dot dist so I can then say okay uh this is going to be equal to one minus norm dot dist and then I can pick up the x which is going to be this and then comma the mean is the 73 70 and then comma the standard deviation 2.3 comma and it needs to be cumulative therefore true or one and close it up and enter so let's percentify that home tab number group percentify add a couple decimals so it's close to to this but uh not well it's pretty close but not exactly the same right now I would like to see that pictorially in a graph so I'd like to be able to plot that pictorially so let's also add the z here and because the z is also a common type of reference to indicate how close someone is to that middle point so it's a great term and so I'm going to then make this white black white and uh let's center it and so the z is going to be calculated as we're going to say equals brackets we're going to pick up each individual x minus the mean and then close up the brackets and divide it by the standard deviation so it's kind of giving us how far out we are the x is in terms of standard deviation in them from the mean so let's double click and copy that down ah wait a sec I can't do that something is wrong something has gone horribly horribly wrong what happened these two numbers need to be absolute referenced so the ones that are in column D so I'm going to put my cursor in D2 F4 on the keyboard D3 F4 on the keyboard dollar sign before the Ds the twos and the threes enter put my cursor back on it then double click the fill handle and boom so then you could see the middle point is at 73 70 so between here and here 73 and 74 that's where you're at that middle point that's where the z score would be at you know the mean at zero okay so then I'm also going to say this is going to be equal to the uh uh this dynamic reference and now we have this dynamic reference up top and we can plot it as well let's make that uh black white and center it all right so now let's actually start to build our graph so I'm going to build my normal distribution graph using the percentages over here from the norm dot dist I'll put my cursor on the title control shift down make sure you don't pick up the 100 shift up so we just have our data insert on the left we're going to say insert this time an area graph and so I'm going to pick this one drop down area something like that so I'll pick that one up I'll pull that to the right and then I'm going to try to try to make this a little bit more fancy so I'm just going to remove the title so I can make it kind of as big as I can and then the the bottom x is not correct because we want to start it not at one but at 64 so I'm going to go up to my chart design my data and then on my x which is on this side edit it and then make it's a little finicky so make sure you're picking it up here control shift down don't pick up the total shift up and then enter and so there we have it so it looks like it's picking them up correctly over here so I'm going to say okay so there we have it so that we could see that that middle point is where we would expect at like the 74 and then you've got this kind of normal distribution that looks about