
►
From YouTube: Knative Community Meetup Feb/ Fast iteration on Knative applications using Tilt by Evan Anderson
Description
Demo:
Knative makes deploying cloud-native serverless applications easy, but what about building those applications? Tools like Tilt and Skaffold enable tight “inner loop” development on Kubernetes, but how do they interact with the Knative autoscaler or event-driven applications? Come see Evan build an application using Tilt and Knative.
A
Okay,
so
this
was
inspired
as
background
by
some
work
that
we've
been
doing
at
vmware
to
make
applica
application
development
easier
with
a
whole
suite
of
things.
That's
called
tanzu
app
platform,
but
the
thing
that
I
thought
was
particularly
interesting
was
the.
A
What
people
are
are
here
are
calling
the
inner
loop
development
experience
with
tilt,
which
is
pretty
neat,
and
I
hadn't
seen
written
up
combining
it
with
k-native
before
and
we'll
talk
a
little
bit
at
the
end
about
both
how
it
works
and
how
it's
gotten
better
recently,
and
it
was
used
to
be
a
bit
tricky
and
yeah.
Thank
you
all
for
joining.
A
It
looks
like
we've
got
a
pretty
full
house
here,
so
the
basic
problem
that
we're
trying
to
solve
here
is
how
do
we
replace
local
development,
because
local
development
is
pretty
awesome
and
this
doesn't
solve
all
of
it,
but
it
solves
one
of
the
challenges
of
local
development,
which
is
that
when
you're
running
locally,
everything
is
just
really
fast
and
then
you
go
and
say:
hey
I'm
going
to
build
a
container
image
and
even
if
you're,
using
co,
it
puts
some
extra
weight
and
delay
on
okay.
A
So
it's
just
slower
to
run
this
stuff
on
the
cloud
where
it's
got
access
to
all
the
other
stuff
you
want,
where
you
can
hook
it
up
to
a
k-native
broker,
where
you
can
hook
it
up
to
your
existing.
You
know
redis
or
cassandra
or
whatever
database
environment.
You've
got
you've,
got
all
those
secrets
there
and
stuff
like
that:
it's
easier
to
hook
up
stuff
like
ssl
in
the
cloud
when
you've
got
a
publicly
accessible
endpoint
than
when
you're
running
on
your
local
machine.
A
So
tilt
is
a
process
that
runs
locally,
that
watches
all
the
files
of
your
application
and
when
it
sees
any
of
those
files
change
it
automatically
rebuilds
them
and
can
push
that
build
to
a
registry,
and
then,
when
the
build
is
completed,
update
your
manifest
if
they
need
updating
on
the
cluster,
and
so
that
kind
of
just
sounds
like
we've
made
the
existing
build
stuff
more
efficient,
but
it
also
has
some
other
capabilities
around
managing
manifest
and
letting
you
run
extra
stuff
in
order
to
get
your
cluster
set
up
that
we're
not
going
to
go
into
here.
A
So
the
idea
is
really
sort
of
as
a
wrap
around
local,
not
local,
but
you
know
your
development
environment
setup
experience
and
for
those
of
you,
who've
had
a
set
up
your
development
environment
script.
You
can
see
why
maybe
having
some
standard
infrastructure
for
doing
it,
that's
designed
for
speed
would
make
sense.
A
And
yeah,
so
I'm
gonna
give
you
a
demo
in
just
a
moment
of
how
quick
the
feedback
is,
but
quick
feedback
really
helps
when
you're
trying
to
figure
things
out.
I
am
not
a
typescript
or
a
javascript
person.
A
All
this
stuff
is
kind
of
foreign
to
me
as
you,
so
you
can
laugh
at
my
typescript
and
I
will
not
be
offended,
but
we're
gonna
go.
Take
a
look
at
what
this
looks
like.
A
Yes,
great,
okay,
so
we're
gonna
start
with
a
pretty
simple
react
application
and
you
can
see,
I
reloaded
it
and
it's
got
styles
and
stuff,
and
so
this
actually
consists
of
two
components.
So
we've
got
a
react
single
page
app
over
here
and
you
know:
here's
the
standard
react
header
pretty
much,
and
then
here's
a
message
list
that
I've
implemented
down
below.
A
But
the
interesting
part
is
that
we
fetch
this
docs
url,
which
is
actually
implemented
by
a
separate,
express
server
down
here
and
you
can
see,
we've
got
two
items
right
now
and
if
we
take
out-
and
you
can
see
that
right
now-
it's
in
a
flow
that
just
goes
across
horizontally.
A
That's
this
thousand
number,
and
so
basically,
by
the
time
I
get
over
to
the
tab,
the
back
end
code
has
already
updated
and
is
displaying
new
stuff,
and
so
it's
really
easy
to
go
in
and
play
with
your
css
as
well
as
your
content.
So
let's
make
all
of
these
red
and
then
for
the
react
app.
A
You
do
need
to
reload,
but
you
can
see
that
already
it's
red,
I'm
gonna
switch
it
back
to
white
because
you
even
my
non-designer
eyes,
can
tell
that
that's
kind
of
ugly,
and
so
it's
also
pretty
easy
for
me
to
mess
around
and
say
you
know:
oh
hey!
What
if
I
want
to
make
count,
be
a
string
instead
and
then
I
can
go
over
here
and
I
can
reload
and
nothing
has
changed.
But
now
I
could
mess
with
this
and
say.
A
So
this
is
going
to
give
us
a
list
of
tuples,
so
we
get
a
tuple
and
we're
going
to
return
because
we
want
the
same
format,
so
I
don't
have
to
go
back
and
mess
with
both
sides
of
code
at
once.
I
zero
is
going
to
be
the
name
and
count
is
going
to
be
the
value
which
is
going
to
be
a
string,
but
I
adjusted
the
other
side
to
be
happy
with
strings,
and
so
I
save
this
and
I
come
over
here.
A
There
we
go
an
error
occurred,
so
the
other
great
thing
when
you've
got
tilt
open
is
you
can
see,
I've
got
tilt
running
down
here
and
I
can
type
s
and
I
can
get
all
the
logs
streamed
out
from
the
application
and.
B
A
Aha,
now
we've
got
all
of
our
environment
variables,
so
you
can
see
how
it's
you
know.
The
hard
part
is
actually
like
figuring
out
your
code
and
not
waiting
for
the
compilation
to
happen.
A
So
and
now
I'm
going
to
show
you
so
when
tilt
is
running,
it
actually
also
starts
an
internal
web
server
in
addition
to
that
stream,
so
you
can
actually
scroll
through
and
see
all
of
the
you
know,
all
of
the
internal
logs
and
all
the
builds
and
so
forth
that
have
gone
on.
So
you
can
see
one
file
changed
here.
A
And
one
of
the
magic
things
that
makes
this
so
fast
is
that
tilt
actually
cheats
and
supports
a
concept
called
live
update
where,
if
your
container
is
built
correctly,
it
will
copy
the
files
directly
into
the
container
and
then
either
run
a
command
in
the
container
to
update
it
or
if
your
application
already
supports
noticing
when
the
file's
changed.
It
will
just
do
that
and
you
won't
get
a
new
container
image
since
we're
running
with
nodemon,
which
rebuilt
your
node
application
every
time.
The
files
change
that
happens
automatically.
A
And
so
we
don't,
we
don't
actually
need
to
deploy
a
new
k-native
revision,
for
example,
while
we're
in
this
inner
loop
trying
things
out.
Instead,
we
just
have
a
bunch
of
containers
which
are
dirty
effectively,
and
so
you
wouldn't
necessarily
want
to
use
this
for
your
production
environment.
But
it's
really
fast
for
development,
and
you
also
have
access
to
like
your
kubernetes
secrets
and
things
like
that.
A
So
you
used
to
have
to
do
that
tilt
used
to
only
be
able
to
live,
update
a
single
pod.
They
fixed
that
one
or
two
releases
ago.
So
now
it
handles
zero
or
more.
A
You're
right
so
in
my
case
with
my
development,
I
haven't
needed
to
do
that
because
I
have
this
constant
polling
going
on
in
the
background
which
is
keeping
the
pod
alive.
A
But
if
I
didn't
do
that
then
yeah
when
it
shut
down
and
started
back
up
again,
then
all
the
live
updates
would
disappear
until
I
saved
and
then
everything
would
get
copied
over
and
it
would
update
okay
thanks
yeah,
so
yeah,
that's
a
good
point
and
I
used
to
have
min
scale
settings
in
there
and
then
I
took
them
out.
I
was
like.
I
don't
need
these
anymore
great,
and
so
I
should
probably
put
those
back
in
and
we
can
watch
that
in
a
little
bit
too.
A
But
the
other
thing-
that's
really
smart.
That
tilt
does
is
that
it's
got
some
definitions
of
what's
in
your
project
and
if
the
code
didn't
change,
then
it's
not
going
to
kick
off
a
new
build.
If
your
kubernetes
yaml
didn't
change,
then
it
doesn't
need
to
update
the
resource
and
so
that
lets
it
do
these
steps
as
fast
as
they
can
be.
A
So
yeah
I
took
an
existing
react
application.
I
built
the
react,
application
first
developed
on
it
all
locally,
and
then
I've
got
two
files
that
I
had
to
add
is
pretty
much
the
sum
total
in
order
to
get
things
working
on,
it
was
actually
one
more
change.
I
also
ended
up
adding
a
single
command
that
started
both
both
the
api
server
and
the
react
server.
A
When
I
got
started,
it
was
really
easy
to
just
run
two
separate
processes,
but
if
I
want
to
run
a
single
container
at
the
end
of
the
day,
then
I
wanted
to
to
put
them
all
into
one
place.
You
could
also
do
this
as
two
different
containers-
one's
a
sidecar
of
the
other,
but
I
decided
I
would
just
bundle
it
all
into
one
container
and
so
yeah.
So
the
two
things
that
you
need.
A
You
absolutely
need
a
tilt
file
and
you
probably
want
a
kubernetes
manifest,
and
so
I
wrote
a
k-native
service
for
this
and
we're
going
to
take
a
look
at
these
files
a
little
bit
so
we're
going
to
start
with
the
tilt
file,
which
is
the
instructions
for
tilt
and
I've
annotated.
All
this
stuff,
so
if
you
follow
the
vanilla
path
for
tilt,
you
end
up
with
a
docker
file
and
then
you
get
to
do
all
sorts
of
fun
in
optimizing.
A
Your
docker
file
to
load
fast
and
stuff
like
that,
and
I'm
not
really
interested
in
that.
So
there's
an
extension
that
uses
build
packs,
and
so
I
was
able
to
just
get
my
application.
A
You
know
ready
to
go
and
then
just
use
pack
build
to
verify.
It
worked
and
then
load
the
pack
extension
up
here
on
the
first
line
and
then
down
here
define
here's
where
to
you
know:
here's
where
to
push
it
ignore
these
files.
My
you
know,
git
ignores
and
stuff
like
that,
my
eslints
and
then
ignore
the
tilt
file
and
the
service
yaml
for
the
build,
because
we
don't
use
them
anymore
or
we
don't
use
them
in
the
build
weather,
vela.
B
B
For
the
I
see
you
specified
the
service
there
is
there
a
way
to
go
ahead
like
if
you
needed
to
go
in
that,
like
I
don't
know,
say
an
arg
or
environmental
variable?
Can
you
also
go
and
put
a
pointer
like
hey
here
by
the
way,
is
the
the
service
definition?
A
Do
have
a
variable
that
I
needed
to
set
so
yeah.
If
you
have
this,
if
you,
if
you,
if
you
have
the
slides,
you
can
skip
ahead
and
see
the
answer
so
there's
this
build
pack
section
at
the
top
and
then
there's
this:
how
to
build
the
build
pack.
The
sort
of
the
ignore
thing
is
kind
of
nice.
The
key
part
is
this:
live
update,
so
fall
back
on
says
when
one
of
these
files
has
changed,
you
have
to
do
a
build.
A
You
can't
just
push
it
up
there
again,
because
the
package
json
has
the
command,
that's
used
to
start
things,
and
so
that's
how
that
happens,
and
then
sync
dot
to
workspace
workspaces,
where
all
your
code
gets
loaded
in
the
build
pack,
and
so
this
is
basically
saying
any.
You
know
anytime
a
file
changes
under
dot.
A
That's
not
one
of
the
ignored
files
copy
it
up
and
depth
says
these
are
the
directories
that
are
involved
in
this
build
and
again
I'm
lazy,
and
so
I'm
like
everything
into
one
container,
go,
and
so
I
actually
have
two
npm
node
modules
directories
and
everything
else,
one
nested
inside
the
other
and
we'll
take
a
look
at
that
later
on
when
we
look
at
the
application
a
little
more.
So
that's
the
that's
the
get
me
a
container
side
of
the
tilt.
A
The
other
side
is
I'm
declaring
because
tell
doesn't
know
anything
about
k-native
services
that
there's
a
kind
called
service.
It's
api
version
is
this,
and
images
live
inside
this
location.
A
So
when
you
need
to
fill
in
an
image,
those
are
the
places
where
you
would
go
to
look
for
an
image
to
fill
in,
and
this
next
thing
is
a
nice
thing
that
tilt
has
because
tilt's
building
these
kind
of
weird
things
and
is
running
stuff
in
a
not
really
immutable
container
kind
of
way
by
default.
It
will
only
work
against
things
like
mini
cube
or
known
ephemeral
spaces.
A
So
if
you
have
a
cluster,
that
is
a
real
cluster,
you
need
to
add
this.
Allow
kubernetes
contexts
to
say.
Yes,
you
can
work
against
this
cluster.
Otherwise
it
will.
You
know
if
I
take
this
line
out
and
I
try
to
run
tilt
up,
it
will
say:
oh
no,
you
know
I
don't
I
don't
know
what's
going
on
here,
but
you
might
be
running
against
production.
A
So
that's
that
that
I
thought
was
a
nice
touch
on
their
part
to
realize
that
as
a
as
a
developer
tool,
maybe
you
wanted
to
make
sure
that
you
didn't
have
a
foot
gun
and
pointed
at
production
and
then
the
last
two
things
are
down
here
at
the
bottom.
This
kate's
yammel
says
here's
the
yaml
to
deploy.
A
This
has
some
set
of
resources
in
it,
apply
it
if
it
changes,
go
ahead
and
apply
it
again,
and
this
last
cage
resource
is
needed
for
k-native,
because
the
server
it
doesn't
tilt
doesn't
intrinsically
know
how
to
find
k
native
pods.
A
If
it
had
a
selector
on
the
object,
then
it
could
kind
of
look
at
the
selector
and
say:
oh
it's
probably
these
pods,
but
since
we've
hidden
all
the
selectors
away,
so
that
users
don't
need
to
know
about
them.
We
do
need
to
tell
tilt
about
them,
and
now
here
is
the
tilt
yaml
that
or
the
the
k
native
service
yaml
that
vla
wanted
to
see,
and
you
can
see
that
right
now
I
don't
have
metadata
annotations
for
min
scale.
A
Then
I'm
overwriting
the
command
because
the
build
pack
will
put
in
a
shell
level
reload
things
that
will
notice
when
a
file
has
changed
and
restart
all
of
my
npm
run
scripts,
which
will
in
turn
start
up
and
start
watching
for
file
changes
as
well.
A
I
don't
need
both,
so
I
just
said:
go
through
the
no
reload
endpoint
which
takes
out
that
outer
shell
restart
everything
loop
and
just
uses
the
inner
more
efficient,
node
loop
and
then
vla
wanted
to
know
about
setting
environment
variables
and
you
have
to
if
you
want
to
run
in
a
production-like
environment,
meaning
when
the
host
header
or
the
host
environment
variable
is
set.
You
need
to
oh
there's
a
special
tilt
extension.
I
never
saw
that
cool
nifty
I'll
have
to
check
that
out.
A
You
have
to
set
this
environment
variable
or
react
will
fail
to
start
up
the
react
server
and
I
wanted
to
use
the
react
server,
because
it's
faster
than
running
react,
build
and
making
a
production
bundle.
Every
time
I
could
have
had
it
make
a
production
bundle
every
time
instead.
A
But
I
said:
let's
get
that
restart
time
as
fast
as
we
can,
and
then
I
needed
to
set
the
container
port
as
well,
because
react
scripts
start
always
listens
on
port
3000
and
I
don't
know
how
to
change
it
because
javascript
is
so
not
my
day.
Job.
A
And
yes,
you
can
you
can
build
with
co
or
jib
or
bazel
or
any
number
of
other
things
as
well?
They've
got.
A
They've
got
a
custom,
build
extension,
which
is
what
the
build
pack
stuff
is
built
off
of,
but
your
builds
are
actually
happening
locally
on
your
machine
for
this
inner
loop
when
you
need
to
do
a
build
and
then
when
you
need
to
do
a
live
update,
the
files
are
just
copied
over
through
some
kind
of
blackmagic
copying
protocol
that
I
don't
haven't
really
looked
at.
A
But
since
0.23
live
updates
supports
multiple
pods
prior
to
that
you
needed
to
be
careful
because
tilt
would
fall
back
to
doing
a
full
container,
build
and
push
the
slow
path
effectively
if
it
discovered
that
there
was
more
than
one
pod,
it
needed
to
push
live
updates
too.
So
you
don't
have
to
worry
about
that
anymore,
which
is
great.
A
And
these
are
a
couple
of
the
other
cool
things
and
I'm
gonna
show
off
the
code
in
just
a
moment,
so
I've
whipped
up
a
little
on
cluster
registry
so
that
when
I'm
done
with
all
this
demo-
and
I
tear
everything
down-
I
don't
have
to
worry
about.
A
Like
oh
clean
up
these
images
from
somewhere
else,
they
go
away
when
the
cluster
goes
away
and
again,
I'm
using
build
packs
so
that
I
don't
have
to
figure
out
how
to
build
an
optimized
docker
file
and
instead,
I
can
just
say
you
know,
figure
out
what
I'm
running
in
this
case
node
and
do
it.
If
I
make
a
change
that
does
trigger
a
build
pack
build,
it
takes
a
couple
of
minutes.
So
that
is
a
drawback.
If
I
wrote
it
my
optimized
docker
file,
it
might
be
faster,
other
fun
stuff.
A
The
vs
code,
built-in
browser,
makes
it
really
easy
to
just
stay
in
one
window
and
not
be
flipping
back
and
forth.
Quite
so
much
I
sort
of
wish.
I
could
open
more
than
one,
and
I
sort
of
I'm
glad
that
I
can't
and
then
as
a
fun
little
thing.
If
you
mess
up
one
of
your
updates
or
something
like
that,
the
tilt
extension
will
quack
when
you
get
an
error,
so
I'm
probably
going
to
show
that
off
now.
A
A
I
did
not
try
to
run
it
locally
on
mini
cube.
I
like
running
on
real
clusters
that
aren't
my
laptop
because
once
my
laptop
is
doing
zoom
in
two
or
three
other
things,
it
doesn't
like
running,
mini
cube2
and
running
mini
cube
on
some
other
machine
seems
like
it
invites
all
the
pain
of
both
worlds.
It's
hard
to
reach
that
mini
cube
machine
from
my
web
browser
and
it's
still
a
small
confined
space
rather
than
being
able
to
scale
up
to
lots
of
stuff
if
needed.
C
A
When
you've
got
this
up,
it
looks
a
little
bit
prettier.
When
you
don't
have
everything
crammed.
I
guess
I
can
hide
this.
Oh,
I
want
a
tote
status
again.
A
A
Cds
into
the
client
and
runs
the
clients
package.json
for
react,
script
start
so
I
end
up
with
two
different
sets
of
builds
running
concurrently
and
two
different
sets
of
build
outputs
from
typescript.
A
Oh
someone
alec
was
asking:
how
do
you
debug
the
tilt
file
config,
so
let
me
go
back
and
make
that.
A
It
will
print
over
here
on
line.
13
got
an
identifier,
want
a
comma
and
then,
besides
the
fact
that
vs
code
has
a
nice
formatter
that
shows
you
that
everything
is
wrong.
It
tells
you
on
line
13,
it
was
expecting
a
comma
and
it
got
something
else,
and
so
that's
basically
you
can
debug
it
through
this
web
ui
and
then
central's
asking.
A
How
are
you
achieving
the
on
cluster
registry?
A
terrible
pile
of
hacks,
but
it's
a
fun
terrible
pile
of
hacks.
A
And
yeah:
that's
basically
how
the
uncluster
thing
is,
and
I've
published
the
slides
at
the
end
and
that
repo
is
available.
I've
also
gotten
ingress,
that's
feeding
into
the
on
cluster
registry,
so
that
I
can
publish
to
it
from
my
desktop
as
well.
A
But
kind
of
a
fun
extra
bonus
thing
if
you
decide
that
you
want
to
on
cluster
registry.
For
some
reason
I
have
mostly
tested
it
with
container
d
ubuntu
stuff,
I
haven't
tested
it
very
thoroughly
on
all
the
cloud
providers
yet,
but
it's
on
my
list
to
do
some
time,
let's
see
and
then
yeah.
So
if
we
go
back
to
that,
what
was
it.
A
And
I
don't
know
why
that's
not
loading
here
we
go,
but
if
you
wanted
to
see,
we
can
go
and
add
a
new
environment
variable
into
the
service
yaml.
A
We
should
have
to
spin
up
a
new,
a
new
revision.
We
may
be
doing
a
new
build
as
well.
B
A
Yeah,
it
looks
like
for
some
reason
we
are
also
spinning
up
a
new
build,
so
that's
going
to
take
a
little
bit
longer
to
do.
A
A
So
if
you
a
different
way
to
do,
all
of
this
sort
of
thing
would
be
to
actually
run
locally
and
then
use
something
like
ngrok
to
get
requests
off
the
internet
onto
your
cluster.
In
that
case,
you
can
use
an
interactive
debugger.
A
You
can't
really
use
a
debugger
with
tilt.
Similarly,
there's
no
collection
of
metrics
or
anything
like
that.
Specifically,
there
is
the
collection
of
all
the
logs
for
pods
that
are
running,
but
profiling
and
stuff
like
that
is
also
not
answered
here.
A
So
if
you're
trying
to
do
performance,
work
or
debugging
work,
you
can
save
and
you
can
insert
new
log
points
and
the
log
points
will
show
up
pretty
quickly
but
you're
basically
limited
to
printf
style
debugging
and
not
like
all
the
fancy,
breakpoints
and
so
forth
that
you
can
get
with
delve
or
some
other
modern
debugger.
A
A
Yeah
right
now
it
has
decided-
and
I
would
need
to
dig
in
to
figure
out
why
that
my
my
service,
yaml
and
a
few
other
files
changed
and
decided
it
needed
to
do
a
new
build.
Oh,
but
I
can
show
a
couple
more
nice
things
in
the
console
while
we're
waiting.
A
So
we
can
see
the
paquetto
build
going
running
as
it's
happening.
One
nice
thing
is
in
this
log
collector.
A
You
can
select
only
the
build
or
only
the
runtime
logs.
So
if
I
do
the
build
only
logs,
then
I'll
only
see
the
container
builds
and
so
forth
and
not
and
syncing
individual
files.
A
A
A
A
This
package
definition
is
probably
mostly
reusable
the
yaml
and
the
resource
name
are
probably
going
to
be
different
for
each
application
unless
you
name
all
your
applications,
the
same
thing
and
run
them
in
different
namespaces,
but
you
can
define
variables,
so
you
could
define
some
variables
and
then
import
a
common
set
of
configuration
that
does
most
of
the
rest
of
this.
A
And
if
you're
actually
curious,
let's
see
we
can
take
a
look
at
a
couple
of
the
links
that
dave
pointed
out
and
we
can
see
how
co
is
implemented.
So
we
can
see
that
co
basically
is
implemented
as
a
tilt
file
and
you
say
co-build
and
a
reference
and
import
path
and
some
dependencies
and
then.
A
This
will
run,
go
get
if
you
need
it
and
then
co-publish
and
they
give
you
this
variable
called
expected
ref,
which
is
the
name
that
they
want
you
to
publish
to,
and
then
they
will
replace
that
ref
in
your
in
your
kubernetes
artifacts,
where
they
find
it
with.
You
know
the
name
that
they've
made
up
each
time.
A
A
And
let's
see
now
we
are
back
here
and
we
already
restarted
the
development
server
so
yeah
all
my
changes
went
live.
A
One
thing
I
haven't
investigated
deeply:
they
will
explain
to
you
why
they
run
a
build
and
I'm
not
sure
I've
got
quite
all
of
the
settings
correct,
because
occasionally
I
change
something
that
I
don't
think
should
generate
a
build
like
the
service
yaml
and
sometimes
it
kicks
off
a
build,
and
I
haven't
debugged.
Why?
Because
it
doesn't
happen
very
often,
usually
I'm
not
changing
the
service
ammo.
All
the
time.
A
But
yeah,
the
other
thing
is
that
you
get
all
the
logs
from
the
q
proxy
as
well
as
the
user
container
and
sometimes
you're
like.
Why
did
this
happen?
But
if
we
reload
this.
C
C
A
Yeah,
so
that
k-nav
extension
was
actually
provided
by
one
of
the
folks
who's
working
on
k-native
packaging
here
at
vmware.
A
A
You
can
see
that
this
looks
pretty
much
like
a
dialect
of
python
and
we
have
installing
k-native
and
then
we
have.
A
Looks
a
little
more
complicated
than
what
I
did,
but
oh
this
is
where
it's
setting
min
scale
to
one
okay,
so
yeah
use
the
extension,
don't
copy
my
tilt
file.
A
But
if
you
look
at
the
it
looks
like
the
example.
D
C
D
That's
that's
great
if
anyone
else
has
another
question,
please
go
ahead
and
I
am
launching
the
poll.
So
please
help
us
to
to
answer
it.
D
It's
in
the
bottom
part
of
your
screen
if
it
doesn't
appear
there
and
thank
you
thank
you,
alex
josh
roland
villa.
Thank
you.
Everyone
for
joining
us
today.
Please
follow
up
on
the
conversation
on
slack
and
twitter
and
then
miss
the
next
k
native
meetup.
So
thank
you
again
for
for
everything.
Thank
you
evan!
That's!
That
was
really
interactive
and
great.
So
we
hope
to
see
you
at
the
next
canadian
meetup
and
yeah
follow
up
the
on
the
conversation.
Please.
A
So
yeah,
if
you're
curious
about
any
of
the
content
in
here
at
that
url
is
all
the
code
except
for
the
live
changes
I
made.
While
we
were,
you
know,
while
we
were
demoing
and
also
there's
a
slide,
stop
pdf
that
has
all
these
slides.
D
Thank
you.
We
are
looking
forward
to
have
you
at
the
next.
D
A
D
Your
presentation,
evan,
and
we
can
also
share
it-
share
it
with
your
community.
A
Yeah,
so
this
is,
this
is
all
the
presentation.
If
you're
curious,
I
will
update
because
it
looks
like
the
pdf
doesn't
have
links
in
it.
So
I
will.
I
will
put
the
links
to
the
other
stuff
in
the.