►
From YouTube: Code Base Tour: github.com/kubernetes/kubernetes
Description
Stefan Schimanski (@sttts) walks us through how the kubernetes codebase is organized on github.
Want to see more codebase tours? This is a part of our monthly mentoring YT series called Meet Our Contributors. use the #meet-our-contributors on the k8s slack team if you'd like to ask a question for our contributors.
A
B
I
won't
talk
about
all
of
those
directories
like
20
here,
I
pick
a
few
yeah
I.
Let's
start,
maybe
with
this
package
PKG,
it's
the
main
package,
where
or
not
all,
but
traditionally
there
was
all
code
of
kubernetes.
Basically,
everything
which
made
the
newest
project
was
here.
Nowadays,
we've
moved
out
a
lot.
You
will
see
in
a
second
where
other
things
are
today,
but
you
still
find
a
lot
of
things.
So,
for
example,
if
I
go
here
to
package
controller,
you
will
find
a
whole
list
of
controllers.
B
Controllers
might
be
a
term
for
you
controllers,
operators
and
those
are
those
for
fajitas
resources.
For
example,
you
find
all
the
replica
set
logic
here
or
deployment
logics
of
the
resources
you
know
from
kubernetes,
always
a
business
project
behind-the-scenes
everything
that's
called
hula
mentor
is
doing.
This
is
here
in
this
directory,
like
30
40,
different
controllers.
I,
don't
go
into
details
here,
but
it's
also
really
interesting.
B
If
you
want
to
learn
from
code
just
move
into
that
bigger
set
for
example,
and
and
see
how
a
replica
sets
logic
of
replica
set
is
implemented
in
kubernetes,
I
talked
about
owner
fired,
so
here's
one
of
those
owner
files,
just
owners
include
capital
case,
and
you
see
there
for
approvers
and
one
reviewer,
and
this
owner
file
is
rated
for
all
subdirectories
under
controllers.
If
there's
no
other
owner
file,
which
replaces
this
one,
so
those
four
people
can
approve
the
changes
in
controllers
as
well.
B
It
means
and
David
Dietz
my
colleague
he
he
wants
to
review
a
changes.
If
you
change
something
now
for
exampie
and
replica
sets,
maybe
there's
another
another
owner
file
which
replace
a
higher
level
one.
They
are
different
people,
so
they
are
just
three
to
us
and
for
people
who
want
to
review
changes
in
here.
B
Control
us
as
I
said
we're
the
important
quarter
of
code.
We
have
API
is
split
around,
so
here's
something
good
API
is
I
will
not
talk
much
about
that,
because
there's
a
better
place
to
look
for
that,
but
you
find
all
API
is
here,
but
knows
not.
Those
API
is
which
you
actually
use
so
I
don't
want
to
dive
too
much
into
this
package
structure.
It's
pretty
huge
I
go
back
to
the
top
level
and
show
where
the
other
code
is
so
packaged.
There's
a
lot
of
code.
We
have
CMD
which
other
commands.
B
So
if
you
go
into
CMD,
of
course,
you
find
things
like
hyper
cube.
So
if
you
have
started
a
cluster
yourself,
you've,
probably
you
Sai
back
to
you
before
everybody
has
used
to
controllers.
So
if
you
control
is
the
top-level
file
for
the
command
to
control,
so
that's
probably
a
main
function,
but
much
more
and
all
those
binaries
you
find
here.
So
it's
pretty
easy
to
get
an
entry
point.
If
you
look
for
for
how
something
works
in
kubernetes,
so
CMD
in
package,
we
have
the
rectory
heck,
yes,
a
bunch
of
scripts
scripts.
B
You
have
to
use
if
you
want
to
do
changes.
For
example,
when
you
change
something.
Quite
often,
you
have
to
update
something
you
have
to
update
generate
the
code
until
you
find
all
those
update
scripts
just
update
all
you
can
wonder
it
takes
like
40
minutes
or
so,
and
then
everything
is
updated
takes
long.
It
works
yes,
but
usually
so
I
never
call
that
I
usually
see
from
from
CIE,
which
is
running
against
my
peers.
What
must
be
changed
or
must
be
updated,
and
then
I
won
the
right
script.
B
So
here's
a
bunch
of
I
know
30
different
update
scripts,
for
example,
if
there's
Cochin
involved,
so
we
change
something
and
there
must
be
a
change
in
a
client
or
in
some
API
code
or
the
copy
code.
This
is
a
fire
to
call
for
you
be,
of
course,
if
you're
new
in
this
code
base
it's
hard
to
really
tell
which
one
must
be
one.
B
So
maybe
it's
easier
to
one
just
update
all
after
you
notice
that
your
PR
is
not
green,
because
something
is
missing,
so
update,
also
very
important
one,
and
there
are
a
couple
of
test
scripts
here:
how
to
run
tests
for
intubation
or
just
go
test
unit
tests
also
undocumented
as
well.
So
if
you
look
for
those
scripts,
he
answered
positive
if
I
were
to
find
some
documentation
last
but
not
least,
as
a
staging
directory.
B
So
if
you
have
programmed
anything
in
kubernetes,
you
probably
know
a
couple
of
those
projects
so
client,
oh
I,
said
when
a
prominent
one,
it's
our
client,
basically
the
API
one
here
Kate
as
API.
It
includes
all
at
the
ice
we
expose,
which
can
be
used
by
third
parties,
those
repositories
they
are
inside
of
our
main
repository.
So
if
I
dive
into
the
staging
here
staging
Sasuke
as
IO,
you
find
all
the
source
code.
So
you,
for
example,
you
find
the
client
go
source
code
and
you
can
change
it
this.
B
So
if
you
want
to
change
something,
do
it
here
in
the
staging?
Those
directories
all
also
secrets
under
staging.
They
export
it
to
the
real
directories
under
github,
so
I
hope
you
can
see
that
if
I
go
here
in
the
kubernetes
client
go,
this
is
what
you
use
in
go
code.
If
you
program
against
our
API,
it's
just
a
copy
of
what
you
find.
What
you
find
inside
of
the
staging
so
staging
is
a
prime
instance
of
the
source
code.
B
So
if
you
change
something
do
it
here,
but
if
you,
if
you
consume
our
our
repositories,
do
it
in
the
actual
publish
repository
so
under
get
up
kubernetes
client
go
as
I
say
it's
a
couple
of
them,
some
of
them.
You
see
here
as
a
camera.
She
knew
we
usually
use
this
API
server.
If
you
program
an
API
server.
B
Those
are
very
important.
A
lot
of
them
are
like
movies,
so
they
already
pouring
kubernetes
where
the
internal
yeah
just
post
them.
We
don't
have
enough
time
to
detox
who's
them
here.
Take
a
look
pose
the
code
in
general.
This
is
yeah.
It's
one
suggestion
quit.
Is
this
huge,
so
the
code
base
is
really
huge:
try
to
get
ready
some
kind
of
ibaka
some
IDE
like
years
code
like
öland,
try
to
get
a
debugger
working.
This
helps
a
lot
to
really
trace
when
something
happens.
B
B
Yeah,
maybe
the
last
thing
I
want
to
mention.
We
have
plenty
of
those
other
tests
which
are
one
in
CIA
against.
You
will
request.
We
have
many
unit
tests,
of
course,
unit
tests
as
usually
and
gos.
They
are
just
files
inside
of
the
packages
and
then
we
have
an
addition,
something
that's
also
an
acronym.
Of
course.
We
use
end
to
end.
So
it's
end
to
end
test
are
those
which
are
warning
against
the
really
trust
us
so
I
know
I
just
pick
one
here
so
which
you
find
everything
about
storage.
B
B
There
are
more
than
unit
tests,
but
they
are
not
running
against
a
complete
cluster,
so
they
are
kind
of
artificial,
sometimes
use
API
server,
but
they
don't
use.
What's
they
don't
use
containers
at
all,
so
they
are
level
between
unit
tests
and
end-to-end
tests,
and
you
see
a
nicely
sorted.
According
to
some
topics,
so
if
you
I
know
you
want
to
change
something
in
the
cooter
handling
good
chances,
it
says
a
crouton
rectory
here,
and
this
is
the
case,
so
we
are
hotel
tests,
for
example,
depending
on
the
topic
you
are
working
on.
B
A
That
was
an
awesome,
tip
and
awesome
tour
by
the
way
that
so
this
was
our
first
impromptu
tour
on
meet
our
contributors.
So
thank
you
so
much
for
doing
that
and
for
those
listening.
We
are
more
than
welcome
to
do
things
like
that
in
the
future.
You
just
give
us
a
24
plus
our
lead
time
we
can
make
for
folks
like
Stefan
Joel
or
our
on
the
line
to
to
best
answer
those.
Thank
you
again
for
that.
All
right,
I
have
more
questions
than
we
have
time
for
so
I'm
gonna.
A
Do
those
in
the
order
that
they
came
in?
Let's
see,
Oh
Nikita
has
a
question
and
meet
our
contributors.
What
are
your
suggestions
for
reviewers?
How
does
one
become
a
good
reviewer
and
also,
as
she
said,
etc,
but
I
know
some
other
folks
in
the
channel.
We're
also
talking
about
how
even
members
which
is
the
first
rung
on
our
ladder,
can
review.
So
what's
the
point,
an
owner's
file
is
a
reviewer,
so
that's
a
Multi
multi
prone
question
there.
A
B
So
let
us
say
make
sure
that's
a
quality
of
codes.
It's
on
the
on
the
height
level,
like
they
really
go,
every
little
change.
You
do
every
line,
usually
you
do.
They
might
look
picky,
sometimes
a
p10
tick,
but
this
is
important
somehow,
because
if
everybody
follows
any
kind
of
style
without
any
uniformity,
the
whole
project
gets
harder
to
maintain.
So
there's
a
reason
for
that.
All
of
us
usually
is
a
so
yeah.
B
They
want
to
improve
code.
Sometimes
it's
about
taste.
This
can
happen
but
say
they
have
ready
positive
intentions.
Usually
so
it's
fine
to
discuss
things
or
to
say
well,
this
is
maybe
not
my
opinion
or
it's
a
different
style.
That's
all
fine,
but
they
have
good
intentions
to
improve
code,
and
this
brings
me
to
maybe
is
a
second
part
of
the
question
how
to
get
it
with
a
viewer.
B
B
This
is
not
necessary,
but
the
best
way
to
become
a
Rabb
you
enough
will
read
here
whatever
this
means
just
start
lab
you
look
in
in
some
components
you
you
care
about,
you
really
deeply
care
about
and
just
start
have
you
in
any
kind
of
PR.
Everybody
is
happy
about
values.
I'm,
just
very
important.
Everybody
is
happy
about,
have
use
I'm.
The
worst
thing
for
contributors
is
say,
contribute
some
things.
I
prove
something
a
PR
and
nobody
cares.
B
So
if
you
have
you,
that's
already
the
first
step
and
it's
very
good
for
the
people
who
contribute
code
and
don't
be
frightened
if
the
person
who
who
for
something
is
the
well-known
person
as
a
project
yeah
do
your
best.
If
you
have
you,
if
you
see
something
start
with
things
which
are,
maybe
not
so
deep,
just
apply
your
knowledge.
If
you
think
this
is
not
good
style
and
go
comment
on
it
and
get
known
in
this
component,
that's
as
easy.
B
If
you
have
done
10
reviews
or
20
levels
in
this
component,
and
then
you
make
a
PR
against
the
owner
fire,
everybody
will
agree
because
everybody
is
happy
to
get
more
viewers
every
go
so
good
for
the
project
say,
increase
velocity
and
say
makes
life.
Everybody
could
do
better
basic
approver
next
step.
So
if
you
want
to
be
owner
and
approver,
this
means
you
must
be
reviewer
for
at
least
a
few
months,
and
you
must
be
well
known
and
accepted
to
be
some
kind
of
instance,
as
a
reviewer
for
this
component.