►
From YouTube: Kubernetes KubeBuilder Meeting 20200108
Description
KubeBuilder Meeting for 2020/01/08. See https://sigs.k8s.io/kubebuilder for more details.
A
So
hello,
good
morning,
this
is
the
queue
builder
and
controller
runtime
and
controller
tools
as
well.
I,
don't
know
why
controller
tools
is
not
on
this
list.
Meeting
for
January
8th
in
2020
started
the
decade
as
a
reminder.
This
is
being
recorded
and
posted
to
YouTube
publicly,
so
do
not
say
anything
that
you
would
not
want
recorded
for
all
time
for
your
children
to
hear
or
for
grandparents
or
other
people
all
right.
So
there's
only
one
thing
on
the
meeting
agenda
for
today
that
I
can
see
so
far
and
it's
the
ongoing
plugins
debate.
A
B
A
A
B
A
B
Can
I
guess
I
can
talk
a
little
bit,
Eric
might
have
more
to
add
Erica's
been
helping
too
so
I.
My
impression
is
I
think
we
have
like
at
least
a
base
set
of
agreed
things
like
we
want
to
have
a
name
in
the
version
it
seems
like.
We
are
okay
with
the
proposed,
like
interfaces
for
what
a
plug-in
would
look
like
in
terms
of
the
basically
to
support
the
having
this
help
and
also
like
having
like
the
run
thing
that
the
Cobra
can
use
under
the
hood.
B
So
what
I'd
like
this
dynamic
then
detects
things
based
on
the
project
file
or
a
flag
and
can
use
the
interface
implementation
to
to
run
whenever
plug-in
code
the
plug-in
finds
it
seems
like
we're
all
good
there.
It
seems
like
the
the
thing
that
we
and
you
can
graduate
I'm
wrong
either.
It
seems
like
the
thing
that
there's
still
debate
about
is
like
how
do
we
layer
different
plugins?
Do
we
want
to
be
able
to
support
more
than
one
root
plug-in
at
a
time?
B
Do
we
want
to
be
able
to
type
plug-in
input
to
output
and
then,
if
the
answer
to
that
is
yes
immediately
right
now,
then
it
seems
like
there's
gonna,
be
a
lot
of
debate
about.
How
do
we
manage?
You
know
the
configuration
for
those
and
what
the
compatibility
between
different
plugins
for
those
seem
like
the
big
question.
A
Yeah,
it
seems
like
there
was
also
some
like
minor
questions
about
like
that,
for
the
interfaces
do
we
want
to
have
like
a
here
here.
Is
this
plug-in?
It
has
a
different
interface
for
each
command
or
do
we
want
to
let
plug-in
say,
like
you
know,
tell
me
the
command,
that's
being
run
and
I
will
tell
you
whether
or
not
I
I
want
to
work
with
it
or
like
here's.
My
list
of
sub
commands
that
I
support
that
seems
like
it
seems
like
it
was
another
open
question.
A
B
That's
a
good
point.
Obviously
you
could
probably
tell
by
my
proposal
that
I
that
I
think
I
prefer
the
like
explicit
interface,
definitions
and
driving
like
the
CLI
knows
about
all
of
the
interfaces
and
can
explicitly
run
them
rather
than
to
see
I
like
to
see
lines
discovering
itself
via
the
plugins,
which
seems
messy,
I,
guess.
A
We
should
come
up
with
a
solution
that
will
allow
us
to
expand
into
piping,
but
like
not
tackle
it
now,
cuz
I
think
I
I
was
I
will
say.
I
was
initially
hopeful
that
we
could
do
them
both
together,
but
I
I
think
practically
it's
it's
making
this
more
complicated
and
so
I
think
we
should
like
think
about
in
a
very
hand
wavy
way
like.
A
If
we
did
this,
how
would
we
then
introduce
that
yeah
and
then
like
be
like
okay
as
long
as
we're
not
painted
into
a
corner
so
that,
like
in
a
in
a
month
or
two
or
whatever,
when
we
decide
to
introduce
the
piping
or
whatever
we
don't
go
like
shoot
that
right?
There's
just
no
way
to
do
this.
A
So
I
think
I
think
that's
the
case.
I
agree.
B
A
The
only
thing
I
I'm
kind
of
split
between
the
two
between
the
explicit
interfaces
versus
the
like
ask
the
plug-in.
Does
it
support
this
series
of
subcommands
I
would
lean
slightly
towards
ask
the
plug-in?
Does
it
support
this
series
of
sub
commands,
but
simply
because,
like
from
a
type
perspective,
I
like
the
explicit
interfaces,
but
from
a
like
in
the
future?
If
we
want
to
allow
things
like
you
know,
on
all
create
commands
or
all
commands
that
generate,
you
know
go
code
which,
just
might
be
like.
A
A
That
might
be
a
slash
might
be.
Slash,
probably
is
easier
with
the
like
asking
the
plug-in,
but
I
don't
know
if,
like
it's
compellingly
enough
easier
to
motivate
not
doing
the
bases
so.
B
I
guess
I
guess
maybe
a
little.
You
could
probably
helped
me
understand
a
little
more
so
the
proposals
in
the
PFC
code
that
exists
right
now.
Basically,
it
is
asking
the
plug-in.
It's
basically
saying
hey
plug-in.
Do
you
implement
in
this
interface?
If
so
go
ahead
and
do
your
stuff?
If
not,
then
you
don't
implement
the
interface
I'm
not
going
to
talk
to
you
anymore,
regular.
A
B
C
C
A
Yeah
I
mean
it's
possible
to
do
a
hybrid
approach
to
like
we
could
have
the
explicit
interfaces
and
then
like
a
special
wildcard
interface,
where,
if
you'd
implement
the
wild-card
interface,
we
will
we
will
like
ask
you
right,
like
you
can
either
say
you
know,
run
create
API
or
you
can
say
you
can
implement
like
do
you
want
to
run
sub
command
and
then
like
a
slice
of
strength
for
the
sub
command?
And
then,
if
you
implement,
do
you
want
to
run,
then
you
get
asked
if
you
want
to
run.
A
Haven't
figured
out
a
way
to
do
it
with
Cobra,
but
I
figured
out
a
way
to
do
it.
You
know
I
figured
out
a
way
to
do
it,
not
with
Cobra
in
a
way
that
still
supports
Cobra
sub
commands,
I,
think
cool,
but
the
other
thing
that
I
wanted
to
bring
up
is
I
was
playing
around
with
your
example
and
I.
Don't
know
if,
like
I
messed,
something
up
when
I
was
playing
around
with
it,
but
it
didn't
like
that.
A
A
B
A
B
A
I
think
I
think
you
can,
if
you
just
basically
say
like
you,
have
a
prepare.
You
have
like
a
prepare
phase
where
basically,
every
plugin
gets
to
declare
like
a
modification
modifications
to
the
help
and
stuff
like
that,
and
then
I
think
you
could
probably
just
loop
through
the
plugins
and
then
loop
through
each
of
the
commands
cuz
it's
still
fixed,
even
though
we're
like
asking
the
plug-in
what
it
wants
to
do
with
the
given
sub-command
we're
still,
we
still
have
a
fixed
set
of
sub
commands
right.
We're
not
saying
we're.
A
B
Depending
on
what
prodding
burden
flag,
you
tell
it
you're
going
to
get
a
totally
separate
help
output.
So
I
guess
what
you're
saying
is
we
just
iterate
over
all,
regardless
of
what
whatever
flag
project
version
is
were
not
doing
that
as
far
as
generating
them?
The
docks
and
we'll
just
generate
one
in
it.
Helped
dock
per
project
version.
B
A
That's
a
that's
a
useful
thing
to
do,
and
I
like
I
like
the
idea,
I
think
it
would
be
cool.
We
should
probably
like
this
is
like
a
eventually
unless,
like
you
have
someone
on
your
team,
that,
like
is
really
bored
and
wants
to
do
this
right
now,
I
would
love
to
do
something
like
that
as
part
of
the
docs
build
pass
and
then
just
slurp
it
into
the
reference
section
in
the
book.
A
So
you
know
how,
like
we
have
like
references
markers
and
we
have
like
controller
tools,
just
spits
out
all
the
markers
it
knows,
and
then
we
turn
that
into
HTML.
I
would
love
to,
like
you
know,
same
thing
for
queue.
Builder
I
was
not
aware
that
I
don't
think.
I
was
aware
that
Cobra
did
that
for
you
so
like,
if
we
could
take
advantage
of
that,
it
would
be
really
cool.
A
A
D
So,
just
just
a
quick
note
on
weird
talking
about
so
I
implemented
the
plug-in
system,
as
the
proposal
for
COO
builder
I
posted
that
branch.
In
my
most
recent
comment
on
the
PR.
So
if
you
want
to
take
a
look
at
that
and
play
around
with
it,
the
CLI
has
not
been
set
up.
Yet
I
will
do
that
fairly
soon,
but
yeah.
If
you
want
to
take
a
look
at
how
that
would
okay.
A
I
completely
missed
that
comment.
It
was
I
think,
looking
at
an
older,
a
different
one:
okay,
I'll
I'll
I'll
take
a
look
at
that.
I
was
looking
at
the
queue
bill
directs.
That
was
the
original
one
I
put
together
ya
know
once
ago,
yeah
I'll
take
a
look
at
that,
and
I
can
post
like
this
stuff.
That
I
was
playing
around
with
the
TLDR.
A
So
for
some
of
the
stuff
where
we
have
to
hack
around
Cobra.
To
like
do
an
initial
pass
before,
like
do
an
initial
pass
to
like
figure
out
what
the
plugins
flag
is
set
to,
we
I
think
we
should
be
able
to
use
that,
and
in
fact,
like
I
have
a
working
prototype
of
like
doing
an
initial
pass
with
that
that
I.
D
We
always
do
its
trail,
but
we
never
do
one.
One
thing
that
came
up
that
I
noticed
when
implementing
this
system
is
that
if
you
have
a
generic
interface
and
you're
trying
to
implement
the
generic
interface
on
for,
like
you
know
in
it
and
create
on
some
struts
that
configures
a
plug-in,
then
you
have,
you
might
have
conflicting
method
names
like
you,
can't,
obviously
override
a
method
with
the
same
signature
or
even
without
the
same
signature
just
the
same
name
ago.
D
So
if
you
yeah,
if
you
don't
have
like
create
in
it,
plug
in
and
create
create
API
plugin,
for
example,
then,
and
instead
you
have
two
versions
of
creative
plugin,
then
that
won't
work
for
a
generic
interface.
But
it
will,
if
you
have
different
method
names
for
like
Joe,
suggested
hard
coded
interface
names.
Does
that
make
any
sense?
Yeah.
A
A
That's
too
terrible,
because
it
just
encourages
you
to
split
out
things
into
like
two
separate
structs
in
some
cases,
which
I
think
may
be
acceptable,
like
the
I
split
out
from
the
queue
builder,
X,
I,
split
out
the
anit
plug-in
and
the
create
or
the
anit
plug-in,
and
they
create
plug-in
into
two
separate
like
structs,
that
just
got
like
delegated
to
from
the
main
one,
and
it
wasn't
that
like
it
was
like
it
ended
up
being
like
run.
If
it's
running,
oh
I,
see
what
you're
saying
yeah.
B
A
A
B
So
for
those
who
are
here
in
the
in
the
bottom
of
that
comment,
I
just
linked
I
ended
up
coming
up
with,
like
I
think
we
probably
need
the
same
sort
of
thing.
That
Sully
was
just
talking
about
where
there's
a
separate
implementation
for
each
of
the
CLI
sub-command.
So
this
basically
introduces
like
a
separate
layer
of
like
an
init
plugin
getter
a
create
plugin
dinner,
and
then
you
can
define
struck
that
implements
the
knit
plug-in
and
create
plug-in
and
those
could
be
separates
trucks.
A
Other
thing
that
I
wanted
to
ask
about-
actually
this
you've
reminded
me
is:
do
we
want
to
do?
We
want
to
have
like
stuff
like
description
and
examples,
be
methods
that
get
called
or
do
we
want
to
like?
We
want
to
allow
passing
in
like
the
default
description,
so
I
can
I.
This
is
like
a
hypothetical,
which
means
it's
probably
not
too
important,
but
I
can
imagine
plugins
where
you
don't
actually
want
to
come
up
with
a
completely
new
description.
D
A
You
just
have
like
the
the
like
you'd
have
a
like
configured
description
method
and
it
would
get
past
the
struck.
That
was
like
a
pointer
to
a
struct.
That
was
like
description
examples
and
then,
like
the
the
configure
description,
would
be
responsible
for
changing
that.
If
it
wanted
to
set
the
description
to
something
else
or
or
modify
it.
B
A
Exactly
yeah,
this
is
like
not
so
important
for
base
plugins,
I,
think
but
like
for,
for,
if
we,
if
such
when,
we
eventually
have
like
the
filter
plugins,
it
might
be
nice
to
be
able
to
be
like.
Oh
here's,
just
an
additional
example
that
just
uses
this
new
flag,
I
added,
because
it's
not
a
replacement.
It's
just
like
I
added
an
extra
flag
that
turns
on
some
new
functionality,
kind
of
thing,
sure
yeah.
D
A
What
I
wanted
to
talk
about?
Oh
I,
don't
know
if
this
has
changed
since
you're
in
the
in
the
arocs
version
versus
the
queue
builder
X
version,
but
I
noticed
in
the
queue
builder
X
version.
Individual
plugins
were
entirely
responsible
for
flags
like
there
were
no
built-in
Flags,
I
didn't
know.
If
you
that
was
intentional,
like
it
seems,
it
seems
to
me,
like
some
flags
you,
you
probably
want
to
be
like
every
create
API
command,
probably
wants
kind
and
and
and
resource
and
stuff
like
that,
and
so
like
those
should
be
common
flags.
But
I.
B
A
Yeah
yeah,
you
would
want
to
provide
like
the
you
would
want
to
define
the
flags,
but
not
mark
any
of
them,
as
required.
Basically
yeah
that
also
helps
keeps
keep
the
UX
like
similar
between
plugins.
That's
true
that
we
don't
accidentally
end
up
with
two
flags
that
do
the
same
thing
by
depending
on
which
plug-in.
A
B
A
A
D
B
A
And
it's
it's
like
weirdly,
like
untyped
safe.
You
have
to
know
what
type
the
flag
is
in
order
to
cast
the
value
and
like
I
like.
B
The
context
idea
that
seems
like
that
also
then
supports
the
like
extension
of
having
like
multiple
plugins
pipe
together,
because
the
context
might
expand
as
plugins
are
running.
Maybe
one
plug-in
could
add
something
to
the
context
to
inform
the
next
plug-in
of
something
that
it
did
or
something
like
that.
I.
A
Was
always
playing
around
with
this?
Actually
in
my
local
fork
last
night
and
it
was,
it
was
going
it
it
seemed
decently,
it
seems
to
work
decently.
Well,
it's
it's
kind
of
the
pattern
for
context
right.
You
have
some
series
of
things
before
you
in
the
Chane
that
add
data
to
the
chain,
but
you
don't
like
necessarily
know
exactly
what
so
you
pull
it
out
of
looks.
A
We
can
look
at
plumbing
that
do
you
want
to
do.
You
want
me
to
set
up
a
feature
branch
for
us
to
collaborate
on
in
the
main
queue
builder,
repo,
yeah,
and
then
people
can
just
open
PRS
against
that,
and
we
can
debate
the
code
and
we
can
merge
it
and
then,
when
we're
ready,
we
can
Aires
the
feature
branch
yeah.
D
D
Never
fun
so
just
quickly
go
back
to
Joe's
suggestion
he
he
just
posted
it
in
the
chat.
When
you
were
gone
Sally.
Did
you
get
a
chance
to
take
a
look
at
that
with
his
generic
sub-command
suggestion
everything
sorry,
you
say
that
again
in
the
chat
there's
a
link
to
Joe's
comment
that
suggests
using
a
hybrid
generic,
non-generic
plug-in
system
or
inter
interface
system.
Oh
yeah,.
A
B
So,
based
on
some
of
the
discussion,
there
seemed
like
okay,
like
that
makes
total
sense,
really
there's
just
one
interface
that
we're
talking
about,
which
is
this
generic
sub-command
interface,
but
we
still
want
to
have
like
potentially
different
implementations
for
an
it,
create
a
PA
and
create
whatnot.
Yes,.
A
D
A
D
That
all
in
this
and
then
I
will
be
updating
DPR
based
on
what
we
talked
about
so
I
guess
yeah
going
forward
from
this.
It
would
be
nice
to
like
get
some
affirmative
or
non
affirmative
answers
on
how
we
want
the
interfaces
to
look
like
just
because
that's
like
the
main
that
that's
the
meat
of
this
proposal.
D
So
does
that
like
I
guess,
we
should
take
a
little
bit
more
time
after
this
meeting
to
like
really
think
about
Joe
suggestion
and
whether
we
want
something
generic,
but
also
does
that,
like
from
a
cursory
glance,
look
good
to
you
and
to
everybody
else,
who's
been
commenting
on
this
PR.
That's
in
this
meeting,
I
think.
A
I
might
tweet
one
of
the
names
slightly
but
other
than
that,
like
I,
think
I
think
it
looks
pretty
good
at
a
cursory
glance.
One
of
the
things
we
can
do
is
we
can
write
it
down
in
the
proposal
and
we
can
start
collaborating
on
the
feature
branch
and
then,
like
we
can
say
this
is
tentatively
accepted
in
the
proposal
and
then
like.