►
Description
This week in TGIK we will explore testing of Kubernetes components. Specifically we will look at the newly launched E2E framework. Join hosts Vladimir Vivien and John Schnake to talk Kubernetes, news, and awesome projects!!!
A
Oh,
I
think,
yes,
we're
live
hello,
I
you
know.
This
is
my
second
time
doing
this,
so
I
think
we're
live.
The
broadcast
button
says
is
red,
so
I'm
assuming
we're
live
and
we're
streaming.
This
is
my
second
tgi
kubernetes
episode
and
I
have
well
first
of
all,
I'm
vladimir
vivian
and
I
have
with
me
co-worker.
A
It's
all
good,
so
today
again
this
is
episode
170
and
we
will
be
talking
about
we'll
talk
about
a
a
bunch
of
things,
but
specifically
we'll
we'll
focus
on
testing
testing
framework
and
anything
and
other
tools
that
are
out
there
to
to
facilitate
tesla.
A
But
before
we
do
that,
let
me
check
to
see
actually
no,
let
me
you
know
what
I
forgot
to
do,
of
course,
is
pull
up
the
comments
there.
We
go
comments
hey,
so
the
comments
are
starting
to
stream
in
hello
from
the
netherlands.
Do
you
see
him.
A
B
B
A
Awesome
and
we
do
have
a
packed
show
so
as
folks
are
streaming
in,
I
see
a
you
know:
people
from
pretty
much
around
the
world
now
that
tgik
has
been
running
for
a
few
years
now,
so
we
cover
the
globe
with
kubernetes,
so
we
we
have
folks
streaming
in
from
libya.
B
A
It
is,
it
is
so
you
know,
as
folks
are
streaming
in,
we
can
get
started
with
the
weekend
in
review
and
it
has
been
a
busy
week
for
for
us
at
vmware
and
also
the
community
at
large,
the
kubernetes
community,
so
we're
gonna
talk
about
a
few
things.
One
of
the
first
news
item
is
what
we're
calling
tce
or
the
tunzu
community
edition,
so
it
is
finally
made
public.
It
is
a
project
that
I've
I
had
a
small
part
in,
but
it
was.
A
It
was
a
very
satisfying
part
because
I
had
to
spend
some
time
in
and
add
a
plug
in,
so
what
I
would
say
is
definitely
check
out
the
tons
of
community
edition.
It
is,
let
me
see
what
happens
if
I
open
it
up
there.
You.
B
Go
yeah
I
went
to
this
today.
There's
a
little.
Try
me
that
goes
through
one
of
those
vmware
workshops.
That's
really
slick,
and
you
know
you
don't
even
have
to
manually
copy
and
paste
if
you
want
to
follow
their
steps
as
little
buttons
just
click
to
run
it
in
their
little
terminal.
You
don't
have
to
install
anything.
A
A
So
the
community
edition
it
is
open
source
it.
It's
it's
on
github
you
can.
I
don't
see
the
let
me
see.
Will
that
take
me
to
get
it.
I.
A
Yeah,
yes,
so
it's
on
github,
the
entire
thing
is
on
github
and
what
I
wanted
to
say
is
it's
not
just
a
project,
but
it's
also
a
platform,
and
it's
it's.
It
has
some
very
interesting
way
of
of
abstraction,
of
abstracting,
your
your
your
abstract
and
kubernetes
and
everything
underneath
it
and
it's.
A
You
know
I
can't
wait
to
see
what
the
community
builds
with
it,
and
you
know
I
can't
wait
to
get
back
in
there
and
into
it
and
and
keep
contributing
so
definitely
check
out
tce
the
tonzu
community
edition.
A
A
Yeah,
it
was
it's
a
lot
of
hard
work.
A
lot
of
people
contribute
a
lot
of
hard
work
internally
to
get
that
out
the
door
and
it's
finally
here
so
definitely
take
a
look
at
it
and.
B
Yeah
one
of
the
links
there
too,
in
the
notes,
is
the
the
roadmap
people
can.
B
What's
coming
up
in
just
like
zero
to
three
months
three
to
six
months,
a
lot
of
it
is
building
on
that
foundation
of
like
what
does
the
community
want
for
packages?
Oh
right,
what
can
we
help
streamline?
What
can
we
make?
Look
a
little
nicer,
so
anything
you
can
either
contribute
there
in
terms
of
ideas
or
actual
code.
Hey,
it's
all
open
source.
We
love
the
help.
A
Yep
awesome
all
right.
We
got
a
quite
a
few
other
things.
Let's
keep
going
here.
Oh
cartographer,
that's
another
one.
So
cartographer
is
another
vmware
sponsored
open
source.
A
What
I
like
so
this
morning,
as
I
was
getting
ready
for
the
show
kind
of
went
through
the
little
length
to
kind
of
check
out
things,
because
you
know
there's
so
many
so
many
things
coming
out
it's
hard
to
keep
up.
So
I
checked
this
out
and
joe
had
told
me
about
it
and
it's
very
interesting
to
see
how
you
know
a
lot
of
time.
A
We
build
application
on
top
of
kubernetes,
but
now
we're
seeing
folks
using
the
kubernetes
objects,
the
kubernetes,
the
the
actual
kubernetes
mechanism,
to
build
things,
and
this
is
one
of
those
projects
where
you're
using
kubernetes
to
create
what
we're
calling
to
automate
and
choreograph
events
within
the
kubernetes
ecosystem.
A
So
you
can
do
things
like
you
know:
automating
build
and
deployment
et
cetera,
et
cetera.
Now
cartographer
is
probably
not
the
first
thing,
they're
not
trying
to
do
it,
but
it's
definitely
an
interesting
way
of
using
kubernetes
to
drive
that
process
check
it
out.
It's
it's
again.
It's
open
source
and
this
the
link,
that's
on
the
document,
pretty
much
goes
over
everything
about
the
project
and
and
how
it
works.
A
This
is
my
second
day
learning
about
it
and
it's
it's
very
interesting.
It's
one
of
those
I'm
eventually
I
want
to
get
get
around
and
give
it
a
try.
So
if
you
can
check
it
out,
so
it's
cartographer,
did
you
get
a
chance
to
check
it
out?
John.
B
I
didn't
look
too
much
at
a
cartographer
but
yeah,
even
just
looking
at
that
basic
splash
page.
You
get
kind
of
the
idea
that
it's
going
to
be
a
more
kubernetes
native
way
to
kind
of
do
like
build
packs
and
stuff
like
that,
I'm
assuming
maybe
it's
using
like
the
crds
and
controllers
to
manage.
A
Exactly
it's
using
the
kubernetes
primitives
directly
to
express
the
workflow,
the
build
workflow
and
automate
it
as
well,
very
interesting
all
right.
So
the
next
one
is:
let's
see
what
we
got
our
chain.
Your.
B
Chain
guard
chain
guard
chain
guard
yeah
was
looking
at
that
it.
You
know,
I
don't
know
the
details
of
it
as
well,
but
it
definitely
has
a
impressive
list
of
companies
on
their
on
their
splash
page
right
that
all
the
talk
of
secure
by
default,
even
in
your
your
ci
flows,
that's
definitely
important
right.
You
can't
just
always
think
everything
in
ci
can
be
completely
open
and
then
magically.
It
will
be
safe
and
secure.
A
The
way
I
do
it
well
yeah,
but
yeah
it's
it's.
It's
very
interesting
and
I
think
the
I
think
the
this
is
from
an
x,
vmware
guy
scott
nichols.
I
believe,
but
yeah
it's
a
very
interesting
concept
and
definitely
check
it
out.
It's
definitely
a
great
addition
to
the
to
the
community
of
tooling
around
kubernetes.
A
So
going
back
to
tce,
I
see
somebody
added
an
additional
link.
Amanda
and
josh
gave
oh
somebody.
Somebody
is
busy
updating
this
chain
guard
kubernetes,
oh
kubernetes,
cluster
api,
so
another
announcement
development
this
week
is
in
the
for
cluster
api,
which
has
reached
its
coveted
production,
readiness,
release,
version,
1.0
and
cluster
api.
A
If
you
don't
know
it's
it's
the
underpinning
of
a
lot
of
projects,
including
the
tanzu
projects
that
we
were
just
discussing
earlier,
it's
been
around
for
a
while,
and
you
know
it's
been
in
the
oven
getting
baked
for
quite
a
lot,
quite
a
while.
So
now,
with
with
with
this
release,
it's
it's
version
1.0.
So
with
that
version
excuse
me,
it's
been
a
this
blog
post
that
that
went
out.
A
So
you
can
learn
all
about
who's
using
it,
how
it's
being
used-
and
you
know
why
do
we
feel
that
or
the
the
folks
who
work
on
the
project
feel
that
it's
it's
ready
for
for
production,
so
take
definitely
check
it
out.
I'm
not
doing
it
justice
by
just
rattling
a
few
things
about
it,
because
cluster
api
is
a
very
important
opening.
B
I
mean
from
from
my
person,
ever
since
I've
been
at
vmware,
it's
been
a
highlight
of
people
working
on
it,
a
lot
of
effort,
and
it's
it's
also
reassuring
to
know-
and
I
I
think
they
mentioned
it
on
that
page
or,
if
not,
that
one
on
their
main
splash
page,
how
it's
not
just
a
vmware
product.
There's
a
ton
of
input
from
the
the
community
at
large
right,
getting
kubernetes
to
manage
kubernetes
and
control
your
your
other
clusters,
and
so
you
can
have
real
clusters
of
clusters
and
it's
all
managed
internally.
B
A
Yes,
so
definitely
huge
and
then,
along
with
the
one
data
announcement,
we
had
the
introduction
of
cluster
api
cluster
class,
and
this
is
from
fabrizio,
who
is
one
of
the
main
contributor
and
lead
in
in
a
cluster
api
as
well
and
cluster
class?
A
Is
you
know,
interestingly,
in
in
kubernetes
power
lines
where,
whenever
you
hear
class
you're
thinking
of
a
class
of
things
that
you
can
use
as
a
template
to
drive
other
things,
so
cluster
class
is
basically
what
it
sounds
like
it's
it's
a
way
of
defining
some
sort
of
template
that
you
can
stamp
out
clusters
without
having
to
repeat
the
same
thing
over
and
over.
So
this
is
a
a
blog
post
around
cluster
cluster
class
and
manage
topology
so
definitely
check
it
out.
A
This
is
on
the
kubernetes
I
o
website.
I
think
this
was
published.
Oh
yeah
today
so
definitely
check
it
out.
I
think
again,
as
as
john
mentioned,
you
know,
cluster
api
is
a
is
a
great
project,
a
great
addition,
and
you
know,
can't
wait
to
see
what
folks
are
doing
with
it
and
if
you
need
proof
what
can
be
done
with
cluster
api
new.
Look.
No
further
than
what
we're
doing
with
with
the
time
with
the
tunzu
projects,
all.
A
B
Excited
about
the
cluster
class
because
every
other
ui
you
use
whether
it's
through
you
know
azure,
aws
or
kind
you're.
Setting
up
your
cluster.
B
You
just
have
to
manually
specify
everything
about
the
cluster
kind
of
just
to
get
it
set
up
so
to
be
able
to
just
to
say,
like
I
want
a
basic
dev
cluster,
and
it
just
makes
the
assumptions
about
what
that
means,
or
I
need
a
you
know,
a
cluster
with
a
ton
of
memory
like
there's
going
to
be
a
class
for
that
or
something
that
has
gpu
capabilities
like
just
do
that.
You
know
you
don't
have
to
know
all
the
details.
You
know
the
more
we
abstract
hide
under
the
covers.
A
Absolutely
absolutely
abstraction
abstraction
abstraction.
The
next
news
is
valero
1.7.
My
screen
keeps
moving
because
I
think
folks
are
still
editing.
Where
is
it
valero
and
I
just
lost
my
spot
there
you
go.
A
There
you
go
valero
1.7,
so
that's
out
check
it
out
and
if
you
don't
know
what
valero
is
again,
it's
valero
is
a
vmware
sponsored
open
source
in
the
space
of
cluster
backup,
so
definitely
check
it
out
1.7
project.
A
Oh,
this
is
another.
This
announcement,
I'm
not
sure
when
it
was
added,
but
I
just
copied
it.
This
is
just
to.
Let
us
know
that
project
project
open
service
mesh
now
supports
contour
contour,
so
definitely
check
that
out.
Let's
see
what
we
there
you
go,
so
the
link
takes
you
to
the
release.
Note,
and
you
can
read
all
about
it
again.
Some
of
these
I
I
did
not
have
time
to
dive
deep
into
it,
so
I'm
seeing
them
as
as
I'm
reading
them.
So
the
next.
B
Thing
about
the
oh
go
back
to
the
the
valero
release,
because
I
was
looking
at
their
release.
Notes,
they're,
well
structured,
two
big
things
because
they
separated
the
highlights
and
detailed
changes
but
dystrolis.
I
know
that
matters
to
a
lot
of
people
for
adoption,
but
then
also
a
nice
little
debug
flag
to
get
like
a
little
service
bundle
which
will
help
just
everybody
helps
solve
problems
faster.
It
helps
you
report
your
problems
faster,
so
hopefully
that
will
just
only
increase
momentum.
A
Just
since
you
mentioned
the
debug
function
at
shameless
plug,
that
is
using
crash
d,
which
we
did
a
show
about.
I
think
back
in
a
few
months
back,
I
don't
remember
exactly
when
so
anyway,
let's
go
back
to
the
list.
A
Yeah
exactly
so
again,
I
don't
know
you
know,
some
of
you
may
already
be
contributing
to
to
kubernetes
or
you
may
not
be,
but
you
know
getting
involved
with
a
sig
is
a
great
way
to
start
slow
and
and
find
ways
to
help
out
in
the
community
it
a
lot
of
times.
It's
not
even
code,
a
lot
of
time.
It's
you
know
just
what
we
call
a
chop,
wood
and
care
water
type
of
activities
just
to
help
keep
the
lights
on,
but
some
of
it
is
code
as
well,
so
take.
B
It
definitely
if
you're
just
interested,
I
mean
I
remember
when
I
started
out.
I
don't
go
to
a
lot
of
the
sig
meetings
anymore,
but
when
I
first
started
working
with
kubernetes,
I
just
go
in
shadow
when
they
have
their
sig
meetings.
Right,
like
you,
can
just
join,
listen
to
hear
what
their
problems
are,
because,
when
you're
outside
of
the
community,
it's
just
this
black
box.
That
seems
really
big
and
confusing
kubernetes.
B
But
when
you
see
it's
broken
down
into
these
little
cigs
and
day
to
day,
there
are
very
tangible
problems
that
each
group
is
trying
to
solve.
You
know
right,
sometimes
it's
organization
or
it's
refactoring
or
it's
just
a
set
of
new
features,
or
they
just
need
the
input,
and
you
might
be
really
surprised
how
much
you
can
contribute,
even
if
you're,
relatively
new
to
the
community.
B
A
Awesome,
that's
awesome,
yes,
so
definitely
take
it's.
I
think
we
have
three
cigs
infra,
node
and
off
and
as
john
mentioned,
all
of
them
are
looking
for
contributors,
so
definitely
check
check
them
out.
Kubernetes
steering
committee
elections
are
on
the
way.
As
you
know,
next
week
is
kubecon.
A
You
know
a
big
big.
This
is
a
big
moment
for
for
everyone
in
the
community,
because
you
know
this
is
our
yearly
north
america
getting
together
last
year.
Obviously,
for
obvious
reason,
it
was
all
virtual,
but
this
year
it
is,
I
believe,
it's
a
mix,
virtual
plus
in
person,
so
as
that
is
going
on
we're
also
going
to
have
kubernetes
stern
committee
elections
and
and
basically
it's
a
way
for
you
to
get
even
more
involved
in
in
the
how
the
community
surpri
of
the
kubernetes
project
is
actually
ran
and
managed.
A
So
you
get
your
voice
heard
by
becoming
a
committee
member
and
basically
what
you
do
is
open.
I
love
this.
You
open
up
a
a
pr
in
github
either
you
or
somebody
else
may
may
nominate
you
and
say
I'm
interested
in
becoming
a
a
member.
I
don't
see
I
saw
there,
you
go
syrian
community
nomination
and
you
know
so
that
we
have
several
folks
from
vmware,
but
we
have
folks
from
all
over
the
place,
they're
creating
prs
to
be
nominated
or
have
been
nominated
by
somebody
else.
B
A
Absolutely
absolutely
this
last
one
is
october.
13Th
linux
foundation
is
holding
us
apology,
which
has
to
do
with
open
source.
A
B
Just
go
ahead
and
can
we
can
we
support
nominations
while
he'd
ask
yes.
A
A
A
No,
I
I
think
I
just
give
thumbs
up
if
you
go
to
like.
Let's
look
at
like
a
pr
like,
for
instance,
tim
pepper
hits
from
just
either
thumbs
up
or
something
like
that
plus
one.
This
is
how
you
this
is
basically
how
you
vote
so
yeah.
A
Actually
that
I
think
I
did
cover
yeah,
so
I
think
actually
it
was
somebody
from
from
the
chat
said
they
were
updating
the
they're
updating
the
the
notes
and
they
added
the
presentation
that
amanda
and
josh
did,
which
is
awesome.
Talk
if
you
want
to
know
what
tons
of
community
community
edition
is
definitely
take
a
look
at
the
talk
and
it'll
give
you
at
a
super
high
level.
A
What
it
is
josh
did
an
excellent
walkthrough
of
the
of
the
project,
the
cli
and
how
it
works,
et,
cetera,
et
cetera.
So
definitely
I
just
wanted
to
highlight
that
the
link
that
that
was
added
all.
C
B
Down
yeah,
you
want
to
intro
what
we're
the
main
topic
of.
A
A
Wow
a
lot
of
news,
a
lot
of
news-
and
hopefully
you
guys
will
have
time
to
check
them
out
okay.
So
this
is
the
e2e
testing
framework
or
the
kubernetes
sigs
e2e
testing
framework,
and
it's
basically
a
go
framework
that
helps
you
create
tests.
But
why
are
we
even
doing
that?
Well,
that's
because
there
is
a
framework
baked
into
kubernetes
right
now
that
we
all
use.
A
If,
if
you
write
code
for
inside
kubernetes
chances
are
before
your
new
code
can
be
merged
or
be
accepted,
it
has
to
pass
some
sort
of
end-to-end
test
in
that
test
again,
if
you're
writing
directly
in
kubernetes
kubernetes,
which
is
the
the
main
repo
for
kubernetes.
A
That
framework
is
there
for
you
to
use
the
problem
with
that.
Is
it
it's
a
framework
that
has
grown
organically
with
kubernetes
and
it's
hard
or
even
impossible,
to
reuse
a
lot
of
the
good
work
that
has
been
done
over
the
years?
C
A
Right
so
yeah,
it's
it's
definitely
impossible
so
last
year
around
around
this
time
I
started
talking
to
a
few
people
internally
and
who
are
involved
in
upstream
with
sick
testing
and
we're
we're
looking
around
at
ways
to
take
the
best
of
what
was
already
done
in
inside
the
kubernetes
testing
framework
and
see
if
we
can
create
a
project
where
we
have
an
api
via
a
go
package
that
you
can.
A
But
you
don't
want
to
go
through
the
exercise
of
recreating
a
a
test
framework
every
time
and
I've
seen
it
done,
and
that
was
one
of
the
motivation
behind
behind
this.
Now,
one
of
the
things
that,
if
you've
been
around
kubernetes
and
you've,
actually
written
kubernetes
code
that
are
tested,
you
you've
heard
other
projects
that
have
to
do
with
with
kubernetes
testing.
So
you
probably
heard
of
cube
test
two.
A
Where
is
it
so?
You've
heard
of
cubetest2
and
you've
probably
heard
of
sonoboy,
which
john
I'll
let
john
talk
about
what's
in
the
boy,
is
in
a
minute,
but
these
are
different,
different
pieces
of
of
the
testing
of
the
testing
problem
that
we're
solving
right,
for
instance,
cubetest2,
is
more
of
a
localized
framework
or
a
local
framework.
You
can
use
to
launch
tests.
A
So
that's,
basically
all
it
does.
Sona
boy
takes
a
again
I'll.
A
Let
john
drive
son
of
boy
in
a
minute,
because
he
is
one
of
the
main
engineer
on
summer
boy
and
I
will
let
him
wax
poetic
about
some
boy
for
a
few
minutes,
but
I
wanted
to
put
sonic
board
down
because
also
sunborn
is
part
of
that
testing
sphere,
where
we
need
something
to
automate
the
launching
of
tests
on
on
on
on
your
on
your
cluster,
that's
one
of
the
things
somebody
is
good
at
and
then
now
we
come
to
what
we're
about
to
cover
today,
which
is
the
e2e
testing
framework,
is,
is
closer
to
the
code,
meaning
that
this
framework
is
what,
as
a
developer,
writing
or
building
or
creating
kubernetes
resources
or
or
code
that
are
destined
to
live
in
a
kubernetes
cluster.
A
How
do
I
test
that?
And
that
is
what
the
framework
that's,
what
the
itoitis
framework
addresses
now
before
we
jump
too
deep
into
the
framework.
A
You
know
there
are
different
tests
kind
of
tests
out
there,
one
of
the
main
tests
that
a
lot
a
lot
of
people
write,
especially
in
folks
that
are
working
on
kubernetes,
is
what
we
call
confirm.
Conformance
tests
and
conformance
test
is
one
of
the
big
chunk
of
tests
that
are
part
of
kubernetes
and
those
are
written.
A
You,
like,
I
said
earlier,
if
you're
going
to
create
something
that
is
part
of
kubernetes,
it
has
to
pass
some
sort
of
test,
and
one
of
the
tests
that
has
to
pass
are
conformance
tests
and
sono
boy
is
one
of
the
tools
that
we
use
to
drive
conformance
tests.
So
I'm
going
to
let
john
talk
about
sona
boy
for
a
few
minutes,
and
then
I
will
come
back
to
talk
to
about
the
e2e
test
framework.
B
Thank
you,
vlad
yeah,
so
lakewood
was
saying
a
lot
of
these
different
tools
are
different
parts
of
the
puzzle
and
sometimes
we're
created
to
solve
different
problems.
I'm
glad,
maybe
you
can
speak
to
this
too,
with
with
cubetest
2.
When
I
have
looked
at
it
and
seen
the
implementations
where
it's
being
invoked
in
code,
it's
usually
about
setting
up
the
cluster
right.
B
B
And
sana
bui
just
takes
a
different
approach.
We
don't
worry
about
the
construction
or
destruction
of
the
cluster
at
all.
B
We
just
need
you
to
have
the
the
cube
config
so
that
you
can
talk
to
the
cluster,
so
it's
some
cluster
that
you
have
access
to
and
that
you
want
to
run
some
sort
of
test
on
the
one
thing
I'll
always
try
and
emphasize
about
sanobui
is
that
we
don't
really
own
the
conformance
test,
though
that's
a
really
common
misconception.
B
Those
tests
are
kubernetes
tests.
They
live
in
the
kubernetes
repo,
the
kubernetes
devs,
who
know
way
more
about
you,
know,
networking
and
auth,
and
how
the
node
should
operate.
They're
the
ones
writing
those
tests,
and
you
know
they
publish
the
images
they
publish
the
test
by
an
area
as
well,
and
then
that's
packaged
into
a
test
by
or
a
test
image,
and
that's
what
sounded
we
can
just
invoke.
Sonography
just
runs
what
we
call
plug-ins
and
you
can
write
your
own.
Even
so,
you
know
we'll.
B
A
Yes,
the
terminal
could
be
bumped
up
a
little
bit,
how's
that
there.
B
You
go
okay,
so
when
you
do
like
sauna
buoy,
it's
a
little
binary,
it's
all
open
source,
you
just
download
the
binary.
That's
all
it
takes
to
install
it.
The
main
command
is
sonically
run
and
it
just
creates
a
bunch
of
things
in
the
cluster
that
runs
tests.
If
you
want
to
see
what
it's
going
to
create,
we
have
the
little
command
gen
sound
we
generate
and
you
can
see
it
creates
some
pods.
B
It
creates
some
configuration
config
maps
and
all
that
jazz,
but
the
real
magic
is
that
what
it's
really
doing
sonabooy
does
just
this
orchestration
of
launching
these
plugins
and
reporting
their
results.
So
in
this
case
this
is
the
the
e
to
e
the
upstream
kubernetes
tests.
You
can
see
it
has
yeah
right
here.
B
So
here's
the
here's,
the
image
that's
published
by
the
upstream
kubernetes
community,
every
version
that
comes
out
and
you
can
just
run
sonaboui
to
launch
those
tests
and
the
reason
you'd
want
to
use
sonogui
at
all
is
that
it's
really
simple
to
integrate
into
your
workflows,
whether
it's
ci
or
dev,
because
you
can
really
just
do
things
like
this
on
adobe
run
and
you
can
run
other
plugins
by
specifying
you
know
different
flags.
B
But
then
you
can
say
just
wait
for
that
to
finish,
and
then
I
want
to
look
at.
You
know
download
the
results,
something
like
that
or
download
them
and
extract
them,
and
then
you
can
even
just
do
like
open
up
that
directory.
So
if
you
download
the
temp
I'm
going
to.
C
D
C
B
Thing
so
everything
else
is
customizable,
though,
which
is
especially
why
we
wanted
to
talk
about
it
today,
as
we
talk
about
the
ede
framework,
because
I
actually
just
made
I'll
pull
up
the
web
page,
let's
see,
there's
a
sono
buoy,
plugins
repo
that
we've
published
some
plugins
again,
it's
all
open
source
anyone
can
contribute.
B
Some
of
these
are
for
specific
apps
like
a
let's
see,
systemd
logs
or
the
e
to
e.
That's
you
know
kind
of
the
default
ones.
You
can
do
a
cluster
inventory
cis
benchmarks,
that's
a
security-based
one
again
we're
not
writing
the
the
cis
benchmarks,
we're
just
launching
aqua
security,
put
those
up
and
we're
able
to
wrap
that
into
a
plug-in
so
that
you
can
easily
run
them
if
your
ci
system
already
runs
sound
gui
for
the
ede
tests.
Well,
you
just
change.
D
C
B
Up
this:
where
is
it?
Oh,
it's
under
examples,
because
it's
a
simple
example:
an
e
to
e
skeleton.
So
this
uses
one
of
the
examples
that
vlad
had
put
up
in
the
e
to
e
test
framework.
A
B
B
So
in
this
particular
one
you
know
this
one
is
from
the
repo
just
as
an
example
from
the
test
framework
just
test
that
something
says
hello
sure.
Well
here
you
can
see
that
you
can
also
simply
reach
out
to
the
api
right.
You
just
say:
hey,
I'm
going
to
get
a
environment
with
a
cube
config
and
you
can
actually
do
things
like
list
pods
vlad
we'll
get
into
that.
B
But
I
want
to
show
you
would
just
do
sonibuyrun
target
the
plugin
file
and
right
you
can
get
some
output
like
this,
which
sauna
buoy
is
able
to
parse
in
you
know,
there's
some
updates
we're
gonna
make
soon,
because
all
this
was
just
done
today
right!
That's
how
easy
it
is
to
iterate
make
your
own
plugins
and
whatnot,
but
you
know
it
creates
this
output
and
then
you
can
see.
B
You
just
need
to
worry
about
the
business
logic
and
you
know:
reporting
pass
fail
or
output
it
in
a
standard
format.
Sonogui
will
be
able
to
parse
those
common
formats
and
then,
in
addition,
if
something
goes
wrong,
you
don't
have
to
go
and
gather
all
these
logs
everywhere
or
you
know,
check
the
status
of
pods.
Sanibui
goes
after
the
test,
run
and
checks
a
ton
of
information
for
you.
So
it's
going
to
get
all
these
different
pod
logs.
So
your
plug-in
pod
logs
are
already
gathered.
B
You
know,
so
this
was
the
custom
ede
custom
plug-in.
I
just
did
it'll
also
go
and
gather
all
this
information
from
the
cluster.
If
you
want
to
look
at
you
know
what
were
the
source
of
config
maps
and
points,
because
sometimes
you
know,
maybe
the
service
went
out
or
you
can
see
the
let's
see
like
sanibui,
look
at
the
pods
and
check
the
actual
status
of
each
container,
and
you
know
when
those
those
statuses
are
changing
and
correlate
them
with
your
test
failures.
B
So
you
know
a
lot
of
people
know
that
you
can
use
honorably
to
gather.
You
know
your
test
results,
but
I
think
one
of
the
biggest
values
is
that
we
gather
all
this
extra
data
to
help
you
debug
it
when
something
fails,
and
even
if
you
don't
do
the
debugging,
you
know
what
often
happens
is
people
will
report
problems
to
us,
and
all
we
have
to
do
is
just
say
well
give
me
the
tarball
of
the
data
and
it's
not
just
their
logs,
but
it's
going
to
be
that
whole
support
packet.
B
B
Did
all
oh
yeah,
oh
yeah,
it's
it's
almost
all
done.
I
gotta
just
do
some
some
extra
tests,
but
the
skeleton
is
good
to
go.
Anybody
can
pick
that
up
now
and
we're
going
to
just
keep
making
it
better
because,
right
now
it
doesn't
do
progress
messages.
B
A
Absolutely
I
you
know
I,
when
you
ping
me
on
slack.
I
had
no
idea,
that's
what
you're
working
on,
but
that's
that's
awesome
that
sono
buoy
already
has
a
a
a
plug-in
that
can
work
with
the
e2e
test
framework
which
we'll
talk
about
in
a
few
minutes.
But
before
I
move
on
to
to
talk
about
the
e2e
test
framework,
let's
look
at
some
of
the
questions
because
I
want
to
make
sure
we
address
them,
but
I
think
waleed
mentioned
that.
A
I
remember
a
couple
years
ago
I
tried
to
run
and
check
as
a
result.
Oh
that's
when
sunna
buoy
might
have
been
ran
online,
not
all
tests
passed
in
sonobuoy
yeah.
You
definitely
have
to
look
at
sonaboe,
it's
a
different
tool
than
it
was
with
two
or
three
years
ago.
B
Oh
yeah,
very,
very
different
than
like
two
years
ago,
and
here
I'll
share
again
we
can
do
something
live
let's,
let's
see
how
a
live
demo
goes
because
some
of
these
things
are
just
there's
a
tiny.
I
I'd
appreciate
any
input
out
how
to
make
these
things
even
more
simple.
But
so,
if
we
do
like
a
sonobu,
we
run.
B
B
B
B
Let's
do
this
same
thing
when
you
wait,
while
it's
running
now
once
that
pod
comes
up
we're
going
to
be
giving
output
the
whole
time.
So
you
can
see
you
know
hey.
This
is
the
the
current
status.
Everything
started
just
fine.
This
plug-in
finished
this
plug-in
finished.
Okay.
Now
we're
done
so.
Let's
see
this
shouldn't.
Take
long,
oh
see
all
these
in
quick
mode
as
soon
as
it
came
up,
they're
already
complete.
B
So
then
it's
going
to
be
preparing
the
results
for
download.
There's
some
post
processing
that
happens,
and
this
is
something
that
was
recently
added
right
so
now
the
ede
plugins
are
outputting
data
in
a
structured
format
that
we
understand.
Okay,
here's
my
code
already
opening
up.
Let's
go
back
to
here,
though
so
you
can
see
that
it
passed
and
it
has
zero
failures,
since
it's
outputting
in
junit
sound,
but
we
understand
is
junit.
B
We
can
actually
walk
those
results
for
you,
but
I
don't
disagree
that
there's
a
bunch
of
data
in
here
and
when
you
download
do
this
on
a
buoy
retrieve
the
output
to
just
a
file
out.tar,
that's
easy.
B
Spell
okay,
so
sound
movie
downloaded
this
results
star
ball!
You
can
also
just
do
this,
so
once
you,
if
somebody
just
gives
you
a
tar
ball,
you
don't
have
to
extract
it
anymore.
That's
the
way
it
used
to
have
to
be.
You
know
a
year
or
two
ago,
but
you
can
just
do
some
movie
results
and
target
that
and
you
can
really
simply
see
like
okay,
we
ran
these
two
plug-ins.
How
many
passed
failed,
the
one
gotcha
that
confuses
people-
and
we
don't
have
a
great
ui
answer
to
this.
I
love
community
feedback.
C
B
Bui
does
this:
is
it
it
reports
it
as
passed
for
some
amount
of
clarity,
because
I
had
three
I
had
some
nodes.
I
expected
three
results
back.
I
got
three
results.
I'm
gonna
call
that
a
pass
if
there
was
one
that
one
plug-in
that
failed
and
that
it
couldn't
get
results
at
all
from
a
node,
it
would
report
it
as
failed.
B
B
The
reason
that
this
is
still
in
sanobuy
is
that
right,
gathering
logs
is
important
or
if
you
want
to
be
really
fancy,
maybe
you're
going
to
like
create
a
web
page
that
people
will
just
open.
So
you
don't
really
want
sonia
like
trying
to
parse
that
you
just
want
them
to
view
it,
but
you
can
do
other
things
like
there's
a
mode
here.
I
think
there's
like
detailed
right,
you're
actually
going
to
output
all
these
things
that
are,
you
can
pipe
through
jquery
and
then
you
can
do
anything
and
everything
if.
C
D
B
B
Yeah
when
you
actually
run
conformance
tests,
most
of
that
four
thousand
is
skipped,
but
you
you
can
do
you
know
a
filter
on
this
to
check
the
ones
that
failed
or
the
ones
that,
on
a
certain
node,
all
sorts
of
things,
depending
on
whether
your
plug-in
runs
one
place
or
on
all
the
nodes.
Lots
of
data
here
that
you
can
parse,
though,
if
you
know
what
you're
looking
for.
A
A
B
B
Maybe
I'm
disagreeing
with
you
blah,
but
I
would
say
yeah
you
need
to
pass
everything
like
if
you
just
set
up
a
kind
cluster,
even
though
it's
a
dev
cluster
you're
not
trying
to
like
ship
that
to
anyone,
it
should
pass
conformance
because
conformance
it
starts
small
and
there's
only
you
know
three
400
tests,
it
probably
should
be
bigger
right.
The
community
is
constantly
trying
to
add
more
endpoints
that
are
validated
as
part
of
performance,
and
you
know
so
being
as
small
as
it
is
only
three
to
four
hundred
tests.
C
B
Some
distributions
are
in
that
gray
area
right
now,
where
this
fails.
So
technically
it's
not
conformant,
but
they
have
some
really
good
reason
and
it's
like
part
of
their
design.
That
should
fail
because
we
handle
this
differently
and,
in
our
opinion,
that's
better
yeah
and
they
got
to
work
with
the
community
to
try
and
square
those.
Two
things.
A
And
to
also
draw
the
point
that
john
mentioned
earlier,
when
those
tests
fail,
they
have
nothing
to
do
with
with
subtle
boy.
Subtle
boy
is
basically
running
the
code
against
your
cluster.
So
it
is
that's
why
some
boy
gives
you
all
these
extra
knobs
to.
Let
you
pull
back
the
layers,
so
you
can
look
at
logs
to
see
what's
going
on
and
why
things
might
be
failing.
B
D
D
B
The
that
was
one
thing
I've
made.
This
is
going
to
be
just
in
the
next
sonic
bowie
release.
It
was
always
configurable,
but
it's
hard
to
know
all
the
knobs
that
you
can
turn
on
something
like
sauna
buoy
and
we
were
always
getting
the
sonobui
logs
and
the
namespace
for
sonibui.
So
that
gets
your
plugin
and
the
aggregator.
That
gets
all
the
results,
but
we
just
added
it
as
default
to
get
the
cube
system
logs
because
nine
times
out
of
ten,
when
people
come
to
me
and
say
like
hey,
these
e
tests
are
failing.
B
Why
it's
just
it's
going
to
give
you
a
timeout
error
somewhere
in
your
kubernetes
test
and
sono
buoy,
doesn't
know
why
it
timed
out
and
the
services
might
all
be
up,
but
usually
the
keys
there
are.
You
need
to
look
at
like
cubelet,
logs
or
scheduler,
logs
or
controller
logs
of
some
sort,
and
so
we
just
made
it
by
default,
get
the
cube
system.
So
it's
gonna
again
be
an
extra
helpful
place
to
go.
Look.
A
All
right
cool
we're
gonna
have
to
move
on
from
son
of
boy.
I
know
it
we're
getting
like
we're
getting
good
into
it.
So
what
we're
gonna
have
to
do
is
schedule
a
sono
boy
tgik.
So
we
can.
It
can
be
completely
dedicated
to
centerboy,
because
yeah.
B
A
A
Absolutely
so
let
me
do
the
share
thing
again
put
my
screen
on
the
screen,
so
we
can
discuss
that.
So,
like
I
mentioned
the
ether
framework,
you
can
read
all
about
it.
We
even
we
had
a
for
a
while.
We
were
you
know
in
the
design
phase,
so
you
can
read
about
the
design
of
it
and
you
know
how
it
came
to
be
et
cetera,
et
cetera.
What
are
the
motivations,
etc,
but
what
we
have
today
is
really
we
have
two
framework
in
one
and
I'll,
explain
what
I
mean
by
that.
A
So
we
have
what
we
call
the
test
harness
framework,
which
is
the
the
framework
that
you
use
to
design
the
test
and
it
to
express
the
test,
but
we
also
have
something
called
a
client
which
is
a
word
on
the
you
know,
k,
client,
with
a
k.
I.
A
Thank
you
in
the
the
whole
idea
behind
client
is
from
an
observation,
as
I
was
talking
to
folks,
and
we
were
designing
this
thing.
A
What
I
realized
is
a
lot
of
the
struggle
and
pain
points
that
folks
come
to
to
encounter
when,
when
they're,
creating
tests
has
nothing
to
do
with
writing
the
test,
but
has
everything
to
do
with
the
drudgery
of
using
client
goal
and
repeating
the
same
thing
over
and
over
and
over
again.
A
A
You
know,
give
you
something
that
is,
that
gets
out
of
the
way,
quick
and
early
and
let
you
write
tests,
but
still
let
you
still
give
you
all
the
tools
that
you
need
to
to
to
talk
to
to
the
cluster
express
what
you
want
to
get
from
the
cluster
express
or
build
objects
or
resources
programmatically.
So
you
can
send
to
the
cluster
et
cetera
and
all
of
the
niceties
that
are
encapsulated
in
client.
Go
and
api
machinery
et
cetera.
A
A
While
I
have
this
page
up,
I
I
will
be
remiss
if
I
didn't
give
a
shout
out
to
shweta.
She
has
been
one
of
the
other
main
contributors
to
the
project
other
than
myself
so
far
and
she's.
You
know
she's
been
working
hard
as
a
basically
as
a
side
thing
that
that,
when
she
has
spare
time
she
she
has
helped
the
project
tremendously.
A
So
if
you
wanna
know
what
we're
planning
or
what
we
have
included
in
in
in
client
read
this
document,
it's
it's!
It's
all
marked
down
now,
so
you
can
read
everything
that
we're
what
we're
thinking
and
where
we
want
to
take
what
kind
of
detail,
what
kind
of
level
of
abstraction
we're
thinking
about
right
now,
the
abstraction
that
we
have
is
resources,
and
basically
it's
a
crud.
A
It's
a
it's
a
type
that
exposes
crud
operations
against
kubernetes
resources
or
you
can
create
lists,
update,
etc,
but
we're
thinking
further
out
in
control,
even
infrastructure,
a
little
bit
of
infrastructure.
A
Excuse
me:
we
haven't
vet
out
what
that
would
look
like,
but
basically
we
want
to
give
you
a
complete
set
of
tools.
So
when
you're
writing
your
test,
you're,
not
you
know,
if
you
don't
have
to
exec
out,
you
know,
instead
of
exec
exec
out
to
the
shell,
to
get
some
stuff
done.
We
want
to
give
you
something
that
is
nicely
wrapped
in
a
in
in
some
kind
of
go
type
to
to
take
care
of
the
the
mundane
stuff
that
that
you
have
to
do
to
write
to
write
tests.
B
Yeah,
because
so
the
way
I
frame
this
too,
is
at
the
intro,
where
you
talked
about
how,
if
you
try
and
vendor
and
utilize
all
that
that
great
upstream
code,
you
get
everything
okay.
So
if
you
then
go
on
the
other
side,
you
decide.
Oh,
I
won't
vendor
it
I'll.
Just
do
it
myself.
Okay,
now,
you've
got
a
client
or
a
vendor.
Client
go
and
all
those
types
which
not
to
disperse
them.
B
C
B
Anytime,
I
have
to
to
deal
with
like
api
machinery
on
too
many
levels,
and
so,
like
you
said
so
so
you
might
be
struggling
there
and
having
to
reinvent
the
wheel.
But
then,
if
you
go
a
little
bit
farther
and
you
think
I'm
going
to
be
smart
and
I'm
going
to
just
exec
out
to
cue
control
to
cube
cuddle.
However,
you
want
to
argue
about
how
it
says:
if
you
exec
out
to
that,
that's
great,
you
could
create
it,
but
then
like
when
you
get
the
types
now
like.
B
How
are
you
gonna
decode,
all
that
and
actually
do
a
test
around
it
unless
you're,
just
gonna
literally
be
testing
for,
like
is
the
number
two
somewhere
in
the
output
or
is
failed
somewhere
in
that
stream?
So
so
this
is
a
great
place
somewhere
in
between
those
right.
You
don't
have
all
the
bulk,
but
you
don't
have
exactly.
A
That's
exactly
right:
you
you
hit
the
nail
right
on
the
head.
It's
it's
try!
It
try
to
fill
the
gap
in
between
all
of
these
major
programmatic
packages
that
are
out
there
to
basically
accomplishing
the
same
thing,
but
we
want
to
kind
of
reduce
the
surface
area
of
things
you
have
to
deal
with
with
with
that
package
and
and
get
out
again
get
out
of
the
way
quickly.
So
you
can
write
tests
and
and
get
things
done
with
your
tests.
A
So
again,
the
the
project
is
really
two
projects
in
one.
So
we
have
what
we're
calling
the
client
and
we
have
everything
in
the
pkg
and
everything
in
the
pkg
is
what
we're
calling
the
the
test
harness
so
before
we,
let's
take
a
take,
a
look
at
the
design
dock
for
that.
Where
is
it
so?
You
can
see
before
we
don't
jump
in
and
code
and
again,
like,
I
said
the
motivation
and
why
we
did
it
it's
all
there.
So
I'm
not
going
to
be
labor
on
that.
A
But
the
major
type
that
you'll
see
in
a
minute
is
what
we
call
an
environment,
and
this
is
where
you
encapsulate,
and
you
represent
things
that
drives
the
tests
that
you
that
you
it
allows
you
to
pass
information
around
and
and
basically
what
we're
doing
is.
A
We
are
subdividing
the
the
test
execution
into
different
stages
and
in
each
stage
you
can
provide
hook
to
do
a
certain
thing,
whatever
that
thing
may
be,
and
then
ultimately,
one
of
the
stage
is
the
actual
execution
of
the
tests,
and
even
the
tests
themselves
can
be
subdivided
into
slices
of
stages,
and
you
can
hook
into
those
to
to
write
your
test
so
at
a
high
level.
That's
what
we're
doing
so.
Environment
is
one
of
the
places
where
you
express
and
manage
these
these
stages.
A
You
can
set
up
you.
You
have
something
called
setup
where
you
say:
okay,
right
before
any
test
is
executed.
I
want
to
do
something,
so
you
would
shove
it.
You
would
provide
us
with
a
function
and
that's
your
setup
and
then
you
have
before
test.
You
have
the
actual
test.
Then
you
have
after
test,
and
then
you
have
finish
finishes
the
opposite
of
setup.
After
all,
my
tests
are
executed.
I
want
to
do
something
and
that's
what
you
will
do
in
finish.
B
D
B
Review,
but
this
is
the
problem
with
the
current
framework
upstream-
is
that
it's
similarly
laid
out,
and
there
is
a
test
context,
object
which
is
follows
the
anti-god
object
pattern,
and,
and
that's
why
everything
gets
tied
in,
because
that
test
context
gets
handed
to
every
file
and
every
test,
and
then
it
because
it's
baked
into
kubernetes.
It
knows
about
like
aws
clusters
and
things
here.
Clusters,
or
you
know,
every
type,
so
we
we
do
have
to
as
the
the
project
evolves,
be
very
careful
what
you
do
add
into
that
right.
A
Actually,
that's
that's
a
great
that's
a
great
point.
I
mean
one
thing
that
we
have
going
for
this
is
that
you
know
the
it's
its
own
thing
from
the
get-go.
So
it's
you
know
it's
it's
a
it's
a
package
by
itself
and,
as
you
said,
we
want
to
make
sure
that
whatever
goes
in,
there
is
as
independent
as
possible
so
that
we're
not
pulling
things
all
over.
B
B
Comes
in
with
10
000
lines
of
code,
I
guess
that's
one
of
the
downsides
of
not
having
the
actual
vendor
directory
anymore.
I
know,
there's
probably
a
hundred
problems.
It
solves
that
we
don't
have
that,
but
it
was
nice
to
know
how
many
lines
of
code
you're
vendoring,
instead
of
just
how
many
modules.
C
A
So
you
know
one
of
the
things
about
this
project.
It's
it's.
D
A
It's
not
the
fastest
moving
project,
because
it's
it's
only
two
sets
of
hands
right
now,
mostly,
but
that
also
gives
us
time
to
think
about
a
lot
of
a
lot
of
issues
like
what
you
just
mentioned,
john,
to
make
sure
that
we're
not
roping
in
a
bunch
of
unnecessary
things
and
and
if
you
notice,
if
we
go
back
here
and
that's
another
thing,
I
wanted
to
kind
of
highlight.
B
B
Or
I'm
in
that
group,
because
I
want
to
see
what's
gendered,
it
does
not
sound
like
everyone
else
agrees,
though
it
was
big,
but
you
could
see
it
and
you
could
touch
it.
A
B
Yeah
somebody
explained
to
me
that
the
virtue
is
better
right.
I've
read
a
bunch
of
blog
posts,
but
I
still
like
having
the
vendor
directory,
but
it
is
what
it
is.
A
Yeah,
oh,
the
point
I
was
gonna
make
is
because
client
one
of
the
things
that
we
wanted
to
achieve
with
a
with
the
with
this
project
as
well.
Is
we
don't
want
you
to
if
you,
if
you
don't
have
a
need
for
to
bring
in
client,
you
don't
have
to
you,
could
just
write
code
like
you
that,
like
the
code
that
you
the
example
code,
you
did
has
nothing
to
do
with
kubernetes,
so
it
didn't
bring
anything
related
to
kubernetes
right.
B
Was
it
so
the
hello
example
I
copied
from
your
examples
and
it
doesn't
use
client,
but
I
wanted
to
make
one
I
was
making
it
for
someone
internal
to
vmware
as
an
example,
and
so
I
had
an
api
call,
and
so
I
created
a
separate
issue.
B
A
Yeah,
so
yeah
I'll
definitely
get
to
that,
because
I
want
to
understand
it
because
it
sounds
like
another
request
that
I
had
from
someone
else
to
who
was
asking
me
that
hey
I
mean
I
I
may
have
more
than
one
connection
or
more
than
I
mean
my
test
may
be
dealing
with
more
than
one
cluster
at
a
time.
I
don't
remember.
C
A
A
Like
I
said,
it's
it's
a
command
and
mouse
wheel
and
it
worked-
and
I
had
to
ask
around
for
that-
I
did
not
know
you
could
do
that.
Oh
yeah,
you
could
do
that
now
but
anyway,
so
you
know
we're
not
gonna
go
and
explore
the
actual
test,
what
we're
gonna
the
actual
project.
What
we're
going
to
do
is
look
at
examples.
A
So,
let's
start
with
the
simple
examples:
yeah.
B
A
Okay,
so
here's
a
test.
Typically,
you
probably
won't
do
your
tests
like
that,
but
I
wanted
to
show
at
the
most
simplest
level
what
you
know,
what
what
can
be
done.
I
mean
if
your
test
is
as
simple
as
this.
You
probably
should
just
use,
go
test
and
be
done
with
it
right,
but
but
I
wanted
to
show
hey.
A
This
is
what
we're
doing
is
nothing
special,
we're
not
forcing
you
to
think
differently
about
your
testing
and
go
and
that's
another
thing
that
if
you
read
the
design
document,
you'll
see
that
one
of
the
things
we
wanted
to
drive
with
this
is
that
we
didn't
want
to
take
away
from
what
go
already
has
as
far
as
tests.
We
just
wanted
to
augment
what's
already
there
so
meaning
that
you
have
access
to
test
main.
You
have
access
to
your
test
functions,
yeah.
A
B
Even
so,
on
that
example
plugin
when
I
used
it,
I
in
the
doctor
file,
I
compiled
it
all
and
just
made
the
test
binary
ahead
of
time
as
part
of
the
doctor
file,
so
that
it
runs
super
quick
because
it
doesn't
have
to
do
the
actual
like
go
test.
The
binaries
there
just
boom
runs
the
test.
I
had
a
nine
exactly.
A
B
To
e
test
does
that
as
well,
but
it
was
something
that
makes
it
very
easy.
A
Yeah,
so
to
your
point,
because
you
know
we're
not
adding
anything
extra,
you
can
leverage
your
tooling,
so
I
can
come
here
because
I've
been
in
golan
for
so
long
now.
I
can
do
this.
You
know
right
click
on
a
specific
test
and
run
it
and
it
it
will
work.
So
this
is
like
I
said
this
is
a
simple
test.
This
is
the
environment
type.
We
talked
about
earlier,
we're
starting
with
a
new
configuration.
So
so
it's
two
things.
We
have
a
config
and
we
have
a.
B
But
before
you
even
go
that
far,
let
me
ask
you
a
question
for
you
because
you
mentioned
like
in
go
land
saying,
like
hey,
run
this
test,
you
know
I'm
only
now,
even
like
still
churning
on
the
idea
of
how
useful
that
is
because
in
correct
me,
if
I'm
wrong
but
like
with
kubernetes
right,
there's
a
lot
of
the
repo,
so
big,
there's
some
linux
specific
parts.
B
I
don't
I
don't
know.
Maybe
someone
in
the
chat
knows
as
well.
If
you
can
just
like
run
a
single
test
with
a
single
like
command
line
invocation,
I
don't
know
I
feel
like
there
were
some
unit
tests
you
could
do
that
with,
but
not
all
of
them.
B
Yeah,
because
I'm
on
a
mac-
and
so
if
it's
all
go
compatible
and
it's
using
like
because
I
know
in
the
configs
will
show
right,
you
can
use
a
cube
config.
The
fact
that
it's
interoperable
on
all
the
operating
systems
as
well
is
really
nice.
A
You,
you
stir
some
feelings.
I
was
reading
the
the
comments
about
fender.
A
Got
distracted
with
the
comments
yeah,
so
so
at
a
high
level,
you
have
an
environment.
This
is
you
know.
This
is
what
we're
doing
here,
but
the
environment
you
could
shove
into
that
environment,
configuration
and
because
we're
not
doing
anything
crazy.
There's
you
know
the
configuration
is
just
empty.
We
don't
have
anything
in
it,
so
we
can
start
there
and
then
one
of
the
things
we
could
do
to
express
what
we
want
to
test
is
to
create
what
we
call
a
feature.
A
The
feature
is
nothing
more
than
some
kind
of
structure
and
memory
that
keeps
track
of
the
test.
You
can
give
the
feature
a
name,
you
can
add
labels
to
it
and
you
can
already
kind
of
sense
what
we're
doing
that
you
can
add
label
to
the
feature,
and
then
inside
that
feature
you
declare
assessments
with.
What
is
it
that
you
want
to
actually
test?
B
Clarify
that
for
me,
so
the
the
feature
like
you
said
it's
just
in
memory
just
really
description
more
than
it
there's
nothing.
A
Yeah,
that's
that's
all
it
is
it's
just
a
way
of
describing
what
it
is
you're
testing
and
we
took
it
a
step
further
and
we
actually
let
you
express
that
test
here
now.
The
reason
why
we've
done
that
is
because
the
test
can
also
be
augmented
by
receiving
context.
Because,
right,
you
can't
do
you
can't
inject
context
in
in
in
your
test
and
your
test
function
directly.
We're.
B
Not
there
yet
we
go
yeah
when
I
was
looking
at
it.
I
wondered
you
know
it
seems
sort
of
strange
to
put
the
feature
inside
and
have
you
know
that
last
line
that
says
test
the
feature
it
seemed
like
an
unnecessary
set,
but
now
I
get
it
because
the
framework
that
upstream
uses
ginkgo
a
lot
of
what
it
does
and
what
we
use
it
for
is
so
that
you
could
just
attach
you
know
a
tag
to
it
or
a.
D
C
B
A
Yeah
you
get
it
programmatically.
You
know
it's
right
there
inside.
So
as
we
talk
more
you'll,
see
that
again,
we're
not
doing
anything
outside
of
the
go
regular
go
test
framework
because
you're,
the
starting
point
of
your
test
is
really
here.
A
Is
the
test
hello,
we're
just
using
this
to
kind
of
embellish
the
test
and
then
come
down
here
and
say:
okay,
the
thing
that
I
embellished
please
test
it
for
me,
so
I
wanted
to
go
back.
B
A
No,
actually,
the
reason
why
it
may
make
sense
is
you
may
have
a
collection
of
tests
that
you
want
to
run
either
together
as
a
unit
or
one
of
the
pr
or
not.
One
of
the
issue
I
have
open
is
is
to
use
this
starting
point
as
a
way
of
doing
parallel.
Testing
like
I
want
to
test
this
feature.
I
want
to
test
five
features
together
and
go
well.
B
A
Absolutely
so
this
you
know,
this
simple
setup
shows
you
that
there's
nothing
really
magical
about
what
we're
doing
it's
it's
it's
part
of
it.
You
know
it's
just
regular
code
and
it
gets
tested
here
now.
Here's
a
another
example:
tesla
we've
set
up.
A
That's
what
I
was
talking
about
earlier,
where
even
in
the
test
you
can
you
can
slice
your
test
into
stages
as
well.
So
that's
what
we're
kind
of
doing
here
here,
we're
we're!
You
know
a
feature
can
can
have
a
setup
stage
and
and
and
that
setup
gets
executed
before
every.
A
So
one
of
the
thing
I
didn't
mention
earlier,
you
can
have
multiple
assessment
in
one
feature,
but
that
setup
would
get
executed
once
and
then
and
then
you
you'll
you'll,
get
you
know
you
you
get
the
the
stage
of
the
setup
gets
executed
before
all
your
assessments
and
then
you
get
your
assessment.
B
A
Yeah
I
had,
I
have
I'll
look
for
it
in
a
minute,
but
I
do
have.
A
C
A
I
don't
have
it
on
this
branch,
but
I'll
look
for
it
in
a
minute,
but
before
we
go
any
further,
let's
look
at
what
so
this
shows
you,
okay,
there's
nothing
to
it.
You
know.
If
you
want
to
start
at
that
level,
you
can
and
still
use
the
the
framework,
but
this
example
shows
you
the
full
breadth
of
where
you
can
start
by
giving
by
having
a
test
mate
right.
A
So
what
is
a
test
main
that
in
in
in
go
test
test
main
is,
is
the
actual?
If
you
have
a
test
mat,
if
you
have
a
function
called
test
main
that
becomes
the
entry
point
for
all
your
tests
in
that
package
kind
of
analogous
to
like
a
suite
right,
a
test
suite,
that's
where
you
would
define
that
so
we're
taking
advantage
of
that
in
this
project.
A
This
doesn't
give
you
a
good.
I
don't
like
this
example.
Let
me
because
it's
not
showing
you
everything
you
can
do.
B
So
I
am
seeing
one
thing
in
there
right
so
in
that
test
main
is
giving
you
another
opportunity
to
define
the
environment
right
so
you're,
calling
it
dot
new.
So
that
would
be
right,
because
I
I
made
that
ticket
without
saying,
like
man
to
get
an
in-cluster
config.
I
have
to
do
these
like
three
or
four
lines
of
boilerplate
every
time,
but
I.
A
I
don't
remember.
I
do
not
remember
the.
A
There
you
go
so
I
could
do
a
setup,
and
basically,
I
can
define
whatever
I
put
in
here
would
be
the
very
first
thing
that
gets
executed
before.
B
A
Test
gets
executed
and
I
believe
I
can
add
more
than
one
set
up.
I
I
remember.
B
A
C
B
Yeah
and
this
this
is
probably
the
same
reason
why,
like
things
like
ginkgo
and
those
other
test
frameworks,
are
set
up
the
way
they
are
right.
There's
right,
there's
a
few
globals
and
there's
a
few
extra
weird
steps
like
if
you're
not
used
to
the
framework,
you
don't
understand,
but
it
it's
all
probably
to
get
around
that
that
one
problem
you
want
to
place.
A
There's
absolutely
no
way
to
do
it
so,
but
what
we've
done
in
this
project
is
we
leverage
contacts
as
much
as
much
as
possible?
So
if
I
go
back
to
test
main
right,
one
of
the
one,
the
example
this
is
context
propagation.
A
So
here
I
am
creating
a
context
or
creating
an
environment
with
a
context
and
immediately
injecting
a
value
in
that
context
and
I'm
using
a
number
as
the
key.
But
this
is
you
know
bad
habit.
You
probably
should
use
like
a
string
or
something
anyway.
A
A
Without
creating
extra
global
variable
exactly
you
have
a
rich
type
to
pat
to
basically
it's
go
context,
so
whatever
you
can
do
with
go
context
you
can
do
with
here,
but
the
other
thing
too,
the
configuration
that
that
was
created
you
also
get
access
to
it.
Here.
Configuration
has
additional
things
that
right
now,
we
think
are
common
things
that
you
should
get
access
to,
but
that
might
change
in
the
future.
But
right
now
configuration
gives
you
access
to
things
like
the
client
that
you
may
have
created
and
some
other
stuff.
A
Once
we
look
at
some
additional
example,
but
context
propagation
is
a
big
thing
in
in
the
in
the
framework
because
it
allows
you
to
get
to
things
so
that
you're
not
polluting
global
all
over
the
place.
So
you
can
get
access
to
your
values.
B
So
this
makes
me
wonder
too,
and
I
don't
know
if
this
has
ever
been
discussed,
because
this,
if
this
is
a
common
problem,
we
say
there's
no
way
to
inject
anything
into
tests.
But
it's
staring
us
right
there.
In
the
signature
there
is
the
testing.t
type
and-
and
I
wonder
why
they
chose
not
to
put
context
into
there
and
I'm
assuming
it's
probably
because
they
just
wanted
to
prevent
people
from
shooting
their
own
foot
and
using.
D
A
You
could
I
mean,
how
would
you
do
that,
because
it's
expecting
testing.t
well.
B
A
You
know
that's
your
new
life
instead
of
just
plain
tea,
and
let
me
inject
my
context,
because
now
we
also
have
test
main,
which
is
the
starting
point
it
as
a
progress.
You
know
natural
progression
of
things.
It
would
make
sense
to
allow
me
to
inject
things
into
my
test,
but
that
sounds
like
a
great
agreement.
A
Probably,
but
that's
that's
why
we,
you
know
a
good
chunk
of
the
of
the
of
the
testing
framework
has
to
do
with
context
propagation
so
that
we
we
have.
We
have
access
to
to
these
values.
So
what
the
context
propagation
allows
you
to
do
is
to
push
values
from
one
stage
to
the
next
and
make
sure
that
you
get
that
value
as
as
your
test
progresses.
A
Okay.
So
let's
look
at
an
yeah,
there's
not
more
to
this.
Let
me
see
what's
filter,
I
think,
okay
filter.
I
wanted
to
show
that
you
can.
One
of
the
things
you
can
do
is
define
tests
with
when
you
define
your
tests
or
your
assessments
or
your
features
etc,
and
the
naming
or
the
names
that
you're
providing
they're
there
to
allow
you
to
to
do
filtering
when
you're
executing
the
tests
and.
A
B
Yeah
the
option
of
having
labels,
because
otherwise
what
you
end
up
with
is
go
test
only
allows
you
to
filter
based
on
the
regex
of
the
name
right,
and
so
you
would
have
test
names
that
include
all
the
things
that
they
include
so
you'd
have,
like
conformance
windows
right.
You
know,
sig
storage
should
do
this.
It
like
it
just
gets
so
long
because
you're
trying
to
list
all
this
metadata
in
the
title.
So
it's
the
idea
of
separating
metadata
from
the
human
readable
description.
A
Right
right
and
that's
also
why
we
we
have,
we
specifically
call
out
labels
as
a
filter
on
as
well
all
right.
So
that's
that,
let's
look
at
there's
some
more
niceties.
I
want
to
make
sure
I
want
to
I
get
to,
especially
when
you
start
talking
about
the
client,
so
we
mentioned
clients.
So
let's
look
at.
A
A
Yeah,
so
this
one
is
doing
everything
this
one
is
setting
up
a
cluster,
creating
namespace,
I
think
et
cetera
et
cetera,
so
I
wanted
to
show
all
of
the
moving
pieces
in
this
example
right,
so
we
create
the
environment.
Here
we
do
a
setup
and
in
my
setup
I'm
defining
that
I
want
to.
A
I
want
to
create
a
a
random
name,
because
I
wanted
to
use
it.
I
want
to
use
the
name
for
something
one
of
the
things
that
we
created
is
we
have
support
types
or
support
packages
for
things
like
kind
because
kind
is
everywhere.
We
use
it
all
the
time.
So
why
not
give
you
a
good
set
of
abstraction
around
time
for
you
to
use?
So
that's
what
we're
doing
here.
A
So
we
have
a
type
that
allows
you
to
create
a
kind
cluster.
Today
it
is
exacting
out,
but
pretty
soon
I
want
to
make
sure
it's
not
even
exactly
how
it's
if
we
can
leverage
the
the
kind
api
directly
to
crew
to
do
exactly
what
we
want
to
do
with
it.
That's
the
that's
where
I'd
like
to
get
to,
but
today
it's
for
you
know
to
get
us
where
we
need
it
to
be.
It's
a
os
x
out
to
to
the
kind
to
a
kind,
local
binary.
B
Hey
I
mean
that
works
right
and
especially
if
you
don't
have
a
back
and
forth
conversation
right
like
for
kind,
you
just
you
needed
to
go
in
the
operation
to
succeed.
The
end
right
like
it's,
not
like
you're
you're,
checking
details
that
you
don't
already
know
right.
You
set
up
the
config
either
it
got
created
or
didn't.
D
B
My
question
to
you:
do
you
foresee
supporting
a
bunch
of
other
providers
or
was
the
idea
of
like
give
them
the
simplest
test
case
of
having
a
local
kind
cluster,
because
again,
I'm
connecting
it
back
to
that
idea
of?
Are
you
going
to
have
a
lot
of
bloat
if
all
of
a
sudden
you're
going
to
import
aws,
repos.
A
A
Is
a
sensible
provider
to
have,
because
again
it's
it's
everywhere
and
I'm
also
getting
my
clue
or
cues.
I
should
say
from
what
is
going
on
in
cubetest2,
because
you
know
cubetest2
does
something
similar
or
has
the
notion
of
what
they
call.
I
think
it's
called
a
provider,
something
like
that.
B
Doesn't
it
set
up
like
any
it
doesn't
support
like
10
different
providers
or
something
like
that.
I
thought
that's
what
all
the
I
thought,
all
the
test
grid
stuff,
whether
it
was
gce
or
a
eks.
A
C
A
These
are
sensible,
defaults
and
those
sensible
defaults.
What
they
do
is
they
give
you
you
know
you
can
see
how
if
I
was
to
go
and
create
my
own
provider,
what
would
that
look
like
type
of
thing,
but
for
the
project
itself?
I
don't
think
we're
going
to
get
in
the
you
know.
I
don't
think
we're
going
to
get
in
a
place
where
we're
carrying
around
code.
You
know
how
to
start
a
cluster
on
different
providers.
To
me
it
doesn't
make
sense
and
that's.
A
It's
not
the
problem
with
solving
it.
All
khan
is
here
because
a
kind
is
part
of
you
know
it's
a
cube,
cigs
project,
it's
one.
I
mean
it's.
The
only
thing
that
I
know
of
that
can
well.
There
are
others,
but
one
of
the
more
accessible
ways
of
setting
up
a
local
cluster.
So
that's.
Why
that's?
Why
that's
why
it's
there
so
yeah?
So
now
we're
doing
a
kind
setup
and
we'll
we
also
get
the
phone
call.
Sorry
we're
still
here.
C
C
A
No,
no
because
my
my
phone
is
right
next
to
me,
and
it's
paired
with
my
headset.
It
kind
of
threw
me
off
a
little
bit,
so
finish
is
basically
how
you
end.
You
know
how
you
control
what
happens
when
all
your
tests
gets
executed
and
they're
done.
So
we
come
here
and
say:
okay,
let's
destroy
the
kind
cluster
that
we
we
created
earlier.
So
that's
what
we're
doing
here
and
one
of
the
ways
we're
doing
this
just
to
highlight
this.
C
A
Next
stage
will
use,
if
I
don't
do
that,
I'm
gonna
basically
short
circuit,
the
I'm
gonna
short
circuit,
the
test
where.
B
A
You,
if
well,
if
you're,
changing
the
context
you
need
to
you
know
you
need
to
return
whatever
the
change
is
so
that
it
probably.
A
The
context
right,
the
context
gets
set
once,
but
you
can
basically
do
the
context
augmentation
and
it's
created.
You
know
it
does
this
with
a
context
value
and
it
stores
it
so
you're,
not
returning.
B
B
A
Yeah,
yes,
because
otherwise
it
doesn't
work
we.
So
it's
two
ways
I
could
have
done
this.
I
could
have
made
it
a
completely
global
context
and
everybody
can
basically.
A
Right
so
the
so
I
took
a
long
time
before
I
came
to
this
particular
design
decision
right
how
to
pass
around
the
context,
because
that's
another,
you
know
it's
another
hill-
that
a
lot
of
people
are
willing
to
fight
is
how
to
use
context
to
go
so.
The
compromise
I
came
up
with
is
okay
you're,
going
to
get
one
context
at
the
start
of
your
test.
A
A
B
The
cluster,
well
that
changes
the
context.
The
next
thing
knows
about,
and
each
test
needs
to
go
into
it.
Realizing
I'm
getting
a
context.
I
don't
know
what
it
is.
I
can't
assume
that
it
just
exists
and
it's
in
a
good
state
right
kind
of
have
to
interpret
it,
but
but
I
do
see
this-
you
know
thinking
about
wiring
up
some
of
the
basic
boilerplate
for
these
kind
of
tests.
You
had
mentioned
like
creating
a
namespace
in
that
test
main
again.
B
C
B
Text
with
namespace
and
you
have
to
specify
that
you
want
a
namespace
and
then
you
it
just
creates
overhead
for
the
person
making
the
test.
They
remember
to
do
that.
So
could
you
just
put
it
one
time
in
the
name,
every
test
gets
a
namespace
we're
going
to
delete
the
namespace
afterwards.
The
end.
A
Yeah
yeah
we're
going
to
look
at
that,
so
this
yeah
this
example
I
wanted
to
show.
Let's
see
so
we
see
how
you
you
are
responsible
for
setting
up
the
whole
environment
function
here.
Oh
man,
time
is
okay,
we're
at
hour
and
a
half
so
probably
gonna
kind
of
wind
it
down
soon-
and
this
is
you
know
the
the
finish
now.
Let's
look
at
the
other
example
that
so,
if
you
look
at
the
way
I
so
this
is
custom
environment
function,
I
wanted
to
show
what
a
custom
environment
function.
Look
like.
A
A
A
So
this
is
the
cluster
name
I
defined
earlier
in
the
in.
If
we
come,
if
we
look
at
the
old
yeah
here
in
the
comments
I
see
yeah,
I
see
where
he
goes
so
we
have
the
name
we
have
cluster
etc.
But
now
because
I
have
let's
look
at
this
real
quick,
I
have
this
function,
which
is
called
create
kind
cluster.
It's
doing
exactly
the
same
thing.
Actually,
it's
returning
the
same
environment
function.
We
I
was
doing
myself,
but
I'm
basically
encapsulating
the
entire
step
in
one
function.
Call
to
do
everything
for
me.
A
So
that's
what
that
does
now.
You
had
mentioned
namespace.
B
B
A
To
be
a
beach
ball
back
in
the
macintosh
days,
the
old
apple,
it
used
to
be
a
beach
ball
that
spin
around
and.
A
Yeah,
that's
that's
why
I
still
call
it
so
yeah
so
before
you
know
so
you
could
do
before
each
test
or
you
can
do
before
each
without
the
other
one
before
each
feature,
which
does
exactly
what
you
think
it's
before
each
feature
is
actually
executed.
It'll
do
a
thing
for
you,
so
I
could
change.
I
could
do
this.
B
B
A
Yeah,
I
think
I
think
it's
a
great.
It
would
be
a
great
issue
to
open
and
say.
Hey
look
show
me
how
to
do
this.
I
I
will.
B
D
A
That
is
the
spirit
man,
so
yeah.
A
You
know
what
let
me.
So
let
me
finish
with
this
example
and
then,
if
we
have
time
I'll
look
into
the
other
branch
I
had
mentioned,
that
shows
you
all
the
different
all
the
different
steps
that
you
can
actually
hit
so
yeah.
So
that's
what
the
the
predefined
environment
function
do,
because
now
I
don't
have
to
have
a
bunch
of
code
that
is
responsible
for
creating
the
cluster
and
destroying
the
cluster
or
creating
the
name
space
or
destroying
the
namespace.
A
I
can
encapsulate
that
in
nicely
wrapped
function
and
then
just
plop
the
function
here
and
everything
looks
nice,
and
I
can
you
know
I
can
keep
going,
and
the
idea
is
to
show
that
if
you,
if
you're
using
this
as
the
way
to
create
your
test,
you
can
have
you
know
you
can
have
a
collection
of
these
that
do
predefined
things,
for
you,
pretty
fine
steps,
and
you
encapsulate
those
steps
in
one
function-
call
like
we're
doing
here
so
that
you're
not
having
this
gigantic
set
of
code
in
in
in
your
tests.
A
A
A
A
A
The
client
was
created
in
my
in
my
function
in
my
predefined
function
that
I
showed
earlier.
Where
is
it.
C
A
A
A
To
do
some,
I
had
to
do
some
some
refactoring
because
of
some
bad
assumptions
that
were
done
when
we
retrieving
the
client
from
from
the
retrieving
client
from
from
the
configuration
and
the
reason
why
I
had
to
do
that
is
because
of
flags.
A
Since
I
am
on
the
since
I
am
on
the
branch
that
I
did.
The
flag
changes
on
I'll
talk
about
flags,
so
same
type
of
things,
test
main
now,
I'm
creating
the
configuration
using
new
from
flags
and,
as
the
name
implies
it'll
parse
your
flags
and
hand
you
over
a
set
of
flags.
It'll,
look
for
specific
flags.
I
should
say
that
it
knows
about
in
america
sure.
D
C
A
And
then
what
you
could
do
is
you
can
run
your
tests
with
with
the
flags,
so
you
can
say
assessment
or
you
know,
whatever,
whatever
flags,
you
think
you're
right
you're,
using
in
your
in
your
tests
test
right
now.
We
support
these
two,
this
these
flags
there's
a
pr
out
to
to
do
more
flags
specifically
excluding
to
say
I
don't
want
I,
so
these
will
do
inclusive,
filtering,
saying,
okay,
I
only
want
to
execute
any
assessment
with
this
name
and
the
the
pr
that's
out
is
saying
exclude
tests
yeah.
B
A
question
for
you
about
how
this
is
implemented,
because
one
of
the
problems
with
like
ginkgo
is
it's
not
not
really
a
fundamental
problem
with
gingko
again.
A
B
Not
discouraging
them
at
all
right
like
they
leverage
a
lot
of
or
facilitate
a
lot
of
what
upstream
does,
but
I
wanted
to
do
things
in
the
past,
where
I
say
like
hey,
I
want
to
do
like
a
dry
run
and
ginkgo
can
do
that.
You
can
say
dry
run
these
tests,
so
it
doesn't
actually
run
them,
but
what
it
only
has
access
to
is
the
name,
because
the
whole
point
of
dry
run
is
it's
skipping
over
all
the
business
logic.
C
B
You
do
things
like
checking
the
assessments
and
those
labels.
How
is
that
implemented?
Because
it
seems
like
it's
got
to
go
through
the
go
test.
A
A
It's
probably
a
good
thing
to
create
a
new
issue
to
say:
hey,
we
should
consider
dry
run
as
a
all.
A
Issue,
because
I
I
can
I
mean
I
can
see
how
this
would
be
done
to
where
you
can
still.
D
B
I
can
tell
you
how
dry
running
is
super
useful,
so,
like
upstream,
all
the
time
people
ask
us
like
well,
what
tests
are
there
that
that
just
comes
up
all
the
time
with
sauna
buoy
again
we
don't
own
the
upstream
test,
but
they
come
to
us
because
that's
that's
how
they
run
them,
and
so
what
we'd
love
to
do
is
you
can
run
this
dry
run
because
those
number
of
tests
or
the
names
of
the
tests,
change
from
release
to
release
new
tests,
get
added
tests
get
deleted,
and
so
just
for,
like
checking
what
tests
exists
so
that
you
can
build
your
regex
about
what
test
do
you
want
to
run
like
what
features
should
enable.
C
B
B
This
is
making
a
little
web
page
for
different
versions
of
the
kubernetes
tests,
where
it'll
just
get
that
list
of
tests
so
that
you
can
just
have
a
bunch
of
like
check
boxes
like
this
feature
that
feature
data
and
it'll
build
the
regex
for
you,
because
people
are
so
can
when
you
have
4000
tests,
people
don't
know
where
to
start.
You
know
right.
A
B
B
Do
people
in
the
comments
or
people
watching
the
two
issues
I've
listed.
B
A
Just
put
it
in
the
the
show
notes,
just
drop
it
in
the
show
notes.
Oh
oh.
B
Have
a
silly
confession:
I
still
get
a
small
bit
of
accomplishment
when
I
format
a
markdown
url
really
nicely
right.
It
looks
ugly
when
you
just
paste
it
you
make
it
look
nice
something
about
that
is
just
very
pleasurable.
A
All
right,
I
think,
all
right.
So,
let's
see
something
here,
so
I
changed
the
I
changed
the
pension,
I'm
going
to
look
at
one
of
the
example.
The
life
cycle
example.
I
think
that's
the
one
that
shows
everything
so
the
whole
idea
behind
this
example
and
it's
not
merged.
Yet
this
is
something
I
was
working
on
and
got
distracted
by
some
other
issues
or
it
never
got
merged.
A
But
it's
to
show
you
that,
like
all
the
hooks
and
and
being
used
so
you
have
set
up-
and
I
don't
remember
what
this
test
does.
So
you
have
set
up.
You
have
before
each
feature
and
you
have
after
each
feature.
You
have
finish.
A
B
And
this
is
where
that
first
issue
I
filed
today
kind
of
comes
into
play
because
it
seems
to
me
intuitive
that,
like
before
each
feature
should
have
access
to
the
feature
that
it's
coming
before
right
like
that
way,
if
you
want
to
like,
let's
say,
output,
that
output
of
each
test
to
its
own
file
right
and
you
need
to
create
the
file
based
on
the
name
or
something
like
that
or
before
each
test
right.
It's
going
to
create
a
name
space
based
on
the
name
of
that
test.
A
C
A
C
B
Yeah,
I
mean
like
it
like
said:
there's
a
balance
there
right
to
add
some
extra
information
and
to
not
overburden
either
the
the
callers
of
it
or
increase
the
number
of
dependencies
too
much.
But
as
long
as
we're,
not
you
know
importing
new
new
modules
or
anything
like
that,
like
I
don't
think.
A
I
think
I
mean
I
definitely
want
to.
I
I'd
like
to
see
that
I'd
like
to
see
the
the
issue
that
you
open
them
to
kind
of
look
at
it
and
see
what
what
we're
missing
and
what
we
can
add
guest.
Number.
Oh
that's!
B
That
it's
nested
within
maybe
maybe.
B
A
A
A
That's
set
up
for
the
for
for
the
assessment.
We
look
because
we
we
get
set
up
first
for
each
for
the
for
the
feature
we
grab.
I
think
we're
opening
the
file
read,
it
grab
the
data,
and
so
this
is
a
super
silly
example,
but
I
wanted
to
show
all
of
the
things
that
you
can
do
and
how
the
context
propagation
helps.
You
in
you
know
getting
data.
Do
something
to
it
push
it
push
it
to
the
next
stage
so
that
you
can
get
that
data.
A
For
instance,
a
lot
of
stuff
could
have
done
and
could
have
been
done
in
one
step,
but
I
kind
of
stretch
it
out
over
multiple
stages.
Just
so,
we
can
show
that
the
the
step,
the
things
my
propagation
is,
is
helping
right
in
the
next
environment,
etc.
Yeah.
C
B
That
was
my
favorite
part
right,
like
using
one
framework
versus
another
framework,
potatoes
potatoes
to
some
extent
right,
as
long
as
it
has
the
features
that
you
need,
which
like
right
for
kubernetes,
especially
like
all
those
different
types
of
labels
and
metadata,
is
important,
but
for
ease
of
use
of
writing
your
own
tests.
I
I
can't
emphasize
like
it's
so
nice
to
let's
see
if
we
can
find
one
with
the
client
go
to
the
cades
test,
rather
than
any
test.
B
A
B
Decorator
pattern
that
you
use
that
you
can
just
say
like
do
this
each
time
do
this
each
time
and
then
it
just
keeps
chaining
it.
That
is
really
nice
and
clean.
I
do
appreciate
that,
but
when
you're
writing
the
individual
tests,
which
is
like
the
ultimate
goal
here,
the
fact
that,
like
so
on
line
34,
you
just
define
the
pod
list-
nothing,
oh
yeah
35
is
type
specific,
except
that
you
pass
that
pod
list
so
like.
B
C
A
B
You
you
just
said
so
so
that
resources,
it
only
matters
that
you're
giving
it
something
that
is,
is
assignable
or
something.
A
B
To
know
where
that
import
came
in
when
I
did
all
this,
it
only
had
you
know
like
three
imports,
and
then
you
know
like
a
dozen
go.some
entries
which
for
a
go
project,
that's
totally
fine.
A
Okay,
so,
oh
so
I
was
thinking
of
something
else.
Resources
is
this,
but
for
that
to
work,
how
did
it
work?
Let's
go
into
clients.
Oh
there,
it
is.
I
am
using
controller,
runtime
client.
A
Time
is
one
of
the
underpinning
of
cluster
api
and
in
what's
it
called
builder,
I'm
drawing
a
blank
is
getting
late.
I
can't
think
of
the
name
of
the.
B
This
just
makes
me
think,
like
I
I
maybe
need
to
as
the
sonibui
one
of
the
song
movie
maintainers
look
at
how
we
do
the
queries,
because
maybe
we're
doing
it
too
hard.
Maybe
we're
doing
it
the
hard
way,
because
we
use
the
dynamic
client
and
we
scroll
the
api
server
to
get
the
group
version
and
kind
of
each
thing.
And
then
you
have
to
create
like
a
creator
or
a
factory
or
something,
and
then
you
can
list
it
and
then
you
can
record
it
all
yeah.
That's.
A
A
I'm
still
trying
to
remember
the
cube
builder
and
it
escaped
me.
Cube
builder
uses
controller
runtime
as
it's
underpinning,
and
cluster
api
uses,
q
build
et
cetera,
et
cetera,
but
controller
run
time
is
where
that
little
trick
comes
from.
A
If
your
type,
if
you
type
implements,
I
think
it's
api
machinery,
runtime
dot
object,
which
all
objects
that
are
represented
in
this
in
the
api
server
should
implement,
including
the
unstructured
objects.
C
A
Long
as
that's
true
it'll
be
a
it'll,
the
the
call
that
you
just
saw
will
be
able
to
handle
that
type.
B
A
That's
definitely
a
good
idea,
because
then
that'll
also
help
us
shake
out
anything
that
we
haven't
any
unforeseen
bugs
that
we
haven't
come
across
yeah
all
right.
I
think
that
we've
we've
covered
pretty
much
everything
that
you
can
do
with
the
I'm.
Just
gonna
go
back
to
john's
favorite
part,
which
is
this
this
by
the
time.
D
A
A
And
we
we
and
then
the
other
thing
too.
You
can
we're
doing
create
up
here.
We're
doing
get
up
here
on
the
same
resources,
type
we're
also
doing
delete
and
nothing
the
the
the
affordance
for
using
the
api
is
the
same.
It
doesn't
care
as
long
as
you
give
it
what
it
expects
it'll
work,
and
it
took
a
lot
of
work
to
get
it
to
be
that
simple
as
everything
that
you
try
to
get
simple,
but
I
wanted
something
that
is.
B
A
A
A
A
C
A
B
Done
it
keep
rolling
with
us,
and-
and
I
regret
you
know,
one
of
the
things
I
wanted
to
talk
about
when
talking
about
sanibeli
was
it
was
cube
hunter.
That
was
something
that
somebody
wanted
a
talk
on
previously,
but
I
guess
maybe
we'll
punt
that
and
when
in
the
future,
sonibui
does
a
talk,
then
I'll
I'll
focus
some
more
on
some
of
those
security.
Plug-Ins
we've
got
the
cis
benchmarks,
cube
hunter.
B
A
Absolutely
we'll
definitely
have
to
have
a
show
son
of
louis
pacific
and
I'm
pretty
sure,
we'll
we'll
find
a
time
either
right
before
the
the
end
of
the
year
or
maybe,
when
you
know
when
the
new
year
rolls
over
all
right.
Well,
that's
it!
For
me,
I've
been
talking
for
quite
a
while
john
big
big.
Thank
you
for
you
know
for
stopping
by
and
helping
me
out
it
made
a
world
of
difference
made
the
show
that
much
better.
A
Thank
you
for
everybody
who
stuck
for
two
hours,
I'm
I
don't
know
if
there's
many
of
you
left,
but
if
you
did
thank
you
and
that
is
a
wrap
and
see
you
at
the
next
tgik
everybody.
Thank
you
vlad.
Thank
you.