►
Description
No description was provided for this meeting.
If this is YOUR meeting, an easy way to fix this is to add a description to your video, wherever mtngs.io found it (probably YouTube).
A
Hi,
everyone
today
is
thursday
february
17th,
and
this
is
the
cluster
api
provider
azure
office
hours.
If
you
are
joining
us
for
the
first
time
and
you
need
access
to
the
stock
and
to
join
the
sick
cluster
life
cycle
mailing
list.
As
always,
please
add
any
discussion.
Topics
to
the
agenda
be
respectful
of
everyone.
If
you'd
like
to
speak,
please
raise
your
hand.
A
A
Okay,
I
guess
no
one
knew
today.
So
all
right,
let's
skip
forward,
and
I
guess,
let's
start
with
the
code
walkthrough
jonathan.
Are
you
ready.
A
B
C
A
C
We
wanted
to
make
it
so
that
when
you,
when
you
are
waiting
on
a
service
to
get
back
to
you,
you
don't
have
to
just
return
and
start
over
or
not.
You
don't
have
to
just
wait
and
be
stuck
in
this
loop,
because
otherwise
you
wouldn't
have
any
feedback
until
until
like,
for
example,
security
oops
is
finished.
So
what
we
did
with
the
async
services
is
we
made
it
so
that
when
create
or
delete
long
operation
starts,
it'll
return
a
future?
C
C
C
C
All
right
cool,
sorry
about
that,
so
inside
our
create
resource
function,.
C
We
use
this
to
create
an
interface
for
creating
resources,
so
we
pass
in
a
spec
and
then
this
applies
for
any
any
service.
So
when
we
go
into
here,
we
call
our
creator
interface
to
see
if
there's
an
existing
resource.
C
If,
if
there
is,
we
can
just
return
it
and
then,
if
not,
we
can
get
the
parameters
based
on
that
spec
and
if
the
parameters
show
up
tell
us
that
it's
nothing
to
do
we
just
return,
and
if
there
is
something
to
do,
we
can
call
creator,
update
async,
which
is
one
of
the
interface
functions,
and
then
it
returns
a
future,
and
then
we
can
return
that.
So
we
don't
have
to
wait
on
the
result
and
then,
similarly
for
delete
resource.
C
We
try
to
check
if
there's
something
an
operation
going
on.
If
there
is,
we
try
to
check
if
it's
done
and
if
there
isn't
an
operation,
we
can
go
ahead
and
start,
and
so
we
try
to
call
the
wii
async
get
a
future
set
the
operation
and
if
the
resource
isn't
there,
we
don't
return
an
error
and
we
can
break,
and
so.
C
C
C
So,
for
example,
a
subnet
has
its
name,
the
name
of
the
veena,
it's
a
part
of
and
the
name
of
the
resource
group,
and
then
we
have
the
parameters,
and
so
the
parameters
function
will
return,
that
parameters
for
the
azure
sdk,
and
so
by
having
this
implementation,
not
only
do
we
get
to
have
asynchronous
services,
but
we
also
clean
up
the
code
a
lot.
So
let
me
show
you
an
example
of
of
of
a
refactored
async
service.
C
So
here,
for
example,
is
the
bastion
host
service,
so
in
our
in
our
spec
function
file
we
we
moved
the
spec
struct
from
types.go
into
the
service
itself,
and
here
we
can
define
all
the
information
we
need
and
we
use
this
to
implement
the
interface.
So
we
have
resource
name,
resource
group,
name
and
owner
resource
name
and
a
lot
of
the
times
there
is
an
owner
resource.
So
we
just
return
a
blank
string,
and
so
here
we
have
the
parameters
so
in
the
parameters
function
we
take
in
an
existing
interface.
C
C
And
then
in
the
client
functions
we
implement
get
creator,
update,
async,
delete,
async
is
done
result
and
so,
when
create
update,
async,
it's
pretty
straightforward,
based
on
what
we
showed
before
we
it's
pretty
similar
to
what
the
create
function
did
before.
So
we
get
a
create
feature
instead
of
just
a
result,
and
then
we
try
to
wait
for
the
completion
ref
and
if
there
is
a
result
we
can
get,
then
we
can
return
it
and
otherwise.
C
C
We
try
to
resolve
the
future
result,
and
so
in
this
refactored
code,
when
we
get
to
the
reconcile
part,
it
becomes
extremely
simple.
So
all
we
have
to
do
is
put
in
the
spec
getter
and
then
we
try
to
get
the
spec.
If
it
exists,
then
all
we
have
to
do
is
call
s-dot
create
resource,
and
that
way
our
code
is
much
cleaner
here
and
also
our
code
is
much
easier
to
test,
because
in
this
case
we
don't
have
to
worry
about
testing
anything
related
to
spec.
C
Won't
depend
on
the
spec
because,
because
the
generation
of
the
spec
and
the
parameters
is
is
in
spec
files,
so
that's
an
example
of
a
service
where
you
only
have
one.
You
only
have
one
resource
and
I'll
show
an
example
of
a
service
where
we
have
multiple
resources.
C
C
C
First,
we
return
operation,
not
done
error.
C
An
error
creating
well
first
we'd,
return,
a
error,
creating
an
creating
a
progress,
error
or
no
error.
So
this
is
the.
This
is
the
logic
we
have
for
checking
the
error
types,
and
we
are
also
thinking
about
adding
adding
some
new
like
an
additional
interface
or
something
for
handling
errors,
because
in
the
future
we
might
have
more
complicated
error
handling
and
we
might
not
want
to
do.
C
So
so
in
general,
these
are
the
very
simple
cases
for
refactoring,
but
there
are
also
some
that
are
a
bit
more
complicated,
for
example,
in
inbound
nat
rules
we
have
to
do.
We
have
to
be
able
to
get
the
existing
rules
first,
in
order
to
construct
the
specs
and,
for
example,
in
the
vm
service.
C
There's
still,
we
call
we
create
the
resource,
but
we
still
have
to
set
a
lot
of
functions
based
on
the
results,
but
in
general
this
refactor
cleans
up
a
lot
of
the
code
and
also
allows
us
to
get
a
lot
more
feedback
in
this
loop,
because
we
don't,
we
don't
have
to
wait
for
every
function.
To
finish
before
we
can
exit
the
record
stop
function.
E
C
Yeah
yeah,
so
so,
if
it
exists,
we
don't
return
it
just
yet
and
if
it
exists
we
go,
we
go
into
the
parameters
to
determine.
Oh,
yes,
I
see
we
need
to.
If
we
need
to
return
or
not
so
a
lot
of
the
times
it
doesn't.
We
don't
need
to
look
into
anything.
We
just
see.
If
it
exists,
we
can
we
can
return,
but
for
some
of
the
other
services
I
think
subnets
right
now.
I
don't
think
it's
subnets,
but
pretty
much
we
could
we
could
check.
C
I
thought
there
was
something
in
the
subnet
service,
but
so
we
could
check
whatever
we
needed
before
we
turn
now.
Otherwise
we
could
just
break
out
of
here
and
just
do
the
update.
C
C
If
we
get
an
existing
resource,
we
cast
it
and
if
it's
the
correct
type,
we
try
to
figure
out
if
all
the
front-end
ips
load,
balancing
rules,
back-end
address,
pools,
outbound
rules
and
probes
are
up-to-date
and
if
we
don't
need
to
update
anything,
we
return.
Otherwise
we
go
in
and
create
a
new
spec,
and
then
we
return
that
we
create.
We
create
the
new
parameters.
E
E
E
C
I
think,
but
I
think
yeah
you
bring
up
a
good
point.
Sometimes
it's
it's
not
that
easy
to
factor
in
the
specs
before
a
lot
of
times.
We
would
just
get
everything
we
needed
in
the
loop
yeah
so
so,
like
you
know,
this
is
a
this
is
an
example
for
inbound
nat
rules
where
we
had
to
fetch
the
existing
rules
first,
in
order
to
call
the
specs.
D
F
F
More
of
a
comment
than
a
question,
so
one
thing
I
observed
after
making
the
async
changes
is
that
in
logs
we
often
see
like
errors
saying
that
it
is
like
it's
intending
to
reconcile
so
for
for
a
new
user.
This
might
be
a
little
off-putting.
So
should
we
add
some
documentation
on
anything
to
say
hey.
This
is
not
like
the
resource
page
during
creation.
It's
just
like
expanding
something
like
that.
F
F
Yeah
yeah,
so
I
know
if
you
read
the
logs
carefully,
we
if
we
know
that
it's
there's
nothing
wrong
going
on,
but
when
I
first
look
at
it
it
seems
like
something
has
contracts,
so
it
might
be
useful
if
we
add
some
pointers
for
the
user,
saying.
C
Yeah
yeah
yeah,
I
think
the
operation
not
done
error
could
be
a
little
confusing,
especially
since
it's
listed
as
an
error
when
we're
just
waiting.
So
I
think
that's
to
go
into
what
cecile
and
I
were
talking
about
with
adding
some
more
like
an
interface
or
something
to
handle
air
and
all
the
error
precedence
or
like
returning
a
list
of
errors.
So
that
way
we
can
maybe
like
add
logs
or
something
if
we
have
an
operation,
not
done
to
say
that
by
the
way
you
know
we're
just
waiting,
it's
not
necessarily
broken.
A
So
we
can
see
everything
but
most
users,
if
they
don't
increase
the
velocity
level
like
explicitly,
they
wouldn't
get
those
errors
at
all
in
fairbox
and
they're
not
getting
marked
as
errors
in
the
defense
either.
So
if
you're,
a
normal
user
and
you're,
not
increasing
your
verbosity,
the
idea
is
that
you
don't
even
see
this.
C
Oh,
by
the
way,
was
there
something
in
the
pr
you
wanted
to
look
at
gosh.
E
You
know
I've
sent
you
like
another
link,
yeah
click
on
that.
I
think
that
explains
if
you
go
to
roll
aside
but
start
going,
why
I
can't
see
it
here
if
you
go
to
like
role
assignments,
dot
profile
area
yeah,
you
come
down
yeah.
So
if
you
see
on
line
number
990.
E
Yeah
right
so
yeah
I
mean
this
is
the
place.
You
know
where
I
had
to
actually
pass
in
an
argument
because
I
you
know
couldn't
get
principal
id
without
doing
an
api
call,
so
yeah
yeah,
and
then
this
role
assignment
spec
it
just
gets
set
into
the
so
we
actually
set
into
that
role.
Assignments
extract
this
principle,
id
yeah.
C
E
Yeah
sure
I'll
just
think
about
that
and
yeah
like
also
if
we
in
like
specs,
you
know
we
have
like
three
functions
like
I
can't
remember
the
name,
three
methods
I
was
thinking
you
know
if
we
could
have
a
method
that
actually
returns
a
key
value
pair
kind
of
thing.
You
know
so
that,
if
required,
we
could
fetch
arbitrary
fields
from
that
particular
spec.
E
E
Yeah,
sorry,
I
think
my
connection
is
unstable,
so
what
I
was
saying
is
that
you
know
we
have
three
methods
for
this
particular
service
spec,
and
I
was
thinking
if
we
could
have
one
more
method
that
allows
us
to.
E
Yeah
I
mean
that
was
just
a
thought
when
I
was
trying
to
do
that,
I
thought
I
needed
that
I
did
a
workaround
though,
but
yeah
that
is
also.
These
are
the
two
things
that
I
felt.
While
I
was
doing
this
pr,
I
will
write
it
about.
You
know
in
a
discussion
and
issue
so
that
we
have
better
context
and
I'm
breaking
also
so
sorry
about
that.
I
think
all
right.
C
We
have
access
to
the
clients
in
the
reconcile
functions
and
ideally,
we'd
like
to
be
able
to
get
everything
we
need
inside
the
spec,
the
spec
getter.
But
it's
it's
not
exactly
super
straightforward
to
try
to
refactor
the
client
calls
into
mycluster.gov.
D
Yeah
this,
actually
it's
a
little
bit
of
a
rewind,
so
everybody
hear
me
all
right,
yeah,
yeah,
all
right,
good,
good
good,
so
I
think
the
the
first
problem
with
errors,
the
transient
errors,
particularly,
is
that
we
call
them
errors,
so
verbiage
is
important
there
right.
So,
if
we
are
saying
something
is
an
error,
then
that
that
likely
means
that
there's
there's
something
abnormal
going
on.
D
I
I
think
we
need
to
reflect
on
how
how
we
name
that
to
reflect
as
cheyenne
had
mentioned,
the
insignificance
of
this
this
type
of
behavior,
the
log
level,
is
also,
I
think,
appropriate
right
or
using
a
you
know.
It's
usually
quiet,
or
at
least
it
should
be
for
most
users,
the.
D
The
transient
barriers
are
really
just
expected,
like
they
are
something
that's
expected
and
we
don't
normally
throw
debug
up
to
the
user,
and
we
just
need
to
reflect
on
that
and
figure
out
exactly
how
we
need
to
talk
about
it.
I
I
don't
think
that,
like
adding
documentation
is
good,
but
we
can't
expect
people
like
people.
Don't
read
the
docs
like
half
the
time.
They
don't
read
the
documentation.
So
they're
gonna
see
this
and
just
be
like.
D
Oh
my
gosh
there's
there's
something
bad
happening,
so
we
need
to
make
it
clear
even
to
the
most
naive
observer,
that
this
is
something
expected
and
something
that
will
eventually
reconcile.
C
Yeah
yeah,
I
think
it
does
so.
It
looks
like
in
when
we're
trying
to
check
if
the
resource
exists
and
we
get
like
a
not
done
error.
For
example,
we
just
suppress
it
and
return
nil,
so
that
maybe
we
could
try
if
we
could
try
to
check
to
see
if
it's
a
not
done
error
or
something,
and
then
at
least
return
some
log
or
set
some
flag.
D
I
think
I
think
at
the
higher
level,
it'll
be
more
appropriate
so
where
we
actually
report
it
in
the
reconciler
is
probably
like
at
the
top
level
of
the
record
seller.
We
catch
these
and
we
handle
them
differently.
Based
on
what
type
of
error
it
is
it's
good
to
send
these
back
up,
because
you
know
the
record
seller
needs
to
know
hey.
I
need
to
queue
myself
up
for
a
later
time
period
that
that's
okay,
that's
good!
It's
just
it's
just
how
we're
reporting
on
at
that
level.
I
think.
A
It
if
you
look
at
the
azure
cluster
controller,
the
link
I
sent
earlier
we're.
Actually
we
are
doing
like
we're,
not
calling
it
an
error.
If
it
is
an
operation,
not
done
so,
I
think
there's
like
two
types,
there's
transient
errors
that
are
actually
errors
like,
for
example,
we
send
a
call
to
azure
and
azure
gives
us
a
you
know:
internal
service
error.
A
Try
again
later,
then
that's
a
transient
error
that
we
want
to
handle
and
then
try
again,
but
then
there's
operation
not
done
which
we're
like
kind
of
disguising
as
in
there,
because
it
allows
us
to
like
try
again
later
in
the
controller.
But
it's
not
really
an
air
from
the
user
perspective.
He's
completely
expected,
as
david
said,
so
for
that
one
we're
like
treating
it
separately
on
its
own
and
java.
A
If
you
can
go
to
azure
cluster
controller
at
the
end
of
themselves,
in
the
controller,
okay,
yeah
and
then
look
for
transit
or
inside,
though
you
can
sell
at
the
bottom.
A
Go
down,
I
think,
probably
yeah
right
there
so
see
how
it
says.
If
it's
transient,
then
there
are
two
cases:
either
it's
the
operation
not
done
or
it's
not
and
then,
if
it
is
an
operation
of
them,
we
don't
use
the
word
error
on
purpose
right.
We
say
the
reconcile
is
not
done.
We
don't
say
error
is
not
done
so
I
think
we're
sort
of
trying
to
do
that.
I
don't
know
if
it's
still
like
too
aggressive
to
the
user.
A
Worries,
I
was
just
saying
like
we
are
like
not
treating
operation.
Members
like
to
the
user,
like
the
user
facing
log,
doesn't
contain
the
word
error.
If
it's
a
operation,
is
that
what
you
think.
D
D
I
I
I
think
it's
just
getting
that
out
of
the
eyes
of
folks,
I
mean
we
want
that
there
right.
We
want
that
there
for
devoting
so
that
we
can
understand.
What's
going
on,
it's
just
you
know
what
level
and
how
we
word
it
in
there
we're,
I
think,
wording
it
appropriately.
D
The
transient
failure
is
something
that
we
we
probably
want
to
bubble
up
a
little
bit
higher,
because
that's
that's
a
little
scarier
like
like
you
said
you
could
imagine
they're,
you
know
throttling
errors
or
something
like
that.
You
want
to
be
able
to.
Let
somebody
know
hey.
There
might
be
something
else
going
on.
A
All
right
well,
thank
you
so
much
jonathan
for
showing
this
to
us.
This
is
recorded.
A
So
if
anyone
missed
this,
they
can
check
it
out
and
if
yeah,
if
anyone
has
feedback
on
doing
this
kind
of
form
of
code
walkthrough
every
once
in
a
while
during
office
hours,
please
let
us
know
we're
trying
this
out
for
the
first
time
today,
but
there
are
any
other
topics
that
people
would
like
to
see
or
if
anyone
needs
to
volunteer
to
show
something
up
and
like
do
a
demo
or
do
a
could
walk
through
a
specific
area
of
the
code.
A
That
would
be
awesome.
Please
reach
out
all
right.
Let's
just
go
through
the
rest
of
our
agenda
and
then.
F
A
A
couple
of
items
all
right
windows,
dock
machine
into
unfailures.
E
Yeah,
I
was
not
able
to
understand
like
what's
the
failure
with
the
doctors,
and
so
I
just
wanted
to
check.
Has
there
been
any
flaky
fails
with
this
like,
like,
I
couldn't
make
sense
of
the
locks
when
I
saw
like
like
what's
going
wrong
and
the
pr
that
I've
raised,
I
don't
think
it
anyhow
impacts.
It
is
just
a
customized
change,
so.
A
Yeah,
I
don't
think
we're
aware
of
this,
like
known
issue
with
the
doctorship
end-to-end
test,
specifically
so
yeah.
If
you
could
link
the
pr,
maybe
in
the
tests,
failure,
link
and
slack
and
we
can
help
you
take
a
look
james,
I
don't
think
you're
tracking
them
either
right.
E
A
Cool
and
the
other
one
is
me,
I
just
wanted
to
let
everyone
know
the
the
conformance
test
on
kubernetes
main
branch
started
failing
overnight
yesterday.
It
was
it's.
Do
we
think
to
well?
You
know,
due
to
cuba,
dm
merging
a
pr
in
kubernetes
main
for
124,
which
removes
the
master
role
on
nodes
and
it's
deprecated
in
favor
of
control.
A
James
and
I
were
looking
into
this
yesterday
and
we
have
this
like
improv
spr
for
cab,
z
to
add
the
control,
planes
needs
and
tolerations
for
metric
server
and
calico,
which
are
in
type
z,
and
then
I
also
realized
this
morning,
there's
also
pr
and
cluster
api
which
actually
has
to
do
with
pcp,
which
is
required
for
this
to
work
for
124..
A
So
I'm
talking
to
folks
in
the
cluster
api
channel
right
now,
we're
probably
going
to
do
a
patch
release
for
to
get
this
pr
out,
so
we
can
consume
it
in
canvas
and
fix
components.
A
In
terms
of
testing
in
general,
there
are
two
flicks
recently
which
we've
tried
to
address.
I
think
we're
in
a
better
place
now,
but
just
continue
to
report
flights,
if
you
see
them
and
if
there's
especially
like
patterns
of
flakes,
feel
free
to
open
an
issue,
and
we
can
try
to
deflate
our
tests
as
much
as
possible
and
get
towards
the
signal.
A
It's
not,
I
guess,
to
close
two
things.
First
thing
is
we're
planning
on
releasing
1.2
at
some
time.
Next
week
there
are
two
pr's
that
we're
hoping
to
get
in
before
then.
First
one
is
the.
A
First,
one
is
the
azure
cluster
template
type,
which
will
help
us
support
cluster
class
in
casey
and
then
the
second
one
is
the
conditions
making
sure
we
only
show
the
right
conditions
if
this
resource
was
actually
created,
so
jonathan
has
appeared
for
that
should
get
merged
soon,
and
besides
that,
I
know
there
are
a
lot
of
pr's
open.
We
probably
can't
wait
for
every
pr,
but
if
anyone
has
like
a
specific
care
that
they
think
is
really
important
should
go
into
the
release.
A
Please
please
please
tell
us
ahead
of
time,
so
we
can
plan
for
it
and
if
not,
there
will
be
another
release
after
that.
So
yeah
don't
worry
about
not
getting
your
pr
in
this
specific
place
and
yeah.
We
didn't
not
do
very
well
at
doing
the
milestone
planning
this
time
around.
I
think
we
kind
of
let
ourselves
go
on
that
side
and
forgot
to
create
a
new
1.2
muscle
when
we
started
the
cycle,
but
for
1.3.
A
I
think
we
should
try
to
be
a
bit
more
on
top
of
that
and
make
sure
that
we're
putting
stuff
in
the
milestone
that
we
want
to
see
and
we
can
discuss
like
the
cycle
length.
I
guess
once
we
release
1.2,
but
I'm
thinking
around
one
or
two
months
kind
of
what
we've
been
doing
seems
to
be
working.
So
let's
try
to
work
around
that.
A
Okay
and
then
I
guess
last
thing
is
next
meeting
is
going
to
be
on
march
3rd.
I
will
add
the
agenda
now,
I'm
going
to
start
trying
to
add
the
agenda
for
the
next
meeting
at
the
end
of
the
previous
meeting.
So
people
can
add,
you
know,
items
and
stuff
as
they
come
up
and
then
also
I
would
love
if
someone
could
volunteer
to
host
the
next
one
on
the
great
and
if
anyone
has
a
could
walk
through
that
they
want
to
give
these
with
jobs.
A
So
I
will
leave
this
here
and
everyone
if
anyone
wants
to
sign
up
to
facilitate.
Please
write
your
name.
A
I
think
that's
all
for
today.
Any
last
minute
comments,
questions
concerns.