►
From YouTube: KCP Edge Community - Explainer Series - Edge Placement
Description
Mike Spreitzer, in the March 7 KCP community call, talking about a draft API for saying 'what' goes 'where' in KCP-Edge. You can see the code at … github.com/kcp-dev/edge-mc/blob/main/pkg/apis/edge/v1alpha1/edge-placement.go
A
So
so
in
the
in
the
Edge
MC
repo,
we
do
have
a
package
for
apis.
We
have
an
API
Group
called
Edge
and
in
the
V1
Alpha
One
you
will
find
Edge
placement.
A
So
the
idea
here
is
that
this
is.
You
know
we
started
with
the
TMC
placement
and
made
the
changes
that
we
think
are
appropriate
for
Edge,
I
will
say
just
sort
of
qualitatively
the
the
biggest
one
is
that
it
is
multicast
rather
than
any
cast.
So
like
the
TMC
placement,
it
has
what
I
call
a
wear
predicate
that
selects
amongst
possible
in
in
our
case
we
call
them.
A
Edge
clusters
or
I
may
speak
more
generally
of
destinations,
and
actually
this
is
in
particular
in
service,
we're
doing
a
proof
of
concept
that
he
has
deliberately
Limited
in
scope.
We're
not
exploring
all
of
our
ideas,
but
we
are
exploring
some
of
them,
and
this
multicast
is
definitely
one
of
the
ideas
we
are
exploring.
One
of
the
things
we're
not
exploring
is
the
possibility
of
multiple
Edge
clusters
in
one
Edge
location.
A
We
do
have
a
more
particular
usage
of
vocabulary
here
and
so,
while
TMC
I
think
has
a
very
general
potential
use
of
the
location
concept
or
data
structure
or
object
type,
we're
actually
poaching
on
the
sync
Target
and
location
from
TMC,
but
we're
giving
a
particular
interpretation
to
location
one,
that's
natural
for
Edge,
you
know
you
think
about
Edge
locations
and
in
general,
education
can
have
multiple
clusters,
but
in
this
case
in
this
PSE
we're
saying
it's
one
to
one
so
there's
a
one-to-one
association
between
sync
targets
and
location
in
this
POC
and
this
interface
with
us
at
this
level
of
development
anyway.
A
So
a
the
where
predicate,
which
so
you
know
as
usual,
one
Edge
placement
right.
It's
got
a
spec
and
a
status
and
in
the
spec
there's
a
where
predicate,
which
is
a
you
know
like
in
TMC.
It's
a
slice
of
label
selectors
over
location
objects,
I'm
not
entirely
clear
on
whether
and
what,
when
in
TMC,
I,
think
in
TMC
it's
it's
a
selector
on
sync
targets,
but
I
think
it
makes
well.
A
It
doesn't
much
matter
here
because
it's
one
to
one
but
I,
think
it
defined
it
to
be
a
label
selector
on
location
objects
and
then,
as
the
spec
also
has,
of
course,
as
it's
it
really
this
this.
The
placement
object
here
is
a
binding
between
what
and
aware
right.
So
the
wear
is
similar
to
the
TMC
placement,
but
it's
multicast
real
in
any
class
anycast
of
what
we
started
with
the
this.
A
So
that
is
really
the
what
and
the
where
in
an
edge
placement.
The
other
thing
I'll
say
about
Edge
is
a
difference.
Let's
see
somebody
put
their
hand
up
and
I'll
get
you.
Let
me
just
say
one
more
thing:
in
TMC
what
has
to
be
transported
is
relatively
bound
and
known
at
development
time,
because
in
TMC
only
the
computation
gets
moved
and
everything
else
stays
behind
at
the
source
of
server
in
edgemc.
A
So
I'll
stop
there
and
ask
for
questions
and
I
can't
quite
see
in
this
format
who
raised
their
hand.
Let's
see,
who
is
that
that'd
be
dated?
Okay,
David.
B
Sorry
that
was
muted
I
was
just
saying
that
yeah,
what
you
mentioned
about
non
you
know
being
able
to
define
the
what
pero
source
and
not
per
namespace
I
think
we
already
have
an
issue
for
TMC
as
well,
because
there
was
also
the
requirement
to
possibly
Point
directly
to
some
resources
and
not
you
know,
stick
to
the
namespace
scope
in
terms
of
of
defining
the
what
in
the
placement.
So
that
might
be
interesting.
B
You
know
at
least
to
have
something
you
know
converging
or
or
consistent
here
that
we
have
the
same
on
TMC,
but
we
didn't
implement
it.
So.
A
Please
do
review
what
I've
drafted
here
and
tell
me
if
you
think,
that's
appropriate
or
if
you
think
something
different
would
be
appropriate
to
converge
on.
B
We
might
you
know,
take
from
what
you
you
need
as
well.
I
mean
I,
don't
know
just
just
mentioning
that
the
the
same
need
exists
on
both
sides.
Obviously,.
A
Very
good,
thank
you.
We
have
another
hand
up
mengirdus.
C
Yes,
I
was
wondering:
is
this
still
a
path
to
go
and
was
there
any
considerations
to
do
something
more
like
Helm
stuff,
where
you
just
object,
encapsulates
a
different
object
or
list
of
objects,
and
just
a
little
bit
of
those
like
I'm,
just
interested?
What's
the
thinking
overall,
on
this.
A
Yes,
yes,
that's
a
very
good
question.
It's
a
question
that
we've
struggled
with
you
know
we
I
went
back
and
forth
throughout
last
year
on
this.
It
is
definitely
a
possible
way
to
go.
You
know
the
the
way
I
characterize
It
is
Well.
A
The
way
I
would
put
it
is
you
know
in
edgemc
you
need
some
kind
of
a
container
for
the
description
of
the
workload
and
the
question
is:
do
you
use
as
your
container
a
kcp
workspace
or
in
general,
a
I
describe
it
as
a
denatured,
API
server,
you
know,
that's
one
kind
of
path
to
go
and
the
other
is
to
define
a
container
object
type
and
you
can
find
other
projects
that
do
that.
For
example,
ACM
has
defined
a
container
object
type.
A
Another
way
you
can
go
is
in
some
sense
delegate.
So
git
Ops
is
all
about
saying,
oh
well,
the
container
is
git
rather
than
anything
in
kubernetes,
the
the.
A
So
that's
that's
another
way
you
can
go
and
in
fact
my
first
proposal
for
Edge
MC
last
year
was
exclusively
focused
on
git,
Ops
and
I
was
proposing
that
we
adopt
git
as
the
container
and
people
said.
Well,
that's
great
for
some
use
cases,
but
not
all
so
I
want
something
that
is
more
generic
and
works
with
the
whole
kubernetes
ecosystem.
A
So
that's
why
I
went
with
the
container
is
something
that
looks
like
a
regular
kubernetes,
API
server
and
then
the
consequence
of
that
is
that
it
has
to
be
denatured
because
it
has
to
be
only
a
container.
It
needs
to
not
process
the
objects
it
needs
to
just
hold
them,
because
the
actual
activity
on
the
objects
needs
to
be
happening
in
these
independent
self-surgent
self-sufficient
Edge
clusters,
not
in
the
central
place,
that's
holding
the
description.
C
A
So
there
is
an
outline
of
this
POC
that
is
merged
in
the
edge
MC
repo
that
you'll
find
that
there's
a
docs
folder
that
has
a
subfolder
for
this
POC.
A
We
do
not
currently
have
like
a
PR,
that's
discussing
the
overall
design
or
architecture,
I
believe
Andy.
We
do
have
do.
We
have
a
mailing
list.
D
Okay,
I
guess
is
where
all
our
docks
are
located,
that
describe
the
interfaces
and
the
and
the
demonstration
that
we're
planning,
cool.
A
Let
me
move
on
to
the
status,
so
the
status
right
now
is
very
preliminary
and
spare
it's
just
tracking
the
generation
of
the
spec
and
the
number
of
locations
that
matched
in
general.
The
problem
of
returning
reported
state
from
The
Edge
extends
well
beyond
this
object.
A
You
know
we
have
a
fundamental
problem
in
kubernetes
which
connects
to
the
previous
question.
Actually,
the
the
kubernetes
object
types
are
defined
on
the
assumption
that,
for
every
object,
it's
basically
going
to
have
one
running
or
used
copy,
and
you
have
to
set
you
know
for
every
desired
State
there's
one
reported
State
and
that
there's
a
status
section.
That's
these
data
type
is
designed
to
report
on
one
of
them,
but
in
this
multi-cluster
world,
where
you're
explicitly
about
this
is
a
prescription
for
many
of
them.
That
data
type
is
not
appropriate.
A
A
The
kind
of
the
in-spirit
of
answer
is
a
separate
objects,
so
this
POC
has
mailbox
workspaces
in
the
center
so
for
each
Edge
cluster
there's
a
corresponding
mailbox
workspace
in
the
center
that
has
all
the
objects,
and
so
the
individual
object
reported
State
can
appear
in
the
center
in
the
mailbox
workspace
objects,
but
back
in
the
original
description,
which
is
not
mailboxed,
there
has
to
be
some
kind
of
summary
then,
and
so
there's
this
issue
of
how
do
we
prescribe
the
summary?
A
A
It
already
in
the
repo
mic.
Yes,
this
interface
is
in
the
repo.
Of
course,
it
is
all
you
know
in
some
sense,
in
in
spirit,
you
know
a
draft
in
progress
right,
we're
working
on
a
proof
of
concept,
so
nothing
here
is
carved
in
stone.
It's
all
subject
to
commentary
and
revision,
but
since
it
is
not
in
a
PR,
perhaps
the
best
way
to
comment
is
to
the
mailing
list
or
to
Slack.