►
From YouTube: MeshSync Weekly Meeting (July 21st, 2020)
Description
First Istio synchronizer
A
Okay
good
well,
let's
take
a
look
at
now
that
we're
now
that
we're
recording,
let's
take
a
look
at
istio.go
and
so
how
this
works.
I
think
part
of
what
you
are
you're
describing
is
having
come
together
is.
A
B
A
model,
so
this
is
our
mesh
sink
representation
of
a
mesh
or
measuring
operator
representation
of
a
mesh
and
all
the
information
that
we
need
to
know
about
any
of
the
meshes.
So
it
should
be
mesh
agnostic.
But
if
there
is
some
information
specific
to
a
mesh,
then
we
we
use
some
opaque
data
as
well.
A
It,
okay,
yeah
and
and
right
now
or
thus
far
we're
saying,
hey
universally
every
mesh
should
have
a
version
number
yeah
and
as
that,
like
as
a
specific
example
of
how
that
is,
retrieved
and
the
code
that
we
use.
You
know
the
mechanism
that
we
use
to
determine
that
is
reflected
in
istio.go.
B
Yep-
and
so
so
I
would
go
to,
I
would
go
to
the
sync
dot
go
file.
First,
so
sync
dot
go,
defines
your
synchronizer
and
the
processor
methods,
the
the
interfaces
so
by
by
processor.
It's
basically
the
the
pipeline
fingerprinting.
I
could
change
this
to
a
fingerprint
or
whatever,
so
that
it's
more
obvious
and
then,
if
you
go
to
istio.go,
that's
where
you're
implementing
this
so
hto
is
your
struct.
And
then
you
have.
B
A
A
If,
if
it's
just
one
namespace
or
would
that
just
be
a
different
pro,
a
different
processor.
B
B
Right
so
it
just
says:
there's
context:
wait:
groups
and
there's
models,
dot
events,
so
there's
there's
there's
no
assumption
that
it
it's
using
kubernetes.
A
When
we're
talking
about
the
cube
config
earlier
and
how
how
that's
used,
as
part
of
I
think,
when
you
instantiate
a
new
client
and
and
start
a
new
connection,
the
way
that
we
have
mesh
sync
overall
designed
today,
is
it
capable
of
connecting
to
two
different
clusters
at
the
same
time,
not
right
now,
but
it
could
be
okay,
okay
and
then
so
we
so
we
go
down
trying
to
look
between.
A
So
this
this
start
discovery
is
the
this
that
this
is
new
right.
A
As
we,
when
you
step
back
and
think
about
how
that
that
there
will
be
a
you
know,
a
link
or
d
dot
go
and
how
it
will
like
be
across
each
of
them
that
like.
If
we
could,
I
mean,
if
they
were
all
the
same.
We
wouldn't,
we
wouldn't
have
you
know
different
ones,
but
they're
not
going
to
be,
and
so
some
of
the
mechanisms
are
going
to
be
different.
And
but
I
guess
what
I'm
trying
to
say
is
like
is
when
we
look
at
how
we've
done
istio.go.
A
Does
it
make
for
a
good
template
to
do
which
it
begs
which,
which
will
be
nice
like
if,
if
the
answer's
sort
of
yes
or
towards
the
yes
that
works
out?
Well,
because
because
literally
like
hey,
we
we
would
if
there
was
something
like
a
template
that
will
help
with
uniformity
and
consistency
in
the
other.
B
B
But
the
only
thing
I
can
say
is
when
that
process
function
is
called,
so
there
could
be
some
templates
there,
but
as
of
now,
things
are
pretty
abstracted.
The
synchronized
starts
the
synchronizer
which
passes
the
first
discovery
event
to
the
process.
Function.
Process
function
is
where
the
pipelining
happens
to
fingerprint
the
mesh.
So
I
mean
your
template
essentially
is
process
and
synchronize
and
how
you
implement
it
is.
B
A
And
that's
actually
a
good,
that's
kind
of
the
answer
that
I
was
looking
for,
which
is
which
is
like
there.
There's
quote
a
template
in
in
terms
of
like
hey
that
they
will
all
the
or
we
would
you
know.
Each
of
them
should
have
a
start
discovery,
the
contents
of
which
may
be
radically
different.
A
Ideally
they
would
ideally
we
would
be
shooting,
for
we
would
be
using
the
biggest
hammer
first
or
we
would
be
looking
for
that
that
universal
or
you
know
it's
mandatory-
that
it
needs
to
fulfill
the
attributes
inside
the
universal
model,
which
starts
with
version
number,
and
so
we
would
expect
most
of
the
time
that
start
discovery.
A
Nice
yeah
and
to
your
point,
like
yeah,
having
distinct
having
a
processor
as
a
distinct
thing
that
that
executes
and
at
some
point,
has
sort
of
an
inherently
the
concept
of
tears
or
whether
it
has
that
concept
or
not,
but
but
that
you're
able
to
you
might
have
that
logic
somewhere
else.
Where
you're
saying
you
know,
yeah.
B
And
I'll
try
to
rename
it
better
so
that
it's
not
just
a
generic
process
like
that,
doesn't
give
out
too
much
information,
so
I'll
change
the
interface
from
whatever
I'm
calling
it.
I
forgot
what
it's
called
processor
to
fingerprinter
and
yeah.
It
could
have
a
process
method
within
our
start
pipeline
or
something
like
that.
Nice.
A
Makes
sense
so
then
yeah,
I
guess.
If
we
take
a
look
at
period,
is
there
I'm
trying
I'm
trying
to
add
what
value
I
can
here
is
there?
Do
we
need
to
be
concerned
with
a
timeout
for,
and
maybe
that's
not
really
the
case
here
that
if
you're,
I
guess
you
know
you're
guaranteed
that
the
client
the
go
client
that
we're
using
in
this
case
istio
the
seo
go.
Client
has
an
operation
for
retrieving
the
version.
A
It
has
some
of
its
own
logic
built
in
already
where,
where,
if
it
can't
invoke
that,
if
it
doesn't,
you
know
retrieve
a
response.
A
So
speaking
of,
I
guess,
yeah
in
this
case
I
mean
well
it's
evident
and
somewhat
obvious
when
I
make
this
statement
that
we're
relying
on
the
go
client
for
it.
You
know
in
part
for
like
its
own,
it
has
some
amount
of
discovery.
If
you
will
built
in
where
we're
handing
it
the
cube,
config
and-
and
it
itself
is
trying
to
identify
the
version
of
you
know
an
issue.
That's
deployed.
B
Yep,
so
it
actually
is
is
is
kind
of
doing
so.
The
way
it
works
is
it
it.
It
puts
the
pilot
in
proxy
mode
and
then
invokes.
I
say:
slash
status,
some
some
api,
some
url
towards
that
proxy
local
hosts,
whatever
the
port
is,
and
then
it
shuts
it
down.
So
I
mean
it
stops
proxying.
So
that's
that's
the
mechanism
they
use
in
the
istio
curtail
code
nice
in
there.
So
I
mean
that's
that's
the
way
they
can
query
pilot.
They
don't
have
a
public
ip
or
a
cluster
ip
that
they
use.
A
Yeah
but
the
thing
yeah
right:
no,
this
is
a
beautiful
design.
I
mean
yeah
hey.
If
there
is
a
better
method,
we
figured
out
at
some
point.
We
can
move
to
that
and
but
to
move
briskly
and
to
rely
upon
it.
It's
the
important
thing
that,
like
it's,
not
just
the
fact
that
they've
got
you
know
some
decent
mechanism
coded
up
today.
A
It's
also
very
important
the
fact
that
there's
some
amount
of
commitment
that
they'll
be
sustaining
that
over
time
and
that
as
that
changes,
maybe
that
they
do
find
something
better,
that
it
kind
of
doesn't
matter.
I
mean
it
matters,
but
we
may
not.
There
may
be
no
code
change
for
us,
which
is
right
just
a
beautiful
thing.
A
This
is
great
by
the
way
shivam
thanks
for
jumping
on.
I
know
you
jumped
on
right
in
the
thick
of
this
discussion,
but
given
some
of
the
work
that
you've
been
doing
in
the
community,
I
figured
that
well.
A
Naticia
is
working
on
a
core
component
of
of
sort
of
the
second
generation
of
of
how
it
is
that
mescheri
is
going
to
stay
in
sync
with
kubernetes
and
stay
in
sync
with
the
service
meshes
that
are
deployed,
understand
particular
details
about
each
of
those
service
meshes,
and
so
this,
this
project,
mesh
sync
very
important
for
measuring
overall
and
we'll
have
a
number
it'll,
have
a
number
of.
A
Well,
there's
different
faucets
of
it
that
might
end
up
being
interesting
to
you
to
you.
You
might
end
up
taking
on
a
piece
of
it.
If
you
will.
A
A
A
A
Okay,
good
shivam
had
a
slow
connection,
so
he
ended
up
dropping
halfway
through
my
description,
he's
coming
back,
okay,
moving
along
event,
doc
under
models
event.go
so
which
we're
defining
event
types
and
talk
aloud.
If
you
would
about
the
different
types
of
events,
you
consider
will
come
through.
B
There
could
be
more
specialized
events
that
we
we
start
building
and
I
don't
know
I
mean.
A
Yeah,
I
know
it's
a
good.
It's
a.
I
mean
it's
a
great
capability
that
yeah
maybe
there's
discovery,
maybe
there's
a
an
update
or
a
change
like
a.
B
Yeah,
so
maybe
you
get
an
event
from
the
api
server
or
the
shared
information,
and
you
are
you
kind
of
massage
that
into
this
event
type
and
you
you
send
this
over
the
channel
and
say
yeah.
This
was
yeah.
This
was
the
update,
or
this
was
a
change
or
this
was
a
delete
event.
A
Okay,
shivam,
I
think,
is
able
to
see
what
we're
talking
about
but
can't
hear
us
at
the
moment
so
yeah
the
more
to
that
the
there
was
a
question
that
I
had
earlier
was
yeah.
I
don't
know,
I
don't
know
what
the
answer
here
is.
I
don't
know
if
maybe
maybe,
if
the
answer
is
yes
and
we're
able
to
do
this,
maybe
that's
actually
bad.
I
don't
know,
and
that
is
for
a
given.
A
Let's
say
that
you
know
we
discover
a
link
or
d
deployment
and
in
in
discovering
it
we
say:
okay,
well,
great,
that's
there's
either
some
combination
of
attributes
a
composite
or
a
com.
You
know
whatever
it
what
I
forget
what
we
were
using
before,
but
that
that
in
which
you
derive
literally
the
fingerprint
of
that
specific
deployment,
so
you're
able
to
say
yeah,
that's
linker
d
deployment.
You
know
with
this
identifier.
A
It's
got
a
unique
identifier
and
when
we
figure
out
that
there's
another
link
or
d
deployment
on
same
cluster
different
cluster,
whatever
that
we're
also
then
able
to
assign
this
unique
identifier-
and
my
point
is-
is
that
if
you
carry
that
through
every
object
that
you're
synchronizing
you
would
there
can
be
well
there's
a
there
can
be
a
lot
of
benefit
to
having
a
unique
id
for
each
and
every
object
to
be
able
to
say
well
yeah.
A
This
is
the
same
istio
deployment
overall,
but
that
is
a
new
instance
of
pilot
turns
out
that
it
was
rebooted
or
reincarnated
or
that
that
that
one's
been
upgraded
or
or.
B
Yeah
yeah,
no,
I
I
I
I
get
what
you're
saying
we
need
and
unique
identifier
for
the
events
as
well.
A
B
Yeah
so
yeah,
when,
when
I
start
the
the
control
process,
it's
gonna
generate
a
uid,
give
it
back
to
wherever
you
want
to
store
it.
Maybe
there's
a
in
memory
store,
there's,
redis
or
whatever,
and
then
yeah
I
mean
yeah
you're
right
and
those
things
are
going
to
come
organically.
B
So
so,
yes,
that's
a
good
point
I'll
keep
that
in
the
backlog,
but
yeah
you're.
Definitely
right
because
right
now,
I'm
just
focusing
on
one
single
mesh
and
there's
only
one
single
instance.
When
I
start
adding
more
instances,
they'll
start
becoming
clear
that,
oh,
how
do
I
differentiate
one
event
from
another,
because
another
thing
with
the
events
is
it's.
B
I
want
to
make
it
a
broadcast
event
so
that
different
components
can
can
parse
that
event,
but
but
yeah
it'll
that
part
of
it
is
going
to
be
pretty
organic
and
see
how
it
how
it
grows
out.
C
A
A
potential
negative
to
arriving
at
that
is
or
is
in
these.
Well,
I
don't
know
if
they're
edge
cases,
but
in
these
scenarios
where
well,
no,
you
actually
have-
or
I
think
it
comes
down
to
what
is
the
the
composite
set
of
attributes
that
makes
up
a
given
uuid
or
a
given.
A
Now
the
the
word
that
keeps
coming
to
mind
is
like
that
makes
up
a
given
fingerprint
of
that
actual
object
and
in
if
the
object
is
this,
like
individual
objects
that
that
may
be
somewhat
hardened
fast,
that
you're,
saying
okay,
so
you're
telling
me
there's
an
envoy
proxy,
that's
side
card
to
this
service.
Whatever
great,
I
can
tell
you
in
pretty
hard,
and
you
know
in
pretty
definitive
definite
terms
that
that
that
envoy
proxy
is
you
you
I
it
is
this
fingerprint
uuid
such
and
such
and
yep?
That's
the
same
container!
A
B
Yeah
that
that's
why
I
meant
like
a
a
redis
like
database,
some
in-memory
db
or
ram
dv,
where
I'm
gonna,
I'm
gonna,
stick
in
the
uid
and
then
all
the
information
relevant
to
that.
So
the
uid
could
have
a
set
of
psycario
ids,
a
list
of
side,
car
urds
as
one
of
its
fields.
B
So
so
all
the
information
will
be
in
redis
so
that
if
we
do,
if
we
do
crash
and
come
back
up,
there's
going
to
be
a
warm
start
where
it
loads
up
everything
and
it
starts
the
controller.
So
so
maybe
an
event
comes
from
a
sidecar
there's
a
lookup
mechanism
where
keys
are
related
where
it
says
that
oh,
this
is
what
I
have.
A
A
Here's
the
fingerprint
for
that
linker
d
deployment
and
the
deployment
means
like
oh
okay.
So
it's
all
of
the
proxies
it's
all
of
the
it's
all
the
control,
plane,
objects,
and-
and
that
would
be
something
that
that
logical
identifier
for
a
given
deployment
is
the
reason
that
I'm
thinking
about
that
I
mean
that's.
That's
a
nice
thing
to
be
able
to
say
like
hey
as
a
user.
When
you
go
over
and
you
want
to
look
at
you
know
my
I've
got
three
link
or
d
deployments.
A
B
But
do
you
think
spiffy
is
a
good
way?
Do
I
identify
things.
A
I
do
yeah
yeah
yeah
it,
because
it's
actually
that
judo
move
that
you
did
with
the
istio
go
client.
Where
you
look,
you
know
where
we're
finding
the
version.
It's
like
we're,
not
doing
anything
we're
just
right.
You
know
like
it's
the
same
thing
with
stiffy's
like
look
like
yeah.
A
Somebody
else
is
going
through
the
complexity
of
you
know,
defining
what
a
unique
idea
is
and
then
rotate
assigning
those
creating
those
rotating
those
and
all
that
stuff
right
and,
moreover,
if
we're
using
that
natively
later
on,
when
we
do
have
a
use
case,
for
you
know
terminating
access
to.
I
don't
know
whatever
that
some
use
case
that
will
be
will
it'll
be
the
same
language.
We
won't
have
to
translate
between
no
pointer.
A
And
so
the
thing
I
was
trying
to
get
to
is
to
say
where
we
might
run
into
an
issue
is,
I
think,
is
a
good
example
where
we
say:
okay,
well,
there's
three
histo
deployments
by
the
way.
One
of
them
is
this
multi-cluster
deployment
in
which
it
actually
the
composite
set
of
identifiers
that
we
use
to
to
identify
to
fingerprint
and
and
say
this
is
a
deployment
might
might
get
in
our
way,
because
because
the
deployment
model
is
so
flexible
that.
A
That
we
end
up
saying
that
that
hey
this
is
an
issue.
This
is
one
institute
deployment
when
it
turns
out
it's
or
we
end
up,
saying,
there's
three
history
deployments
when
it
turns
out
there's
just
one
and
that
that
might
have
more
less
to
do
with
the
fact
that
we
use
an
identifier,
a
you
know,
a
unique
identifier,
a
fingerprint
and
more
to
do
with
the
fact
that
the
question
of
what
what
set
of
composite.
A
A
Using
to
create
it
yeah
anyway,
yeah
okay,
some
of
the
a
lot
of
the
things
that
I'm
bringing
up
are
so
in
in
no
way
any
of
the
things
that
I'm
bringing
up
are
ever
pointing
out
like
hey,
where
you're,
not
where
what
we
have
right
now
is
crap.
B
A
Yeah,
and
so
when
I
bring
up
stuff
about,
I
don't
know
like
multi
kubernetes
cluster
and
things,
it's
a
perfect
response.
You
have
like
well.
Well,
I
don't
know
I
mean
we'll
get
to
that
when
we
get
like
good
and
I'm
not
bringing
it
up
to
like
make
it
more
con,
I'm
bringing
it
up
to
try
to
yeah.
B
No,
they
said
that
I
think
I
think
the
best
thing
to
do
there
and
since
since
these
are
thoughts
that
are
in
your
head-
and
you
know
what
those
requirements
are,
maybe
you
can
build
a
requirement
table
in
google
docs,
something
like
a
may
must
must
not
kind
of
matrix
and
once
that's
in
there,
then
I
can
start
thinking
of
how
we
we
start
making
it
agnostic.
It
doesn't
have
to
be
kubernetes.
It
doesn't
have
to
be
one
cluster
specific.
B
It's
just
it's
concerned
with
how
things
are
deployed
from
either
measuring
or
something
to
identify
an
existing
control
plane.
So
yeah
yeah,
I
mean
once
the
requirements
are
there.
I
think
it'll
be
a
lot
easier.
So
if
that's
something
you
want
to
take
on
and
just
capture
the
larger
requirements
like
you're
saying,
I
think
we
can
go
over
that
and
I
can
refine
the
design
and
maybe
there's
most
of
this
is
throw
away
and
I
could
start
all
over
again,
but
that's
not
yeah.
B
No,
I
know
what
you're
saying,
but
sometimes
it
is
the
case
right
you're
right
one
to
throw
away,
but
it
gives
you
an
idea.
So
that's
not
a
bad
thing.
That's
part
of
software
design.
C
So
hey,
what's
what's
yeah
yeah
right
on
what
is
what's
iota,
it's.
B
A
zero,
so
it's
it's
a
commonly
used
representation
of
zero
when
you
define
constants
or
when
you
define
enumerators
yeah.
If
you,
if
you
hover
over
it,
it's
going
to
it's
going
to
say
zero.
A
String,
nice,
okay,
I
don't
know
if
I've
got
any
other
yeah
the
process
or
the
yeah
and
to
your
point
yeah.
I
know
I
I
know
it's.
A
I
gotta
tell
you
how
I
mean
in
part
why
I
was
hoping
for
kaneshkar
or
a
couple
others
to
start,
because
it
pains
me
when
we're
having
this
conversation,
that
we
don't
have
some
things
written
down,
because
one
because
you're
doing
a
fantastic
job
of
choosing
some
terminology
that
makes
a
lot
of
sense,
like
processor,
is
just
as
good
as
fingerprinter
or
like
or
like.
Maybe
fingerprinter,
like
you
were
saying,
is
a
more
descriptive
thing
like
it's.
A
It's
a
it's
a
specific
term
that
is
gonna
once
someone
has
understood
the
concept
of
it
like
there's
no
other
way
to
talk
about
it
other
than
using
that
term,
because
it
there's
so
much
behind
the
term
that,
but
anyway,
my
point
is
like
hey.
If
some
of
this
stuff
was
written
down,
it
would
also
help
with.
A
The
well,
not
you
know
with
the
or
I'm
not
finishing
my
sentence
because
of
what
I'm
not
saying
hey
of
the
of
some
of
those
requirements
and
some
of
those
visions
or
the
goals
or
what
have
you
that
are
written
down.
That
doesn't
mean
that
they
need
to
dictate
what
those
things
are
called
per
se,
but
rather,
as
we
talk
through
it,
whatever
it
ends
up
getting
called.
Is
it's
so
helpful
to
when
it's
consistent
when
it
reinforces
the
oh
yeah?
That's
the
thing!
That's
that.
A
We
can
good
hey.
Can
you
I
appreciate
you
jumping
on
it's.
I
know
you
jumped
right
into
the
middle
of
it,
which
is
tough.
A
Yeah,
I
think
he
can.
He
said
he
can
oh
give
him
it's
very
good
of
you
to
jump
on,
hopefully
there's
I
know
most
of
this
is
completely
out
of
context,
but
we'll
spend
some
time
to
get
to
give
you
some
context.
This
is
quite
an
important
component
for
meshri
and
so
is
a
great
place
for
you
to
potentially
make
your
mark
on
the
project.
A
So
it's
just
getting
started
and
eventually
nitish
will
be
at
a
point
by
which
a
lot
of
the
structure
to
this
is
is
here
and
he'll.
Have
you
know
there'll
be
one
or
two
of
the
first
examples
of
how
we're
going
to
discover
and
synchronize
a
service
mesh.
A
So
fair
enough,
so
I
guess
we'll
so
I'll
take
my
action
item.
I
I
need
to
go
figure
out
how
to
drop
some
things
honestly.
Like
I
don't
know,
one
of
those
things
is
like
dropping.
There's
like
two
cube
contacts
that
I'm
supposed
to
give
like
one
of
them's.
Just
like
dropping
in
that
talk
and
writing
down
that
I
mean
like
it.
It's
a
in
a
good
way,
yeah
in
a
good
way.
You
know
it's
hard
to.
I
don't
I
don't
know
I
mean
the
I
don't.
Let
me
stop
the
recording.