►
From YouTube: TGI Kubernetes 060: Kubernetes in Docker + etcd
Description
Come hang out with Kris Nova as she does a bit of hands on hacking of Kubernetes and related topics. Some of this will be Kris talking about the things she knows. Some of this will be Kris exploring something new with the audience. Come join the fun, ask questions, comment, and participate in the live chat!
A
A
A
We
do
a
weird
thing
with
CSS,
where
it
kind
of
like,
like
mimics,
a
browser
and
that's
how
we
get
the
chat
in
a
YouTube
stream
here.
So
I
don't
know,
maybe
it's
this
new
version
of
OBS
that
I
downloaded.
That
is
doing
something
weird
with
a
CSS
anyway
I'm
pulling
up
the
chat,
really
quick.
So
give
me
one
second:
how
is
everyone
doing
today?
I
know
last
week
was
an
exciting
week
for
us.
A
So
anyway,
I
got
the
chat
pulled
up.
Let's
see
what's
been
going
on
here,
it
looks
like
folks
have
already
said
a
lot,
so
I'm
gonna
try
to
play
catch-up
and
see
who's
here,
and
everyone
has
been
talking
about.
So
Olaf
was
our
first
one.
This
week
he
says
happy
Friday
from
Denmark
we
have
a
waving
from
hey
soos.
We
have
Bob
happy
holidays
from
Hollywood
California,
a
nice
20
degrees
Celsius.
Thanks
for
using
the
metric
system,
Bob
I'm,
sorry
yeah,
that
was
Bob.
A
So
anyway,
reporting
in
for
duty
from
Bogata
262,
Fahrenheit,
17
Celsius,
we
have
looks
like
Jose,
had
a
quick
question,
one
quick
question:
any
tips
for
application
log
eating
Kade,
so
it
looks
like
Olaf,
had
a
little
back-and-forth,
so
I'm
gonna
breeze
past.
That
looks
like
a
lee
seon,
oh
good,
to
see
you
again.
How
do
you
folks
Happy
Holidays?
It
was
nice
to
see
Chris
enjoying
cube
con.
It
was
good
to
see
you
too.
Actually,
we
met
I,
probably
met
20
or
30
people
who
came
up
to
me
and
was
like
hi.
A
You
don't
know
me,
but
I
watched,
eg
I
can
tweak
and
I'm,
like
oh
cool,
have
we
ever
interacted
before
they're
like
no
I,
don't
ever
say
anything
so
I'm?
Looking
at
all
of
you
folks,
right
now,
if
you
don't
usually
say
stuff
in
the
chat
at
least
introduce
yourself
and
say
hi,
you
are
welcome
and
we
do
really
appreciate
when
you,
when
you
get
involved
and
ask
questions
and
help
me
out,
it
makes
the
show
a
lot
a
lot
more
fun.
Okay,
so
we
have
every
Star
Fox
Miguel,
hello,
everyone.
A
We
have
I'm
gonna
butcher.
This
Mac
pool
hello,
everyone
Jose
says
hi
from
New
Zealand.
Sorry
Miguel
says
how
are
you
doing?
Chris
Marco
says
hello,
Marco
good,
to
see
you
too.
It
was
good
to
see
you
Marco
and
thanks
again
for
all
the
hard
work
you
do
Marco.
You
do
a
lot
and
open
source
and
we
all
appreciate
it
will.
Dear
hello,
we
have
done
the
step
chris
hype,
I'm
assuming
that's
a
berg
dis.
That
was
a
comment
about
how
my
voice
was
repeating
itself.
I.
A
A
A
I'm
happy
Friday
from
Toronto,
hello
from
Berlin,
Germany,
happy
holidays,
Syed,
hello
from
London,
Mohammed
and
happy
holidays
from
New
York
Burgas
says
lurking
from
a
foggy
wood,
minus
1
degrees
Celsius
in
Iceland,
so
I
will
be
in
Iceland
for
10
days.
I
leave
on
Monday
I'm
gonna
be
mountain,
climbing
and
ice
climbing
all
of
the
beautiful
frozen
waterfalls
right
in
there.
But
I
am
a
little
bit
nervous
about
you
know
going
to
a
new
country
in
the
winter.
A
There's
been
a
lot
of
Avalanche
activity
here
in
the
Pacific
Northwest,
but
I've
been
trying
to
track
the
weather
nice
land
pretty
regularly,
and
it
actually
looks
like
it's
been
pretty
good
I'm
a
little
bit
bummed
to
hear
it.
So
it's
minus
one
though.
Hopefully
it's
not
that
bad
when
we
land
in
Reykjavik
but
yeah
I'm
really
pumped
for
Iceland.
That's
like
my
Christmas
holiday
present
to
myself
so
hi
from
Tunisia.
How
do
you
from
New
Jersey
hi
from
Madison
hi
from
düsseldorf,
Germany
wow?
A
We
have
a
lot
of
people
joining
from
overseas
hello
from
Berlin
yo
Chris.
How
are
you
Robert
good
to
see
you
too
Robert?
He
plays
drums
in
the
Gopher
comp
band
and
I'm.
Usually
just
like
you
know
the
like
an
emo
chick
with
an
acoustic
guitar
playing
rhythm
guitar,
so
david
says
good
afternoon
from
Eugene
Oregon
and
the
room
says
hello
from
Paris.
Ok,
so
I
have
a
lot
to
go
over
before
we
get
into
kind
and
at
CD,
so
we're
gonna
jump
right
into
this.
A
So,
let's
see
I'm
gonna
go
to
my
screen
in
my
face:
oh
the
chats
still
gonna
be
there.
This
is
gonna
drive
me
nuts.
Let's
see
what
our
properties
there's
there's
height
and
width,
how
do
I
change
this?
Let's
just
try
properties.
A
Let's
do
width
set
to
200,
see
what
this
does
OOP,
that
might
be
a
little
bit
better.
I
think
that
it's
at
least
a
little
bit
readable
I.
Let
me
know
what
what
it
looks
like
for
folks
on
on
your
end,
if
that
looks
ok
to
somebody
give
me
a
thumbs
up
or
something
I
think
it's
a
little
bit
more
legible.
Now,
ok!
So
anyway,
here
we
have
our
hack
MD,
since
George
is
not
here,
I'm
gonna
copy.
This
and
I'm
gonna
go
down
here
to
my
Chad
and
let's
see
if
that
worked.
Yes,
ok!
A
So
there's
a
link
in
chat.
Now,
oh
and
it
looks
like
we're,
cutting
folks
off.
Let
me
see
what
I
can
do
here,
properties
so
for
Hyatt.
Let's
do
six-hundred
see
what
this
looks
like
close
and
I.
Don't
think
it's
scrolling
now,
but
it's
a
little
bit
better.
Let's
just
keep
it
here.
I
think
that's
the
best
we're
gonna
get
anyway.
There's
my
hep
D
a
link.
I
just
did
and
that's
the
hacking
D.
So
if
you
want
to
take
notes,
George
isn't
here
to
help
out.
A
So
it
would
be
nice
if
somebody
else
wanted
to
volunteer.
We
can
give
away
like
some
some
theme
to
say
thank
you
and
we
do
usually
do
like
a
giveaway
every
week,
but
I
don't
know
how
to
set
that
up.
So
we're
gonna
be
skipping
it
this
week.
So
if
you
want
a
chance
to
win
some
sweet
swag
help
out,
take
some
notes.
Pay
me
afterwards.
Let
me
know
that
I
you
were
able
to
help
out
and
we
will
go
from
there.
A
Okay,
so
anyway,
the
first
thing
that
we
have
is
we
have
these
reference
links
that
we
do
every
week
and
this
is
supposed
to
be
kind
of
like
what's
new
in
TGI
K
or
like
what
happened
in
kubernetes
you're,
like
what
happened
at
this
conference
and
it's
kind
of
like
the
like
daily
weekly
reporting,
with
your
host
here
on
TGI
K.
So
last
week
was
Keep
Calm.
A
So
a
lot
went
down
so
I'm
gonna
talk
a
little
bit
about
kind
of
what
the
conference
was
like
give
some
folks
an
idea
if
you
weren't
there
what
it
was
like
for
me,
the
first
one
we
want
to
talk
about
is
this
playlist,
so
the
CN
CF
is
really
really
great
about
putting
up
all
of
the
cube
comm
talks
and
they
had
some
of
these
up
and
online
like
the
day
after
the
conference.
So
most
conferences,
I've,
seen
like
the
turnaround,
is
like
several
weeks.
A
A
So
you
could
sit
down
and
just
watch
kubernetes
videos
for
like
days
on
end,
but
I
went
through
and
I
picked
out
a
handful
of
ones
from
some
of
our
all-star
developers
and
developer
advocate
type
people
here
at
patio,
so
because
I'm,
the
only
one
here
in
the
office
today,
I'm
gonna,
pat
myself,
on
the
back
and
we're
gonna
talk
about
my
talk.
First
cuz,
that's
just
the
type
of
person
I
am
and
Mac
bull
says:
Julia's
talk
was
great.
Mac
Bowl
actually
brings
up
a
really
good
point.
A
If
you
go
to
the
TGI
K
repository
I
actually
started
two
new
issues
that
I
wanted
to
use
for
today's
episode.
The
first
one
here
is
favorite
talks
of
cube
con
seattle
2018,
so
I'm
gonna
tweet
about
this
afterwards
will
tweet
about
it
from
the
hefty
owe
account.
If
you
have
a
video
that
you
liked-
or
you
think
would
be
good
for
folks
to
watch.
A
This
is
an
open
source
place
to
come
and
just
track
that
and
maybe
leave
some
commentary
about
videos
or
give
it
a
thumbs
up
if
you
really
enjoyed
it
so
I'll
after
the
word.
After
the
episode,
I'm
gonna
come
in
the
talks
that
I'm
about
to
feature
and
I'll
give
them
all
a
thumbs
up
to
say
that
I
like
them,
but
if
you
have
any
talks
that
you
like
feel
free
to
come
here
and
add
it
here,
and
you
can
just
use
this
as
a
reference
and
hopefully
some
folks
will
contribute
to
it.
A
We
can
actually
get
some
good
feedback
here,
so
this
is
a
good
place
to
do
that.
Okay,
so
let's
go
back
to
our
hack,
MD,
so
cluster
bleep.
So
this
is
a
talk
that
I
have
been
wanting
to
get
yeah.
This
is
the
second
time
I've
even
like
made
myself
talk
back
into
the
camera.
This
is
a
talk
that
I
really
wanted
to
give.
A
I
was
gonna,
give
it
really
her
this
year,
but
there
was
some
issues
with
my
flight
and
I
wasn't
able
to
give
it,
but
I've
actually
been
working
on
this
talk
for
a
very
long
time.
So
it's
one
of
my
more
mature
talks,
but
this
was
actually
the
the
first
time
I
had
ever
given
it,
and
the
whole
point
of
the
talk
is
to
sort
of
build
empathy
for
folks
who
may
or
may
not
be
struggling
with
kubernetes.
We
do
this
a
lot
here
at
hefty.
Oh,
when
we
we
actually
do
tea.
A
Gik
I
feel
like
there's
a
big
part
of
tea
gik.
That
folks,
like
that's
just
like
me
or
Joe,
like
how
the
heck
do
I,
do
this
thing
and
we're
just
trying
to
figure
it
out,
and
so
that's
sort
of
the
empathy
that
we
wanted
to
relay
here
as
well.
So
it
looks
like
Herman
says:
I,
really
like
the
keynote
of
Kelsey.
Your
talk
about
cluster
bleep
and
the
reddit
talk
was
really
an
inspiration.
Thank
you
for
your
comment.
Herman
Luciano
says
lol.
Cluster
bleep
is
one
of
the
best
talks.
A
A
That
turned
into
catastrophic
problems,
and
then
we
talked
about
how
we
recovered
from
it
and
how
we
are
gonna,
learn
from
those
mistakes
and
actually
not
make
them
happen
again
and
today
on
the
kubernetes
and
docker
we're
actually
gonna
look
at
what
it
would
look
like
to
implement
a
regression
for
the
CVE
that
we
talked
about
in
my
presentation
here.
That
is
up
on
the
screen
right
now
and
actually
look
at
building
a
unit
test,
specific
TV
and
what
that
would
look
like.
A
So
it's
kind
of
exciting
to
actually
be
able
to
do
one
of
these
live.
It
actually
give
folks
a
little
bit
of
advice
in
an
example
of
how
you
could
go
and
actually
start
to
look
at
your
clusters
and
verify
that
your
clusters
are
doing
exactly
what
you
want
them
to
and
nothing
they're,
not
okay.
So
that's
my
little
spiel
on
cluster
bleep.
You
can
come
here
and
you
can
go
to
settings
and
you
can
set
a
let's
see
where
it
is
speed.
A
Here
you
can
go
speed
to
two
times
two
and
then
that's
gonna
bring
this
down
to
about
a
12,
a
12-minute
video.
So
you
can
like
watch
this
pretty
quickly
at
your
desk
or,
if
you
have
some
free
time,
feel
free
to
check
it
out.
Okay,
so
this
next
one
was
a
really
good
one
by
one
of
our
engineers
here
his
name's
Matt
Moyer,
and
he
did
a
talk
along
with
Evan
Gillman
about
scrutinize
inspired
his
sensibility
string,
spiffy
securities.
So
that's
a
lot
of
s's.
So
what
is
that?
A
That's
alliteration
right,
I,
don't
know
I
didn't
do
very
well
in
English
in
school,
but
there's
a
lot
of
essays
here
and
I.
Remember
seeing
this
talk
kind
of
evolved
over
time,
Moyer
jumped
on
the
phone
with
me
and
gave
me
like
a
quick
like
demo
for
it
and
asked
for
some
feedback
and
then
actually
got
to
go
and
watch
it
live
and
see
how
the
talk
evolved
and
it's
always
really
exciting-
to
see,
especially
with
security
talks,
the
things
that
people
choose
to
to
change
as
they
grow
and
as
it
gets
better.
A
So
this
is
just
a
really
solid
talk
that
talks
about
like
the
architecture
of
spiffy.
It
explains
what
spiffy
is
and
and
talks
about,
how
like
we
can
better
harden
spiffy
and
actually
make
improvements
along
the
way,
and
it's
just
overall,
really
interesting
security.
Talk
I
feel
like
my
cluster
bleep
talk
got
a
little
bit
into
security,
but
not
nearly
as
deep
as
this
goes.
So,
if
you're
into
that,
come
check
that
one
out
next,
this
one
is
another
one
that
I
got
to
watch
evolve.
A
Liz
and
I
talked
before
keep
Khan
as
well,
and
I
got
to
get
like
the
behind
the
scenes.
Sneak
peek
of
Liz's
talk
here.
I
feel
like
this
is
one
of
the
best
examples
of
a
five-minute
lightening
talk.
Five
minutes
are
really
kind
of
hard
as
a
public
speaker
to
try
to
convey
a
lot
or
make
a
meaningful
point
or
tell
a
meaningful
story
and
I
feel
like
Liz.
Does
all
that
she's
able
to
tell
a
story
she's
able
to
explain
the
technology?
A
Concretely,
she's
able
to
keep
your
attention
the
entire
time
and
I
learned
so
much
not
only
about
Postgres,
but
how
people
are
doing
really
interesting
things
with
kubernetes.
Liz
basically
explains,
and
you
can
go
watch
the
talk
and
to
do
that
because
it's
a
stellar
talk
the
list
talks
about
how
she
was
able
to
do
some
things
with
Postgres
and
actually
hook
it
up
to
kubernetes
and
actually
I
use
Postgres
as
like
an
odd
client
to
kubernetes,
since
it's
pretty
exciting.
A
I
went
did
a
presentation
in
Raleigh,
not
North
Carolina,
and
he
was
kind
enough
to
invite
me
into
the
studio
that
he
had
set
up
there
at
the
hotel
and
he
has
photographed
some
really
famous
notable
people
like
here's,
a
picture
of
Linus
Torvalds
over
here
we
have
kim
thompson
who
helped
create
the
go
programming
language,
and
this
guy
is
a
legend
in
his
own
right
and
let's
see
how
do
we
go
back?
Oh
I,
don't
know
the
site's
a
bit
weird,
but
you
can
come
through.
Oh
there,
it
is.
A
If
you
scroll
all
the
way
down
to
the
bottom,
here's
me
and
I
was
like
it's
such
an
honor
to
get
on
this
list
and
be
like
it
considered
for
an
open-source
achievement,
plus
it's
actually
really
dope
picture
of
me
and
I,
just
really
like
that
in
general,
so
I'll
be
using
this
moving
forward
anyway.
There's
a
book
you
can
order
if
you're
interested.
This
isn't
great
photography
and
it's
got
some
really
interesting
stories
about
that.
A
A
This
was
exciting
to
me
because
this
actually
came
to
me
via
my
VMware
email,
so
I
didn't,
go
actually
go
out
and
find
this
I
just
got
set
up
with
my
new
VMware
email
and
I'm
scrolling
through
my
inbox
and
all
of
a
sudden,
it's
like.
Oh,
this
project
is
now
GA
and
I'm,
like
oh
yeah.
Duffy
totally
did
a
a
TGI
Kay
on
a
harbor
and
I'm
hearing
about
it
via
VMware,
so
that
was
just
really
rad
to
kind
of
like
have
that
at
runtime.
But
anyway,
there's
a
lot
of
new
features.
A
Here
you
can
come
in.
You
can
read
about
them.
They
do
a
good
job
at
referencing
people
and
for
those
of
you
folks
who
don't
know,
Harvard
or
harbor
is
a
way
to
not
only
store
and
upload
your
container
images,
but
also
scans
them
and
helps
you
with
security
on
your
journey
to
building
better
containers.
So
anyway,
Harborview
1.7
is
released.
Moving
on,
we
have
tracking
cube
contacts.
So
this
is
the
link
to
the
github
issue.
That
I
just
showed
folks
looks
like
people
are
in
chat.
Let's
see
what
they
said.
A
Bergna
says:
ofc.
They
hide
the
Cutie
at
the
bottom
and
Michael
says
of
course,
Linus
first
yeah,
of
course,
Linus
first
I
bet
that
was
anyway
I'm,
not
gonna,
make
a
comment
there,
but
yeah
Linus
I
mean
he
invented
Linux
like
come
on
and
he
did
like
still
as
an
active
maintainer.
That's
pretty
rad
anyway
tracking
cube
contacts.
That's
the
github
issue!
We
just
looked
at
I'll,
pull
it
up
again.
Why
drink
my
tea
just
for
good
measure
to
see
if
anybody
has
commented
yet
comment
on
my
issue.
A
Okay,
next
so
Jo
doesn't
know
I'm
doing
this
yet
and
yellow,
but
now
that
we're
at
VMware
I
think
it
might
be
a
little
bit
easier
for
me
to
get
like
some
support
and
maybe
possibly
even
some
funding
for
helping
out
with
teaching
I
K.
That's
been
so
successful
over
the
past
like
two
years
I
mean.
Can
you
believe
it
we're
already
on
episode?
60
jo,
has
done
a
ton
of
these
I've
done
a
ton
of
these,
and
now
that
we're
VMware
it
might
be
cool
to
like
revisit
TTI
k
for
2019
and
see.
A
So
if
you
have
any
feedback
at
all
or
any
ideas
for
what
would
be
really
rad
for
something
we
could
bring
to
TGI
K
in
2019
as
we
move
into
the
new
year
and
as
we
transition
into
VMware
feel
free
to
come,
drop
your
ideas
here
and
again,
you
can
use
the
thumbs
up
emoji
to
come
and
vote
so
feel
free
to
go.
Do
that,
okay!
Last
Before,
we
jump
into
kubernetes
and
docker
Annette
CD
I!
Guess
this?
Is
it
okay?
A
So
that
was
the
inspiration
for
why
I
wanted
to
talk
about
Etsy
D
and
actually
explain
this
mysterious
database,
that
is
the
powerhouse
behind
kubernetes.
Let's
see
what
folks
are
saying,
there
is
another
nice
registry
project
from
SUSE
called
Portus
also
has
clear
security
scanning
implemented.
In
my
opinion,
Harbor
is
a
little
bit
over
dosed,
okay,
so
Hermann
say
and
there's
this
other
project
that
you
can
go
and
check
out
and
I
think
that
one's
called
Portis
and
see
if
we
can't
find
it
really
quick.
Let's
do
Portis
container
and
see
what
comes
up
claim.
A
Control
of
your
docker
images,
so
I
think
this
is
the
one
that
Herman
is
talking
about
here,
looks
like
LDAP
is
supported.
You
can
actually
go
and
audit
it
and
see
who
did
what
this
is
super
cool?
This
is
handy,
looks
like
it's.
It
says
the
word
secure,
so
you
should
trust
it,
but
yeah.
This
looks
like
a
cool
feature
that
I've
never
heard
of,
but
now
I
want
to
come
and
check
out.
So
why
I
love
doing
TG?
Ok,
so
anyway,
let's
go
back
to
our
kubernetes
and
docker
link.
A
Here
it
looks
like
somebody
started
to
type
something
I'm,
assuming
it's
Portus
yeah,
whoever
is
typing.
Let
me
know
who
you
are
so
we
can
send
you
free
stuff.
So,
let's
see
kubernetes
in
docker,
it's
moving
around
on
me,
cuz
you're
typing.
Let's
do
kubernetes
and
docker
here,
ok,
so
this
is
the
the
project
that
everyone's
been
talking
about.
If
you
haven't
heard
of
it,
it's
it's
literally
exactly
what
you
think
it
is
it's
a
docker
image
that
behaves
in
basically
is
a
copy
of
kubernetes.
A
So
this
is
fantastically
powerful,
because
now
I
can
run
a
docker
image
on
my
laptop
here
and
actually
treat
that,
like
it's,
a
regular
old
kubernetes
cluster.
In
the
past,
we
had
to
spin
up
a
virtual
machine
and
then
once
the
virtual
machine
was
up,
we
like
loaded
all
of
the
kubernetes
containers
and
we
did
all
of
the
kubernetes
kind
of
magic
behind
the
scenes.
And
then
we
poked
a
hole
on
our
network
and
bridge
the
connection,
and
then
we
were
able
to
use
the
API
server
via
localhost
and
that's
how
many
cubed
works.
A
But
now
we've
been
taking
it
a
step
further
and
you
actually
packaged
it.
All
of
that
up
into
this
container
that
we're
gonna
look
at
here
in
a
sec
and
one
of
the
things
that
I
I
was
excited
about
when
I
first
heard
about
this
was
the
fact
that
it's
written
engulfed
so
my
thought
here-
and
this
is
someone
who
is
very
infrastructure
driven
and
like
the
way
I
think
about
kubernetes,
like
whenever
I
talk
to
people
about
kubernetes
and
they're
like
nuovo.
A
What
is
kubernetes
I
always
draw
a
picture
I'm
like
here's,
a
server
and
then
here's
like
the
network
and
here
are
the
different
pieces
of
software
that
run
on
the
server
and
I
think
very
physical.
So
this
instantly
sort
of
triggered
this.
Oh,
my
gosh
I,
finally
have
a
lightweight
kubernetes
cluster.
That
I
can
run
arbitrary
tasks
against
and
I
think
that
was
one
of
the
big
use
cases
when
the
open
source
community
came
together
and
actually
created
this
project.
So
if
you
haven't
started
yet,
this
is
like
my
new.
A
Probably
my
new
favorite
project
on
github
I've
already
came
and
made
a
few
contributions.
This
is
just
this
week.
Let's
see
if
we
can
find
me
Here
I
am
I,
came
in
and
made
a
few
contributions
just
because
I
really
enjoyed
it.
So
much
and
I
wanted
to
help
out
and
I
wanted
to
use
the
feature
that
I
coded
on
our
episode
today,
which
we
totally
are
gonna
look
at
and
we're
gonna
write
ourselves
a
pretty
cool
unit
test.
A
Alright,
so
kubernetes
in
docker,
you
can
come
down
here
in
the
repo.
You
can
see
what
it
is.
It
says,
kind
as
a
tool
for
many
local
kubernetes
clusters
using
docker
container
nodes.
We
all
know
my
strong
opinions
about
how
the
first
sentence
and
there
you
should
describe
exactly
what
the
tool
is
and
if
you're
really
awesome
how
to
use
it
or
what
it
is.
Is
it
a
CLI
tool?
Is
it
an
API?
Is
it
a
service?
Is
it
all
of
the
above
and
dot
and
kind?
A
Does
a
really
good
job
at
keeping
these
first
little
snippets
very
descriptive
and
telling
us
exactly
what
it
is?
So
that's
another
big
plus
one
for
the
project
as
well.
So
it
says
kind
consists
of
go
packages
implementing
cluster
creation,
image,
build
etcetera,
a
command-line
interface
kind
built
on
these
packages,
docker
images
in
which
to
run
and
cube
test
integration
which
is
built
on
all
of
these,
which
is
a
work
in
progress.
And
if
you
click
on
cube
test,
you
can
come
and
see.
A
This
is
actually
a
part
of
the
kubernetes
test,
infra
project
which
these
are
the
kubernetes
tests.
This
is
what
we're
using
to
test
kubernetes
every
time
we
do
a
build
of
kubernetes.
We
come
into
this
repo
and
we
run
pieces
of
software
that
do
end
to
end
tests
against
our
cluster,
and
you
can
now
see
that
this
kind
project
is
being
implemented
into
that
broader
cube
test
repository
in
the
test,
infer
a
repository
so
that
we
can
start
to
use
this
to
test
kubernetes,
which
is
great.
But
we
can
take
that
a
step
further.
A
We
can
not
only
test
kubernetes,
but
we
can
actually
test
arbitrary
things
in
and
around
kubernetes.
So
this
would
be
really
really
exciting
for,
like
anyone
who
would
say
they
wrote
a
CNI
plugin
being
able
to
write
unit
tests
that
create
a
cluster
install
C
and
I
do
some
stuff
to
the
cluster,
pull
some
data
out
of
the
cluster
and
validate
that
your
C
and
I
behave.
The
way
you
want
it
to
this
is
like
life-changing,
like
there's
so
many
use
cases
out
there,
where
people
really
wanted
an
easy
way
to
create
clusters.
A
I
think
I've
written
a
service
at
least
three
or
four
times
in
my
career,
where,
like
Jenkins,
will
go
and
spin
up
a
kubernetes
cluster.
We
run
some
tests.
If
everything
went
well,
we
destroy
it,
but
sometimes
the
destroy
doesn't
work
and
we
leave
resources
in
the
cloud
and
it
was
like
this
whole
mess
and
this
sort
of
solves
all
this
problems.
So
that's
why
it's
exciting
for
a
lot
of
people
so
anyway,
AQ
Khan
last
week,
I
pulled
this
up.
I
gave
people
a
slightly
more
condensed
feel
than
the
one
I
just
gave.
A
You
and
I
actually
wrote
a
unit
test
in
go
using
kubernetes
and
docker,
but
we're
going
to
go
a
little
bit
further
in
this
episode
and
we're
actually
gonna
look
at
the
packages
themselves
that
make
up
kind,
get
an
idea
of
how
kind
works
and
then
we're
going
to
look
at
implementing
kind
as
a
library
and
also
running
the
kind
of
tool
from
the
CLI.
So
first
things.
First,
let's
download
the
kind
tool
if
we
haven't
already.
So
let
me
close
a
couple.
A
My
terminal
tabs
here
exit
out
of
this
thing,
exit
out
of
that
one,
clear
my
screen
and
bam
and
let
me
zoom
in
we
can
all
see
I
spun
up
a
cubic
corn
cluster
right
before
the
episode
and
I.
Now
we
can
see
if
we
have
kind
installed
in
my
path.
So,
yes,
I
already
do
have
it
installed.
October
from
TGI
K
live
interesting,
factoids.
A
Somebody
steps
in
my
laptop
right
outside
TGI
K
live
so
I'm
actually
running
on
a
brand
new
laptop
now,
which
explains
why
OBS
is
a
little
bit
wonky
for
me,
but
anyway,
I
don't
really
know
what's
installed
on
the
system
because
hat
it's
like
half
knew
and
half
not
knew
so
I
kind
of
commit
surprised
myself
every
time,
I
check
to
see
if
something's
there.
So
if
we
look
here,
we
can
find
where's
the
release
one
release,
but
there
should
be
an
install
section
as
well.
A
If
you
have
go
and
docker
install,
you
can
do
this
right
here,
and
this
is
exactly
that
command.
The
first
one
I
have
highlighted
is
how
I
installed
kind,
and
then
this
is
the
command
to
create
a
cluster
and
then
both
of
these
combined
kind
of
give
you
this
one
output
that
you're
seeing
here
so
now
that
we
have
kind
installed
by
doing
that
and
go
get.
You
can
see
that
we
can
do
kind
and,
like
all
of
our
go
programs
I
feel
like
it
would
be
really
exciting
to
do
a
go
program.
A
One
day
that
didn't
look
like
this
and
didn't
use
Cobra
commands
just
because
every
one
of
our
programs,
auntie
gik,
always
looks
almost
identical
in
the
the
way
that
we
display
the
information
here
in
the
terminal.
So,
like.
Maybe
that's
like
a
challenge
for
me
as
if
maybe
I
can
write
a
CLI
that,
like
has
some
really
obscure
command
library
that
nobody's
ever
heard
of
and
make
it
actually
look
and
feel
a
little
bit
different
when
it
one
episode
anyway.
A
So
we
can
do
a
kind
build,
we
can
do
kind,
create
kind
of
delete
and
kind
get
so
get
is
like
kind
of
like
our
list
here
or
whatever
it's
similar
to
the
the
scene.
Ab
get
that
we
looked
at
two
weeks
ago.
A
couple
of
it
was
a
duffel
that
was
the
name
of
the
tool,
but
yeah
I
was
for
the
scene
of
episode
that
we
did,
but
that
kind
of
works
the
same
way
and
if
you
were
at
cube
con,
you
probably
saw
that
keynote.
A
That's
some
folks
did
where
they
talked
about
the
differences
between
where
you
want
to
put
the
verb
when
you're
building
command-line
tools.
So
if
you
look
at
cubeb,
told
you
about
dole
get
and
then
the
name
of
some
resource
or
queue
Bechdel
delete,
then
the
name
of
some
resource,
so
you
get
that
verb,
second,
in
the
name
or
the
type
third,
and
this
guy
in
this
case
we're
kind
of
following
that
same
pattern
and
they're
sort
of
pros
and
cons
to
doing
things.
A
This
way
the
other
option
would
be
like
you
Bechdel
pods
list,
then
you
would
do
queue.
Bechtel
pods
create
cue,
Bechdel
pods
delete
like
whatever,
and
we
could
do
that
here
with
kind
and
from
the
software
engineering
perspective.
That's
actually
a
lot
easier
to
program
because
your
commands
sort
of
like
flowed
together
like
object-oriented
programming.
A
This
way,
it's
just
a
lot
of
repeating
yourself
and
a
lot
of
confusion
as
a
software
engineers
trying
to
navigate
all
of
these
different
verbs
and
actions
that
you
need
to
keep
track
of
so
just
interesting
factoids
about
cube
con
along
the
way.
So,
anyway,
we
can
do
kind,
create
clusters.
So,
let's
just
start
off
with
this
and
then
we'll
look
at
the
code
and
actually
see
what
it
did
so
kind
create
cluster
and
we'll
do
a
dash
help
first,
so
we
can
see
the
help
menu
before
we
do
anything.
It
says
you
can
do.
A
A
config
kind
has
a
config
file,
so
I'm
sure
you
can
write
in
some
really
cool
kind
of
configurations
which
would
be
nice
if
you're
trying
to
automate
this-
and
you
have
I
think
is
that
you
need
to
keep
track
of.
You
can
specify
an
image.
So
if
you
want
to
run
a
different
kubernetes
in
docker
image
other
than
the
default
one,
you
can
do
that
here
and
then
you
can
do
name.
A
A
I'll
just
do
this
dupe
kind
to
create
cluster
name,
we'll
call
it
TGI
k14
the
first
name
of
our
cluster,
so
you
can
see
here.
It's
gonna
ensure
this
node
image
is
actually
pulled
down
on
my
laptop
I.
Don't
know
if
I
have
it
yet
it
does
ensuring,
but
I
think
that
means
it's
just
checking
to
make
sure
it's
there.
So
this
is
exciting
because
there
does
there's
the
docker
container.
This
is
like
the
the
hard
work
of
the
project
kind
of
bundled
up
into
one
artifact
here.
A
A
You
could
totally
run
this
container
in
kubernetes
itself
and
have
kubernetes
and
kubernetes
and
then
maybe
even
run
kubernetes
and
that
kubernetes
and
it's
just
like
a
big
kubernetes
party
but
yeah
the
kubernetes
in
a
container
first
time,
we've
really
seen
it
it's
kind
of
a
hard
thing
to
do,
but
we're
finally,
here
now
as
a
community-
and
this
is
exciting-
okay,
so
we
can
come
in
and
we
can
actually
see
what
it's
doing
here.
Instead,
it's
creating
this
node,
it's
doing
its
fixing.
A
Some
system
mounts
it's
starting
system,
D
system
D
is
what's
gonna
watch
the
cubelet,
it's
waiting
for
docker
to
become
ready
and
it's
starting
kubernetes.
This
may
take
a
minute
and
let's
go
and
let's
actually
look
at
the
source
code.
You
see
what's
going
on
here,
so
we'll
do
this
in
github
this
and
we'll
start
here
in
the
command
kind
directory.
A
So
here
all
of
the
the
the
verbs
that
we
talked
about
earlier
and
you
can
see
a
for
a
software
engineer-
it's
already
starting
to
get
kind
of
confusing
you
come
in
here,
and
so
we
did
a
create.
So
you
going
to
create
and
then
in
the
create
you
have
cluster
this
other
command.
So
if
kind
wanted
to
create
something
else
later
other
than
a
cluster,
you
could
have
another
directory
here
like
maybe
you
could
do
kind,
create
cubelet
only
or
something
so.
A
Here's
a
create
cluster
go,
and
so
this
is
the
command
that
we
actually
ran.
Oh
there's,
a
cute
panda
here,
that's
really
adorable
I
know
some
people
who
really
like
canvas.
So
anyway
we
have
packaged
cluster
and
we
have
our
imports
and,
let's
scroll
down
here,
to
this
new
command.
Ok,
so
here
are
the
command
line,
flag
definitions
that
we
looked
at
earlier
when
we
did
kind
create
cluster
age
for
help.
Name
is
help
and
you
can
see
here
we
have
this
retain.
A
A
Based
on
that
command
that
I
just
ran
and
we're
not
gonna
go
too
deep
here,
but
this
is
actually
the
code
that
I
use
to
kind
of
borrow
from
when
I
looked
at
writing
a
unit
test
with
kind.
My
logic
here
was
like:
oh:
if
they
can
build
this
into
a
go
program
then
so
can
I
and
I
can
use
that,
go
program
to
do
anything
so
let's
actually
go
and
write
some
unit
tests.
So
the
way
this
thing
works
is
you
get
it
config
which
is
what's?
A
This
is
what's
loaded
here
and
if
you
have
a
config
file,
you'll
get
it
from
the
command
line,
flags
the
user
passed
in
and
then
it'll
call
config,
validate
and
I.
Think
if
you
have
an
empty
config,
then
thumbs
up
you're
good
to
go
and
that's
what
happened
for
us.
Otherwise
we
do
some
error
handling
and
that's
all
here.
Let's
see
if
somebody
said
something
brigde
says
goof.
A
Grammar
burg
dis
is
our
isolated,
big
friend
talking
about
the
grammar
in
English,
that's
kind
of
funny,
because
I
was
trying
to
brush
up
on
my
Icelandic
for
this
trip
and
yeah.
It's
not
easy.
So
anyway,
let's
see
what
say,
you
said
sorry
says
so,
instead
of
enabling
and
then
he's
on
my
daugher
from
Mac
I
could
just
run
kubernetes
like
a
container
with
kind.
That's
absolutely
true
Sayid!
So
a
lot
of
people
I,
don't
know
if
I'll
be
able
to
show
it.
A
This
is
actually
a
cig
project.
There
is
actually
people
in
the
open-source
kubernetes
community
who
are
responsible
for
this
and
they're
really
great.
If
you
want
to
go
meet
them,
they
were
very
receptive
to
my
PR.
Let's
actually
go
look,
so
you
can
see
how
nice
these
people
are
were,
so
we
can
do
closed
and,
let's
see
where
am
I
at
Chris
Nova
run
made
it
information
about
a
cluster.
So
I
came
in
here
and
was
like
hey
I.
Have
this
idea?
I
got
a
lot
of
good
feedback.
A
We
talked
about
it
for
a
little
bit.
I
like
had
some
questions.
They
answered
my
questions.
They
closed
the
issue
and
if
you
actually
come
and
look
at
my
PR,
you
can
see
that
the
PR,
like
I,
went
through
a
pretty
normal
review
process.
Like
a
few
people
had
like
some
questions,
we
got
some
thumbs
up.
We
would
kind
of
went
back
and
forth.
I
eventually
got
a
Sgt
em
and
it
wasn't
a
super
big
code
change
and
that
came
through.
So
it's
relatively
easy
to
contribute
to
kubernetes,
and
especially
with
the
project
like
hind.
A
If
you're
looking
to
get
involved,
I
would
strongly
say
kind
as
a
good
place.
To
start.
It's
really
easy
to
understand.
A
lot
of
the
hard
part
is
baked
into
the
docker
image,
and
this
is
just
kind
of
making
that
a
little
bit
easier
for
folks
to
run
and
basically
putting
training
wheels
on
it,
which
is
freaking
great
so
anyway,
back
to
our
code
here.
So
we
go
in
to
create
cluster,
create
cluster
that
go
burg.
Just
has
no
coding
hamsters,
okay,
so
coming
down
here,
we
we
validated
our
config.
A
If
we
did
some
air
handling
after
with
the
air
handling.
We
did
this
thing
where
we
created
this
thing
called
the
context,
so
we
say
cluster
new
context
and
then
you
are
required
to
pass
in
a
name
here.
So
when
we
do
this
and
go
lady
reaction,
it's
going
to
like
come
up
with
a
random
string
or
something
and
we'll
use
that
for
the
name
of
our
cluster,
and
then
it
says,
if
no
images
to
find
treat
the
code
a
little
bit
currently.
Otherwise
we're
going
to
just
do
contacts
create-
and
this
is
it.
A
The
create
method
is
the
method
that
goes
in,
creates
a
kubernetes
cluster
and
you
pass
in
your
config
and
you
have
this
option.
This
is
a
bull
for,
if
you
want
to
retain
or
not-
and
this
is
an
ant
for
how
long
you
want
to
wait
for
before
it
times
out-
which
is
very
reasonable
and
most
of
the
configuration
options
are
here
and
the
config,
and
if
we
actually
go
into
kind
now,
we're
gonna
leave
the
command
line,
tool,
land
and
we're
gonna
move
over
into
the
like
the
the
packaged
land.
A
Excuse
me
it
come
in
here
to
cluster.
You
can
see
that
we
have
contacts
go,
and
this
is
the
file
yep
there
I
am
there.
I
did
a
lot
of
work
on
this
one
and
you
we're
not
a
lot
of
work.
I
like
added
a
couple
of
things
here,
and
we
can
see
some
of
my
code
here
in
a
second.
But
if
you
come
down,
you
can
see
that
we
have
this
create
context.
So
this
is
the
thing
we're
passing
into
create
and
then
you
we
have.
This
function
called
create.
A
Let's
see
if
I
can
find
it
here,
it
is,
and
this
thing
will
again
validate
your
context,
which
is
good
in
case
you
either
user
are
lazy
like
me
and
don't
do
it
and
then
it'll
start
to
actually
go
and
create
your
cluster
and
there's
this
other
function.
That's
called
CC
provision
control
panel
and
this
is
where
the
rubber
meets
the
road.
So
if
we
copy
that,
we
can
do
paste
it
up
here-
and
you
can
see
here-
is
the
provision
control
panel.
A
This
is
technically
a
method
and
then
you
can
see
it
takes
a
cube
admin
config
path
because
all
of
kind
is
built
on
cube
admin.
That's
how
we
start
our
clusters
and
then
you
can
actually
go
and
see
that,
like,
yes,
we
actually
create
a
control
plane
and
we
use
cube
admin
internally
to
go
and
bring
up
a
kubernetes
cluster,
and
here
we
have
start
and
then
you
can
see
here,
16
mounds,
Samantha,
Mountain
emoji.
That
just
makes
me
really
happy
and
tying
it
all
back
together.
A
If
we
go
back
to
our
terminal
here,
you
can
see
16
mounts
with
our
lovely
Mountain
emoji.
So,
let's
go
back
to
github,
so
this
is
the
this
is
the
look.
The
main
start
contain
or
a
function
here,
so
this
is
where
all
of
the
the
goodies
are
kind
of
glued
together.
So
if
you
want
to
come
and
look
at
this
and
actually
see
how
they're
doing
it,
this
is
the
place
to
look
so
on
cue.
Con
I
see
my
rant
is
get
a
small
project.
A
Sin
I
am
Not,
sure
I've,
never
I,
don't
Miranda
isn't
ringing
a
bell
at
the
top
of
my
head
anyway,
if
you
have
any
more
info,
that
would
be
helpful.
Okay.
So
anyway,
so
here's
our
key
Badman
starts.
You
can
see.
We
like
passing
some
flags
to
keep
admin.
Then
we
call
run,
and
then
we
do
some
other
post
config
hooks.
A
So
now,
it's
just
an
exercise,
I
figuring
out
what
folks
need
and
for
what
folks
care
about,
and
then
baking
that
into
this
core
library
here
and
that's
sort
of
how
the
kind
works
in
the
whole,
the
project
is
kind
of
structured
since
similar,
not
smaller,
on
cube,
con
I
see,
grant
Asst
got
it.
Okay,
I
see,
what's
insane
I
think
he's
saying
that
folks
at
brantas
have
a
similar
project.
Well,
that's
interesting
as
well.
I
had
just
heard
about
this
one
from
working
in
open
source.
We
started
using
it
for
other
projects.
A
That's
how
I
originally
heard
about
it.
Okay,
so
let's
go
back
up
and
you
can
see
there's
a
lot
of
other
packages
here,
doing
a
lot
of
other
things,
but
that
was
sort
of
the
main
one
and
if
you
want
to
actually
go
and
see
how
we
interact
with
the
cube
admin,
specifically,
you
can
go
and
you
can
look
in
the
cube
admin
package
or
if
you
want
to
look
and
see
how
we're
configuring
our
nodes,
you
can
go
and
you
can
look
at
the
node
package,
but
that's
a
little
bit
deep
for
today's
episode.
A
So
we're
gonna
come
back
up
and
we're
gonna
look
at
what
the
cluster
looks
and
feels
like
now
that
it's
up
and
running
and
then
we're
to
look
at
ready
to
even
test
with
it,
okay,
so
goal,
and
let's
try
to
think
how
you
want
to
do
this.
No,
let's
go.
Let's
open
up
my
terminal:
let's
do
this
first,
okay,
so
this
is
now
done.
A
It
says:
export
cube,
config
and
we
do
kind
get
cube.
Config
path,
name,
t
GI
k1,
and
this
will
actually
define
our
cube
config,
because
right
now,
if
I
do
get
po,
you
can
see
that
we
have
no
resources
found
and
if
I
do
at
Hagin
nodes,
you
can
see
we're
actually
talking
to
us
West
you.
So
this
is
a
cubic
horn
cluster
of
running
in
Amazon
and
we're
gonna
use
this
for
a
CD
later.
A
If
we
do
this
export
cube
config,
and
now
we
do
a
Kagan
nodes,
you
can
see
that
we
have
one
node,
which
is
the
kind
T
gik
one
control
panel
status
master
running.
So
this
is
just
a
master
that
can
schedule
on
itself.
So
we
have
one
technical,
kubernetes
node
is
just
running
in
a
docker
container,
so
that's
pretty
cool
and
then,
if
we
actually
do
a
docker
PS,
we
can
see
that
we
have
a
kind
test.
A
Node
version
one
point,
twelve
point:
three
running
into
user
local
bin
and
that's
been
up
for
about
ten
minutes,
and
you
can
see
here's
our
container
ID
and
then
so
now
that
the
containers
up
and
running
we're
actually
able
to
to
interact
with
it
as
well,
so
not
or
says:
Miranda's
one
is
darker
and
darker
added
a
link
to
the
heck,
Andy
Thank,
You,
natter
or
Anadyr
I'm,
not
sure
how
to
pronounce
that
and
I'm.
Sorry,
if
I
got
it
wrong
so
anyway.
A
This
is
the
this
is
the
kind
a
container
here
running
okay
and
you
can
see
that
we've
actually
got
this
ephemeral
port
5
101
6
is
what
the
control
planes
listening
on.
So
if
we
go
and
we
look
in
the
source
code
here,
let's
go
back
to
our
package
cluster
context.
I'd
go
you'll
scrub
for
the
word
port,
import,
export,
API,
server,
port,
ok!
A
So
you
can
programmatically
build
tests
against
it
so
before
when
I
did
mode
this
last
week
at
cube,
con
I
just
copy
and
pasted
the
port
after
I
started
to
cluster,
and
that's
how
we
did
it
in
this
case,
my
go
unit
test
that
I
have
written
will
actually
go
and
figure
out
the
ephemeral
port
for
you.
So
there's
no
copying
and
pasting.
You
can
totally
automate
the
thing,
so
that
was
really
handy
so
since
as
cool
okay
cool.
So
let's
close
that
and
let's
go
to
this
new
project.
A
If
you
come
here
under
kubernetes
and
docker
is
chris
nova
kind
testing.
So
this
is
not
like
I'm
not
announcing
a
new
repo.
This
isn't
a
new
project
or
anything.
This
is
just
me
like
trying
to
consolidate
my
thoughts
and
get
things
into
a
place
where,
if
I
need
to
in
the
future
start
building
on
stuff,
I
have
a
place
to
do
it,
but
pull
requests
are
accepted.
So
anyway,
what
we
have
here.
A
This
is
open
source,
as
we
have
just
a
very
simple
API
test,
go
in
a
main
test
set
go,
and
then
we
have
this
package
called
assertion,
and
that's
all
that's
in
here.
If
you
go
into
assertion,
you
can
see.
There's
just
one
file
and
the
whole
point
of
this
is
to
show
folks
what
it
could
look
like
if
you
wanted
to
write
an
extensive
unit,
testing
suite
with
kubernetes
and
docker,
and
if
we
wanted
to
start,
maybe
as
a
community,
defining
some
commonly
used
assertions
that
we
can
plug
into
our
unit.
A
Testing
suite
to
do
things
like
assert
container
is
healthy
things
like
that.
That
would
flip
a
pool
yes
or
no
and
then
give
you
a
response,
maybe
an
error
message
that
came
back
so
that
we
could
start
building
a
really
elaborate
unit
tests
that
we're
basically
using
that's
integration
tests
in
kubernetes
and
we
can
make
them
specific
to
applications
in
the
application
layer
of
kubernetes,
which
goes
a
bit
further
than
the
inferred
tests.
A
We
looked
at
a
little
bit
before
so
this
is
like
literally
a
way
you
could
unit
test
your
app
or
anything
kubernetes
in
kubernetes,
but
like
running
and
locally
in
a
docker
container.
So
this
is
pretty
exciting.
So,
let's
pull
up
my
IDE.
So
here's
kind
so
we're
not
gonna.
Look
at
kind.
Here's
TG,
like
hey,
we
don't
wanna
get
to
G.
Okay,
let's
see
what
we
have
here.
Let's
do
go
in
file
open
recent
to
do
kind
test,
a
new
hope
this
window,
whatever
okay.
A
So
anyway,
here's
our
code
that
we
have
and
then
here's
my
terminal
and
we're
gonna
go
into
the
kind
test
directory,
so
change
directory
home,
go
source,
github,
calm,
hefty
Oh,
our
CEO
Chris
Nova
kind
test.
Somebody
said
I'd
there
dis.
Let's
learn!
Go
for
a
case
yeah.
If
you
all
want
to
learn
go.
This
is
a
great
way
to
do
it.
Also.
The
go
playground
is
a
good
way
to
start
and
the
tour
of
go.
So
this
is
whenever
people
ask
me,
I'm,
just
gonna
go
off
on
a
rant
here.
A
Whenever
people
ask
me
you
know,
but
what's
the
best
way
to
learn
and
go,
this
is
my
answer.
Always
it's
called
the
tour
I'd
go
it's.
How
I
learned
go
tell
a
lot
of
people.
I
know
have
learned
to
go.
It's
put
together
by
the
go
team
and
it
is
super
great
at
getting
started
from
the
world's
simplest
hello
world,
and
you
can
just
go
through
these
like
small
chapters.
Let's
pick
a
language
here,
whereas
English
you
don't
see,
English,
simplified
Chinese.
Oh
just
says
next
button:
okay
go
offline,
okay!
A
So
and
you
don't
give
you
examples
and
you
can
actually
go
and
you
can
run
them
over
here
on
the
right
and
then
you
can
actually
get
an
output.
So
you,
as
you
go
through
you
sort
of
get
like
documentation,
you
be
used
to
reading
the
godox
and
then
you
can
come
in
and
actually
run
to
things
and
take
around
within
try
new
things.
A
So
that's
like
the
intro
and
then
here
is
where
things
get
started
and
it
explains
what
a
package
is
and
how
imports
work
and
how
you
can
export
names
and
why
some
functions
are
capitalized
and
other
ones
aren't
and
you
can
go
through
and
you
can
run
this
stuff.
So
I'm
not
gonna
go
through
today.
But
if
you
want
to
learn,
go,
that's
a
really
great
way
to
start.
Okay,
so
back
here
we're
now
in
our
kind
of
test
directory
and
let's
look
at
our
code
a
little
more
granularly.
A
So
we
have
two
files
here.
We
have
main
tests
and
we
have
API
tests.
So
the
point
of
structuring
the
repository
this
way
so
that
we
could
start
to
create
a
number
of
test
files
and
separate
our
code
arbitrarily
using
this
format
here
as
some
type
of
test,
that's
important
to
you
in
your
application.
Underbar
tests
go
and
then
you
can
come
in.
You
can
actually
write
a
test
file
that
will
automatically
get
ran
so
the
way
that
I
go
testing
works.
A
If
you
go
to
the
main
test
here
there
is
this
magic
function
called
test
main
and
if
you
define
test
main
and
you
run
go
test,
go
we'll
use,
reflection,
look
back
at
your
testing
source
code
and
say:
aha,
you
have
this
special
function
called
test
main
defined
and
it
looks
like
you're
accepting
the
testing
a
pointer
to
that
struct.
So
you
can
actually
define
whatever
logic
you
want
for
setting
up
your
unit
test.
A
So
what
we
do
here
is
we're
actually
able
to
like
configure
a
logger
and
then
we'll
go
through
this
again
in
a
second,
but
we
actually
are
able
to
create
a
kubernetes
cluster
and
that's
this
and
then
here's
a
member
I
mentioned.
We
had
to
get
the
port
out.
That
was
the
future
IP
yard.
Here's
the
code
that
does
that,
and
then
we
have
this
in
run
command,
which
this
actually
runs
the
go
tests.
A
A
T
go
we'll,
go
and
run
these
for
you,
so
we're
able
to
just
build
as
many
of
these
functions
as
we
want
and
test
as
many
things
as
we
want,
and
because
we're
using
tests
main,
which
doesn't
have
to
be
defined,
you
can
just
not
define
one
and
go
we'll
just
do
this.
Em
run
thing
for
you
automatically,
but
because
we're
doing
this
we
can
put
in
logic
before
in
afterwards
that
allow
us
to
make
some
assumption
so
I'm
already
new
to
test.
A
So
let's
look
exactly
what
our
test
main
does
it
says
log,
our
test
mode
is
equal
to
true
logger
level
is
equal
to
for
context,
is
equal
to
cluster
new
context
cluster
name,
so
we
want
to
give
this
a
meaningful
name.
So
this
is
a
constant
to
find
at
the
top.
So
let's
do
a
cluster
name
is
equal
to
t.
Gik
to
kubernetes
in
docker
node
image.
I
think
this
is
a
bad
name,
so
we
want.
We
want
to
do
well,
actually
we'll
just
keep
it
for
now,
but
it's
not
cool.
A
It's
not
Cooper
9
using
docker,
it's
well
anyway.
Okay,
so
kind
set
node
version.
1
point
12
point
to
you:
okay,
so
we'll
keep
that
the
same,
and
we
come
down
here
and
we
pass
that
in
for
image
most
Mo's
offer
hago
says
what
theme
are
using
a
Visual
Studio
code
editor.
So
this
is
a
great
question.
I
do
not
use
Visual.
A
Studio
I
have
reasons
for
that,
but
that's
a
different
talk
for
another
day
feel
free
to
find
me
at
a
conference
I'm
happy
to
tell
you
why
I
don't
use
Visual,
Studio
I
use
a
tool
called
goal
end,
and
this
is
a
open
source
tool
that
you
can
go
and
you
can
buy
which
I
actually
paid
for
it.
I
really
buy
software,
but
I
support
this
project.
100.
A
A
lot
of
my
good
friends
in
the
NGO
community
work
on
this
and
you
can
actually
go
join
the
slack
channel
and
you
could
go
and
talk
to
the
people
who
are
actually
writing
this
and
get
really
really
great
feedback
and
great
answers.
So
if
you
come
here,
you
can
do
about
goal
end
and
you
can
see
it's
license
to
have
to
you
Chris
Nova
and
it's
running
the
open
JDK
and
it's
powered
by
open-source
software,
which
is
exciting.
A
So
if
you
ever
get
a
chance
to
meet
anybody
who
works
on
goal
end,
which
used
to
be
called
goggle
end,
it's
a
good,
IDE
and
I
swear
by
it.
I
love
this
thing,
it's
great
okay,
so
Herman
says
added.
The
tour.
Killing
link
in
the
correct
port
is
linked
to
the
hack
Andy.
Thank
you
very
much
Herman.
So,
looking
in
here,
we
we
defined
our
kubernetes
and
docker
note
image
and
then
what's
an
interesting
feature
of
goal.
A
End
is
at
the
end
of
the
struck
here
you
can
actually
do
a
period
and
you
could
chain
things
together.
So
because
of
that
period
you
can
actually
see
all
of
the
in
limine
resizes,
so
folks
at
home
can
see
all
of
the
different
fields
you
can
define
in
your
struct,
so
we
defined
image
already
and
we
can
see
that
that's
a
string,
but
you
can
also
define
control
plane
and
have
a
pointer
to
a
control,
plane,
struct
or
even
the
API
version.
A
So
that's
really
handy
and
you
can
come
in,
you
can
actually
define,
like
you,
can
add,
cube
admin,
config,
badges
and
JSON,
and
you
can
see
the
rest
of
the
object
functions
here
that
are
defined
so
for
this
example,
all
we
did
was
to
find
image
and
we're
gonna
keep
everything
else.
The
same
ikura
says
is
going
just
basically
another
jetbrains
sweet
ide,
or
is
it
very
different
from
the
rest?
A
So
the
reason
I
like
I,
think
the
reason
I
like
goaline
so
much
is
because
it's
very
similar
to
the
other,
your
ID
ID
ease
that
JetBrains
comes
out
with
I
I,
don't
want
to
admit
it,
but
I'm
just
gonna
admit
it.
I
used
to
be
a
full-time
Scala
developer
before
I
wrote,
go
and
I
got
very
like
familiar
with
IntelliJ
way
back
when
and
I
just
still
love
it
and
like
before
I
used
IntelliJ-
and
this
is
a
hats
off
to
my
friend
Chris.
You
know
check
at
the
scene.
A
Cf
I
used
eclipse
so
I
just
my
whole
if
it's
been
very
like
IDE,
driven
in
the
Java
Department
and
so
now,
I
just
found
something
that
works
for
me
and
go
and
I
love
it
so
anyway,
retain
is
equal
to
false
weight,
is
equal
to
time
that
duration,
zero,
so
we're
gonna
pass
in
zero
and
I.
Think
that
just
means
wait
indefinitely
in
order
to
set
retaining
is
equal
to
false.
A
We
know
we
don't
want
to
retain
our
cluster
when
we're
done,
and
then
next
here
this
that
context
create
function
that
we
looked
at
in
the
source
code.
We
pass
in
our
config
our
retain
in
our
weight.
Just
like
the
CLI
implementation
did
we
do
a
little
bit
of
error
handling
and
then
afterwards
you
can
see
how
we
are
able
to
get
this
control
plane
maeda
out
of
our
context.
So
this
is
the
the
future
I
coded
in
and
I
think
it's
gonna
like
ultimately
have
getters
and
setters.
Instead
of
using
an
exported
function.
A
Here
we
can
tell
this
is
exported
cuz,
it's
capitalized,
which
means
you
can
reference
it
from
a
different
package.
So
it's
basically
like
a
programming
API,
so
anyway,
I'm
lazy
and
just
coded
and
like
the
poor
like
cheap
approach,
which
was
just
to
make
everything
exported
so
which
is
the
equivalent
of
like
a
public
function
in
Java,
so
that
we
can
access
it
outside
the
package.
Just
so,
I
can
demo
things
on
TG,
okay.
A
So
anyway
in
here
you
can
see
that
we
have
that
one
field
that
I
defined,
which
is
API
server
port
but
I,
think
the
goal
of
the
project
is
eventually
to
get
all
kinds
of
good
maida
information
back
from
the
control
plane
that
you
might
need
to
use.
If
you're
ever
trying
to
script
thing
or
not
script,
things
the
build
a
program
that
vendored
the
the
kind
of
source
packages,
so
anyway
we
we
define
our
port,
and
then
we
have
this
variable
defined
here
called
a
API
or
API
port.
A
It's
a
string
that
sets
nothing,
and
so
then
we
just
override
that
string
here
and
we
set
it
to
whatever
our
port
is.
So
this
is
just
an
ephemeral
port.
It
could
be
anything
you
know
in
the
normal
port
range
zero
to
sixty
five
thousand
two
hundred
and
fifty
eight,
if
I
got
that
right.
Somebody
like
tell
me
anyway,
go
to
go
test
here
at
the
bottom.
It's
gonna
do
our
run
and
run
our
tests,
and
then
we
did
a
defer
up
here
immediately
after
we
created
our
context.
That
does
a
context
delete.
A
So
the
way
defer
works
is
this
runs
it's
called
concurrently
and
go,
and
that
would
actually
run
at
the
end
of
our
function.
So
after
this
this
exits,
we're
then
gonna
do
a
context
delete
as
long
as
we
didn't
OS
exit
here.
So
that's
the
way
that
defer
work
so
we're
cleaning
up
our
cluster
at
the
end
as
well,
and
actually
just
to
kind
of
prove
that
we
can
do.
Exit
code
is
equal
to
this
and
we
can
just
do
from
print
line.
A
Let's
clean
that
up
and
one
of
the
things
I
really
like
about
gonna
lend
us
if
you
save
it,
it'll,
like
Auto
format,
your
code
for
you,
so
I
just
never
have
to
deal
with
go
from
there.
Anything
like
that.
Okay,
so
that's
creating
a
cluster
and
running
our
unit
tests.
Let's
look
at
a
unit
test,
so
I
wrote
the
world's
simplest
unit
test
at
Q,
Khan
and
I'm
just
copy
that
into
here,
and
this
is
in
the
TGA
repository
and
this
whole
function.
Basically
all
it
does.
A
Is
it
just
opens
up
a
socket
against
the
API
server,
wherever
whatever
port
it's
listening
on
and
just
says,
hey
I
was
able
to
open
up
a
TCP
socket.
So
that's
gonna,
validate
that,
like
we
have
a
lot
of
our
ports,
defined
correctly,
that
the
API
server
actually
started
and
is
listening
to
request,
and
it
doesn't
do
anything
further
than
that.
You
could
maybe
take
it
a
step.
Further
excuse
me
further
and
maybe
create
some
temporary
dynamic
configuration
and
validate
that
you
can
authenticate
with
the
API
server.
A
Do
a
regression
for
that
and
then
talk
about
like
maybe
an
an
idea
for
testing
like
a
C&I,
plugin
I.
Think
that's
a
good
example.
So
anyway,
this
first
one
it
just
says:
success
is
equal
to
false
I
need
to
sit
here
in
a
distance
here
and
it
just
paying
listen
tries
to
hit
the
API
server.
You
know
in
case
we're
waiting
for
like
the
API
server
to
come
online
or
something
or
something
goes
wrong,
and
you
could
obviously
change
this
logic
if
you
wanted
to
the
original
code
for
this
I
want
to.
A
Like
give
credit
where
credit
is
due
here,
I
think
I
wrote
it
I
want
to
say:
I
wrote
it,
but
you
don't
really
remember
if
you
go
to
Cuba
corn,
Cuba
corn.
We
have
this
whole
testing
suite
here,
and
this
is
like
this
was
what
I
was
talking
about
earlier
with,
like
the
noise
of
having
to
run
all
of
the
stuff
in
the
cloud,
and
if
you
go
into
Amazon
cluster
test
I
go,
you
can
see.
Where
is
it
test?
Api
listen,
and
this
is
a
very
simple
test.
A
Api
is
listening,
I
think
Liz
actually
came
through
and
simplify
this
a
bit
for
us
and
I
think
Liz.
Also,
this
is
the
same
person
who
did
the
Postgres
video
the
five
minute?
One
we
looked
at
earlier.
She
works
here
with
us.
She
also
did
this
test
get
nodes,
and
so
this
just
does
like
a
kubernetes
get
notes
and
not
just
validates
that,
like
maybe
the
API
server
is
working.
A
So
you
can
already
see
that
we
have
different
ways
of
doing
things
and
we're
sort
of
some
of
these
ideas
came
from
is
actually
a
tool
that
people
actually
use
to
deploy.
Kubernetes.
Okay,
so
going
back
here
we
do
our
API,
listen
and
then
we
we
do
a
fatal
here
on
line
33.
If
something
goes
wrong.
Otherwise
we
don't
do
anything
and
we
just
move
on
to
the
next
unit
test.
A
Let's
get
open,
let's
zoom
out
here,
zoom
in
here
recenter
that
clear
here
and
now
I
can
do
in
each
table.
Oh
I:
don't
have
each
table
and
solved
because
actually
it's
just
do
a
PS
ox.
That's
fine,
PS
ox
grep
for
docker!
Let's
do
a
grep
for
your
kind
and
see
what
we
get
is
the
kind
still
running.
Basically,
all
I'm
trying
to
do
is
show
folks
that
we
can
get
we're.
Gonna
have
multiple
containers
here
and
we
can
just
do
docker
PS,
that's
fine!
A
Let's
do
docker
PS
pipe
that
to
do
I
have
a
watch.
I
don't
have
watch
I
haven't
installed
anything
on
here.
Yet
so
let's
do
docker
PS
and
we'll
just
run
that
a
few
times
in
the
right
manually.
They'll,
look
the
lazy
way
since
we
can't
type
to
watch
so
anyway.
We'll
run
go
test
here
and
at
first
you'll
notice.
A
So
that
you
can
use
different
writers
to
actually
write
a
standard
out
and
standard
error
to
so
a
really
great
example
of
this
is
taking
like
your
tests
and
instead
of
writing
to
standard
Allen,
the
system
is
actually
sending
all
of
those
standard
out
messages,
opening
up
the
socket
and
sending
that
to
some
logger
somewhere.
So
you
actually
get
those
logs
in
a
different
place,
so
it
allows
you
to
like
have
normal
logging,
like
you
would
write
for
your
application,
but
you're
actually
able
to
like
intercepts
that
and
pipe
that
somewhere
else.
A
If
you
need
to,
and
that's
just
a
really
clever
part
of
how
code
works
so
anyway,
why
this
is
running,
it's
gonna
actually
go
and
spit
up
a
container
after
the
container
spun
up.
It's
gonna
run
our
tests
against
the
container,
and
then
it's
gonna
come
back
and
say
if
it's
okay
or
it
failed
in
what
happened.
Okay.
So
here
it
is
it's
okay,
and
so
we
didn't
get
any
of
that
standard
out
because
we
didn't
redirect
it
anywhere.
But
if
we
wanted
to
go
into
the
unit
test,
we
could
actually
pull
it
up.
A
Yeah.He
standard
out
from
the
logger
that
kind
is
doing,
but
anyway
we
got
in
okay.
So
let's
I
missed
it.
Let's
run
this
again,
I
wanted
to
show
folks
Oh
cuz
the
containers
already
up
okay,
so
this
is
cool.
So
let's
do
a
docker
PS
do
we
have
more
than
one
container,
and
why
was
this
second
one
so
fast,
this
one's
been
up
28
minutes?
No,
so
we
don't
have
a
new
docker
container.
Let's
try
to
do
once
to
change
this
and
see
what
happens:
I'm,
still
kind
of
learning.
A
How
kind
works
so
bear
with
me:
let's
go
here
and
let's
do
TTI
k23
and
let's
open
up
our
terminal.
So
now
we
do
let's
clear
this
now:
we're
did
you
go
test
again?
Okay,
so
this
one's
taking
longer
so
I
think
we
need,
like
maybe
a
femoral
names
for
our
clusters
or
something
so
anyway.
Here
on
the
right,
if
we
do
a
docker
PS,
we
should
see
okay
yeah.
Now
we
have
two
containers
running.
A
Kubernetes
cluster
run
arbitrary
code
against
that
cluster
to
validate
things
are
working
and
then
clean
out.
My
cluster
after
I've
done
all
within
about
30
seconds
here
which,
to
be
honest,
the
cubic
horn
tests
are
about
20
minute
long
process.
So
this
is
a
pretty
drastic
improvement
here.
So
if
we
look
at
our
code,
we
can
come
in
and
we
can
see
that
we
have
test
main
and
we
run
our
test.
But
we
want
to
look
at
something
that
go.
It
says:
Glenn
go
just
fetch
the
cached
result
from
the
first
test.
Oh
I
see.
A
Okay,
so
Glenn
is
just
saying
that,
because
nothing
has
changed
on
the
system.
Go
just
didn't
mean
to
test
it
again
and
just
write.
It
returned
the
cache
result,
because
I.
Think,
though,
does
like
a
unique
like
hash
for
every
time
you
do
a
test
or
whatever
to
see
if
you
already
ran
it
or
not,
and
that's
how
you
go
test
things
so
quickly
if
needed,
change
the
name
of
the
cluster
effectively
worked
as
a
cast
bus,
yeah,
okay.
A
So
that
makes
sense
thanks
for
the
clarification
there
Glenn
so
here
in
something
test,
I
go,
and
we
don't
have
time
to
do
this
because
I
want
to
move
over
to
sed,
or
at
least
talk
about
it's
me
and
how
you
could
implement
it.
We
don't
listen.
Now
we
can
probably
get
in
that
city
closer
up
and
running,
we'll
see
what
we
can
do.
A
So
here
we
would
know
that
we
could
write
any
function
and
that
basically
looks
like
this
so
we'll
copy
this
and
we're
gonna
kind
of
write
some
pseudocode
here.
So
here
we
have
this
function
and,
let's
just
say,
we
want
to
do
test
c
and
I
okay,
so
all
we
would
want
to
do
here
is
we
could
open
up
kubernetes
client
open
up
a
connection
with
the
API
server,
so
we
would
use
client
go
to
talk
to
the
API
server
and
probably
before
this,
maybe
up
in
our
test
main.
A
We
would
have
you
know,
maybe
some
Arabic
rule
set
up
so
that
we
can
only
talk
with
cube
system
from
this
test
or
this
set
of
tests,
or
something
like
that.
So
you
can
really
see
the
flexibility
that
building
these
unit
can
give
you,
but
we
would
get
credentials
for
API
server.
I'm
gonna
do
somehow.
So
if
you
wanted
to
create
those
with
our
back
and
then
pass
them
into
this
unit
test,
you
could
or
if
you
just
want
to
use
your
route.
That's
that's
a
personal
decision.
A
That's
up
to
you
so
anyway,
client
go
to
talk
to
the
API
server
and
then
here
maybe
we
want
to
do
a
couple
things.
Maybe
we
want
to
list
pods
and
check
if
a
pod
name
exists?
Maybe
we
also
want
to
get
information
on
that
pod.
Do
a
get
pods
and
check
the
status
and
just
sees
like?
Is
it
ready
what's
going
on
there?
A
We
can
even
take
it
a
step
further
and
we
could
get
the
logs
for
a
pod
and
then
we
could
go
in
and
we
could
like
do
a
string,
compare
strings,
dot,
compare
and
see
our
string
contains
sorry
about
that
string.
Dot
contains
and
see
if
there's
like
specific
strings
that
are
showing
up
in
our
logs
to
validate
that
maybe
something's
about
happening
behind
the
scenes.
A
So
now,
as
you're
building
your
applications,
you
can
actually
go
and
run
these
things
in
kubernetes
and
you
can
test
like
not
only
things
at
your
application,
but
you
could
actually
test
and
see
like
if
you
were
writing
an
operator
just.
Does
it
install
itself
correctly?
In
fact,
if
we
talk
about
a
TV
in
a
second
we're
gonna
look
at
the
STD
operator.
A
This
is
probably
a
pretty
good
example
of
one
of
the
things
that
I
personally
would
really
like
to
test
with
this
kubernetes
and
docker
testing
capability
that
we
have
here,
which
is
going
through
and
saying
like.
Ok,
let's
first
validate
that
the
operator
is
up
and
running,
let's
then
create
a
new
crg
for
the
operator
and
then
let's
go
and
check
and
see
if
it
actually
went
and
did
what
we
expected
it
to
do.
A
So
you
can
start
to
really
bake
those
tests
together
and
really
validate
that
your
program
is
doing
exactly
what
you
want
it
to
at
the
kubernetes
level,
which
is
above
your
application
level.
So
this
is
just
really
exciting,
so
I
hope
folks
are
getting
ideas
of
ways.
They
can
start
testing
your
applications
using
this,
so
I'm
gonna
go
ahead
and
move
over
into.
A
Actually,
let's
do
one
more
thing
for
name
identity.
So
now
that
we
have
a
cluster
up
and
running
if
we
do
our
docker
PS
again,
let's
run
here,
you
can
see
we
have
the
one
cluster.
That's
now
been
up
for
33
minutes.
We
can
actually
use
kind
just
to
like
get
me
to
information
about
that
cluster
as
well,
so
we
can
do
kind
and
we
can
do
kind
get
and
let's
clear
this
kind
get
and
you
can
see
we
can
do
clusters
or
a
cute
config
path.
A
We
did
the
cube
config
path
earlier
to
get
our
cube,
config
that
we
exported
blitz
to
clusters
kind
get
clusters
okay,
so
this
is
so
beautiful.
If
you
ever
looked
at
the
cluster
registry
work,
that's
going
on
an
upstream,
it's
basically,
this
it's
a
place
where
you
can
go
and
register
cube,
config
and
cluster
information
and
kind
kind
of
is
like
a
really
concrete
example
of
what
this
could
potentially
look
like
moving
forward.
We
talked
about
this
a
lot
in
the
cluster
API,
but
it's
basically
like
queue
configs
as
a
service.
A
If
you
will
so
we're
able
to
do
that
using
the
kind
command
line
tool.
What
else
this
thing
can
do
it
can
do
delete
and
it
connects
port
and
it
can
do
a
build,
which
I
think
build
is
how
you
would
actually
go
and
create
a
kubernetes
image,
and
if
you
wanted
to
create
custom
images,
you
certainly
could
burg
dis
says
all
the
kindness
yes
lots
of
kindness.
Glen
says
such
a
great
name.
I
really
do
like
it.
A
A
Why
we're
here-
and
you
can
see-
there's
a
lot
to
learn
here
about
xcd,
but
don't
be
overwhelmed,
we're
gonna
kind
of
go
through
and
high-level
each
one
of
these
things
and
then
we'll
kind
of
go
and
see
what
they
actually
do.
So,
the
first
and
foremost
Etsy.
This
is
it.
This
is
the
the
database
behind
kubernetes.
Every
time
you
interact
with
the
kubernetes
api
server.
This
is
like
anytime,
you
do
a
cubic
wpods
or
anything
you're
effectively.
A
A
The
whole
point
about
CD
is
for
it
to
be
distributed
and
prove
that
you
to
get
this
sort
of
resilience
of
running
a
database
across
different
instances
of
itself.
This
is
handy
and
kubernetes
when
we
start
looking
at
things
like
highly
available
kubernetes
clusters
and
what
it
takes
to
form
quorum
with
a
net
CD
set
of
instances.
This
would
be
one
or
more
than
one
member
of
F
CD
and
then
CD
follows
the
rule
of
like
you
need
to
have
an
odd
number
of
members
because
of
the
whole
election
concern.
A
A
The
this
is
a
chance
for
the
jenkins
question
everything
I
want.
I
would
write
in
here
and
then
I
would
just
do
a
go
test
in
jenkins,
maybe
maybe
even
containerized
this.
If
I
needed
to,
I
don't
know
how
that
would
work
with
creating
something
on
the
host,
though,
but
anyway
that
would
be
how
I
would
do
it
if
I
had
to
write
custom
logic,
if
you
just
mean
it
like
set
it
up,
there
is
nothing
wrong
with
a
bash
script.
Somebody
should
tweet
that
there's
nothing
wrong
with
a
bash
script:
hashtag
Chris
Nova.
A
So
anyway,
where
were
we
we're
talking
about
Etsy
D?
So
anyway,
SUT
is
a
key-value
store,
and
the
whole
point
here
is
that
we
can
distribute
it
and
get
highly
available
data
storage
out
of
at
CD,
which
means
highly
available
data
storage
in
kubernetes
and
when
I
say
key
value
pair.
Let's
see
if
I
can
go
to
my
doc
cam
here.
A
A
My
name
is
Chris
and
maybe,
like
my
favorite
color
is
blue
okay,
so
you
could
start
about
the
light
you
can.
You
can
come
through
and
you
can
see.
All
it
is
is
associating
a
type.
So
this
is
like
the
aggro
and
a
spreadsheet,
with
some
concrete,
independent
value,
and
that's
all
that,
as
he
does
for
us,
and
with
these
key
value
pairs
were
able
to
define
all
of
the
kubernetes
objects,
because
this
is
exactly
how
key
value
pairs
work
in
go.
So
we're
able
to
like
store
those
very
well
and
NCD.
In
fact,
I.
A
Don't
think
that
was
an
accident,
but
that
it
worked
this
way.
So
that's
how
kubernetes
is
able
to
take
advantage
of
this
so
easily
so
maza
farrago
I
was
wondering
on
how
to
test
my
Cates
host
to
Jenkins
instance.
With
this
kind
of
thing,
there's
nothing
wrong
with
the
bash
script,
but
bash
opens
the
door
to
a
lot
of
wrong.
Aaron
brings
up
a
good
point
here.
A
Bash
is
risky,
but
if
you
do
need
to
container
a
something-
and
you
I
just
need
to
kind
of
do
like
the
first
approach
at
it
and
iterate
on
it
later
using
bash,
it's
not
always
the
worst
idea.
Some
level
of
testing
is
better
than
no
level
of
testing,
and
that's
just
my
opinion,
and
if
you
look
at
my,
you
can't
have
a
cluster
bleep
without
a
cluster
talk.
There
was
some
a
really
great
example
of
them
there.
A
What
from
our
friends
at
solando
over
in
Berlin,
where
they
decided
to
I
what
I
don't
know
if
they
decided,
but
they
didn't
have
some
testing
in
place
and
I'm
sure
they
all
would
have
appreciated
a
little
of
bash
there
when
their
entire
system
went
down
because
of
something
unrelated,
but
anyway,
yeah
Aaron's,
right
bash
is
scary.
You
should
right
go
if
you
have
time
and
you
can,
because
that's
gonna
be
way
more
secure,
and
this
is
a
great
example
how
to
do
that.
A
Sorry
for
the
tangent
there
anyway,
let's
get
back
to
my
screen,
doo
doo
doo
and
that's
at
CD.
So
the
next
thing,
let's
talk
about
I'm,
trying
to
think
how
we
want
to
do
this.
Let's
do
the
at
CD
client
next.
So
this
is
the
Etsy
D
client.
In
other
words,
this
is
the
code
that
I'm
going
to
be
ven
during
that
kubernetes
vendors,
that
you
would
actually
allow
you
to
go
and
interact
with
Etsy
D
from
a
client-server
model
perspective.
So
this
is
the
client
code.
A
It's
interesting
because
sed
doesn't
have
its
own
client
repository
like
coming
at
ease.
Does
it's
actually
a
part
of
the
main
repo
and
I
think
it
actually
uses
it
itself
in
a
lot
of
cases?
So
that's
the
client
code.
So
if
you
do
plan
on
vendor
e
net
CD
and
go
or
interacting
like
if
you
want
to
go,
make
a
contribution
to
the
kubernetes
api
server
that
interacts
with
that
CD.
This
is
the
library
you
would
be
interacting
with
okay.
So
next
we
have
at
CD
cuddle
or
at
CBC
TL
or
at
C.
A
So
here
this
would
be.
Name
is
equal
to
Nova
at
to
be
cuddle,
get
name,
returned,
Nova
or
Chris
or
whatever.
So,
let's
see
here,
burg
decides
Oh,
cuddles,
I,
don't
say
I,
like
burg,
kisses
commentary,
it's
kind
of
nice
to
get
like
some
fun
examples
along
the
way.
Okay.
So
this
is
the
sed
client.
So
next
we
have
the
sed
operator.
So
let's
go
back
in
my
terminal.
We're
gonna
exit
out
of
this
left
terminal
here,
because
this
is
the
one
that
had
that
cute
config
exported.
A
So
now,
if
we
do
a
cake,
it
knows
you
should
be
back
in
Amazon,
which
we
are
so
now.
Let's
go
to
a
TV
operator
here
and
I
think
we
can
do.
There's
like
a
Installer
guide.
I
really
should
have
done
this
before
and
okay,
so
we
want
to
do
this
create
or
where's
our
back.
You
want
to
do
our
back
first,
okay,
so
here's
our
back,
so
you
want
to
come
through
when
you
want
to
set
up
our
back
honestly.
I,
don't
know
if
we're
gonna
have
enough
time,
because
I
got
to
go.
A
I
can
just
walk
folks
through
what
what
I
did
to
demo
at
CD
and
then,
if
you
want
to
go
through
and
actually
do
this
on
your
own,
you
can-
and
maybe
I
can
do
it
like
a
more
involved
episode
next
week
on
NCT
whenever
we
get
back.
But
basically
you
would
come
through
and
you
would
set
up
our
back
for
your
at
CD
operator
and
you
would
run
these
commands
here
and
make
sure
you
do
a
role
name,
make
sure
you
do
a
role.
Bonny
name
make
sure
you
give
it
a
name
space.
A
You
can
come
through
and
look
at
this
cluster
role,
template
yeah,
Mel
and
said
this
is
going
to
be
in
the
example
directory.
So
we
will
just
kind
of
copy
this
open
this
up
in
a
new
tab
and
if
you
come
and
you
look
at
these
example-
yeah
Milles
I
really
thought
I
was
gonna,
get
away
with
not
looking
at
yeah
Mel
today
on
TGI
K,
but
it
wouldn't
be
an
episode
of
TDI
K.
If
we
didn't
look
at
yeah
Mille,
so
here
is
our
here
in
the
are
back
directory.
A
We
have
template
role,
binding
template
and
these
other
ones,
and
this
just
kind
of
lays
out
the
are
back
rules
and
roles
that
you
would
be
creating,
so
you
go
through
and
you
want
to
create
the
cluster
role,
the
cluster
old
binding.
This
is
like
an
example
of
how
you
can
set,
which
is
just
a
find
and
replace
various
role
names
into
the
template,
and
then,
after
you
have
a
template,
you
can
do
a
pipe
that
to
keep
Bechtel
create.
A
So
this
is
just
like
using
bash
to
like
automate
this
like
create
a
role
and
call
it
whatever
you
want
mentality
which
there's
tools
out
there.
That
will
do
this
for
you
as
well
like
Kazon
in
your
health.
So
then
you
create
a
role
and
you
create
a
role
binding.
So
after
that's
done,
you
should
be
able
to
come
back
here
and
getting
started.
You
then,
should
be
able
to
do
a
Kubek
tile,
create
example
at
CD
cluster
channel.
A
So
if
we
look
at
that
same
example,
at
CD
cluster
yeah
mo,
you
can
see
that
it's
kind
at
CB
cluster
and
it's
the
API
version
of
V
1
beta
2,
and
it
says
adding
this
annotation
to
make
this
cluster
manage
this
cluster
white
operator.
So
this
just
gets
our
cluster
ready
after
we
do
that,
we
want
to
do
an
example
at
CV,
cluster
node,
port
service,
god
Jason,
let's
see
bergna,
says
wanting
to
buy
more
brain
power.
I'm
sorry
I'll
go
quick
here.
A
I
won't
go
too
deep,
I
promise
in
anyway,
let's
scroll
through
this.
This
talks
about
how
you,
if
you
wanted
to
do
an
oat
port
service,
we're
gonna
skip
past,
that
here's
the
example
of
how
to
delete
it
and
here's
an
example
of
how
to
to
resize
it
and
basically
the
the
examples
here
that
you're
gonna
want
to
do
are
pretty
straightforward,
and
all
that
really
happens
here.
I'll
go
back
to
my
dacha
camera
here
is
the
TV
operator
will
get
deployed
as
a
deployment.
A
This
isn't.
This
is
an
interesting
thing,
because
this
is
one
of
the
first
operators
and
one
of
the
only
operators
to
do
things
this
way,
so
this
is
actually
different
than
most
operators,
which
is
exciting
to
learn
about
so
the
fcd
deployment
operator.
The
first
thing
it
does
is
it
goes
and
it
creates
the
CR
DS.
These
are
custom
resource
definitions,
and
this
is
where
things
are
different
with
the
LCD
operator.
A
Normally,
if
you
look
at
the
operator
pattern,
like
the
one,
we
did
the
episodes
earlier
in
the
year
about
all
the
different
ways
you
can
write.
Companies
operators
creating
CRTs,
was
a
manual
task
that
you
did
before
you
deployed
the
operator.
The
operator
will
actually
create
its
own
self
defined
series
as
needed.
So
this
is
exciting.
I
also
think
that
it
does
some
figuration
to
your
cluster
as
well
to
make
sure
that
your
cluster
is
set
up
and
running
if
needed.
A
Then
it
actually
goes
and
goes
into
this
loop
here,
which
I'm
going
to
kind
of
do
this
like
event
loop
here
and
here
and
we're
just
gonna
say
this
is
an
event
loop
and
that's
going
to
kind
of
cycle
until
the
end
of
time.
So
then,
after
that's
done
with
these
see,
IDs
that
are
defined,
you
can
go
and
you
can
create
a
single
example
of
one
at
CD
cluster,
so
that
CD
CRD
and
that's
really
a
CD
cluster
cid
and
wants
you
to
find
this.
A
The
reason
we
create
three
is
cuz
I
mentioned
earlier:
it's
a
highly
available
database,
and
so
by
default
we
create
three
of
these
or
anything
in
kubernetes
itself.
Then
then
we
can
act.
Talk
to
you
later,
you'll
also
you'll
get
a
service
that
will
mapped
all
of
these
and
via
that
service
you
can.
Then
you,
the
client.
A
You
can
interact
with
that
service
and
then
those
will
go
back
to
your
back
and
Ed
CD
and
you
do
a
service
type
load,
balancer
and
it'll
actually
load
balance
across
these,
which
is
pretty
handy
because
now
we're
getting
a
distributed
database,
that's
pretty
easy
to
use.
So
it's
cool
about
EDD
is
how
the
database
works
with
a
watch
if
you've
ever
done
any
learning
or
researching
about
how
the
Linux
kernel
or
any
kernel
the
FreeBSD
kernel.
Even
I
can't
speak
to
the
Windows
kernel.
A
That's
a
big
black
box
mystery
to
me,
but
the
FreeBSD
and
Linux
kernels
and
most
remix
kernels
are
driven
they're
based
on
interruptions.
So
that's
how
they
like
we
sort
of
take
action
and
how
we
like
kick
off
this
chain
of
events.
Every
time
you
press
a
key
on
a
keyboard,
there's
actually
an
interruption
that
occurs
in
the
system
and
the
system
attempts
to
recover
from
that
interruption.
Victor
says:
hi
Chris
would
love
it.
A
If
you
could
show
us
how
their
write
a
unit
test
for
operator
with
kind
of
next
time,
I'm
using
the
operator
SDK
now.
Okay,
that's
a
good
example!
How
would
we
write
an
operator
using
kind
which
is
so
that
we
could
deploy
an
operator
and
have
it
run
our
unit
test
for
us?
That's
a
good
example
Victor.
If
you
want
to
open
up
TGI
K
issue
on
that,
we
can
track
it
from
there.
Okay.
A
So,
anyway,
back
to
our
diagram
here
so
anyway,
interrupts
in
the
kernel,
that's
how
they
work,
we're
basically
mimicking
that
same
system
and
that
same
behavior
here
in
kubernetes,
there's
a
lot
of
good
information
about
there
about
how
kubernetes
and
like
the
Linux
kernel
are
compared,
and
they
talk
about
how
distros
are
very
similar
and
how
the
interrupts
events
are
similar
in
how
it's
sort
of
declarative
in
nature,
and
it's
actually
pretty
interesting
to
learn
about
the
similarities
between
how
kubernetes
works
and
how
the
kernel
like
interacts
with
hardware
and
other
inputs.
Okay.
A
So
anyway,
that's
all
possible
because
of
this
thing
called
Etsy
D
watch
and
it's
really
cool.
So
let's
actually
write
some
pseudocode
here
and
we
can
kind
of
talk
about.
What's
going
on
so
will
will
stay
in
the
kind
test.
Actually
now,
let's
go
to
TGI
K,
so
go
here
to
TGI,
K
and
we'll
go
to
episodes.
We
want
to
do
a
new
directory,
we're
gonna
call
it
episode.
60
I
will
add
it
to
get
in
the
scroll,
the
way
down,
open
up
episode,
60
and
then
in
here.
A
A
A
If
you
click
on
this
there's
a
great
example
here,
if
you
want
to
use
the
client,
you
just
do
go,
get
and
then
here
with
this
example,
this
is
actually
runnable
go
code
here,
and
here
do
do
so
here
in
goal
and
we
can
actually
go
and
we
can
see
what's
going
on
and
give
it
a
second,
it's
got
to
kind
of
load.
This
client
and
the
ID
he's
gonna
start
to
like
learn
about
it,
yeah
there
it
goes,
and
let's
tell
it
which
we
want
to
use
to
go
context
package
here.
A
So
let's
see
this
one
so
the
way
that
goal
and
works
is,
if
there's
more
than
one
package
in
my
go
path,
called
context
you
have
to
define,
which
one
and
then
once
it
gets
that
it
will
know
how
to
import
it
accordingly,
and
you
can
see
here,
we
have
package
main
in
the
imports
and
we're
just
going
to
get
rid
of
that
right
off
the
bat.
So
here
is
our
our
program
that
we
can
use
to
talk
to
Etsy
be
so.
This
is
pretty
simple.
A
Basically,
you
would
define
like
if
we
did
a
port
forward.
This
would
actually
work
out
of
the
box.
We
could
hit
localhost
here.
It's
important
to
know
that
this
needs
to
be
127.0.0.1
and
not
the
string.
Localhost,
don't
type
localhost
there
that
time
I
think
even
0.0.0.0
causes
a
little
bit
of
trouble
as
well.
A
It's
not
a
buy
an
address,
it's
a
it's
a
listening
in
point
and
you
can
have
more
than
one
so,
if
you're
not
sure
to
find
all
of
them
and
I'm
sure
one
of
them
will
be
fine,
at
least
for
you
know,
demo
purposes
you
should
figure
out
which
way
and
where
it's
actually
listening.
If
you're
running
this
for
any
sort
of
serious
production,
instance.
Okay,
so
we
do
a
client
new
config,
which
you
see
this
new
context,
new
config.
This
is
very
common
pattern
and
go.
A
We
saw
in
kind
we're
now
seeing
it
from
a
completely
independent
project
called
fcd
and
we
passing
it
config.
Then
we
get
our
keys
from
the
API
by
passing
in
our
config,
and
then
we
have
this
K
API
I
variable
here.
Somebody
said
something
most
different
says
how
much
the
license
costs
for
going.
Id
I
think
it
was
like
200
bucks.
It
wasn't
cheap
but
again,
like
I,
really
support
these
folks
and
I
really
like
the
product.
A
The
program
so
actually
I
think
I
have
to
do
about
it
for
me,
but
somebody
either
Kris
Nova
dollars
or
hefty
o
dollars
paid
for
it
along
the
way.
So,
anyway,
let's
see
K
API,
so
you
can
come
in.
You
can
see
all
the
different
methods
that
you
can
interact
with.
Now
that
you've
got
it
authenticated
any
configured
connection
to
SED,
so
you
can
create,
you
can
set
and
you
can
get,
and
so
create
is
how
you
would
create
like
a
new
key
value.
A
Set
is
how
you
would
set
a
new
key
value
pair
and
get
is
how
you
would
get
that,
but
look
a
little
deeper
and
you
can
see
there's
this
watcher
thing
here
at
the
end,
and
this
is
very
unique
to
Etsy
D
that
you
don't
see
all
the
time.
You
know
most
databases
don't
have
a
concept
of
a
watch,
in
fact
like
the
closest
thing
I
can.
A
In
this
example,
doesn't
show
you
how
to
do
a
watch,
but
if
you
want
to
come
down
here
at
the
very
end
and
I
ran
this
on
stage
at
cube
con
and
if
folks
want
to
see
an
example
of
this,
you
know
I'm
happy
to
help
them
get
it
as
you
cluster
up
and
running.
So
you
come
down
here
and
you
can
do
K
API
and
you
could
do
watcher.
So
if
we
did
watch
her
on
foo
after
that
watcher,
you
can
do
watcher
next
and
sorry,
let's
actually
see
what
this
thing
returns,
it
returns.
A
I
think
it's
gonna
return
a
node
in
an
error.
Let's
see,
if
I
got
that
right
so
with
goal,
and
you
can
go
straight
to
the
definition
you
can
map
that
to
your
hot
tea.
It's
called
hot
key.
It's
called
Dakota
Declaration
and
you
can
see
here
it
returns.
Oh
I
think
called
a
watcher.
That's
all
that
returns.
So
let's
go
back
to
our
code.
A
Okay,
so
we
don't
want
an
error.
We
just
want
to
change
this
to
yeah
I,
don't
know
why
that
keeps
coming
up.
That's
really
annoying!
It's
I
think
it's
because
I'm
in
presentation
mode,
so
I'm
just
gonna
not
use
my
mouse.
Okay,
so
come
here
and
go
to
watcher.
So
then
after
we
have
a
watcher,
we
can
do
watch
our
dot
next,
and
that
takes
it
context.
A
Options?
Okay,
so
for
options,
let's
just
pass
in
nil.
Okay,
so
that
looks
happy.
So
now
we
can
say:
watch
your
next
at
the
beginning
of
watching
next
year
and
now
I
think
we
can
do
no,
dare
it's
equal
to
this.
Yes
and
then
on
the
node.
You
can
see
we
can
do
node
I
guess
it's
not
called
a
node.
So
let's
just
call
this
the
response
response
and
then
you
can
come
in.
You
can
do
response
dot,
node
and
then
a
node.
A
You
can
see
that
you
can
go,
you
can
get
the
key
and
you
can
get
the
value.
So
this
is
exactly
how
kubernetes
gets
keys
and
value
pairs
out
of
XV.
What's
exciting,
though,
is
if
we
actually
did
get
keen
value
here,
and
we
did
something
with
this-
let
me
scoot
over
here
sorry
that
keeps
popping
up
if
we
scooted
over
I'm
gonna
comment
this
out.
Just
for
now.
A
Sorry
all
my
hotkeys
a
broken.
This
I
have
been
remapped
just
to
my
Emacs
hotkeys.
Yet
we
came
over,
we
could
get
the
node
we
can
get
the
value.
What's
cool,
though,
is
if
we're
and
this,
if
I
ran
this
program
right
now,
the
behavior
would
be
it
would
define
foo
as
its
defined
up
here
and
late
Linton
line
26.
It
would
get
foo
right
here
on
line
35
and
then
the
program,
if
this
was
V
it
executed
here
at
the
end,
would
hang
so
nothing
would
happen.
A
A
The
program
would
all
of
a
sudden
read
that
and
then
exit
after
it
read
that,
so
it
would
be
very
quick,
but
because
of
that,
we
can
actually
build
this
watch
into
our
code
and
stick
it
into
an
infinite
loop
and
just
say
anytime,
something
happens
or
something
changes
in
the
system.
We
need
to
respond
on
the
client
in
so
this
is
client-side
watch.
This
is
really
powerful
and
this
is
how
kubernetes
works.
These
are
how
operators
work.
These
are
how
controllers
work.
A
This
is
how
Google
at
Google
next
was
able
to
do
the
whack-a-mole
thing
and
people
weren't
able
to
beat
the
kubernetes
scheduler,
because
all
the
client
code
has
this
built
in
at
the
database.
Layer
watch
that's
lightning
fast.
That
allows
you
to
be
reactive
when
events
happen
in
your
data
store
and
the
cube
API
server
does
the
same
thing.
Okay,
so
it
looks
like
folks
have
some
questions.
Let's
see
what
folks
are
requests
their
questions
are
hi
Chris
would
love
if
you
can
show
us
how
to
write.
You
know
tests.
A
Okay,
are
you
talked
about
that
one
bergna
says
to
find
food
yeah
I
need
to
go,
get
some
food
too.
Also
I'm,
10,
minutes
past
my
time
here
so
I'm
gonna
be
late
for
the
doctor,
so
I
need
to
wrap
up
okay.
So
that's
a
lot
of
kind,
a
little
bit
of
that
CD.
Sorry
I
didn't
get
a
chance
to
do
a
little
bit
more
at
CD.
We
can
look
a
little
bit
later.
If
folks
have
any
ideas
feel
free
to.
A
Let
us
know:
I'll
merge
this
code
here,
as
well
as
the
the
kind
test
code
into
the
repository
with
pointers
to
everything
for
episode.
60
I've
had
a
great
day
today.
I
hope
folks
learned
a
lot
about
kind
and
learned
a
lot
about
ed
CD
and
also
didn't
want
folks
to
feel
like
they
were
left
out
for
when
we
did
these
two
episodes
at
Q
cons.
So
now
you've
got
the
the
first
hand
and
actually
a
little
bit
more
involved
of
the
definition
of
kind
and
NCD
than
we
did.
A
40
gnk
live
so
questions
say
from
Moe's
server
says:
does
it?
Is
it
possible
to
override
watch
our
interval
time
through
watch
API?
Yes,
you
when
you
create
the
watcher
here,
I
passed
in
nil
for
the
options,
but
there's
a
ton
of
watcher
option,
watcher
options
here,
so
I
think
they're
called
what
yeah
what
watch
her
options?
That's
actually
really
hard
to
say,
so
you
can
say
that
there's
recursive
index,
you
can
say
recursively,
yes
or
no.
You
can
say,
there's
an
after
index
and
I
think
there's
different
ways.
A
You
can
define
other
configuration
for
the
watcher
as
well.
Let's
see
what
other
folks
are
saying:
Berg
does
sense.
Very
interesting.
Aaron
says
happy
holidays
thanks
for
your
time.
As
always,
Victor
yang
says
thanks
a
lot
happy
holidays,
Berg
de
says
even
a
little
mind
blown
let's
go
back
to
my
face
here.
Thank
you
all
so
much
I
love
doing
this
I'm
actually
out
for
the
until
the
new
year,
I'm
like
it's
been
a
crazy
year.
We
just
went
through
the
acquisition.
A
We've
all
been
working
really
hard,
so
I'm
gonna
go
relax
and
my
way
of
relaxing
is
going
to
be
doing
a
little
bit
of
ice,
climbing
in
Iceland,
with
my
partner,
so
I'm
really
pumped
about
that.
I
also
got
a
new
fancy.
Camera
I
got
the
Sony
a7r
three
and
a
bunch
of
really
exciting
lenses
for
it.
So
I'm
going
to
be
taking
some
really
high
quality
photos
of
winter
in
Iceland,
so
stay
tuned
for
those
as
well.
If
folks
have
any
questions
or
need
anything,
Joe
and
I
will
be
back
after
the
holidays.
A
I'll
make
sure
I
tweet
about
it
from
Iceland,
and
let
folks
know
that
there's
not
going
to
be
a
TGI
K,
but
we're
going
to
be
back
in
January
and
hopefully
by
the
time
we
get
back
in
January
here
in
our
github
issue.
Let
me
switch
over
to
this
really
quick
where's
screen
and
face
here
in
our
github
issue.
I
want
to
see
if
anybody's
done
anything,
yet
we
should
have
some
ideas
for
TG
I
can't
moving
forward.
A
Okay,
so
come
add
your
ideas
for
TGI
K,
anything
you
would
like
to
see
and
we
can
start
looking
at
how
we
can
use
VMware
and
leverage
them
to
help
improve
tjk,
to
keep
this
going
to
keep
the
hype
up
and
keep
TGI
K
alive.
So
we're
really
excited
about
that.
So
again,
thanks
everybody,
it's
been
real.
Let
me
know
if
you
have
any
questions
and
I'll
see
everybody
in
2019
with
a
bunch
of
sweet
ice,
climbing
and
volcano
pictures.
As
per
usual,
see
you
soon
be
safe
and
have
fun
happy
holidays.
A
Thanks
for
being
an
inspiration
in
2018
you're
welcome.
Yeah
this
year
was
a
good
year
for
me,
like
wrote,
a
book
climbed,
a
bunch
of
mountains,
got
a
new
fancy
job
twice.
You
know
I've
wrecked
cars.
Oh
let's
brew!
So
it's
been,
it's
been
a
crazy
year
and
always
happy
to
spend
time
with
folks
at
home.
So
yeah
we'll
see
everybody
soon.
Thanks
again,
Happy
Holidays,
I'm,
really
gonna
sign
off
this
time
have
a
good
day.
Everyone
bye.