►
From YouTube: WG API Expression Bi-Weekly Meeting for 20210316
Description
WG API Expression Bi-Weekly Meeting for 20210316
A
Welcome
to
working
group
api
expression-
this
is
16th
of
march
2021
and
we
want
to
discuss
our
goals
for
2
1
to
1
20
2020
release.
Should
we
keep
this
in
our
ga
document?
I
suppose.
B
A
What
would
you
see
right
now?
I
I
shared
another
tab
and
that's
chrome
is
telling
me
sharing
too.
I.
B
Can
yeah
so
here's
my
perspective
and
I'm
gonna
get
started
with
it
right
now.
Let's,
let's
not
use
the
122
dates.
Let's
set
up
the
date
before
that.
B
I
I
think
we
should
set
up
some
health
date
and
try
and
absolutely
get
released
by
that
time,
and
if
we
have
to
make
a
big
push
before
we
do
it.
But
I
don't
want
to
be
having
all
this
pressure
around
cultures
like
we
did
two
weeks.
B
A
B
B
C
B
So
I
don't
think
we're
going
to
be
able
to
do
anything
anyway,
but
I
wanna
at
least
understand.
What's
gonna
happen,
and
maybe
maybe
document
that
in
the
api
conventions,
so
that
people
understand
what
it
means.
A
B
B
Yes,
so
I
jeff
is
going
to
talk
about
this.
Maybe
but
jeff
do
you
know
what
this
is.
B
Okay,
so
the
jeff
and
joe
have
created
this
new
extract
function,
and
so
it
looks
for
the
managers
in
the
list
and
then
extracts
the
manage
fields
from
this
list
and
then
try
and
extract
the
fields
from
the
object
using
that
specific
manager,
and
we
now
have
it
back
because
andrea
has
added
this
sub-resource
field,
which
can
be
status
or
scale
or
nothing,
and
so
the
extract
function
does
not
know
how
to
look
for
the
sub-resource
field,
and
so
it
may
check
the
status
one
or
it
may
take
the
non-status
one,
and
so
that
causes
problems.
A
B
It
doesn't
know
what
to
look
for,
and
so
it
should
explicitly.
There
should
be
an
extract.
We
could
use
a
parameter
for
it,
but
we
could
have
a
function
extract
for
the
main
resource
and
an
extract
status
for
the
status,
and
it
would
know
which
manager
to
look
for,
and
so
it
would
use
the
proper
manage
fields.
B
Sure
but
so
the
thing
is,
the
client
has
a
function
apply
and
a
function
called
apply
status.
A
B
Because
these
are
the
two
things
that
controllers
do
a
lot,
and
so
I
think
it
would
make
sense
to
have
extract,
extract,
extract,
apply
and
extract
status,
supply
status.
A
A
Yeah
right,
I
I
think
I
saw
the
pr
and
left
legitimate
look
correct.
B
I'm
curious
if
we
should
add
these
fields
to
the
ignore
thing.
B
You
know
how
we
have
you've
created
this
function,
this
set
of
things
that
we
know
for
the
status
quo.
We
should.
B
The
metadata
and
other
fields
to
this
set
so
that
it's
got
it's
not
going
to
ever
record
these
in
the
match
fields
at
the
beginning,
because
here
we
remove
them
after
and
I
think
for
apply,
we
don't
know
if
the
management
needs
to
be
updated
or
not.
A
A
A
That
might
actually
help
because
the
strip-
I
if
I
remember
it
correctly,
it's
like
it's-
been
a
while.
The
strip
only
removes
strips
from
the
managers,
but
it
doesn't
mean
that
it
wouldn't
steer
you.
You
could
still
steal
stuff.
That
would
be
stripped
and
shouldn't
be
something
I
see.
B
We
should
probably
continue
stripping,
but
still
ignore
the
thing.
A
A
Yeah
all
right,
selectors
and
field
types-
oh,
that
was
atomic
okay.
That
was.
A
C
B
Yes,
correct
andrea,
I
initially
did
it
for
deployment,
but
we
actually
want
to
do
it
for
stateful
self
replicas
and
all
and
for
crd
is
due-
and
I
think
I
think
most
of
the
code
is
ready
and
working
and
we're
writing
the
test.
I
I
was
doing
that
quickly
during
the
exception
process,
but
since
we
didn't
actually
make
it
andrea
is
going
to
finish
that.
B
B
B
A
A
B
B
It's
it's
unfortunate
that
we
can't
merge
anything
during
countries
for
the
next
release,
but
we
should
have
everything
ready
and
then
have
basically
one
week
for,
and
we
can
have
things
reviewed
before
that
I
think
so.
There's
no
reason
why
we
wouldn't
be
done
in
a
month.
B
B
Okay,
whatever
april
yeah
sounds.
A
B
C
C
B
Cool
zaya:
do
you
want
to
talk
about
immutability?
I
know
you
have
a
question
for
me
and
I've
been
unfortunately
ignoring
you
for
how
many
days
now,
almost
two
weeks.
D
Yeah
no
worry.
I
am
still
also
trying
to
focus
on
my
team's
work
yeah.
I
think
we
either
read
on
the
document
a
little
bit
and
I'll
give
some
thought
on
it.
So
the
question
I
have
is
that
what
what
do?
D
What
do
people
think
about
the
idea
that
we
make
sense
immediately
check
very
strictly
basically
means
that
if
you
don't
specify
a
field,
is
you
then
you
are
and
and
it
will
get
a
default
value
most
in
most
of
the
cases
I
checked
the
core
types.
That's
that's
basically
what
happened?
If
you
don't
specify
fields
and
if
the?
D
If
the,
if
the
api
server
or
the
controller
really
cares
by
an
initial
field,
then
there
will
be
a
default
field
or
there
will
be
some
fields
generated
on
the
admission
time,
and
that
means
you,
even
users,
don't
specify
here.
There
will
always
always
be
a
meter
field
provide
somewhere
and
then
the
immutability
check
will
compare
with
that
initial
field
with
the
updated
field,
updated
value.
So,
given
this
observation,
so
I
think
we
can
go
go
with
with
the
you
know,
straightforward
approach.
D
That
means
if
the
value
didn't
get
if
the
field
didn't
get
specified
and
if
you
want
to
specify
its
other
creation,
the
immutability
checker
will
say
no
this
pro.
This
will
probably
set
fire
the
existing
use
cases
that
am
I
available,
but
I
I
want
to
get
a
sense.
What
how
do
people
feel?
D
B
D
Was
it
defaulted
yeah
I
so
by
default
I
mean
that
I
I'm
reading
the
like
the
code
for
the
existing
core
types
of
kubernetes
core
types.
Usually,
if
the
they
have
some,
you
know
cosmological
to
determine
to
validate
the
immutability
of
fields
right
and
most
those
fields
are
either
required.
So
that
means
you
have
to
specify
a
value
in
the
first
place
or
the
value
is
defaulted
on
admission
process,
but
is
it
defaulted
in
the
admission.
D
Yeah
or
or
there
would
be
some-
you
know,
customer
logic,
then
to
be
or
generate
a
id
or
generate
a
value
for
it
like
what
I
told
you
about
the
label
selector
some,
I
think,
for
the
party
who
don't
specify
the
label
selector
on
the
on
creation
on
creation
or
mission
time.
I
think
the
current
logic
is
set
is
the
yin
validation,
but
there
to
do
things,
move
this
logic
to
defaulting
but
anyway.
D
So
the
bottom
line
is
that
the
field
the
value
will
will
be
provided
in
the
initial
field
before
the
before
the
controller
can
work
on
it.
B
D
Yeah,
that's
basically
the
the
approach
I
want
to
go
with.
Unfortunately,
it
wouldn't
just
certify
kcc's
use
case,
because
we
do
allow
users
to
you
know
unspecify
some
fields
we
don't
care
about,
and
the
value
will
be
determined
by
the
controller
by
calling
the
underlying
api.
Basically,
the
value
is
determined
by
the
gcp
services
and
the
controller
it
just
populates
the
value
back.
I
see
what
you're
saying
it's
like
this
identifier
is
generated.
B
D
Yeah
so
yeah,
but
that
is
a.
I
only
observe
this
in
kcc,
since
our
controller
is
basically
a
pro
a
property
of
the
sorry
proxy
of
the
underlying
api,
but
for
other,
like
a
kubernetes
controllers,
they
needed
to
know
the
value
to
know
to
work
right.
So
we.
B
B
Does
it
support
ipv4
or
does
it's
about
ipv6
or
both
and
and
then
based
on
that
they
changed
the
default
value
and
as
soon
as
it's
part
of
the
mutating
web
hook,
I
think
it
needs
to
be
at
least
settable
once
after
it's
been
created,
and
so
I
I
can
see
the
argument
that
we
need
both.
A
D
But
my
understanding
for
the
mutating
webhook
is
that
it
happens
before
the
object
is
proceeded
into
xcd
right.
B
A
A
There
is
no
separate,
oh,
I
didn't
see
a
differentiation
between
that.
I
just
saw
that
validation
gets
run
and
at
least
for
the
managed
fields.
We
don't
have
a
validation
that
says
this
is
allowed
for
update.
This
is
a
lot
for
create.
D
B
Looks
at
the
old
object
and
I'm
just
curious
after
the
mutation
on
the
creation.
Do
we
actually
com
look
at
what
the
mutating
is.
The
validation
correct
after
the
mutation
as
in
the
old
object
is
what
we
would
have
created
and
the
new
object
is
what
the
mutation
change:
how
do
we
just
do
a
nail
to
entirely
new
object?
That's
what
I
don't
know
and
would
like
to
understand.
D
Okay,
yeah
I'll
follow
up
on
that.
I
guess
the
question
is
the
mutating
webhoot
changes
will
invoke
the
validation
logic
or
not
right,
yeah.
B
A
Okay,
I
mean
this
only
would
solve
the
problem
if
a
admission
webhook
would
be
used,
and
I
I
I
think
there
could
be
cases
where
a
control
where
you
want
to
have
a
controller
that
sets
the
field
at
some
point
and
not
block
the
admission
chain
on
it.
So
I
still
could
see
the
case
where
we
want
to
be
able
to
specify
a
field
for
the
first
time
later,
on.
A
A
D
So
my
understanding
is
that
it
happens
after
a
new
imitating
web
hook
after
defaulting
and
since
it's
a
like
a
and
then
also
happens
after
the
object
is
proceeded
into
xcd
then,
and
basically
it's
it.
It
happened
on
dream
update,
I
guess,
update
operation.
A
A
A
Yeah
right
for
for
deployments,
no,
yes.
B
Yeah
yeah,
but
because
yeah
the
deployment,
especially
the
pad
template,
is
mostly
immutable,
but
we
should
probably
run
that
together
so
that
the
l's
are
bundled
together.
C
B
Yeah
yeah,
no,
I
think
it
is.
If
we
can,
I
don't
know
if
we
will
be
able,
because
the
it's
the
mutability
is
going
to
be
recursive.
B
A
B
A
D
Did
we
answer
your
questions
there?
No,
yes
or
no
yeah!
I
guess
I
guess
that's
we
still
just
to
conclude.
We
still
wanted
to
help
to
consider
the
use
case
that
some
field
some
unspecified
field,
can
be
set
on
the
for
the
first
time,
even
after
creation
right,
we
want
to
allow
it.
B
A
B
And
yeah,
I
think
if
we
had
basically
completely
immutable
like
it's,
it
can't
ever
change
after
creation.
Oh
can
be
added
after
creation,
but
not
changed
after
that,
and
it
can
be
deleted
after
creation.
D
So
I
guess
we
don't
want
to
support
both.
D
Addition
and
and
the
deletion
for
immutable
fields,
because
that
will
give
you
a
backdoor
to
bypass
the
validation
right.
If
you
allow
remove
a
field,
your
user
can
do
that
first
and
then
reset
it
with
a
different
value.
Then
the
validation
webhook,
so
the
immutability
validation
logic
would
not
prevent
it.
B
Yeah-
I
don't
disagree
with
that,
but
I
don't
know
if
that's
what
about-
and
I
was
thinking
specifically
about
list
items
like.
Maybe
we
can't
you
can't
change
the
container,
but
you
can
rename
it
remove
one
and
add
another
one
which
is
literally
renaming
the
I
can
add
later
and
I
can
remove
later-
would
allow
you
to
do
that.
You
would
be
able
to
remove
and
recreate
on
your
container.
D
B
D
B
Yeah,
but
it's
only
true
about
the
container
thing,
for
example
like
can't
you
if
the
container
is
immutable,
but
you
can
only
move
it
and
like
here
can't
you
just
do
that,
then.
Isn't
that
already
something
you
can
do.
A
Purely
options,
if
somebody
sets
it
it's
kind
of
their
fault,
they
want
to
use
use
it.
That
way,
I
mean
we.
I
don't
think
we
need
to
add
a
rule
that
says
you
can
only
have
either
ad
only
or
remove
only
sure,
because
if
somebody
uses
it
they
I
mean
they
don't
want
it
to
be
fully
immutable.
I
guess.
B
B
A
B
A
D
Yeah,
okay,
I
will
go
with
that
direction,
a
little
bit
further
saying
that
we
allow
delete.
Basically,
we
treat
delete
and
then
we
added
another
change
yeah,
let's
see
how
it
works
yeah.
If
we
can
accept
that
philosophy,
then
maybe
things
can
go
smoother
and
it
will
apply
to
maps
and
containers
at
least
maybe
but
yeah.
I
will
think
of
more
of
that,
but
yeah
thanks
for
the
suggestion.
A
I
remember
one
question:
I
don't
know
if
I
asked
it
last
time
for
the
recursive
immutability
is
like
that
would
be
hard
to
specify,
but
do
we
need
some
mechanic
to
say
the
recursiveness
stops
here
like
don't
make
this
immutable
or
would
like?
I
think
we
kind
of
mentioned
it
with
specifying
a
non-immutable
field
set
or
something,
but.
D
So
is
that
a
use
case
that
we
want
to
support?
I
thought
it
yeah
in
my
first,
you
know
iteration.
I
think
that
we
want
to
support
recursive
immutability
check
me.
That
means,
if
you
mark
the
top
level
of
the
mutable,
then
nothing
under
it
will
can
be
changed,
but.
D
Yeah,
this
is,
with
my
limited
understanding
of
kubernetes
code
base
that
I
think
that's
the
case.
They
basically
call
that
immutability
validation
function
on
the
other
object
and
then
the
object.
Then
everything
under
within
within
that
object
is
not
changeable.
A
D
Yes,
I
I
think
so
you
basically
you
needed
to
introduce
more
extensions
to
to
define
this
fingering
behavior
saying:
okay,
even
though
the
parents
said
it's
immutable,
but
for
the
children
this
is
exception,
something
like
that,
but
I'm
trying
to
like
work
from
the
use
cases.
I
I
couldn't
find
any
good
use
case
to
mapping
to
that
approach.
But
if
you
know
yeah,
let
me
know
I
will
take
it
in.
B
You
might
want
to
actually
do
it
directly
recursive,
but
with
the
ability
to
override
the
semantics
in
the
in
the
middle,
for
example,
because
the
list
so
let's
say
you,
have
a
list
of
containers
and
so
the
containers
you
shouldn't
be
able
to
change.
But
the
least
you
are
able
to
add
and
delete
today,
you're
going
to
say:
okay,
the
list
is
add
and
delete
and
because
it's
going
to
be
fully
recursive,
it
means
necessarily
the
containers
have
to
be
identity
too.
A
B
A
A
B
Yeah,
I
would
actually
go
for
the
you
can
change
the
mutability
while
traversing.
D
You
want
change,
you
want
to
change
the
mutable,
so
why
would
we
like
do
the
opposite
way
and
allow
you
know
mutability
change
in
in
object.
D
Why
can
we
just
go
see
in
the
top
level
is
mutable,
but
for
the
specific
field
it's
immutable,
then,
if
you
want
something
or
some
nes,
some
subfields
to
be
changed,
you
don't.
B
Yeah,
so
if
you
look
at
pod,
for
example,
the
pod
has
a
gazillion
fields
and
only
a
few
of
these
are
mutable,
and
so
you
can
mark
against
the
enfield
as
immutable.
B
Oh,
you
can
mark
a
couple
of
fields
as
mutable
and
set
everything
as
immutable.
Yeah.
B
To
go
italy
right
sure
sure,
but
the
the
problem
is,
since
we
are
introducing
different
semantics
of
strict
verses
can
be
added
or
can
be
deleted.
People
are
probably
going
to
want
to
change
that
at
different
layers.
Anyway,.
D
Yeah,
okay,
I
need
to
think
about
the
combination.
If
we
wanted
to
change
some
immutability
breathing
of
object.
B
Yeah,
no,
I
wouldn't
do
that
because
I
mean
we
are
going
to
have
the
fields
in
the
schema.
B
So
when
you
write
the
types
that
go
you're
going
to
have
this
slash,
slash,
press
immutability
and
we're
going
to
include
that
in
the
open
api.
So
as
we
traverse
the
open
api,
we're
going
to
see
the
mutability
of
each
field,
and
so
as
we
do
the
integration
to
see
if
the
the
immutability
constraints
are
expected,
we
are
going
to
work
the
schema
at
the
same
time
and
see
what
has
changed
and
what
hasn't.
D
A
A
B
A
B
Yeah
good
yeah,
maybe
think
about
it,
but
I
I
don't
know
if
it's
that
important
yet.
B
D
Good,
okay,
yeah
yeah:
let's
go
to
information
session.
I
I
I
think
about
it
to
get
those
into
the
consideration.
Just
one
last
question,
then:
how
do
we
specify
a
list
is
immutable
itself.
It
will
generally
allow
delete
and
addition
items.
B
Generally,
because
we
had
multiple
types
of
lists,
so
the
atomic
list
is
probably
considered
as
a
consider
the
atomic
list,
as
if
it
was
a
string.
So
if
it
changes
it's
a
change
the
set,
I
would
say
if
it's
tricked,
then
you
can
change
the
set.
If
it's
add
only,
then
you
can
add
items
to
the
set.
If
it's
delete,
if
it
allows
deletion,
then
you
can
delete
stuff
from
the
list
and
what
is
the
other
case,
an
associative
list?
B
You
should
kind
of,
like
I
said,
as
in
the
keys,
can
be
added
or
they
can
be
deleted.
The
set
of
keys
that
you
have
in
the
list
can.
B
D
B
D
Okay,
yeah
mine
makes
sense.
Okay,
I
follow
up
with
you
offline
about
this
one.
I
just
wonder.
I
think
there
might
be
a
very
used
consent.
Some
users
just
want
to
mark
a
list,
that's
immutable
and
don't
allow
change
anything,
don't
allow
adding
stuff,
don't
allow
the
linking
stuff
and
don't
allow
changing
existing
values.
A
Yeah
yeah,
like
it
lists
mutability
like
I,
don't
know,
items
that
means
the
items
are
immutable
and
and
and
list
the
list
itself
is
immutable
or
something
like
that.
B
B
D
Awesome:
okay,
yeah
yeah,
I
I
I
keep
thinking
about
it
and
we
can
suck
on
the
back
with
the
dog
or
email
threat.
Thanks.
B
Okay
and
last
we
don't
have.
We
have
lots
of
things
left
in
the
working
group.
Reply
topics,
work
items;
okay,
we
have
to
agree
on
the
name.
B
And
we
still
need
to
also
the
heart
deadline
that
we've
set
for
the
the
servers
are
to
play
with.
Ga,
I
think,
should
include
the
testing
and
the.
B
B
A
A
B
Yeah-
let's,
let's
finish
it
for
good
yeah
and
before
we
before
we're
done
with
that.
So
before
april
15th,
I
have
to
write
a
document,
because
I
have
a
million
changes
that
I
want
to
make
to
the
open
api,
and
so
I'm
going
to
try
and
work
on
describing
these
changes
sounds
interesting,
yeah
and
I'll
talk
in
two
weeks
about
these.
If
you
want.
A
Yeah,
I
don't
mind
by
the
way
I.
C
A
B
B
A
A
B
I
would
want
someone
to
propose
and
work
on
splitting
the
open
api
background
version,
or
maybe
just
group,
so
that
when
you
do
slash
open
api,
slash
v2
on
the
api
server,
you
actually
get.
You
can
do
slash
open
api,
slash,
v2,
slash,
call
I'll,
slash,
open
api,
slash,
v2,
slash
apps,
and
you
just
get
the
open
api
for
this
specific
group,
and
that
would
probably
helps
alleviate
some
of
these
problems.
B
B
A
All
right
cool
does,
with
things
open
for
apply.
Does
anybody
need
help
in
specific
anything?
I
should
help
with.
If
you
do
feel
free
to
ping
me.
A
Yes-
and
I
looked
through
a
few
of
those
links
and
there
were
like
check
box
tasks
in
some
comments-
I
try
to
see
and
somewhere
should
be
checked,
but
weren't
checked
and
like
for
some.
I
found
something
you
couldn't
update.