 Mae wedi bod yn fywm eistedd ddweud fod gael y bod nhw ychydig a rwy'n jechyd ei gyda'n ddechrau gyda'n fynd,ser o'r cyflau'n ddweud ymlaen nhw ystafell yn gyfer lle i gyd. A mae gennych dechrau ond mae'r hyn yn gwneud sy'n gweithio ardal nesaf a oed yn swydd i'r rwyd i'r syniadau. Ond, ddiogel, rwy'n gweithio'n gwneud beth fod yn fawr, na oed yn gyntaf fawr duddau. No, rwy'n gychydig yn gweithio'n gyrraedd. Dyna'r berthynas ar y rhodd. Mae'r berthynas ar y Cwb Cran ar nu os ydy'r 19. Yn 2019. Felly, can ym chi'r llaw yng Nghymru, yn ychwaneg ffysg, ymgyrch, ymgyrch, ymwneud, ymgyrch, ymgyrch, ymgyrch ymgyrch, ymgyrch, ymgyrch, ymgyrch, ymgyrch, ymgyrch. Mae'r llaw'r llaw'r llaw'r llaw'r llaw'r llaw'r llaw'r llaw. Bw. Cymru. Cyngor. Ac roedd eu cyfrifiadau ar y cyfrifiadau Llein wedi'i arfer a'r cyfrifiadau Llein o'r cyfrifiadau Llein i'r cyfrifiadau. Rwy'n rwy'n ôl i'n ffr métod. Ac mae'n meddwl am yr edrych arllun y ddweud o'r cyfrifiadau Llein i'r cyfrifiadau Llein o'r cyfrifiadau, ac mae'n meddwl am y ddweud o'r cyfrifiadau'r cyfrifiadau. Ond mae'n meddwl am ydydd. Yn ymwneud yw'r cyfol o'r gwaith o'r cyflwyniadau ar y cyflwyniadau yma, ac ydych chi'n gwybod ato'r gweithio'r cyflwyniadau. Dyna'n gwneud yma'r cyflwyniadau, yn ymgweithio'r cyflwyniadau ar y cyflwyniadau, ac mae'n cael ei ddweud yma ddwy i'r cyflwyniadau, mae'r bwysig iawn sy'n bwysig iawn. Mae'r bwysig iawn i'n bwysig iawn ar y cwymru, ac mae'n golygu ar y blwytaid, ac mae'r gwaith eich llwyr o blynyddu llwyr o'i gwneud mor hynny, yna'r unrhyw o ran gyfnod oherwydd ychwanegau'r llwyr i'w ddechrau. Wrth gwrs mae'r llwyddoch chi'n gweithio'r llwyr, a mae'n gweithio'r llwyr i'ch gweithio'r llwyr i'r llwyr i'n bach. Llywodraeth cerddoch iawn i'r llwstr, fel fyddion o'r llwyddoch, ychwanegau'r llwyddoch, oherwydd eich cerddoch a'r llwyddoch i'r llwyddoch. yn ychwanegwyd. Yn fy ngwysbeth o'r rhaid, rydyn ni felly, rwy'n credu gan yn storiol. Yn gyfysgwyddiol yn gwneud hynny, rydyn ni'n meddwl. Wrth gwrs, rydyn ni'n gweithio'r ysgol, yng Nghymru'r collid yn yw, fel gwaith yma, ac mae'r gwaith yn gweithio'n gweithio'n gweithio, yn fyddiw y link wedi'i gweld i'w ddiweddol, mae'n rhan o'n 9-miniwn. Rwy'n cael ei ddweud o'r cyd-dweithio, ond mae'n rhan o'n pïch o'r honn yn fwy o'r cyd-dweithio, yn gwneud hynny i'r cyfrannu a'r cyfanyddio yn y cyfrannu, ond mae'n rhan o'n dweud o'r cefnogi. Ond rwy'n cael ei pobwysu'r idea i'r e-cwmaraeth. Felly, mae'n idea i'r e-cwmaraeth, ac o'r hollodau, You might upscale it, you might increase the replicas on it, so for the amount of traffic that's going on. Now, my one isn't going to be that fancy. We'll see in a minute what is the image of this app called. But the idea here is this is kind of the design you're looking at. So we'll just imagine for this that the MongoDB has been deployed into the database already, and that's for your persistence. And what we're going to deploy here is two replicas of our Node.js app, and then we're going to use a service object so we can talk to our app, basically, so that we can reach it from outside your cluster. So if you're going to do this normally using Kubernetes, and most of your experts here I would say, and if you're not, it's around these manifest files. So right in your YAML files, whether you like YAML, whether you don't like YAML, there's probably a lot of discussions on this one. Some people do, some people don't. Some people think it's just a version of JSON, or the other way around, whatever you want. But what I've done here is I've just extracted two bits out of each YAML file. It's a deployment file for deploying out the deployment, i.e. your pods and in your containers, and then the service then for connecting to it. And you can see here, I've put the image into a replica or image. We're going to have a Sant app, all right? So if any of you have kids out there, you might have to go to the Sant app every year and see where Sant is at that time of year. So we'll put that out there. We have two replicas on it. The service object we're going to go with an old port, you normally wouldn't do that. You'd probably do a load balancer if you're on a particular cluster that would support that. And it's going to be exposed on port to 8080. So I won't put the question, what's the command you're on? Obviously it's a Qubes CTL or whatever you want to call it yourself. And we'll deploy the files out. They'll get handled by the Kubernetes API server and it'll deploy the different objects or resources into the cluster. And the next thing, your Sant app is up and running. People can access it from a particular IP on the port 8080, all right? But what happens if we set ourselves here? Okay, this is very simple. This is very easy, all right? But if we want to deploy another instance of the Sant app, a separate instance in the cluster, we now need to go into those manifest files and change them. Or if we want to change the replicas. Now that's okay if you own the app. But what happens if your app is quite a big application? It needs a database and underneath it. There's quite a lot of configuration. You might be handing it over to someone, or else you want other people in your company or in other companies to be able to install this app for you. You're now getting into a situation here where you want to be playing around with manifest files, you know? And really what is the common denominator on all this is your configuration you're changing, okay? So what happens, what would it be like if we'd something where we can take that configuration, pull it out of the manifest files, and just make those changes on the flight? You know, while we're doing the apply or whatever, we can just make that change. That's kind of what you'd be looking for, and that's where the value is in it. So that's where Helm comes into it. So if you were going to deploy this with Helm, we now end up with this. So you're probably sitting there going, oh, great. I two little small manifest files, and now you're after sticking in order, you have to find open top. You know, you're just increasing my workload here, or my maintenance. But you're not. What we've done here now is, and this is where what Helm brings you, four things that Helm brings you, is putting that extra bit of templating on top of the manifest files. So that bit of logic around the go templating language, and I know Matt, who is one of the co-creators of Helm, talked about, in a talk there this week about one of the decisions he made at the time was, if he now could go back in time, he would be able not to use go templating. Because there's a lot of discussion out there, go templating won't do this for me, that won't do that for me. Yes, there are restrictions to it. But really the key behind it was to give you that extra layer where you could put in configuration, and small bits of logic. Now we've seen people put crazy logic into it, and then go, well, why doesn't it work in that situation? So there are limits to how you extend it, but it does give you the basic logic on it. And we can see here now our configurations put into a value of style, okay? So with this setup now, that's all wrapped, all the common files that you need now are wrapped in a package of format, which is called a chart in Helm. And a chart is the thing we share, and there's a lot of, I can see Scott was involved a lot in it, I can see Paul here, Kaczoski here as well, he was involved in a lot of chart maintenance and a lot of chart creation over the years, and the power that brought to a lot of people too, to deploy all sorts of apps, some WordPress to whatever you want, to Ingress, et cetera. And when we go to deploy that now, we could see here, very similar to Cube CDL, and you're probably saying, where's the value in this now? It's just a different command, it's Helm install, you give it the name of your release, and then the particular chart, which is called my chart. Again, the same thing is happening, you're talking to Kubernetes server, or the Kubernetes API server, but what happens before it sends the Kubernetes API server is, it renders all this logic, pulling all the configuration into a manifest file, and the manifest files are sent to Kubernetes API server, exactly like how Cube CDL does it, and a lot of the logic around your authentication authorization is the same, it uses the whole ID of the config files, et cetera, like Cube CDL does. So you're probably saying, yeah, I've got that now, what else can I do with this? So if we now want to make a change on the fly, so if we were doing this, which I suppose are pure manifest files, through Kubernetes, now I know someone's going to pipe up and say, but there's a command in Cube CDL to change your replicats, yes, you're right, but let's say if there was, I don't know, if there was far more configuration in it, your options are to either pull down the apps that you've run in and redeploy it to changes the manifest files, or go in edit manifest files on the fly. Hands up here, anyone who's ever edited and deployed manifest files on the fly. Keep your hands up if you've made mistakes while doing that and made a mess of your cluster. Okay, all right, so these things happen, all right? What Kubernetes is, it gives you, or sorry, what Helm gives you is two commands, first one is upgrade, which means you want to operate or change the deployment you've already done. So how does Helm know about the deployment it's already made? Because it keeps that metadata in the cluster. It keeps it in a secret in the cluster. And it knows then when it's going to do an upgrade here, it's going to do a delta. So I come along now and I say, I change my replicas, all right, Santa's gone, the whole house is fed up with Santa at this stage. Let's just one replica running so that if someone wants to go and check up the Santa arrive or not, okay? So we change it to one and then we use the Helm upgrade. Again, we give it the release name and the chat, okay? Now the release name is important because there are different instances of the deployment. So now with Helm, you can install at different times using the one chat and you're just changing your configuration on the fly. That configuration can be broken into different value files and you can also set different configuration on the command line as well as you're doing that. A lot of tools built on top of it like Helm file, I'm trying to take a one or two orders, they built on top of that functionality because if you want to have different environments like production, test, development, whatever you want, it's often better to use the likes of Helm file because it's built in for doing that more than Helm itself. And also afterwards then if you made a mistake while you're doing that, you can use the rollback command which is just replace upgrade with rollback and then which version you want to go back to. At all times you'll be able to see then what instances are applied using commands like Helm list, et cetera. Just have a look at the documentation because I don't want to go too much into it today. Right, so we mentioned as well one of the other key parts was sharing is caring. I don't know if you've had that phrase grown up. None of us wanted to share our sweets with any sibling or anybody else but there you go. We were all to start sharing is caring and here it really really helps, okay? So here you'll be able to deploy a particular app out without knowing anything about the chart and sometimes people do that they've great fun with it. But a lot of maintainers have created charts over the years and they're now being hosted on their own in their own repositories, et cetera. And the ability to be able to take whatever you're looking to deploy, it's used for operators, it's used for deploying operators, it's used for deploying WordPress, Ingress, whatever you're looking to deploy, you can deploy from. So this is where the key comes in here is the value here that these charts can be shared. So down here in the bottom this was how we always share charts up to, I'd say, this last release that we know which is 3.9, am I right? 3.8. It was available as a 3.8. Oh yeah, sorry I've jumped the gun. 3.9 is underway, it's an RC, okay? So this is how you'd normally did it before and these were called Helmchart repositories. They were essentially HTTP servers you could put it on GitHub, you could use GitHub pages, there was Chartmuseum, et cetera, you probably used it. But now OCI support is gone to you in 3.8, yep. And you know if the ability to do it from an OCI registry. Hands up, anybody who knows what an OCI registry is. Okay. For those who may not these are a standard of what we're originally for Docker style registries. How you store your images, your container images. Docker helped set up the OCI and put the first spec. And then eventually that spec went 1.0 last year, November maybe sometime. Or maybe the year before and losing a sense of it. So what it gave you then was the ability to put different artifacts into what would traditionally have been a container registry or an image registry, you know can put Helmcharts into it. And it's slightly different because you want to tell it what the protocol is. And also down here at the bottom you can see here my repo is an alias. You can put an alias in for OCI registries. But folks will go through that in a minute. So you can see here you know if the ability to install anything without knowing exactly what it's about, but you can get your app in there. And you don't have to know about Kubernetes resources, et cetera. Right. So where are these charts, these magical charts? And if you haven't seen them before. Up to about a year, about two years ago there was a main chart repository to Helmchart repository. You'd still find it out there. It's now going to end of life. That initially was started as a sample ID for folks to be able to use charts and go. What happened was it became a huge beast of a thing with massive amount of charts. And there was a small group of people trying to maintain it. Parmin, one of them, Scott, Matt Freina and others, okay. It became unmanagable and non-maintainable. So the decision came that, look, if you're going to create a chart, you need to host that chart yourself and you need to maintain that chart. So what has happened is all these charts and Bitnami have been great at the front of this. They've taken all their charts. I don't know what they call Bitnami. They've taken all their charts and they've set up a chart repository with them. I don't know if they'll go down the OCI route we'll see. And you can get them there. But it would be nice to have one location. And that's where the artifact hub came in here. So this isn't... This is just a search engine, essentially. Or a marketplace tool where you can go in and you can check for different artifacts. No, it started out with a helm hub, which was just for helm charts. And then through Dan, who passed away, his idea was to make it for all artifacts that are out there. So you can see, there's a list of them down there. You'll probably find a few of your favorite ones in there. So you can go in and have a search there. And when you search for your particular chart you're looking for, it will give you all the details about the chart. It also does scanning, et cetera, on the chart. And you'll feel all the nice things that keep being added to it. So it's always ongoing. So if you want it, you go and look it for there. You get the URL and you can use it there. So the conclude on this is... So we looked at... I suppose a typical scenario you might have today about deploying apps out into a cluster or whatever. And we've looked at the ability that Helm brings you to extract out those configuration files and the ability to share true charts after that. So I'm going to just hand over now to Andy. Okay, so thank you. Thank you, Thor. All right. I'm going to need that. So anyways... So in the latest release of Helm, what were some of the newest features that came out? Nope. Big one. OCI registry. We talked about how many people are using it. How many are actually building and producing images or probably charts in storing them in OCI registries? Raise of hands. How many are planning on doing that? Why would you want to do that? Why do you want to go down a OCI registry versus a Helm registry repository? Anyone? It's less infrastructure. I don't want to maintain another source. If you're producing content, you probably are using a container registry. Why not use it for something else? So that's exactly what we try to do here is we now give you an easier vehicle to be able to share and consume Helm charts. For those of you who are not familiar with it, it is a way that you can store it within a container registry. However, very important to note that there are some commands that are not really applicable to OCI charts. The Helm repo and the Helm search, they really don't work very well because they're mainly meant to maintain Helm repositories. This whole effort took a long time. Played three full releases. It's actually even a GA. Oh, to actually do the final push? It's played about three years in the making. Oh, years in the making. Yes. He put an awful lot of effort in with the OCI and all that. Same with Map Arena as well. In addition, there are members of the ORAS project who helped us get over that finish line with a couple of final features. Really a great open-source success story here. One note that I wanted to call out is that if you're using OCI charts, there is a dependency on what registry you use. As we mentioned, OCI artifacts are somewhat new. Not every single container registry supports it. Do you notice one pretty big one that's not on that list there? Okay, it does support it. Docker Hub. Docker Hub does not support it. It's coming, but right now it doesn't. We've got confirmation in Slack that this is a high priority for Docker. That's the number one thing. If you start out with Docker and containers, you probably had a Docker Hub account. You may have gone somewhere else or used something else now, but I know I have one still. I push in my chart. I get a nice friendly error. What I screw up. It doesn't support it quite yet. It's coming. Other features that came out recently is validation time enhancements. We now validate the release name at installation time, as well as we also have some post rendering support. How many of you are using post rendering hooks? We now support argument passing, so you can go ahead and pass arguments to it. I know Paul's happy. In addition, we added some maintenance features. Number one, we upgraded the libraries for Kubernetes to 124. Obviously, there is dependencies on what APIs you're leveraging as well as what target cluster you're using. Some friends of mine who are using a very, very, very old version of Kubernetes, it does not work as well, because some of the APIs have been deprecated and have been removed in those releases. Warn in there, folks. Just when Kubernetes changes APIs, it does affect us in Helm, because we have to expose some of the Cube CTL API. That happened in the last release, which happened in this release, 3.9, because we have to keep up support with the latest version of Kubernetes. It also happens sometimes if you've deployed in a cluster with objects that were being deprecated and have been removed and you upgrade your cluster, you get caught as well for that, but we have a tool around that. That's something we can't... It's out of our control, and it's all done to... But we do have a known version policy, right? We have a known version policy, and I'll come to you in a second, sir. Go ahead. Sports, whatever the currently supported versions of Kubernetes, that Kubernetes upstream supports. So you stay on the version you're on. You would see the matrix table to see which version of Kubernetes it is. I think that was it. One thing I wanted to notice is if you want to know about some of the features, deprecations, et cetera, the Kubernetes blog always has a very detailed blog about the release, and especially when there's a deprecation, a special blog specifically on deprecations. I'm going to turn it over to you. Yes, Mr Scott. Thank you. All right. I'll go the correct direction. Okay, so getting involved. The first thing to say is we really do want you to be involved, and I just wanted to first start out by saying that, you know, Helm started before I got involved, but even when I got involved, it was a bit of a smaller group, you know, and Kubernetes was also a bit younger. Kubernetes is very mature, and Helm is a very mature project at this point, and so it can also be, you know, I can understand for folks that might be newer to the community, as well as people that have been around for a while but haven't really contributed in those areas, it can be a little intimidating. Please don't allow that to be the case for yourself because it really doesn't have to be. First of all, by the maintainers, we really want more contributors, and the fact that there are a lot of pull requests in there that are not reviewed yet is not an indication of a lack of interest in contributions. It's just a lack of people to do it. Not a lack, but a finite number of people to do this. Bandwist. Bandwist is the problem. Yes, so I'll get to that in a second on another slide, but basically I just want to start out with a huge welcome. Please, if you have literally any thoughts, interests in being involved in the Helm community, some of you already are, but for those who aren't yet, please give it a shot, and I'll just go over a couple of the ways that you can do that. One of the easiest ways to do this is to make contributions to the website. The website is at helm.sh, the docs are in the doc's directory, or the doc's path for the website, but the source code is here. So github.com, if you can't read, slash helm slash helm dash www. That's where all the... You don't really need to know... Well, you don't actually need to know how to contribute to the project. You probably do want to know a bit about Helm, or at least try to figure out a bit about Helm in order to contribute to the documentation, but fresh eyes are really important, too. So even folks that don't know a lot about that, if something seems unclear to you, I would say use the docs as a way to learn about Helm, just go through them and go through the examples, and if it doesn't immediately solve your questions, if it doesn't seem clear, if you're not getting to where you want to go, let someone know, and we can help... We can help you refine the ideas about what might make them more clear, and if you submit a PR to make this more clear, we will gladly review it and merge it, and you'll have your name on the list of contributors. Bridget does a lot of the reviews of the website. Karen does it once in a while, right, too? I do. She needs more than do it. You're like, I'm not signing up for this. Yeah, I do as well. Others do, so please do, and feel free, at least for me, to reach out to me on Slack or Twitter or whatever. I'm easy to find, right, and other maintainers, I think if folks are generally pleasant, I think Amy is perfectly fine. The one thing I want to make about this is that one thing that's not super welcome are PRs that, let's say, just sort of... It's like one spelling character off, or maybe there's one period that's changed, or the order of a list has changed slightly. A lot of those pull requests are... We do want you to contribute. We want your name in the list of people who've contributed, but we only want you to contribute something. We don't want just a name, so we don't want to change the system. It should have impact for the community. Anyway, even if it's just clarifying language or anything, it doesn't have to be big, but it does have to be something that's not just trying to get your name on there just without actually doing anything of substance. If someone's starting at the start, it's okay. To put it in, you're trying to get going, and what Scott is saying as well is when you're going through the documentation, that's a nice place. If you're trying to figure out how to deploy your environment and you find issues then, that's a great place for you to push PR. If you think, oh, I can't push that, that's just a simple PR in front of me, go for it. Because you are contributing, and you're learning as you go along. Thanks, Martin. Absolutely. Well said. We'll work with anyone who wants to make a PR, regardless of what you find, to make that of some substance for yourself and perhaps the next person that follows you. Okay. That's what you could do. That's how you do it. I'm looking out on Slack. Here's the Slack stuff. Inside Kubernetes Slack is where... I know we're at CloudNativeCon and KubeCon, but as many of you know, was part of Kubernetes early on, part of the Kubernetes Oregon, was split out to be its own project in order for Kubernetes to maintain the focus it wanted. Helm is always a big part of the Kubernetes community. From Helm's inception anyway. That's why it's there instead of in the CNCF Slack. There is a channel in CNCF Slack, but if anyone posts to it, we'll just go ahead and just point them over. Feel free to join the Helm channel in CNCF Slack in there, but I don't think I ever look at it. I don't think any of the maintainers look at it. Go into the Kubernetes Slack. Helm uses this as a great place to go for any kind of question, idea, thought, whatever. Helm Dev is really where development happens, and if somebody has interest in helping on that level, that's where we can discuss anything, whether it's just extending it for yourself in your own company or in your own project or contributing to the project in some way. Then the charts channel is still up and running. As Martin was saying before, the stable and incubator Helm repositories, for those of you that remember those, are no longer a central place, even though the artifacts from those old charts are still hosted, you're going to have different distributed Helm repositories, but anything that relates to any of those charts is still discussable in there because there's a lot of commonality. I don't really honestly check that as much as I used to, so if you want to ping me, feel free, but I might not see it otherwise, but someone will, and people can share tricks and tips. There you go, there you go. Yeah, trips and ticks. For being a Helm user and writing charts even for yourself, you're on private charts. For folks who do want to try doing that, I'm saying go through the documentation. Please do follow that to go ahead and you can run Helm yourself. It's a Go project, you can run it on your own laptop, you can test it out, and that can really help. I think the documentation for those interested, again, there's not a pressure to do that. This is kind of me recruiting you in a way, or trying to for folks who are interested, but it's not really, you're very welcome to be a Helm user and never contribute anything. But if you want to try and if you want to just sort of see how it works, please just follow the docs and let us know if anything's off. And again, we can go back to that first slide for what happens if you find something that could be improved. And then, yeah, opening issues in the appropriate GitHub repository. It's really just GitHub Helm slash Helm is where the Helm project is, and then there are Helm subprojects within that. I won't go over all of them right now for the sake of time, but it's fairly easy to find the info about that and also, again, in Slack, you can ask us and we can help point you to the right repository. Yeah, open issues, we love issues. And so this last one is, you know, kind of what I was alluding to before, that, you know, one of the, and what I think Andy mirrored back when he said bandwidth, right? So we have a lot of people that want to contribute to Helm. There's always several hundred pull requests open at any given time. No matter what we do, if we go through and spend a whole week triaging, we could basically all get together for a whole week and sit down and just keep going. We do that and we'll either improve, close, merge or whatever needs to happen, except in those pull requests, right? And we could close 50 of them, close 100 of them. What happens is the very next day, the very next week, that's sort of emboldened folks to be like, all right, you know, there are doing PRs more, next thing you know, we've got another 400 PRs. So it's not a sysyfician task when a lot of people contribute and we have had periods of time like that and we're looking for more time like that. So if you want to give a hand, did you have a thought? Oh yeah, if you want to give a hand, please do and we really want to join us and if you need help, like what does it mean to review a PR? We will walk you through, we've got a whole process. Yeah, and a lot of times, building the PR and testing it and just saying hey, I built this manually and tested it is helpful. Likewise with responding to issues, one of the most frequent time syncs for the developers is trying to figure out how to reproduce some of these issues. So just going, hey, yeah, this broke for me too, this was my system, this is how I set it up, this is what happened, here's the output. Oftentimes even if it appears to be a duplicate of the previous ones, we can then go, oh, here's the subtle difference, it's off by one minor release or something like that. So those kinds of things are great for us. They save us serious amounts of time. And if you're a developer, you may be a a Node.js developer, not a Golang developer. Just building the project just gets your system, yourself, understanding the workflow of Golang development. So it really helps not only for this project, which is what you'll be focusing on, but also other projects in the Kubernetes space just because many of them are Golang based. And I suppose one other aspect then is that if you have Kubernetes experience then in the issues coup is quite good as well because we get a lot of Kubernetes questions and issues that aren't actually Helm. So people jumping in I know there's a person Joe at the moment that's doing that and stuff. And probably the last thing to say in it as well is Helm isn't just to see a lion and use them directly. There's a lot of projects out there at the moment in Scott's company in Weaveworks with Flux, their Wrapping Helm, Argo CD Wrapping Helm, Operator SDK does. So if you're using any of those tools or your company is using any of those tools then giving back into Helm will be very, very valuable and beneficial to you and your company. Cool. And I'm going to pass it off to Matt in a moment for what's next. But really right before we wrap up this section we've got about five minutes left total here. We have a process for a contributor ladder process. Here this is that's maintainer ladder because we're focusing on the maintainership. If you want to go a step further and if you contribute even just one thing that is great and applause and like well basically like send you like hooky emojis or at least I will like everything, whatever you want. Any emoji you want is what I'm saying mostly. But if you make one contribution you know there have been a lot of people that have contributed to the project only once over the years and you know why not try another one? You know what I mean? Like why not stay for a bit? Why not kick your shoes off a little? I don't know. Feel welcome to not just do let's say a drive-by contribution. Again I'm not saying don't do one but if you're going to maybe do too maybe see if it works for you and we'd really love that. Get a second round. Whatever analogy you want and it just helps us to help you and each person to help each other as they get more familiar with the project. Once that happens though sustained contributions of whatever kind we want more maintainers for Helm. Helm has different sub-projects and Helm has a core maintainership. You can start off by being a triage maintainer that helps with I'm just going to fly through them real quick that's folks that have more permissions to work on to change labels to work on issues and PRs. The core maintainer is people that sustain the Helm Helm project and the org maintainer are people that work for governance. So there's a whole wide open field for you and I'm going to pass it off to Matt. Thanks. Thank you. So I'm quickly going to just talk about where we've been where we're going. I did a back of the napkin calculation a couple of weeks ago. If you have a small, rather successful open source project with a couple thousand users and you introduce a breaking change given about the average for what it cost a software developer or DevOps engineer and it impacts only around 10% of your user base. It cost a couple thousand dollars amortized across your whole user base. So a lot of times when you're a small open source project introducing a breaking change is bad but not horrible. But as you get larger and larger the number goes up. When I started running it for the latest numbers of Kubernetes even with only a bug or a breaking change that impacted only one in ten people and took only a small amount of time to find and fix. The numbers that I was coming up with were upwards of $145 million and I'm thinking that is a very profound way to look at the cost of a breaking change even if it's a minor breaking change it costs a lot of people opportunity costs time spent fixing this kind of thing frustration, sometimes downtime and money. Helm has for a long time a fairly rigid policy it's actually written down about what we consider a breaking change when we will introduce breaking changes spoiler only during a major version change and the lengths that we will go to in order to avoid making those kinds of changes. Now on occasion people interpret that and go oh so the project's basically not doing anything interesting anymore. But that's not the case, we're just trying to make sure that we operate at a cadence that allows people to predict oh I need to spend more time preparing for this release because it will have breaking changes oh this one's a minor patch release I can be more confident that I can roll it out quickly and not have to worry about a nasty surprise in production. So because of that then you can kind of frame out this slide don't use Helm 2 by the way if you are using Helm 2 you are in security hot water it hasn't been maintained in over 1.5 years. Helm 3 is the current stable major release. For the most part the last big feature we wanted to have in Helm 3 was OCI it took us a lot longer than we wanted and we introduced it very slowly it had an experimental flag so that we could keep operating on it up until we were confident that it was ready for production and we put that one out in two releases ago now. So with that one we're planning a couple minor features that will roll out largely Helm 3 we're just going to try and keep it stable keep it usable when you find a bug we want to get that fixed when we find a security kind of thing we will move the earth in order to try and get that fixed but we won't be introducing any more large features in Helm 3. So Helm 4 is coming we have begun sort of the informal stage of planning for Helm 4 but again when we think about the impact of a large project making big changes and the community having to adopt it in existing production clusters and things like production environments we want to be very intentional about it and very careful and so as we go into Helm 4 we're requiring that all new major features and many new minor features have to be completely written the design proposal has to be completely written so that everybody can kind of take a look at it and say yeah this is good this is bad did you think about these cases over here so we have a process called the Helm Improvement Proposal Process that we're asking developers to walk through, contributors to walk through as we plan out the new things for Helm 4. We've been using this process for two and a half three years I think now for features in Helm 3 and it has worked out very well I know it started yeah it was inspired by Kepp Kepp and Python improvement proposals and so we've been using it for a while we're getting fairly confident I know it can be burdensome to write a document and then have to deal with comments and things like that but largely the benefits have way outweid the cost of that so you know on the bottom these are actually the same link both times but the github.com slash Helm slash community repository has a directory in it called HIPs and that's where all the Helm improvement proposals are you can see everyone from HIP 000 which describes the HIP process through the latest proposed ones and then if you go and look in the PR queue you'll see the ones that haven't yet passed through the process of review but that's how we're planning on doing Helm 4 as we look at those and see the ones that kind of bubble to the top and the compelling cases made we will begin the development process for Helm 4 but we're not really in a huge hurry at this point in part because we need more maintainers so again you know if there's a hard call to action help us maintain Helm we would love that we appreciate it very much and there's an easy call to action which is if you want to chat with us you can come over to the Helm booth I for one will be going over there right after this talk and if you wouldn't mind scanning that QR code and playing the game that is at the other end it's called like fill in the survey or something like that very fun but if you could do those kinds of things those would be very helpful to us again just to sort of wrap up and conclude with the common theme across all of these you know we have been working for a long time on Helm in order to make it a good solid project for the community at this point we are sort of a slow moving project but we're doing it in a way that is intentional because what we want to do is help build something that occurs the most benefit to the community and our big needs right now are just more people helping out in small ways and big ways around the community so thank you all very much for coming today and again thanks to my co-presenters see you at the Helm booth Super good sorry for giving you less time than I wanted the better right