SETH VARGOS: Welcome back.
Next up we have Ahmet.
Ahmet, why don't you tell us a little bit of what you do?
AHMET ALP BALKAN: Sure, Seth.
My name is Ahmet.
I'm a developer programs engineer at Google Cloud.
I work on Google Kubernetes engine,
[INAUDIBLE] project and so on.
SETH VARGOS: Awesome.
So you've been working in Kubernetes for quite a while.
I've been following your career.
What's one of the biggest pain points
that you see in the Kubernetes ecosystem right now?
AHMET ALP BALKAN: Yeah.
So my primary audiences are developers,
and I think developers deal with these command line
tools want not a lot.
So I'm seeing that in some inner iteration circles,
there's a lot of developer cycles wasted, if you will.
That is like going towards just these simple things
around tools like Kube control.
So I like to develop tools and shortcuts around Kube control.
That's my personal passion.
SETH VARGOS: And Kube control is like one
of the main ways in which people submit everything
to Kubernetes, right?
AHMET ALP BALKAN: Yeah.
SETH VARGOS: So what are some of the problems around Kube
control?
Or where can we expand it?
Or where are people hitting pain points?
AHMET ALP BALKAN: So there's like an entire open source
special interest group, Sig CLI, in Kubernetes that's
dealing with that problem.
One of the areas that they propose improvement is that
they cannot possibly implement everything that people want.
So they wanted to provide some extension capability
around kubectl.
So they basically said, hey, why don't we
provide in plugin systems so that people
can write their own programs around kubectl,
and they can invoke them through the kubectl command line.
SETH VARGOS: Have you written any plugins yourself?
AHMET ALP BALKAN: Yeah, I've been playing
with some plugins myself.
One thing that actually I've been working on
is a plugin manager called Krew.
So this is basically [INAUDIBLE] Mac OS and this--
it's Kubernetes K, so {} There is a nautical theme there,
if you can catch that.
SETH VARGOS: So K-R-E-W, not C-R-E-W.
AHMET ALP BALKAN: Yes.
Yes, that's right.
So this is a project that we've been working on
at Google Cloud.
This actually-- this project was started by my intern
this summer, Luke Pritchard.
He's [INAUDIBLE] on GitHub.
So he's a super cool guy, and w started
this project called Krew.
So what Krew does is it's a plugin manager for a kubectl.
So if you want to discover plugins,
if you want to install plugins, you can go to Krew,
install Krew onto your computer, and then from there
you can discover new plugins and just bring them to your machine
and then use it with kubectl.
SETH VARGOS: So I assume it's open source.
AHMET ALP BALKAN: Yes.
This is open source.
If we haven't announced it a lot,
I guess this is probably the biggest announcement so far.
SETH VARGOS: You heard it here first, people.
AHMET ALP BALKAN: Yeah.
And then right now we're in the process of talking to Sig CLI
to perhaps donate this project to Kubernetes open source
community and make it a non-Google project.
SETH VARGOS: Well, so let's get technical for a bit.
Since this is the announcement, how does Krew find plugins?
Is there a registry, GitHub?
How do we find them?
AHMET ALP BALKAN: So we have a central registry
on GitHub W Outbreak currently.
Anyone who would do all those plugins,
we just need those people to package their plugins
into, say, something like a tarball or zip file,
and then they write a manifest file describing how
the plugin should be installed.
And then they submit this plugin manifest
file to the central repository that we have,
and then from there everyone can discover those plugins.
So if you're shopping for some, let's say,
a plug to read the logs, you don't
have to go to Google Search and like search what
are the plugins that I can use.
So you can just come to Krew and search for logs,
and then we'll show you all the plugins
that are about log reading.
SETH VARGOS: Well, so let's go back.
Let's say Krew doesn't exist.
How do I get a plugin into kubectl today without Krew?
AHMET ALP BALKAN: Yeah.
Well, first of all, you need to find
that a plugin that you're looking for exists.
I think that's one of the biggest problems,
and that's one of the primary reasons
that we just started Krew.
Discoverability is one of the largest problems out there.
So after you find the plugin, you
need to download to your package,
and then you need to name it in a specific phase.
So let's say you have a plugin called food,
so you need to name it kubectl-food
and then put it into somewhere in your path.
And if you put it in your path and everything is good,
you can invoke it by saying kubectl space food.
So that's how you install and set up plugins.
SETH VARGOS: That sounds like a lot of magic.
AHMET ALP BALKAN: So imagine you're
installing 10 to 15 plugins, and you
have to keep them up to date because all these plugins will
have newer versions.
So that's another thing that Krew solves really well.
If you manage the plugin lifecycle
and we can bring the updates automatically,
you basically say, hey, kubectl Krew update,
and we basically update all these plugins
if they have newer versions.
SETH VARGOS: Awesome.
So this thing sounds really cool.
One, where can people get more information, and two, what's
the future look like for Krew?
AHMET ALP BALKAN: Yeah.
So people can go to GitHub.com/Googl
eContainerTools/Krew with K. Feel free to try it out.
I think we're on something like version 0.2.
This is still very early days.
So far it's been working fine.
We have over, I think, almost 20 plugins.
By the way, there are not a lot of plugins yet,
so we also want people to think about plugin ideas
and what to develop.
But also we want to donate Krew to Kubernetes project,
so we want it to be a Kubernetes Sig CLI project that perhaps
someday eventually rolls into kubectl,
so that you can just say kubectl plugins install food.
So we want to go to a world where these sort of things
are easily discoverable and manageable.
SETH VARGOS: Awesome.
Thank you very much, Ahmet.
AHMET ALP BALKAN: Thank you, Seth.