>> Hi. I'm Bridget Kromhout,
Principal Program Manager with Azure.
And today, we're going talk about migrating from Helm 2 to Helm 3.
Helm is a widely used package manager for Kubernetes,
and Helm 3 is the new shiny.
You know, it's simple, secure, and enterprise-ready.
But realistically, a lot of us already have Helm 2.
And say you have Helm 2, you're yearning for
Helm 3, and you know you can't just start with
Hello WordPress because you
have a whole bunch of charts in production right now.
So, let's walk through an upgrade together.
You can keep your charts, plugins,
repositories, and even migrate your existing releases.
This walk through assumes that you've
installed an alias Helm
such that Helm is Helm 2 and Helm 3 is,
well, Helm 3. So that we can see them
side-by-side in the same cluster.
And we're first going to migrate plugins and repositories
and then we're going to migrate a release.
Alright. Let's jump in. Let's look at Helm version.
Now with Helm 3, the first difference you note
is that there's no more server version,
only the client because there is no more tiller
in Helm 3 and there was much rejoicing.
So, our first step is going to be installing
the migration plugin into Helm 3.
And we can see it downloads, it installs.
We can see that the plugin is installed.
And another difference, is that we can see that
Helm 3 doesn't come with a stable repository by default.
This is what we call foreshadowing.
We'll see what to do with that in a minute.
So let's take a look at the migration plugin.
What it does is it can convert releases
and it can migrate configuration.
It can also do some cleanup.
You can do that on your own time.
Let's try a dry run.
This is dry run mode.
It'll just show us what it's going to do.
It won't actually do it.
So you can see that it will create a bunch of
folders and data directories.
It will copy over anything that was in our Helm 2 install.
So, let's take a look at what's in our Helm 2 install right now.
We have several repositories that are not the default repository.
We've added a few other ones.
Again, Helm 3 has no repositories by default.
Let's look at our plugins in our Helm 2 cluster.
We have a few plugins just to have some plugins.
What plugin do you think we have in Helm 3?
Well, we have the one we've just installed,
we have the migration plugin.
But that's it, no other plugins.
Okay, cool. So, what we can do here is we can do the migration.
It warns us that we might lose v3 configuration.
So, you know, obviously take precautions.
But, this has moved
the configuration again from our Helm 2 to our Helm 3.
Let's take a look. Hey, look at that, Helm 3.
We now have all those repositories as an option
and we have the new plugins from Helm 2,
but it didn't override
the two to three plugin that we already had in our Helm 3.
So that was plugins.
But you may be saying, well, that's fine,
but I have a bunch of releases that already exist in
my Helm 2 cluster and I would also like to preserve them.
I'd like to move them over.
Okay.
So again, we've moved configuration.
But let's take a look at what's in the Helm 2 cluster.
We have some stuff that was released yesterday,
and just to make sure you see
we have nothing up our sleeve.
Our Helm 3 has nothing installed in it right now.
So, say we want to pick one of these.
Let's take a look at what the convert tool does,
and of course it has a dry run option as well.
It has options for if tiller is
in a different namespace as options,
if tiller is not even running in your cluster.
So depending on what your Helm 2 looks like,
you may need some of those options.
But we're going with a really simple path here.
We're just going to convert that Postgres release.
We're doing it in dry run mode first.
And we can see, alright, it's just going to
create a copy of that Postgres release,
which we only have one version.
Again, this is the simplest possible case,
but you can extrapolate from this.
So, let's take a look.
We've converted the Postgres release,
and note that it says that the v2 still remains.
So again, this doesn't do anything
to our v2 cluster that we already had running.
That was, you know, presumably production and important,
and we definitely didn't want to break in anyway.
It's all still there.
But and this is where it gets interesting, check it out.
The Helm 3 stuff that we just brought over,
it was running in the old cluster
a day ago and we've brought over
that exact release that was updated at that exact date.
We didn't do a new deployment of Postgres,
we brought over the one from before.
So, hopefully that gives you a sense of
what this migration looks like.
So to summarize, you have to migrate from Helm 2 to Helm 3.
There are many details that we
didn't show in this very short video.
But that plugin will help you test and validate your migrations;
figure out what needs to change in any of your charts.
You can do your migration with this tool and then also convert
your releases from what's
in a v2 release to what's in a v3 release.
Again, you have to validate.
Make sure everything works after that,
but this is a place to start.
Resources, we have that Helm 2 to 3 plugin.
You can check that out.
There are, of course, many details that we
didn't cover in this short demo.
There's a Helm v3 FAQ that goes
into great detail about the many differences,
invisible and visible, that you may want to know about.
Again, most of your charts are going
to work just fine without any changes.
You can even convert your releases,
but you may want to read through
the FAQ as you're migrating from 2 to 3.
And remember, Helm v2 is
in security patch only mode as of August 2020.
And by the end of November 2020,
it will not be accepting updates whatsoever,
which means that you really want to migrate to
Helm 3 sometime between now and the end of 2020.
Learn more about Kubernetes on Azure and
check out more demos. Thanks!