►
From YouTube: Layer5 Community Meeting (July 17th, 2020)
Description
An early demo of @smi_spec conformance testing of @containous Maesh.
B
Oh
boy,
why
this
is
fun.
The
sitting
here
clicking
admit,
admit.
B
Well,
apologies
for
the
delay
I
was
having
was
having
a
wonderful
conversation
with
one
of
the
service
mesh
manufacturers
about
their
super
keen
interest
in
smps
the
service
mesh
performance
specification,
so
so
yeah
good,
okay,
well,
welcome
everybody!
What's
what
are
we?
What
are
we
in
the
dead
heat
of
summer,
almost
two
more
weeks
before
we
really
hit
hit
it
pretty
hard
in
texas
in
terms
of
humidity.
So
just
if
you're
suffering
know
that
you're
in
good
company,
I
guess
that's
the
point:
did
she
go
to
that
call?
B
Find
the
meeting
minutes
all
right,
good,
hey
we're
about
five
after
got
quite
a
few
of
us
on,
let's
get
rolling
at
some
point
too.
I've
talked
about
this
in
a
number
of
our
well,
I
don't
know,
what's
referred
to
them
other
than
community
meetings,
there's
a
number
of
sort
of
working
group
meetings.
B
I
think
there's
a
layer
5
meeting
every
day
except
thursday
and
2
on
monday,
which
is
great
and
in
most
of
those,
oh
people
are
forced
to
listen
to
me,
take
forever
to
get
words
out
of
my
mouth
and
that's
not
necessary.
B
That's
unnecessary
suffering,
and
I
guess
what
I'm
calling
for
what
I'm
saying
is:
we've
tried
to
reorganize
one
of
the
restructure,
the
format
of
one
of
the
meetings
to
be
a
bit
more
of
not
a
daily
stand-up
is
sort
of
a
weekly
update
and
and
a
set
of
demonstrations,
and
so
what
I'm?
What
I'm
saying
is:
hey,
I'm
looking
for
other
hosts
or
other
folks
that
want
to
be
a
lot
more
verbal
on
the
calls
kind
of
help
steward
the
call
forward
so
think
about
it.
B
Be
sure
if
you're
on
the
call
pop
your
name
into
the
attendees
list,
if
you
would
also
we've
got
some
new
community
members
this
week,
which
is
really
nice,
we've
got
jose
and
harsh
some
folks,
whose
name
I'm
gonna
not
do
well
with,
but
krishna
and
ronald
tim
neha
ruth,
and
I
think
ruth,
are
you
on
the
call
by
chance?
C
Hello
it's
evening
here
so
hello,
everyone,
I'm
ruth,
I
just
joined
in
today,
okay,
yesterday
yeah
yesterday
or
I
joined
the
slack
channel
today.
So
please
can
you
add
my
name
to
the
attendees
I'm
trying
to
edit
the
document,
but
I'm
having
some
issues
with
my
phone.
So
I'm
having
some
issues,
editing.
B
Oh
sure,
yeah
yeah,
absolutely
yeah.
Thank
you
very
nice
to
have
you
ruth
and
by
the
way,
thanks
for
the
thanks
for
contributing
already.
So
I'm
very
helpful.
C
I've
done
anything
I
had
some
issues
at
first,
I'm
going
to
retire
data,
I'm
kind
of
new
to
programming
and
open
source.
I
study
much
so
I'm
still
getting
my
way
around
everything.
So
sometimes
I
make
mistakes
and
I
try
to
resolve
them.
B
Mistakes,
yeah,
you
you
and
me
both.
I
I
have
to
say
that
it's
been
there's
and
I
don't
know
if
everyone
else,
just
as
a
side
note
is
ever
bumps
into
this.
But
the
notion
that
github
does
this.
Nice
has
a
well.
It
has
this
probot
that
will
let
you
that
will
automate
the
validation
of
whether
or
not
you've
signed
off
on
a
commit.
B
What
a
contributor's
license
agreement,
which
tends
to
be
a
bit
more
arduous
and
sort
of,
I
think
arduous,
for
both
those
that
are
hosting
the
open
source
project
and
those
that
are
contributing
but
gosh
if
it
isn't
a
hindrance
to
facilitating
contribution
when,
if
you,
when
get
the
github
ui
the
web-based
ui,
if
you're,
editing,
markdown
or
any
other
file
through
the
ui,
even
though
you're
authenticated
to
the
ui,
it
doesn't
facilitate
the
sign
off
on
your
commits,
which
means
that
you
know,
which
means
that
yeah
people
are
confounded
and
frustrated
and
confused.
B
And
so
anyway,
it's
an
open.
I'm
not
sure
how
many
you
know
in
this
regard,
like
just
on
open
source
sort
of
in
general.
There's
a
group
called
the
to
do
group,
which
I
consider
has
some
quite
good
perspective
and
kind
of
guidance
for
it's
really,
I
think,
oriented
toward
companies
that
want
to
learn
how
to
do
open
source,
maybe
have
an
open
source
program,
office
and
sort
of
how
do
they
do
that
and
where
all
the?
B
What
are
all
the
considerations
and
they
keep
track
of
a
list
of
feature
requests
for
github,
of
which
I
think
github
tends
to
pay
attention
to,
and
I
won't
be
able
to
find
it
now.
But
but
that
particular
challenge
that
we
were
just
talking
about
is
is
one
of
the
open
issues
so
yeah,
so
total
total
random
side
note.
But
it's
a
point
of
frustration
for
me.
B
So
I'll
put
a
link
to
the
to
to
do
group
in
our
meeting
minutes
in
case
people
are
interested
again,
a
random
note,
but
I
was
had
considered
well
right,
getting
a
short,
a
short
book
out
on
how
to
establish
an
open
source
program,
office
and
and
I'll
posting
it
up
on
the
new
group
site.
But
okay,
fair
enough
moving
on
shreddy
are.
Are
you
on?
Well,
I,
or
rather
I
should
say,
sweetie,
I'm
more.
D
All
right,
so
we
have
more
new
and
exciting
blog
posts
up.
The
first
would
be
by
kush
trivedi.
D
D
D
D
In
the
content
calendar,
our
link
is
provided
in
the
meeting
notes,
so
yeah
please
do
contribute
through
the
articles
is
a
great
way
of
promoting
life
5,
and
we
are
here
to
help
you.
B
As
a
matter
of
fact,
we-
and-
and
so
you
know,
toss
your
name
in
here
or
if
you
have
something
we
wish.
You
think
that
we
should
do.
B
This
is
a
good
place
to
kind
of
track
what
we
think
we're
doing,
speaking
of
their
meetups
and
podcasts
and
other
things
that
are
going
on
two
of
which
to
talk
about
so
actually
last
night,
where
there
was
a
meetup
held
in
which
the
guest
of
honor
was
hellman,
who
well
time,
you
ended
up
teaching
a
few
folks
in
austin
how
to
secure
their
mat
well,
how
to
secure
kubernetes
and
their
mesh
actually.
B
B
Yeah
nice,
so
heim's
presentation
is
a
timely
example
of
well
of
doing
something
together.
I
guess.
B
And
if
you're
not
you
will
get
just
can
each
car
with
us.
I
don't
know
that
he
is.
F
E
Okay,
so
I
don't
know
lee
if
you
want
me
to
go
now
about
k2d
kind,
meshri.
Yes,
all
right.
E
E
Good
so
I'll
try
to
really
be
brief,
so
it's
17
17
for
me.
So,
let's
see,
let's
see
if
I
can
do
that
in
15
minutes:
okay,
yeah.
C
E
The
point
here
is
that
tinker
and
me
at
the
very
beginning,
and
actually
quite
a
lot
of
people-
have
some
issues
running
meshery
into
inside
windows,
running
on
either
wsl
or
docker
desktop.
E
If
you
run
docker
desktop,
please
only
use
the
kubernetes
from
docker
desktop
or
any
other
kubernetes
outside
docker
micro,
cades
mini
cube,
name
it.
The
issue
is
that
with
micro
k
or
let's
say
we
docker
desktop
it's
not
running
right
now,
but
with
docker
desktop.
What
it
does
is
that
wsl.
E
Okay,
so
wsl
will
have
here.
So
this
is
a
permanent
one,
but
it
will
have
like
a
docker
desktop
distro
running
on
where
docker
demon
is
running
on
on
top
of
it.
Okay,
so
whenever
you
will
create
a
kind
or
a
k3d,
for
example
cluster,
actually
it
will
run
only
into
the
docker
desktop
distro
and
the
problem
will
be
will
come
when
you
will
need
to
have
access
to
the
net
to
the
docker
network
list
or
that
docker
network.
E
Sorry-
and
here
I'm
on
docker,
on
top
of
my
ubuntu
okay
on
wsl,
it's
version
two
here
you
can
see
it's
running
and
that's
the
one
I'm
using
right
now
and
here,
for
example,
I
can
see
that
I
I
did
a
pre-test
before,
but
I
have
like
the
kind
docker
network.
E
This
one
is
accessible
from
my
ubuntu
distro,
which
on
docker
desktop
actually
all
the
docker
networks
that
are
kind
of
created
on
top
of
docker
desktop
network
networking.
They
are
not
available.
I
hope
it's
clear.
I
know
it's
kind
of
difficult
for
me
to
explain,
but
it's
how
it
behaves
if
you
want.
So
whenever
you
want
to
use
kind
or
k3d
and
use
an
application
on
top
of
it,
because
it's
the
is
the
point
right,
then
it
will
be
blocked
like
you
will
not
be
able
to
access
it.
E
That's
that's
behind
the
scenes.
That's
nothing
that
we
can
do
right
now.
Docker
is
is
aware.
I
already
kinda
told
them
like
several
times,
but
we'll
see
how
how
it
will
go
forward.
Okay,.
B
E
B
There
was
a
contributor
not
too
long
ago
who
well
now
I
forget
the
exact
situation,
but
was
having
networking
challenges
between
you
know
the
the
very
you
know
the
various
different
layers
of
indirection
and
I
guess
yeah,
I
guess
looking
at
the
picture
they
were,
they
were
running
mini,
cube,
they're.
E
E
Okay,
like
the
one
I
was
in
here
whenever
I
do
something.
Let
me
just
create
quickly:
okay,
3d!
Actually,
e3d
v3
cluster
create
okay.
Let
me
just
explain
quickly
what
I'm
doing
here,
I'm
passing
some
clustering.
It
so
don't
forget
that
it's
for
multi
multi
control,
planes
here
and
then
I'm
adding
this
subject:
alternative
name
for
the
certificate.
Okay,
and
this
one
is
my
ip
that
I
just
did
before
so
whenever
I
would
do
that.
E
It's
actually
let
me
bring
back
here,
it's
actually
creating
the
docker
network,
but
anything
that
is
like
now
any
application
that
will
use
it
or
try
to
open
a
port
on
this
network.
The
network
will
be
shared
with
the
host,
which
is
the
wsl
distro
here,
and
this
wsl
distro
here.
E
E
E
Okay
cool,
so
if
I
install
pertainer
with
arcades
okay,
if
here
we
can
see
that
it's
using
like
the
node
ports-
and
this
is
the
port
okay-
so
the
node
port
is
simple-
is
the
is
the
docker
node
that
is
created,
so
it
will
have
a
docker
ip
right
now.
So
let's
do
that
for
trainer
will
be
like
creating
here,
okay,
it's
being
created,
but
I
I
don't
really
care
too
much.
E
My
I
don't
know
my
network
is
quite
slow
today,
but
here
the
node
ports,
okay,
will
be
actually
the
node
port
of
my
k3d,
okay
node.
So
if
I
do
get
nodes,
this
is
my
only
nodes
and
I
think
it's
I
d,
I
will
get
the
ip
yeah
okay,
so
this
will
be
the
ip
of
the
node
ports.
Okay,
that's
how
I
will
be
able
to
actually
access
pertainer
from
wsl
itself.
However,
this
ip.
So
if
I
ping
it
from
wsl.
E
I
ping
it.
I
can
ping
it
that's
no
problem,
but
now,
if
I
go
on
windows-
and
I
do
the
same-
it
doesn't
know
about
this
ip
right
because
it's
a
docker
container
on
top
of
wsl,
so
there's
no
route
to
it.
Apparently,
okay,
so
the
problem.
Sorry
18
minutes
already
come
on.
I
know
eight.
Sorry,
okay!
I
have
ten
ten
more
minutes
right
so
quickly,
so
all
that
to
explain
that
when
you're
running
docker
on
top
of
wsl
it
works
so
kind
k3d
and
for
the
k3d.
E
I
will
get
smashy
again,
it's
a
bit
slow,
so
bear
with
me
just
a
second,
so
I
have
already
all
the
machine.
All
the
ips
all
goods-
and
here
we
go
so
measuring
now-
is
running
on
ports
this
one.
So
I
have
two
things
here.
This
firefox
that
I
have
here
is
a
firefox
running
on
x,
window,
okay,
so
it's
a
firefox
on
top
of
the
wsl
itself,
so
I
can
reach
it,
of
course
via
localhost
knight81,
okay.
E
So
if
I
just
press
enter
here,
we
go
right,
but
the
same
goes
now
for
windows.
Okay,
like
I
said
thanks
to
this
docker,
so
mesherie
is
on
top
of
docker
on
top
of
wsl
on
top
of
windows.
Okay,
that's
a
lot
of
tops,
but
the
ports
all
together
is
like
forwarded
onto
the
windows
site.
Okay,
so
that's
the
first
step
now,
second
step.
If
I'm
on
windows,
okay-
and
I
do
what
you
did
so-
I
will
get
my
cube
config.
So
here
you
can
see
that
I'm
on
the
shared
wsl
door.
E
Sorry
for
anyone
interested
just
drop
me!
Maybe
a
message
later
or
tell
lee,
we
can
have
maybe
a
workshop
around
that.
I
think
that's
what
same
wanted
to
to
do
anyway
in
august,
so
it
will
be
kind
of
very
interesting
if
we
can
just
have
time
just
to
explain
every
step,
but
here
here
we
go
so
I'm
on
the
wsl
share.
I'm
on
my
ubuntu
distro
on
my
username
dot
cube-
and
here
is
my
config
file.
Okay,
so
if
I
will
open
it
now,
it
will
fail.
E
It
still
checks
my
context
right,
but
it
will
fail
why?
Because
if
I
cut
it,
you'll
see
here
what
I
stated
just
before
into
the
chat,
while
it's
on
zero,
zero,
zero,
zero,
okay
and
random
ports,
the
problem
is
like
now
measuring
is
running
on
top
of
docker.
E
Okay,
so
this
address
doesn't
mean
anything
for
the
measuring
inside
docker.
It
doesn't
know
who
is
the
let's
say
the
the
host
hosting
it
really
so
my
ip,
I
think
I
connected
it.
So
if
I
just
do
that
and
now
I
it
was
one
whatever
it
will
fail,
it
will
fail,
it
will
fail,
but
you
can
see
all
my
here.
It
goes.
E
Okay,
good
and
then
I
will
adjust
it
so
here
so
I
know,
and
the
word
like
the
the
copy
pass.
Sometimes
it's
so
here
we
go
all
right.
So
now,
thanks
to
this
famous
tls
sun,
this
subject:
alternative
name
that
I
I
I
set
my
server
being
on:
zero
zero
zero
or
this
address
this
certificate
here
is
still
valid
for
this
address
here,
okay,
so
that
was
the
point
I
was
saying
to
you
before
so
now.
E
It
should
work,
you
know
like
it's
the
good
idea,
all
right.
So,
let's
me
and
okay,
here
we
go
so
now.
It's
recognized
the
ipc
here
server.
Now
it's
recognized
the
ip
so
remember
measuring
here,
while
we
are
using
this
address,
okay,
which
is
a
web
address
from
my
windows
machine,
the
thing
is
like
the
application
itself
is
running
into
the
docker
container,
so
it
needed
to
know
where
to
actually
find
the
host.
And
now,
if
I
go
back
to
measuring,
if
I
refresh
the
page
now,
I
have
everything
here.
E
Okay
and
I
can
finally
ping
my
adapters
and
again,
the
adapters
were
actually
already
connectable
from
meshri
to
the
adapter
itself,
because
now
they
are
using
the
docker,
the
docker
networking
right,
so
they
are
seeing
between
them.
That's
not
my
post
here,
my
own
windows
that
is
pinging
this
one.
Okay,
the
the
ping
behind
the
scenes,
is
measuring
pinging
his
own
docker
containers
and
are
they
available?
Yes,
they
are
so
now.
If
I
go
to
linker
d,
yeah
linker,
it
will
be
good.
I
keep
it
like.
E
E
Yeah,
but
that's
okay,
whatever
okay,
but
the
the
point
is
like
so
now
back
to
your
initial
issue
and
that's
my
15
minutes.
Actually,
I
can
delete
my
cluster
okay,
so
it's
the
v3,
so
it's
cluster
leads,
so
it
will
delete
it
and
because
I
deleted
it,
it
doesn't
mean
that
measurey
stops
working
and
that's
the
important
step.
Now,
however,
my
cluster
is
no
more
pingable,
because
now
I
killed
it.
So
what
I
did
for
kind
so
back
to
think
I
for
your
points
right.
The
thing
is
like
I
created.
E
I
went
to
kubernetes
website
and
I
tried
to
see
what,
if
they
add,
tls
sun
option.
I
guess
they
have,
but
the
other
way
around,
which
is
really
just
for
and
reads
the
dock
here,
but
it's
really
really
for
local
okay,
so
I
had
to
change
the
ones
127.001
to
my
ip
address.
Okay,
so
now,
if
I
kind
create
cluster
with
my
kind
yaml,
so
the
image
is
pulled,
but
it
was
already
done
now.
It's
preparing
the
nodes
and
everything.
E
E
Add
again
the
config
file
here,
okay,
it's
already
up,
and
now
you
see
it's
thinkable,
because
again
it
has
the
correct
ip
address.
So
the
issue
was
that
the
the
ip
address
that
you
add
so
when
I
told
you
like,
can
you
do
these
here?
So
you
showed
everything-
and
here
you
see
the
server
for
you.
It
was
on
on
on
on
the
local,
ip
and
again
local
ip
for
kind.
It
means
that,
let's
say
the
docker
kind.
E
Node
here
was
the
one
trying
to
let's
say
measuring
where
is
measuring
measuring
is
like
here
measuring
measuring,
measuring
measuring.
Where
is
it
okay?
Here?
Sorry?
So
this
one
is
loading
this
file,
where
the
it
states
that
127
or
one
yeah
one
two
seven
like
locals
ip-
is
the
server.
So
instead
of
looking
on
this
node
here,
what
it
will
do
is
like
it
will
look
on
its
its
own.
Okay.
E
So
here
on
measure
itself,
however,
of
course
like
I
said,
this
is
not
the
ip
of
the
docker
here,
however,
the
ports
is
the
important
part
here,
because
it's
is
the
port
that
it's
used
so
by
doing
here,
server
https
on
this
port.
What
it
does
is
like
it
checks
on
wsl
machine
so
where,
where
sorry,
let
me
get
back
to
here-
okay,
so
mini
cube,
so
you
have
still
here
something
but
like
if
this
is
measuring
container,
it
stays
like.
Okay,
let
me
read
the
config
file.
E
The
config
file
states
that
it's
on
port
616
443
that
is
running
on
the
host
and
the
host
knows
now
so
here
it
will
go
like
kind
of
this
here
and
the
host
says
like
okay,
but
that's
a
docker
on
another
container
that
is
running
and
then
it
forwards
the
requests,
and
now
they
can
see
each
other.
But
when
it
was
127
ip,
then
it
could
not
find
it
because
it
will
stay
here.
F
Yeah
yeah,
I
can
follow
along
yeah.
B
It
really
is
nuno
the
you
know,
as
we
consider
that
webinar
or
that
podcast
or
whatever
we.
We
call
that
I
wonder
and
as
you
go
to
put
a
little
bit
of
effort
into
that,
I
wonder
if
maybe
tinkai,
between
what
you've
just
learned
and
what
nuno,
what
what
you
have
if
we
might
update
the
documentation,
the
measuring
documentation
too
yeah
sure
thing:
nice,
okay,
yeah!
B
Even
I,
when
I
slap
together
that
diagram
quickly
for
someone
else,
I
neglected
to
publish
it
like
just
that
that
little
snafu
a
lot
of
people
trip
on.
E
And
there's
more
in
into
like
windows,
because
the
ports
are
mapped
only
on
the
the
local
hosts
ip,
so
the
127
from
wsl.
So
whenever
you
need
to
access
from
another
machine,
even
then
you
need
to
start
tunneling
everything.
That's
where
inlets
or
net
sh
directly
comes
into
really
handy.
F
Yeah
cool,
I
probably
later
on,
I
will
write
a
article
or
blog
to
document
the
my
experience
to
troubleshooting
this
networking
issue
and
after
I
write
this
article
I
will.
Can
I
ask
you
for
a
review
like
just
have
a
look
at
whether
I
understand
it
correctly
and
yeah,
possibly
posted
on
a
mastery
website.
B
And
I
think
you
know
that
question
is
to
you.
Yes,.
E
B
E
B
Or
whatever
right
yeah,
it's
more
of
it's
about
me.
Bottlenecking
things
more
like
I
can't
yeah.
E
B
Yeah
all
right,
let
me
take
a
note
of
that
matter.
Of
fact
we
tried
to
get
a
couple
of
t-shirts
and
some
buttons
and
some
books
and
other
things
out
to
mr
safter
to
to
sign,
and
then
the
coronavirus
got
in
our
way
again.
We
we,
the
united
states
postal
service,
is
not
shipping
to
various
places,
and
so
anyway,
we've
simon
still
still
in
a
package.
It's
still
all
bundled
up
so
good.
Well,
we've
got
20
minutes
left.
We've
got
one
other
topic.
B
Another
demo
today,
naveen
and
kaneshkar
have
both
been
focused
on
the
service
mesh
interface
specification
and
creating
some
tooling
to
verify
whether
or
not
a
given
service
meshes
implementation
of
that
specification
of
smi
is
valid
or
not
works
or
doesn't
work
and
they've
been
designing,
an
architecture
in
which
to
you
know,
perform
tests
and
also
to
define
what
tests
should
be
performed,
and
so
with
that,
I
popped
a
link
into
our
chat
that
kind
of
describes
high
level
their
their
project
and
then
kaneshkar.
G
Yeah,
okay,
I
can
give,
I
can
demo
it
but
yeah.
It
will
be
very
interesting
because,
like
it's
all
just
like
shell
output
for
now
is
that
I
mean
I'll
yeah,
I
I
I
can
yeah
I'll,
I
think
I'll
go
about
like
demoing
it
and
then
maybe
giving
a
rough
idea
of
what
we
did
or
like
how
we
went
about
the
project
is
that
nice?
That
sounds
great.
That
sounds
great.
B
Well,
I
provide
this
context
for
people
really
briefly,
just
because
you
were
talking
about
the
shell
output
and
that
is
that
there's
a
community
effort
to
itemize
all
of
the
service
meshes
that
are
out
there
describe
them,
and
one
of
the
things
this
this
landscape
does
is
capture
sort
of
a
static
state
of
these
four
different
service
meshes
and
whether
or
not
they
have
they
claimed
to
have
implemented
against
smi's
specification.
B
And
so
the
so
part
of
the
output
that
we're
hoping
from
the
tool
is
to
be
able
to
v,
and
when
I
say
claim,
I
don't
mean
to
put
anyone
on
it
like
the
s,
my
spec
itself
is
quite
young.
There
have
been,
I
think,
each
of
these
service
meshes
have
achieved
the
yes
mark
at
at
one
point
in
time,
but
as
the
spec
changes
and
as
the
service
meshes
themselves
change.
Inevitably
things
get
slightly
out
of
whack
and
so
part
of
what
naveen
and
kaneshkar
are
trying
to
help.
B
Do
is
provide
easy,
tooling,
to
verify
whether
or
not
a
mesh
is
in
in
sync,
with
the
spec,
and
so
anyway.
I
bring
this
up.
Can
each
card
so
because,
because
part
of
that,
the
output
that
you're
going
to
show
today
will
hopefully
be
in
public
facing
reports,
but
probably
more
than
that
would
also
be
in
measuring.
G
Yeah,
so
okay
I'll
just
yeah
I'll
just
present
so.
G
So
my
screen:
is
it
visible
how
about
the
text.
B
It's
pretty
pretty
good
for
me,
I'm
not
sure
about
it
on
on
ruth's
mobile
phone
or
not
I'm
kidding.
G
B
G
Okay,
yeah
so
now
the
so
we
have
actually
like
been
able
to
build
a
test
framework
kind
of
set
up.
So
the
thing
is,
we
have
written
a
test.
We
have
written
the
tests
for
each
of
the
spec,
and
we've
also
had
like
have
some
kind
of
engine
which
executes
these
tests
on
a
cluster.
So
but
now
the
one
place
that
we
have
stuck
at-
or
I
mean
we
haven't
worked
on
yet
is
how
this
would
be
integrated
into
measuring,
or
I
mean
things
like
that.
G
So
for
now
it's
just
a
code.
I
mean
it's
just
a
code
ways
that
I
start
so
I
run
the
I
mean
I
run
the
code
which
test
so
yeah.
So
this
is
the
test
config
we're
using
so
here
like
yeah,
so
we
are
using
this
tool
called
cuttle,
so
cuddle
was
initially
was
designed
to
allow
like
testing.
I
mean
testing
of
crds
and
things
like
that.
G
So,
basically,
how
it
I
mean
in
simple
term,
in
simple
words,
how
it
works
is
you
have
like
you
specify,
set
a
yaml
file,
sir
and
cuddle
will
apply
it
and
then,
after
time
out
so
here
I
specified
the
timer
is
120
seconds,
so
it
will
run
a
set
of
test
cases
on
that
applied
yaml
file.
So
that's
the
like.
So
this
is
so
the
thing
was
we
had
to
modify
cuttle
to
achieve
our
use
case
so
yeah.
So
we
I'll
talk
about
that
later.
G
So,
yes
yeah,
so
the
tests
yeah,
so
the
tests
are
done.
So
at
the
end
of
a
test,
you
get
this
json
response,
which
corresponds
to
like
the
test
results.
So
we
can
see
traffic
split
it
past
these
two
tests
and
it
failed
over
here
and
actually
it
errored
out
on
the
other
test.
So
we
don't
see
that
here,
but
you
can
see
on
traffic
access
that
it
passed
all
the
tests
and
traffic
spec.
G
G
So
if
I
do
a
group,
ctl
get
all
sorry
sorry
for
this,
but
yeah
you
can
see
that
mesh
and
its
corresponding,
like
pods
and
whatever
it
requires
have
been
deployed.
So
we
are
over
here
we
have
a
test
conformance.
We
are
testing
the
conformance
of
mage
to
smi
spec,
because
I
think
that
is
the
one
that
is
the
closest
to
achieving
it
like
we
are
having
some
issues
with
traffic
split
it.
Traffic
split
works
well
on
linker
d,
but
it
doesn't
work
on
mesh.
G
We're
not
sure
why,
but
we'll
have
to
figure
it
out,
but
yeah.
So
that's
the
the
other
demo.
It's
yeah!
It's
literally
just
this
much
that's
of
interest
like
this
result.
Ideally
what
we
are
supposed
to
do
is
this
whole
test
suit
will
run
as
a
pod
in
the
cluster
and
we
would
end
up
like
maybe
through
grpc
or
something
we
start
the
test.
Then
after
that,
once
the
test
is
done,
this
result
is
sent
back
to
the
the
you
know.
G
So
I
think
that's
all
is
there
for
the
demo,
it's
I'll
yeah,
so
that's
it
for
the
demo
but
yeah
I'll
try
to
like.
I
think
ian
naveen
will
try
to
get
a
blog
post
or
something
in
which
we
describe
like
how
we
implemented
the
tools
so
that
it
will
yeah.
It
should
describe
everything.
B
G
Oh,
no,
no
yeah
yeah!
I
really.
I
realized
that
yeah.
So
the
thing
was
we
needed
a
sample
app
which
would
yeah,
which
would
help
us
through
this
I
mean
the
thing:
is
we
needed
sample
app?
That
would
help
us
like
perform
tests
on
it
like,
for
example,
the
sample
app
that
we
built
it
provides
the
metrics
of
the
request
that
it
received.
G
So
that
is
helpful
because
let's
say
we
want
to
test
traffic
access,
so
what
we
can
do
is
we
define
we
deploy
our
app
and
we
have
two
services
service,
a
and
b
so
now,
because
each
of
them
have
a
route
called
metrics
which
and
because
we
built
them
like
a
simple
application
that
just
collects
a
metrics.
If
it
receives
a
request
it
log
I
mean
it,
collects
the
details
about
the
request
and
returns
them
as
metrics.
So
what
happens
is
like
we
can
so
we
made
let's
say
service.
G
A
talks
makes
a
request
to
service
b.
Then
what
the
conformance
tool
does
is.
It
will
make
a
request
from
service
a
to
service
b
and
then
see
the
metrics
of
service
b
to
see
if
it
received
the
request
from
service
a
or,
if
the
request
failed.
So
based
on
this,
we
can
write
a
lot
of
test
cases
like
let's
say
that
none
of
the
crds
are
deployed
by
default.
G
According
to
the
spec
trap,
all
traffic
is
blocked,
so
in
that
case
we
generate
a
little
bit
of
traffic
and
see
if
any
of
them
succeed.
If
they
don't.
That
means
it
passed
the
first
test.
The
next
test
is
to
like,
let's
say,
allow
traffic
between
two
services.
Then
we
check
we
make
requests
from
service
a
to
service
b
and
see
the
metrics
if
it
succeeded
or
failed
if
it
succeeds.
That
means
that
test
succeeded.
G
So
that's
the
approach
we
took
to
this
and
yeah
and
yes,
so
the
thing
is
we
have
like
modified
turtle
to
decent.
I
mean
we've
taken
the
project
cut
like
called
cartel,
and
we
have
added
a
lot
of
features
which
would
help
us
do
conformance
testing
so
yeah.
B
Very
good
in
kaneshkar
you'd
begin
to
articulate
that
there
were
a
couple
of
areas
where
the
vanilla
cuddle
wasn't
going
to
cut
it.
G
Yeah
actually
lee,
if
I
haven't,
pushed
the
changes
to
this
repo,
but
if
you
it's
there
in
my
fork
of
I'll,
send
you
a
link
of
it.
I've
written
it
in
the
readme
actually
like
what
are
the
changes
we
did
I'll
just
send
you
I'll
drop
the
link
in
the
chat
right
away.
Just
a
second.
G
B
B
Yep
and
if
I
recall
you
know
initially,
oh
the
after
having
forked
cuddle,
the
thought
was
to
try
to
upstream
that
change,
and
then
I
think
kind
of
the
further
we
got
along
with
the
modifications
that
we
needed
to
make.
B
I
don't
know
that
upstreaming.
Those
is
something
that
that
project
will
want
to
do,
because
we
needed
to
build
in
a
bit
more
logic
into
the
pre-test
moment
and
sort
of
the
post
test
moment.
G
Yeah,
actually,
I
haven't
pushed
the
changes
lee
so
I'll
I'll
talk
about
the
changes
that
we
did
is
that
yeah
sure
yeah
yeah.
So
I
think
the
first,
the
major
I
mean
the
most
like
the
major
change
that
we
need
needed
and
did
was
that
cuttle
is,
as
I
said,
it's
a
declarative
testing
tool.
That
means
it
expects
you
to
write
tests
in
yaml.
G
Now
that
is
easy
for,
like
you
know,
like
quick
tests,
but
the
thing
was,
as
I
said,
we
needed
to
like
make
requests
and
see
if
the
responses
were,
I
mean
if
the
request
succeeded,
or
we
wanted
to
see
like
some
aspects
of
smi
like
it's
they're
a
little
more
complicated
like
for,
we
want
to
make
like
multiple
requests
and
see
if
these,
like.
What
is
the
ratio
in
which
they're
split
and
things
like
that,
so
in
that
case,
what
we
wanted
was
that
we
wanted
to
run
custom
functions
with
each
test.
G
So
let's
say
we
apply
a
particular
yaml
file
or
a
particular
config
in
the
cluster.
We
wanted
to
be
able
to
test
it
with
go
code
rather
than
just
yaml
files.
So
this
is
the
first
test
we
did
where
we
can
inject
like
our
test
handlers
or
something
like
that
which
would
which
would
be
run
after
each
test
and
that
function
would
like
perform
some
like
tests
and
then
return
true
or
false.
If
that
is
succeeded
or
failed,
then
the
other
one
was
like
yeah.
G
The
like
some
service
meshes
require
that
the
name
space
in
which
the
application
is
deployed
has
some
annotations.
If
it
is
not
annotated,
then
the
service
mesh
won't
inject
the
sidecar
proxy.
G
Now
the
thing
was
cartel
was
handling
the
name
space
creation
all
by
itself,
so
we
did
a
little
bit
of
tweaking
so
that
we
can
like,
during
the
test
declaration
like
the
smi
conformance
tool
through
that
you
can
specify
what
name
spaces
should
be
set
to
the
name
space
that
cuttle
will
create
yeah,
that's
because
cartel,
actually,
what
it
does
is.
It
creates
a
random
name.
Space
runs
all
your
tests
in
it
and
deletes
the
name
space.
G
So
we
wanted
that
feature
to
be
able
to
like
annotate
the
namespace
which
it
creates.
So
that's
another
change
that
we
did
and
other
than
that.
I
think
these
were
the
main
changes.
G
Yeah
also
that
yeah
it
takes
the
curtain
was
designed
to
be
a
cli
tool
so
that
so
because
it's-
and
so
what
it
expects
is
that
you
have
the
cube
config
file
in
your
system,
so
that
yeah,
that's
fine.
But
the
thing
is
these
tests
have
to
be
run
from
inside
the
cluster
as
a
port,
because
these
recall
the
the
conformance
tool
needs
to
make
requests
to
some
services.
G
So
we
need
to
be
able
so
and
we
cannot
expose
all
the
services
as
note
ports
or
load
balancers,
so
we
have
to
run
them
from
inside
the
cluster
so
that
that
will
work
only
if
it
was
a
pod.
So
what
yeah?
G
So
what
we
ended
up
doing
was
yeah,
instead
of
like
we
added
the
feature
to
be
able
to
pull
out
the
cube
config
from
from
some
environment
variables,
instead
of
just
the
cube,
config
yaml
so
like,
and
I
think,
if
you're
in
the
pod,
if
you're
in
a
pod,
you
have
two
environment
variables,
called
kubernetes
service,
port
and
kubernetes
service
host
or
something
so.
These
things
so
thing
is
now
using
these
things,
you
can
get
an
in-cluster
cube
config.
G
This
is
different
from
what
you
would
get
as
a
cli,
which
is
running
on
your
machine
with
your
cube
ctrl
configured
to
a
particular
cluster,
so
we
enable
that
feature
so
that
it
can
run
as
a
pod.
I
think
these
are
the
main
features
that
we
added
the
rest
of
it,
I'll,
articulate
it
in
the
readme.
I
guess
and
yeah
sure.
B
But
but
I
would
note
that
nick
jackson
has
this
fake
service
that
I
had
almost
considered
that
we
should
try
to
collaborate
with
him
on
because
it
has.
I
think
it
has
kind
of
a
similar
set
of
you
know,
similar
purpose.
B
He's
one
of
the
it's
one
of
the
tallest
people
in
tech.
Nick,
I
guess
briefly,
can
you
introduce
this
part
of
the
vision
for
why
this
was
created.
H
Yeah
so
fake
service
literally,
I
wanted
a
brute
force
tool
which
allowed
to
to
be
able
to
do
things
like
testing,
routing
load,
balancing
and
reliability,
error
handling
and
things
like
that,
without
actually
creating
real
code.
So
so
fake
services
is
actually
a
micro
service
application.
H
H
I
want
55
of
all
requests
to
result
in
an
error
code,
or
I
want
the
the
95
percentile
of
all
requests
to
take
x,
milliseconds
and
the
kind
of
the
reason
why
I
built
that
into
fake
service
and
not
using
something
like
envoy,
which
does
have
a
certain
amount
of
error
injection,
is
that
whilst
now
envoy's,
error
injection
will
allow
you
to
sort
of
simulate
failure
situations
I
kind
of
wanted
to
actually
run
what
was
a
fake
application,
but
you
know
something
that
I
could
tune,
that
it
looked
like
a
real
application.
H
So,
for
example,
you
have
a
fake
api
and
the
api
has
a
medium,
a
median
request,
time
of
30
milliseconds
and
a
95
percentile
of
like
two
seconds
when
you're
sort
of
tuning
your
service,
mesh
and
you're.
H
Actually,
looking
at
the
operation
of
your
service
mesh,
you
kind
of
on
to
play
around
with
the
behavior
of
being
able
to
tune
the
various
different
parameters,
you
really
need
to
have
a
a
system
which
which
run
which
it
behaves
like
a
real
system,
but
is
tunable
to
be
able
to
behave
consistently
and
and
that's
the
kind
of
the
key
thing.
You
know
that
you
can
test
a
real
system,
but
it's
very
difficult
to
get
the
failure
state
to
behave
consistently
so
with
fake
service.
H
I
basically
just
bundled
all
of
that
and
made
a
tunable
so
that
you
can
literally
just
say
this
particular
instance
has
a
50
failure
of
every
request.
This
one
is
100
and
then
that
way,
it'll
it'll
kind
of,
like
you
know
it
strictly
behaves
it
supports
grpc
and
http
as
well
and
there's
a
there's.
A
bunch
of
other
features
in
there,
such
as
fake
service,
can
actually
simulate
cpu
pressure
as
well.
So
you
could.
H
You
can
say
that
a
request
consumes
50
of
a
call
which
which
allows
you
to
to
sort
of
simulate
the
load
on
a
system.
It's
not
a
load
testing
tool
but
yeah.
I
I
apologize.
I
can
demo
this
to
you
all
next
next
time,
if
you're,
if
you're
all
interested
I've
got
to
bounce
to
another
meeting,
I've
got
I'm
giving
a
presentation
on
go
to
some
folks
out
in
brazil
and
they're.
H
They
don't
know
what
they're
getting
themselves
in
for
we're
asking
you
that
on
a
friday,
but
so
I
do
I
do
apologize,
but
I've
got
to
do
that
now,
but
I
would
be
more
than
happy
to
show
you
all
and
next
week
it's
a
super,
simple
tool,
but
you
know
check
out
the
get
repo
and
complain
at
me.
My
docs
are
probably
terrible.
I
do
I'm
out
of
that.
I'm
I'm
I'm
I'm
a
bad
person,
but
the
british
spelling
on
everything
too.
H
They
can
use,
and
anyway
I
do
have
to
run
I'm
running
late.
B
Have
a
great
weekend
all
right
thanks
everyone,
we'll
we'll
catch,
you
all
very
well
next
week.
I
guess
it's
the
same
time
so.