►
From YouTube: Kubernetes SIG Service Catalog 20170206
Description
The SIG meets to discuss overall implementation status, hooking the API server to TPRs in the Kubernetes core, and review gaps that need to be filled to get to MVP-1.
A
A
A
So
we
have
an
API
server
that
works
in
connection
with
SCD.
You
can
use
cube
CTL
to
persist,
resources
broker
instance,
I'm,
sorry,
broker
service
class
instance
and
binding
and
read
them
back
out.
We
discovered
a
bug
actually,
with
the
help
of
one
vallejo
who
works
on
the
open
shift,
user
experience,
team
and
Phil
wit
rock.
We
figured
out
that
cube.
Ctl
needs
to
use
a
different
API
client
than
it
was
I.
A
A
We
also
have
a
generated
going
client
now
and
we're
at
a
point
where
we
can
begin
developing
a
controller
that
uses
the
shared
and
former
architecture
that
look
about
on
the
last
call.
So
I
actually
have
a
work
in
progress,
pull
request
where
I'm
kind
of
putting
together
a
controller
skeleton
that
my
intent
is
to
just
put
the
skeleton
together,
and
then
we
can
pour
it
over
the
business
logic.
A
The
idea
was
that
that
goal
we
saw
was
a
little
aggressive
in
order
to
give
us
time
to
have
some
slip
in
the
event
that
you
know
we
encounter
some
unexpected
technical
hurdles
or
you
know
just
the
things
and
I
know
that
sounds
crazy,
but
they
sometimes
take
longer
than
you
think
it
will.
So
we
tried
to
just
be
conservative,
with
our
planning
for
that
purpose,
and
I
I
personally
feel
like
pretty
good
about
our
ability
to
hit
that
date.
A
So
everybody
give
yourselves
a
pat
on
the
back
and
thanks
again
for
all
the
hard
work.
That's
gone
into
this
so
far,
really
I
think
this
group
has
come
quite
a
long
way.
You
know,
since
we,
when
we
started,
we
had
so
many
different
books
with
different
context,
and
you
know
we
it's
not
as
well.
We
necessarily
agree
on
everything
at
this
moment,
but
I
think
that
we
certainly
had
developed
a
group
understanding
that
I
think
is
really
valuable
and
I'm
really
really
excited
to
see.
A
B
B
Backlit
so
I
wanted
to
mention
kind
of
in
line
with
Paul's
implementation
status
point
here
we
are
hooking
up
the
controller
to
the
API
server
and
currently,
as
paul
also
mentioned,
api
server
is
backed
with
SCD
as
the
datastore
I'm
currently
working
on
alternative
data
store,
which
is
using
third-party
resources
as
basically
a
key
value
store.
There
is
a
work
in
progress,
pull
request,
number
3
38.
B
So
I'll
continue
to
update
the
group
in
the
slack
channel
for
what's
going
on
with
third-party
resource
implementation
and
of
course
you
can
follow
along
with
338
as
well
and
of
course,
I
will
also
probably
be
reaching
out
to
some
of
you
for
questions
as
well.
So
that
is
it
for
me
and
I
think
Paul,
throw
it
back
to
you
know.
A
C
A
So
I
can
answer
that
question.
That's
actually
that's
actually
an
easy
one.
So
the
here
is
the
story
with
the
fuzzer.
Is
that
in
order
to
so,
let
me
see
what's
the
right
order
to
explain
us
in
so
when
you
round-trip
an
API
object,
the
defaults
are
applied
and
the
reason
that
we
had
to
add
the
buzzer
is
that
when
you
do
the
round
trip
test,
you
have
to
be
able
to
say:
hey
I
got
the
same
object
back
out
of
this
thing
and
what
will
happen
if
you
don't
add
the
fuzzer?
A
Is
you
make
a
new
reflectively,
create
a
new
API
object
and
you
convert
it
into
the
version
format
from
the
internal
format?
In
doing
this,
you
apply
the
defaults
and
so
you're
you're
the
object
that
you
get
back
when
you
run
trip
it
back
to
internal
API
version.
It
will
not
be
the
exact
same
object
that
you
put
in
because
it
will
have
it
at
fault
applied,
and
this
will
break
the
test.
So
there
is-
and
we
should
totally
feed
this
back
into
the
API
changes
document,
if
it's
not
already
in
there.
A
D
Cooper
Nettie's
takes
this
approach
of
using
API
machinery
to
apply
default,
instead
of
doing
it
someplace
else
where
it
could
be
done
more
simply
and
easily
like
in
the
controller
where
we
actually
do
have
that
very
same
logic
today.
So
we're
moving
that
stuff
in
up
into
the
the
API
machinery.
It
might
be
good
for
all
of
us
understand
why
well.
A
Here's
my
stab
stab
stab
stab
alright,
so
the
if,
if
you
were
to
implement
the
faults
in
controllers,
you
wind
up
with
one
potential
race
conditions
where
multiple
controllers
and
might
be
acting
on
an
object,
are
applying
their
own
defaults
and
they're,
either
racing
with
one
another,
persisting
them
or
you're,
leaving
it.
Also
to
the
controller
author
to
persist
them
and
the
controller
author
might
make
a
mistake.
A
If
we
can
talk
to
some
of
the
API
machinery.
Folks
and
distill
add
some
of
this
knowledge
and
rationale
into
something:
that's
easy
to
consume.
That
doesn't
depend
on
my
availability
to
explain
it
or
my
bandwidth
or
my
ability
to
explain
it.
So
this
actually
dumped
tales
really
well
into
the
next
thing
that
I
want
to
talk
about,
but
I
just
before
we
do
that,
like
does
what
I
said,
makes
sense,
and
do
people
agree
that
this
is
part
of
the
general
class
of
questions
that
why
do
I
do?
A
A
Yes,
you
are,
you
are
absolutely
correct,
Doug,
if
you,
and
for
those
that
don't
immediately
know
what
Doug
is
talking
about.
The
every
Cooper
Nettie's
object
has
an
object
version
field
and
it's
incremented
every
time
that
object
is
updated
in
SCD.
So
what
Doug
is
referring
to
is
that
part
of
the
machinery
that
is
involved
that
the
persistence
layer
is
checking
that
you
are
updating
a
an
object
that,
from
a.
A
Equal
to
or
I
want
to
say,
I'm,
not
finding
the
right
words
but
optimistic,
lock,
yes,
correct
BAM!
Thank
you
was
that
Kent,
yes,
very
good
Kent,
so
it
uses
this
object
version
field
to
implement
an
optimistic
lock.
If
you
give
it
an
update
based
on
an
out-of-date
version,
it's
going
to
kick
you
out.
C
On
quick
question,
the
top
of
the
fuzzer
stuff,
ok,
I,
think
I
just
said
in
general.
What
you
guys
are
talking
about
in
terms
of
you
got
to
do
something,
because
when
you
put
an
object
and
then
you
get
it
back
out
and
do
your
test
go
make
sure
it's
the
same
object.
Things
are
going
to
be
because
of
default,
so
the
fuzzer
will
go
through
and
identify
the
the
the
fields
that
will
get
defaulted
and
somehow
kind
of
mask.
Those
are
the
tests
that,
if
they're
going
to
think
of
it,
yes.
C
D
There
those
are
separate
tests
to
test
the
vault
logic,
so
the
buzz
so
the
buzzers
are
only
incorporated
into
the
serialization
test
with
you
right
track.
Donal.
B
Would
I
would
just
add,
I
put
a
link
into
the
chat
github.com
/
google
/
go
fuzz
all
in
word,
that's
a
very
useful
library
to
familiarize
yourself
with
it's
very
small
as
well,
and
it
will
help
greatly
and
understanding
just
generically
the
cake
tests
regarding
serialization
and
object
storage.
So
if
you
haven't
just
go,
give
to
read
me
a
read-through,
it's
pretty
short.
A
One
thing
that
has
been
a
challenge
and
a
significant
expenditure
time
in
the
process
of
creating
this
incubator
project
and
we
have
for
service.
Catalog
has
been
that
the
incubation
process
document
is
extremely
light
on
details
of
this
kind
as
an
example,
this
thing
with
defaults
and
so
for,
but
more
generally
matters
of
process
and
community
norms.
So
he
there's.
There
are
two
roles
that
are
specified
by
incubator
or
by
the
incubation
process.
A
A
Like
probably
there's
some
degree
of
adoption
of
the
community
norms
that
we
want
to
have
be
an
exit
criteria
for
exiting
incubation,
but
more
more
generally,
I
think
that
one
gap
that
we've
all
encountered
in
our
experiences
with
Reuben
at
ease
myself
included,
possibly
more
than
some
of
you
might
realize,
is
that
these
norms
and
practices
are
really
not
documented
in
a
central
place.
Now
we're
making
some
strides
on
that.
A
Article
4
and
so
I
think
that
that
one
thing,
I
kind
of
realized
over
the
last
couple
weeks
is
that
we
hit
some
of
those
gaps
and
since
I
know,
this
group
is
really
motivated
to
make
things
better
for
the
next
people
that
do
this
kind
of
thing.
You
know
this
is
something
that
we
should
shave
off
as
like
an
improvement
to
make
to
the
incubator
process
and
then
to
some
extent,
to
the
community
as
a
whole.
A
So
I
will
post
in
the
outpost
in
the
the
fig
channel
a
link
to
this
issue,
and
hopefully
we
can.
We
can
spend
some
of
the
energy
that
we
put
into
you
know
negotiating
these
things
for
ourselves
into
finding
out
and
defining
what
the
existing
norms
and
practices
might
be.
Any
thoughts
about
that
anybody
think
I'm
wrong.
Then
I'm,
a
bad
person
for
thinking
new
thoughts,
know.
E
E
A
If
you
have
somebody
who
is
not
me
that
understands
all
the
norms
and
all
the
reasons
why
I
transmitting
this
stuff
by
like
oral
history,
is
extremely
time
and
efficient,
so
absent,
absent
something
that
already
exists.
It's
are
a
lot
to
get
to
be
the
first
people
that
you
know
go
through
the
incubator
process,
maybe
with
with
folks
that
are
like
really
new
to
the
community
and
hit
some
of
these
gaps
and
speed
bumps
and
stuff.
A
Okay,
so
I
want
to
reorder
some
of
the
stuff.
That's
in
the
agenda
document,
because
I
think
that
that
a
next
thing,
that's
in
this
document,
is
a
burned
down
for
how
do
we
get
to
MVP
one
and
I?
Don't
think
that
will
fit
into
half
an
hour.
So
that's
something
that
perhaps
like.
If
we
don't
get
to
that,
we
can
break
out
it's
a
separate
meeting
later
this
week.
So
Morgan
you
asked
for
an
explanation
of
pull
340,
which
one
is
that.
E
A
E
E
E
A
Good
job,
Cesar
and
good
job
Cooper
Nettie's
for
having
document
on
this.
So
let's
talk
about
what
this
is
and
then
we'll
talk
about
the
poor
request
that
I
made
so
for
for
most
of
you
watching
in
most
of
you
attending
I'm
sure,
you've
heard
of
the
Ku
benetti's
client
go
project
which
is
basically
a
a
what
I
call
a
repeater
repo.
A
It's
like
an
export
of
certain
parts
of
the
Cooper
Nettie's
core,
which
might
eventually
turn
into
like
a
wholly
separate
project
that
doesn't
take
pieces
of
the
core
I'm,
not
exactly
sure
what
the
long-term
plan
is,
but
basically
it's
a
project
that
lets
you
consume
humanity's
API
objects
and
client
a-goin
client
that
lets
you
talk
to
an
API
server,
talk
to
the
Cuban,
a
t-score
API
server
and
get
these
api
on
checks
out.
So
there
are
two
flavors
of
these
clients
and.
A
The
the
two
flavors
are
theirs
in
what
is
identified
in
package
name
as
being
the
internal
client
set,
and
then
there
is
something
that's
identified
as
being
the
client
set.
The
difference
between
these
two
is
that
the
the
client
set
works
with
the
versioned
api's
and
the
internal
clients
that
works
with
the
internal
API.
So
if
for
those
of
you
that
may
not
notice
the
scheme
that
we
have
for
AP
is,
and
urban
at
ease
is
basically
a
star
schema
where
the
the
the
inside
of
the
star
is
this
internal
API.
A
That
basically,
is
a
superset
of
all
the
version,
API
fields
or
maybe
not
proper
superset-
that
has
some
conversions
logic
associated
with
it
to
make
all
the
different
version
api's
for
a
particular
group,
mutually
intelligible
and
translatable.
So
what
I
mean
by
this
is
that
the
we
are
currently
building
a
versioned
API,
which
is
called
V
1
alpha
one
of
the
Service
Catalog
API
and,
as
we
you
know,
prove
things
about
this
api
out.
Well,
undoubtedly
find
things
that
will
say
hey.
A
You
know
we
really
should
have
named
this
field
zorp
instead
of
barb
all
right
or
a
robber
instead
of
flab.
You
later
so,
just
as
an
example
will
probably
reach
a
point
where
we
cut
a
v1
beta
1
version
of
this
API,
and
in
fact
we
did
this
three
times
before
q
benetti's
be
one
we
had
V
1
beta,
1,
V,
1,
beta
2,
V,
1,
beta
3,
and
the
the
purpose
of
having
the
internal
API
is
to
be
able
to
translate
between
them.
A
So
if
I
create
a
B
1
alpha
1
binding
as
an
example
and
we
later
introduced,
V
1
beta
1
I
should
be
able
to
get
a
V
1
beta
1
view
of
this
V
1
alpha
1
object
by
converting
it
into
the
internal
format
and
then
converting
internal
format
into
V
1,
beta
1.
So
with
all
of
that
context,
now
Express
these
two
different
types
of
client
sets
clients.
That
is
the
name
of
a
name
of
these
particular
flavors
appliance.
A
So
these
two
different
types
of
clients,
that's
different
deal
with
different
AP
is
the
internal
one
is
for
the
unburdened
API
and
the
one.
That's
just
called
chlorine
set
is
for
the
version
API
now
this
gets
us
to
what
Morgan
is
done
and
one
thing
that
I
missed
while
I
review
the
code,
for
that
is
that
Morgan.
A
E
A
A
At
this
point,
I
don't
think
that
it
that
we
have
an
immediate
use
for
it.
So
it's
not
a
huge
deal
to
not
have
it
for
now.
In
fact,
I
think
I'd,
probably
rather
wait
until
we
have
a
use
case
to
generate
it.
I
would
like
to
close
to
have
somebody
work,
the
bug
that
I
either
found
or
improve
the
documentation
to
tell
me
that
I'm
doing
it
wrong,
because
I
wasn't
able
to
get
it
to
generate
and
internal
incorrectly,
but
I,
don't
think
we
have
a
strong
need
for
one
at
this
moment,
hey.
D
A
So
that's
that's
just
what
I've
been
talking
about
that
the
as
an
example
so
like
client
go
actually
only
exports,
the
version
de
client
right
and
I'm.
I
will
be
totally
honest
with
you.
All.
I
am
still
attempting
to
track
down
all
of
the
reasoning
behind
that,
because
I
do
not
personally
agree
with
that.
D
A
E
Yep
what're
your
knowledge
you're
waiting
on
me.
Yes,
that's
fine,
I
just
sounds
like
yeah.
If
you
don't
need
it,
I
won't
worry
about
it
until
we
need
it
and
we
got
what
we
need
so
far.
I
I
don't
mind.
Looking
at
the
quiet,
gen
thing
or
we
following
up
on
it,
but
I,
don't
I,
don't
really
understand
what
it
should
look
like
still
so
again,
example,
but
all.
A
G
So
pretty
so
I
already
told
you
guys
about
this
is
definitely
going
to
be
pretty
standard.
I
think
I've
been
to
this
down
when
I
was
in
boulder,
but
I
did
want
to
give
a
heads
up
that
we
we
did
get
a
talk
in
for
gcp
next,
it's
our
version
of
reinvent
for
folks
that
don't
know
what
Google
cloud
platform
Nexus
and
it's
going
to
be
we're
going
to
see
if
we
can
demo
some
of
the
early
work
in
the
service.
Catalog
click.
What
I
mean
he
next,
when
is
it
yeah?
H
G
G
G
G
C
G
Yeah
anyway,
we've
been
working
with
them
on
sort
of
proof
of
concept
stuff
to
deploy
SEO
as
part
of
a
binding
call
and
add
some
network
functions
to
it,
just
as
a
pay.
If
this
is
a,
this
would
be
cool
to
add
some
things.
Are
my
quota
management
and
load
balancing
some
of
the
HD
OS
features
so
anyway,
I
just
wanted
to
give
them
on
the
heads
up
on
that.
G
G
G
C
C
C
A
Ok,
so
I
got
some
something
cool
shares
on
the
the
agenda
today.
I'll
just
share
that
I
was
in
a
meeting
where
a
service
broker
developed
a
red
hat.
That
applies
ansible
playbooks
was
demo
today
and
it's
certainly
like
work
in
progress,
alpha
type
version,
but
the
thing
works,
so
that's
pretty
cool,
so
we've
got
about
17
minutes
left
I,
really
sincerely
doubt
that
we
can
get
through
a
burndown
type
arrangement
of
tasks
in
the
next
17
minutes.
So
I'll
put
it
to
the
group.
How
would
you
like
to
use
this
time.
H
H
Yes,
there's
no
to
several
things
kind
of
going
on
yeah
our
kind
of
X
play
here
so
there's
the
proposal
for
the
pot
injection
policy
and
then
on
Cooper
Nettie's
committees.
The
reefs
other
was
a
pull
request
made
for
in
API
server.
For
this.
H
E
H
G
A
C
A
F
A
A
Doug
you're
doing
the
Legolas
thing
where
you
said
we
control
our
density
yeah,
you
would
get
the
reference
to
the
movie
come
on.
I
do
I,
certainly
do
it
as
one
of
my
favorite
movies
of
all
time.
There
you
go
all
right,
yes,
okay,
so
wednesday,
I
will
set
up
a
time
for
us
to
talk
and
we'll
get
some
burned
down.
Gantt
chart
project
manager
in
this
going
on.
I
I
I
Okay,
great
because
I
was
basically
playing
with
with
the
gcp.
There
is
a
service
broker
that
has
been
open
source.
Then
it's
available
out
there
and
I
was
basically
spinning
up
things
like
storage
and
whatnot
in
sposed
off
and
parameters,
and
it
would
not
go
on
off
quite
easily
and
then
the
parameters
was
a
bit
cookie
ourselves
curious.
If
I
was
the
only
one
or
the
first
one
bunny
in
this
issue,
yeah.
A
I
think
you
might
be
the
first
one
Villa
and
I
think
that
we
need
some
design
about
how
we're
going
to
handle
this,
because
yeah
I
think
it's
it's
tricky
to
find
the
right,
API
I
assume,
though,
that
you
were
able
to
get
it
to
work.
It
sounds
like
well,
the
CIM.
A
A
I
A
Agree
with
you,
and
so
okay
folks,
what
V,
Lee
and
I
are
talking
about
is
that
when
we
were
going
through
and
making
the
API
round-trip
abul,
we
had
formerly
left
in
a
placeholder
that
was
like
map
of
string
to
interface,
and
this
interface
does
not
like
is
not
really
supported
by
the
all
the
API
machinery
incur
benetti's.
So
what
we
did
is
the
version
API
as
a
raw
extension
type
and
internal
API
has
a
runtime
object
type.
Basically,
this
is
how
we
represent
like
opaque
fields
that
are
serialized
JSON.
A
It's
not
a
user-friendly
way
to
represent
this
in
the
API,
and
so
we
need
to
like
figure
out
and
Jessica
Forrester.
You
probably
have
some
ideas
about
this.
What
a
good
way
of
representing
parameters
that
can
take
on
like
arbitrary
types
in
the
API
is
so
as
another
takeaway
delay.
Tell
you
what
let's
look
right
now
and
I
want
to
say
that
I
have
made
an
issue
for
this.
Well,
let's
just
check.