►
From YouTube: Carvel Community Meeting - August 24, 2022
Description
Carvel Community Meeting - August 24, 2022
We meet every 2nd and 4th Wednesday of the month at 9am PT. We'd love for you to join us live!
This week we had the ytt team give a demo on schema validations, guest appearances by Natan Yellin of Robusta.dev, to discuss their 100 Kubernetes Tools initiative, and Ollie Hughes, who wrote a post about Tilt and Carvel. See full agenda here: https://hackmd.io/F7g3RT2hR3OcIh-Iznk2hw?both#August-24-2022-Agenda
A
Hi
everyone
welcome
to
this
week's
edition
of
the
carville
community
meeting.
Today's
date
is
august.
24Th
2022,
I'm
nancy,
lancaster,
I'm
the
community
manager
for
carville
welcome
everybody
that
is
here,
live
participating
in
this
meeting
today.
For
for
those
that
aren't
here
today,
just
a
reminder,
we
meet
every
second
and
fourth
wednesday
at
9
a.m.
Pacific
time
it's
a
great
way
for
you
to
come
and
meet
members
of
the
community
meet
the
maintainers.
A
You
can
provide
any
items
you
wish
to
discuss,
whether
that
be
like
a
feature
request
or
if
you're,
having
trouble
with
getting
started
with
any
of
the
cardboard
tools.
We
can
help
in
live
situations
here
and
if
you
aren't
able
to
join
us
at
any
of
these
meetings,
you
can
find
us
in
the
cardinal
channel
in
the
kubernetes
workspace.
You
can
email
us,
you
can
find
us
in
github
with
any
of
our
project
repos
or
you
can
find
us
on
twitter
at
karbal
underscore
dev.
A
A
It
just
helps
the
maintainers
understand
better
about
what
use
cases
are
out
there
that
people
have
for
using
karbal,
and
it
also
helps
the
community
understand
a
bit
better
about
how
they
may
also
be
able
to
use
the
cardboard
tools
and
so
really
appreciate
providing
this
information,
whether
it's
like
a
short
snippet
of
your
use
case.
If
you
want
to
go
into
details,
that'd
be
great,
alternate
or
optionally,
you
can
add
your
logo
for
any
organization,
you're
representing
and
we'll
get
that
added
to
the
adapters
file
here.
A
Okay,
moving
on
to
announcements,
so
since
last
new
meeting
we
did
karbal
in
july.
I
know
in
the
meeting
we
kind
of
merged
it,
live
and
and
announced
it
then,
but
just
want
to
make
sure
everybody
gets
their
eyes
on
what
the
team
worked
on
in
july
here
and
that
was
written
by
joe
kimmel
with
help
from
the
rest
of
the
carnival
team.
A
Another
post
that
we
had
that
we
just
actually
published
yesterday
is
by
ollie
hughes.
He
is
not
one
of
the
maintainers,
but
he
does
use
carvel
and
did
a
blog
post
on
development
workflow
with
tilt
and
cargill.
So
I'm
actually
going
to
let
ollie
give
a
little
summary
of
what
to
what
this
blog
post
is
about.
B
Thanks
nancy,
so
this
blog
post
came
out
of
really
our
team
solving
a
problem,
so
we're
already
using
carvel
to
build
our
images
and
to
create
our
yammer
and
deploy
to
kubernetes.
One.
That
thing
that
we
really
wanted
is
that
we
didn't
have
to
sort
of
run
a
script.
B
Every
time
we
made
a
code
change
and
that's
where
tilt
comes
in
so
tilt
is
a
tool
that
will
sit
and
watch
for
any
changes
on
your
local
file
system
and
when
it
detects
a
change,
it
will
read
this
configuration
file
and
then
it
will
go
off
and
it
will
redeploy
your
changes
like
a
sort
of
a
hot
deploy.
So
one
of
the
good
things
about
tilt
is
that
you
can
basically
write
code.
You
can
use
sort
of
code
as
configuration
almost
like
you
do
with
ytt.
B
It
uses
this
starlight
starlark
based
syntax,
which
is
quite
similar
to
python.
So
it's
really
quite
flexible
in
how
you
describe
how
your
apps
built
and
deployed
so,
and
what
that
means
is
that
you
can
integrate
it
with
other
tooling,
such
as
cap,
ytt
and
kbld.
B
So
I
think
it's
a
really
useful
tool
to
use
with,
if
you're
doing
this
kind
of
make
a
code
change,
run
your
e2e
tests
and
not
worry
about
deploying
the
code.
So
it's
definitely
been
something
our
teams
appreciate
it
quite
a
lot,
and
hopefully
the
blog
post
will
be
useful
for
the
community
as
well.
A
Any
comments:
okay,
yeah
just
encourage
you
to
go,
read
this
blog
post
and
let
us
know
what
you
think.
Thank
you
so
much
ali
for
putting
that
together.
You
did
it
pretty
quickly
and
really
appreciate
it.
A
For
as
far
as
upcoming
content
just
stay
tuned
for
that
we
have
a
few
things
in
the
works
there.
We
have
some
tonsil
related
live,
live
like
tons
of
tv
stuff
and
like
something
between
the
keyboard
and
the
chair.
So
once
that
have
a
link
for
that
I'll
put
it
in
here
and
as
far
as
content
goes,
it's
not
limited
to
just
the
maintainers,
as
you
can
see
with
ollie.
A
A
So
you
can
sign
up
in
in
this
little
dock
here
and
put
your
name
topic
that
you're
going
to
to
cover
and
then
what
kind
of
medium
that
you're
going
to
be
delivering
that
topic
in
and
then,
if
you
have
a
twitter
handle-
and
you
want
us
to
tag
you
in
it
when
we
tweet
it
up
tweet
it
out.
You
just
put
that
here.
A
If
you're
uncomfortable
with
putting
information
here,
you
can
also
just
send
us
a
dm
or
find
us
in
slack,
and
let
us
know
that
you're
you
got
something
in
the
works
that
you
want
to
share
and
we'll
we'll
figure
out
how
the
best
way
is
to
to
promote
it
and
make
sure
everybody
in
the
community
knows
what
you're
going
to
be
talking
about.
A
C
Oh
so
sorry
it's
I
was
just
so
yeah,
so
we've
been
talking
about
the
dev
commands
and
the
commands
which
help
package
authors,
sort
of
get
up
and
running
with
kabul
tools
faster
for
a
while,
and
this
release
finally
has
like
an
alpha
version
of
those
commands
that
we're
putting
out
and
it'll
be
super
great
if
y'all
actually
sort
of
try
it
out
play
around
with
it
and
give
us
any
feedback
that
you
might
have
yeah.
C
A
D
Hey,
that's
me
again,
so
I
heard
from
somebody
in
slack
that
this
was
the
most
exciting
image
package
release
of
august,
and
I
do
believe
that.
So
what
do
we
have
here?
So
this
has
basically
three
huge
things.
So,
first
of
all,
do
you
remember
when
you're
downloading
anything
when
you're
copying
an
image
from
one
registry
to
another,
then
you
have
like
this
awesome
progress
wire
there.
D
So
there
was
someone
that
was
using
image
package
as
a
library
and
they're
like
oh,
we
would
like
to
have
that
as
part
of
our
push
when
we're
pushing
images
as
well,
so
they
contributed
shaheer.
There
contributed
that
piece
of
code
that
made
this
possible.
So
this
is
currently
not
enabled
by
default
on
image
package.
D
D
Like
a
couple
of
months
back,
we
introduced
api,
an
api
or
an
image
package,
so
now
it's
possible
for
you
to
pull
images
or
bundles
via
an
api,
that
we
put
it
to
a
side,
and
you
can
see
it
on
the
package
that
there's
a
link
there
if
you
want
to
get
a
little
bit
more
acquainted
with.
This
is
our
first
prototype
of
an
api
for
image
package.
D
Currently,
the
only
available
functionality
is
going
to
be
pool,
but
I
already
saw
that
we
won
tag
as
well
because
of
something
that
we
were
working
on
in
vendor.
So
eventually
tag
will
be
the
second
in
the
second
api
endpoint
that
we'll
have
there
we're
trying
to
create
this
api
to
see
when
people
are
in
including
image
package
as
a
library.
They
can
just
use
that
particular
package
and
then
do
all
the
things
there.
D
We,
if
you
have
some
feedback,
just
let
us
know
if
there's
anything,
that's
strange,
let
us
know
we
will
look
into
it,
and
this
api
was
added
to
enable
the
feature
that
you
see
there.
Where
now
image
package
can
tell
you
if
any
particular
image
that
you're
pulling
is
cacheable
or
not,
and
this
api
now
provides
you
like
a
status
that
you
can
just
when
invoking
image
package,
you
can
just
look
at
it
and
see.
Oh,
this
is
cashable.
C
I
think
I
can
add
something
on
about
that.
So
one
of
the
new
features
that
shipped
were
a
flag
which
lets
you
disable
default
label.
Scoping
rules,
so
cap
till
before
this
release,
what
it
used
to
do
is
always
add
labels
and
label
selectors
to
deployments
and
services
which
are
specific
to
a
particular
app.
So
if
you
have
two
apps
that
part
of
the
same
name,
space
and
the
same
cluster
which
use
the
same
labels
and
label
selectors,
they
still
won't
interfere
with
each
other
and
yeah.
C
They
would
function
as
separate
units,
but
we
realized
that
it's
probably
not
so
smart
to
have
it
enabled
by
default.
So
this
flag
actually
lets
users
disable
this
feature
and
it
helps
out
in
cases
where
users
are
deploying
a
part
of
the
resources
using
cap
and
we
sort
of
do
plan
on
easing
off
and
eventually
making
this
feature
disabled
by
default
and
yeah.
So
that's,
I
think
the
headliner
I
would
say,
and
the
other
one's
actually
a
flag,
that's
consumed
by
cap
controller
to
grab
some
metadata
when
they
do
a
cap
deploy.
C
E
Oh
yeah,
I
would
like
to
add
something
what
sonic
is
saying
app
meter
data
file
output?
The
fix
was
like
when
cab
deploy
was
failing.
It
was
not
able
to
store
this
metadata
to
the
file,
so
with
the
new
fixes,
it
will
be
able
to
store
the
metadata
if
the
caption
fails.
A
Okay,
moving
on
to,
we
have
a
guest
here
today.
F
Hi
so,
first
of
all,
thank
you
for
having
me.
I
was
a
pleasure
also
working
with
john
on
this.
I
just
had
a
ton
of
fun
doing
it,
I
mean
so
I'm
one
of
the
co-founders
at
robusta
and
among
other
things,
I
need
audera
devrel,
developer
relations
and
just
to
worry
about
robusta.
So
what
we
do
is
we
do
context
gathering
for
matthias
others
in
kubernetes
alerts.
We
take
your
alerts,
we
show
you
what
they
mean,
why
they're
apparent
happening
and
then
give
you
a
button
to
fix
them.
F
So
the
goal
is
really
that
you
have
like
one
place
you
get
in
there.
The
third
is
self-explanatory.
You
always
know
what
the
next
step
is
and
so
on
now,
as
part
of
the
work
that
we
do
around
that,
then
we
do
a
lot
of
work,
just
explaining
and
educating
about
kubernetes.
F
So
the
original
idea
for
the
100
kubernetes
tool
series,
because
I
would
do
one
tool
today
and
then
do
a
like-
really
short
video
about
that
and
just
show
you
how
to
use
a
specific
tool
and
really
try
and
focus
not
on
like
how
do
I
use
this
tool
bond.
The
why
why
should
you
care,
because
there's
so
many
tools
out
there?
A
F
Maybe
a
check,
I
think,
somewhere
in
the
range
of
10
or
so
yes,
I
have
a
bunch
that
yeah,
I
have
a
bunch
that
I
recorded
and
haven't
released
either
and
then
in
some
of
them
I
actually
recorded
before
the
one
with
john.
So
I
think
they're
like
this
is
video
number
whatever.
But
I
don't.
B
F
You
know
this,
I
mean
so
what
what
I
do
most
of
the
work
I
actually
do
for
devrel
is
on
linkedin
and
on
twitter
and
on,
like
our
blog
and
rather
in
the
live
that
stuff.
So
the
youtube
side
is
like
the
more
neglected
side
so
to
speak.
So
I
think
I
also
want
to
see
about
repurposing
some
of
the
content
we
created
around
this
into
a
blog
post
and
then
pushing
down
other
mediums.
We
got
decent
amount
of
views.
I
think
there
was
over
300
views
on
the
video.
F
If
I,
if
I
package
that
up
also
in
the
format
of
our
linkedin
post
and
the
blog
post
and
we'll
get
far
more,
I
mean
we're
getting
far
more
eyeballs.
I
think
than
that.
A
G
G
Don't
know
but
but
yeah
so
like
you
know
what,
whether
whether
it's
like
how
to
quickly
get
an
example
how
to
get
help
when
you're
editing
how
to
like
you
know
quickly,
do
a
port
forwarding
like
there's
these
lots
of
little
things
that
you
know
if
you're,
if
you're
dealing
with
kubernetes
day
to
day
these
are
great
little
tips
to
just
level
up
a
little
bit.
G
It's
that,
like
that
one
percent
thing
like
you,
just
keep
getting
better
with
little
investments
like
this
is
a
good
spigot
to
grab
a
bunch
of
that
from,
and
the
other
thing
that,
just
from
like
the
recording
that
natana
and
I
did
together
when
we
were
preparing
for
that
one
of
the
neat
things
about
it
is
like
we
really
zeroed
it
on.
What's
going
to
be
useful,
it
wasn't
about
like
hey,
let's
show
off
ytt
was
like
hey
here's
a
problem
like
can
we
can
we
show
a
practical
solution
to
that.
G
So
I
just
love
that
that's
the
bent
of
the
whole
thing
it's
really
about
giving
back
to
the
community,
so
I
thought
that
was
cool
digging.
It
yeah.
F
Yeah
that
that's
why
we
chose,
I
think
john
chose
like
okay,
we're
going
to
focus
specifically
on
the
helm
use
case
and
not
under
all
the
use
cases
for
ytt
to
really
connect
to
like
a
specific,
acute
pain.
F
Point
like
we
see
this
all
the
time,
also
with
other
things
like
which
is
the
main
space
we
operated
like
if
it
in
a
way
it
has
to
be
easier
to
like
fix
another,
or
it
has
to
be
easier
to
take
a
new
tool
and
to
use
it,
then
it
has
to
be
to
just
do
nothing
and
continue
like
going
the
way
you
are
because
the
default
is
always
to
do
nothing,
so
you
have
to
make
it
easier
for
people
to
like
accidentally
fall
into
using
your
tool
and
slip,
then
to
just
go
on
and
do
keep
on
doing
it
all
the
way.
F
So
that's
why,
like?
I
think
it
was
really
good.
Also
that
john
like
jumped
in
and
showed
like
the
hands-on
example
with
the
ammo
and
showing
how
you
do
ydt
and
then
like.
Oh,
it's
not
so
scary.
After
all
and
oh,
this
is
the
use
case
where
I
want
to
use
this.
A
Yeah
very
cool
any
questions
or
comments
further
for.
F
A
F
G
A
A
Okay,
thank
you
so
much
for
sharing
everything
about
robusta,
it's
it's!
I'm
so
glad
you
were
able
to
make
it
and
tell
us
all
about
it.
A
F
E
D
Mega,
that's
like
technology
right,
okay,
so
image
package.
What
have
we
been
doing
so
it's
basically
tied
to
the
release.
We
finished
up
the
stories
related
to
caching.
So
now
we
are
able
to
tell
whoever
calls
us
as
an
api
using
the
new
brand
new
api.
If
a
particular
image
that
is
being
pulled,
it
is
cacheable
or
not.
There
are
some
rules
for
that.
D
Oh,
my
god,
it's
duo
again,
so
why
did
we?
Why
did
we
implemented
this
feature
and
image
package,
because
vendier
will
now
have
a
function
feature
that
will
be
able
to
save
into
a
particular
folder
that
you
provide
to
it
cached
images.
So
when
you're
doing
when
you're
doing
a
vendor,
sync
you'll
be
able
to
just
provide
as
an
environment
variable
the
place
where
you
want
to
save
your
images,
and
it
will
save
it
for
you
and
the
next
time
that
you
are
going
to
pull.
D
Of
course,
if
the
image
is
cacheable
and
if
it
if
it
is
able
to,
if
it
is
cached,
then
the
next
time
that
you
do
a
vendor
sync,
it
will
not
go
to
the
registry,
it
will
just
go
to
the
cache
and
it
will
bring
it
back
for
you.
So
this
is
the
functionality
that
we
are
working
actively
now,
there's
a
pr
for
it
already.
So
we
might
be
in
the
midst
of
getting
this
out
somewhere
in
the
next
before
the
next
community
meeting.
D
You
wouldn't
believe
this,
but
this
is
me
again
okay.
So
what
is
this?
This
is
like
the
icing
on
the
cake
right,
like
cap
controller,
currently
has
as
this
this
behavior,
where
every
five
minutes
10
minutes
it's
going
to
go
to
the
registry,
get
the
new
configuration
from
the
registry
and
reapply
all
your
app
crs
and
and
so
on.
D
So
what
we're
trying
to
prevent
here
is
that
it
goes
to
the
registry
again,
every
time
like
every
10
minutes,
just
go
there
go
there.
So
how
are
we
doing
this
by
ensuring
that
vendor
can
cache
images?
For
you?
That's
awesome
right.
It's
like
the
work
just
falls
in
place
all
together,
so
we
started
working
on
this
story
and
I
think
that's
that's
more
or
less
self-explanatory.
E
D
D
D
Exactly
that's
the
only
case
where
image
package
bundles
are
cacheable.
We
do
believe
that
this
is
going
to
be
the
the
bulk
of
it
because,
like
if
you,
especially
if
you're
working
in
a
an
air
gap,
environment
environment
that
doesn't
have
access
to
the
internet,
you
you
have
copied
all
the
images
to
the
same
repo
or
you
have
some
sort
of
like
a
proxy
cache.
That
will
put
the
images
on
your
in
your
internal
network
and
and
then
cap
controller
will
be
able
to
to
work
with
that.
E
D
F
D
The
package
is
not
because
you
usually
would
reference
it
by
by
by
tag
right
like
so
that
would
be
it
yes,
correct.
Okay,.
E
A
That's
that's
your
name
now
and
thanks
scott
for
for
your
question
before
we
move
on
any
other
questions
or
comments.
A
C
Yeah,
I
think
I
can
talk
about
that.
I'm
still
getting
used
to
calling
it
k
control
actually
so
so
to
start
off
with.
I
actually
like
to
thank
graham
because
when
we
put
out
the
alpha
release,
graham
actually
helped
us
get
a
lot
of
feedback
which
would
help
new
users
to
get
started
with
kctl
more
easily
and
yeah.
So
we
have
been
working
on
that
and
we
have
most
of
them
set
in
place.
C
I'll
probably
add
that
in
the
list
later
and
as
to
what
we
are
focusing
on
now,
the
first
one
finding
out
how
the
experience
looks
like
for
someone
in
an
air
gap
environment,
it's
specific
to
dev
deploy.
So
when
we
are
talking
to
some
users
about
how
they
see
casey
tyrell
dev
fitting
into
their
workflow,
they
were
curious
about
how
they
can
sort
of
test
packages
in
their
workflows
or
even
manually,
while
using
kctl,
dev
and
one
case
a
user
mentioned
with
that.
I
think
it
was
robert.
C
They
said
that
it
would
be
great
if
casey,
neil
sort
of
smartly
image
package
copies
all
of
the
dependent
images
into
the
icap
environment,
while
testing
and
so
yeah.
That's
something
we're
exploring
right
now
and
the
other
two
items
are
something
we
have
a
bit
more
clarity
on
so
casey
tyler
package
and
it
generates
some
boilerplate
which
helps
casey
carroll
dev.
To
help
you,
I
trade
over
the
packages
and
also
helps
kct
will
release
a
version
of
that
package
and
the
way
it's
set
up
right
now.
C
There
are
two
app
specs
and
we
are
trying
to
sort
of
hammer
out
what
the
user
experience
is
like
if
the
two
app
specs
in
the
resources
that
are
created
by
and
it
starts
to
differ-
and
next
is
it's
sort
of
about
how
kc
title
behaves
when
a
user
is
trying
to
wrap
a
head
chart
into
a
karma
package.
C
So
as
of
today,
if
the
user
supplies
some
itd
configuration,
which
has
a
value
schema
present
there,
we
automatically
generate
an
open
api
scheme
of
them.
However,
we
are
sort
of
figuring
out
if
it's
possible,
to
do
the
same
same
for
health
charts
for
folks
who
want
to
sort
of
make
sure
whatever
is
created
by
the
health
job
process
on
the
cluster
periodically
so
yeah
that
that's
what
we're
working
on
on
the
kctl
side
mainly
and
we
are
looking
forward
to
more
feedback.
So
that's
done.
C
G
Yeah,
you
know
me
so
varsha
and
I
have
been
wrapping
up
our
usability
testing.
We
really
appreciate
the
time
and
attention
that
folks
have
brought
to
this
effort.
We've
gotten
a
ton
of
feedback
about
things
that
are
working
well
ideas
for
like
how
to
introduce
the
feature,
and
even
some
some
interactions
between
different
features
that
that
are
currently
like
high
friction.
G
We're
gonna
be
addressing
that
feedback
before
we
go
to
ga
that's
the
whole
point
of
this
was
to
identify
those
things
so
that
we
can
have
a
solid
api
before
we
make
before
we
commit
to
this
there's
a
number
of
folks
that
are
in
the
room
that
have
helped
out
with
that.
Really
appreciate
your
time
on
that,
and
there
are
a
couple
of
sessions
that
we're
doing
that
are
like
previews
with
folks.
So,
if
you're
seeing
this
you're
like
wait,
I've
got
a
session
scheduled.
G
Don't
worry,
we
haven't
canceled
on
you,
so
once
we
pull
in
the
essentials
of
those
changes,
we
will
be
gaining
validations
for
your
data
values.
So
we're
super
excited
about
that
upcoming
release.
Then
the
other
thing
that
we've
been
working
on
this
last
week
is
really
starting
to
dig
into
schemes
in
which
people,
when
they
start
to
have
a
significant
amount
of
ytt
code
like
how
do
you
test
that?
How
do
you
unit
test
it?
G
How
do
you
end
and
test
it
and
within
vmware
there's
a
lot
of
using
karbal
stuff,
and
so
there's
some
folks
that
have
been
doing
that
kind
of
thing
been
working
with
them
and
looking
to
bring
that
forward
into
our
overall
suite,
so
watch
this
space
for
more
details.
G
The
other
side
of
that
is,
if
you
have
found
that
you
needed
to
get
to
that.
If
you
got
that
point
where
you
needed
to
do
some
testing
we'd
sure
love
to
hear
from
you
about
approaches
that
you're
taking
so
reach
out
to
us
on
the
slack
channel,
or
you
can
dm
me
directly
at
jticker
on
kubernetes.
G
Yeah
we're
we're
saying,
sometime
in
september,
we're
hoping
like
the
earlier
part,
but
it
really
it's
more
event,
time
it's
like
when
we
can
address
those
issues
and
get
those
released.
H
Yeah
hi
everyone
so
today
I'll
be
giving
demo
for
schema
validations.
I've
got
it
recorded,
so
we
can.
We
will
have
some
time
for
question
answers
at
the
end
of
the
recording
I'll
just
share
my
screen.
Now,
let's
get
started.
H
Are
you
able
to
see
the
screen
and
let
me
see
if
the
audio
is
working
hello,
everyone
yeah
good,
as
we
all
know,
carl
is
introducing
a
new
feature
in
its
tool
vit.
So
the
new
feature
is
called
schema
validations.
So
let's
get
started
with
the
demo.
What
are
validations
ytt
is
introducing
validations,
which
are
some
constraints
that
you
can
define
on
data
values
via
annotations
validation
will
ensure
that
data
values
in
expected
range
of
values.
H
So
in
the
beginning
we
have
yammer.
Let's
see
we
have
this
deployment.yaml
and
we
may
have
lots
of
yaml.
You
want
to
be
able
to
package
that
up
and
have
somebody
else
use
it.
So,
let's
see
first
thing
we
want
to
do
is
extract
the
values
from
the
cml.
H
Now
here
we
are
templating,
but
let's
say
someone
came
and
made
a
mistake
of
giving
value
type
wrong.
So
let's
see
bim
values.tml,
and
here
instead
of
number
five
we
give
five.
H
Let's
see
what
happens
so
my
yaml
generated
shows
me
replicas
as
5.
so
wow.
This
is
well-formed
yaml,
but
this
is
not
a
valid
configuration
for
deployment
and
this
is
going
to
give
you
a
problem
at
the
time
of
deployment,
no
big
deal
if
it
is
simple
deployment.
But
what,
if
it's
part
of
larger
set
of
resources?
H
That's
a
problem,
and
you
want
to
find
it
sooner
so
for
this
we
came
up
with
schema
in
schema.
We
declare
variables,
we
give
default
values
and
we
infer
type
from
default.
So,
let's
see
I
have
a
schema
file
over
here
and
it
in
it
gives
the
data
value
schema
with
instances
5.
Now
what
happens
here
when
I
include
this
schema
value
schema
file
in
my
ytt
invocation,
the
the
value
is,
the
value
of
instances
is
automatically
get.
H
H
This
is
how
schema
checks
for
types
and
tells
us
expected
integer,
okay,
but
now,
instead
of
now
here,
instead
of
giving
us
the
entire
yaml,
we
got
error
message
and
that's
like
pulling
the
error
towards
left.
Trying
to
avoid
going
through
have
succeeded,
deployments
to
find
out
where
the
error
is
so
now
type
safety
is
what
schema
gave
us,
but
now,
let's
see,
let's
update
the
value
back
to
phi.
H
And
now
this
is
our
valid,
which
is
also
type
safe.
But
let's
say
let's
say
there
is
a
requirement
that
your
system
cannot
perform.
Well
with
less
number
of
resources
say
you
need
minimum
of
10
resource
10
instances,
and
then
you
go
and
update
in
schema
vml
that
we
need
at
least
10
instances.
H
H
So
this
is
where
validations
come
into
picture.
They
help
improve
the
user's
experience
by
catching
obvious
configuration
errors
before
deployment.
That's
pulling
the
error
towards
left.
Now
you
will
do
this,
but
with
validations
in
schema
file.
So,
let's
see
currently,
this
feature
is
available
as
experimental,
so
we'll
first
ensure
that
we
have
correct
version
and
turn
on
the
validations.
So
to
do
it.
So
we
have
this
export
line
to
add,
and
this
make
sure
our
experimentation
is
explained
by
experiment.
Validation
is
set
and
then
we'll
check
the
version.
Ytt
version
sorry
version
0.42.
H
Now,
let's
see,
let's
add
the
constraint
here,
how
to
add
this
constraint
can
cause
sorry
schema,
tml
and
just
add
one
line
over
here.
Schema
validation,
annotation
mean
equal
to
10,
and
now,
when
I
run
this,
it
gives
me
error
that
one
or
more
data
values
were
invalid
requires
instances
requires
a
value
greater
or
equal
to
10
fail
5,
so
5
is
less
than
10
and
which
is
the
value
which
we
gave
in
values.tml,
so
instance
is
5..
So
let's
go
and
update
these
instances
to
set
11.
H
H
Let's
try
one
more
example.
So,
let's
see
as
an
author,
you
may
have
a
requirement
of
having
a
username
and
password
present
for
particular
storage.
I
can
provide
a
default,
but
I
want
user
to
set
user
name
and
password
values.
How
do
you
make
them?
Do
that
write?
A
validation
that
you
know
will
fail
with
the
default
value.
For
that
we
will
add
this
kind
of
validation.
H
You
get
all
kinds
of
validation
errors
that
are
present
in
the
schema
and
values
file.
So
this
first
one
we
already
saw
that
5
is
less
than
10
and
it's
not
aligned
here.
Instances
requires
value
greater
than
or
equal
to
10
another
username
password
and
for
username
next
next
set
of
username
passwords.
So
so
two
couple
of
things
to
notice.
Here
we
learn
about
all
the
problems
at
once
and
not
like
one
after
other
one
after
other,
and
this
is
forcing
user
to
specify
value.
H
H
So
in
that
case,
so
now
this
is
working
now,
if
say,
we
have
some
default,
values
are
null
say,
aws
and
gcs,
both
unknown,
and
what,
if
you
want
to
be
able
to
say
that
at
least
one
of
them
not
now
you
need
to
specify
exactly
one
of
them.
For
this
we
have
another
type
of
validation
rule
out
of
the
box,
which
is
one
not
null.
So
let's
try
that.
H
So
I
have
this
schema
schema,
which
has
this
storage,
aws
and
gcs
with
schema
in
the
label
added,
because
what,
if
user
gives
both
of
them
aws
and
gcs,
none
and
and
like
they
are?
They
are
nullable
values,
but
we
want
to
add
a
constraint
that
only
one
of
at
least
one
of
them
should
be
not
null.
So,
let's
see
what's
in
the
values,
file
values.
H
So
here
we
are
not
provided
and
it
any
value
for
aws
and
gcs.
And
let's
see
then
what
error
current
ytt
schema
will
give.
So
it
will
say
the
aws-
and
this
is
both
unknown
now-
how
to
add
that
constraint
that
we
want
at
least
one
of
them
not
null.
So
we
have
one
more
validation
to
add
here
in
schema.org.
H
H
So
when
we
add
those
values
again
back
say,
let's
see
I
add
username
and
password.
E
H
Now
it
gives
me
another
the
error
earlier
error,
which
is
min
length,
but
now
it
knows
that
one
of
the
storage
types
has
received
its
value,
so
username
and
password
is
there
available
and
that's
why
this
error
is
not
there.
But
now
we
have
this
constraint
that
the
user
has
to
have
some
username
and
password
values.
Present.
H
H
So
this
is
how
schema
validations
work,
and
so
we
have
other
thing
that
we
have
is
with
this
schema
validation
feature.
We
have
few
documentation
that
is
on
the
website.
There
is
a
ytt
validations,
preview,
blog
post,
that
you
can
go
through
and
also
we
have
created
a
cheat
sheet
for
you.
Let
me
show
that
screen.
H
So
here
we
go
here:
we
have
the
schema
validation,
documentation
on
ytd
website.
You
go
here,
schema
validation.
It
shows
us
the
out
of
the
box
rules
and
some
details
about
it.
Few
examples
out
of
the
box
assertion,
rules
and
custom
assertion
best
rules.
H
H
So,
for
example,
we
have
already
seen
few
of
them,
and
then
there
is
a
one-off
that
can
be
used
for
enumeration
were
not
null
that
we
already
saw,
which
is
for
exactly
one,
not
null.
H
So
when
null
skip
validations,
these
are
validations
overlappings.
So
whenever
a
node
is
annotated
with
at
schema
on
the
level,
then
its
default
value
is
null
and
author
may
opt
up
to
short
circuit
validations
when
the
actual
value
is
none
using.
This
then
skip
equal
to
true,
and
the
last
one
we
are
seeing
today
is
conditionally
run
validations.
H
My
terminal
window
again-
and
I
have
this
emar.yaml,
which
has
this
conditional
validation
added,
so
basically
is
load
balancer.
So
when
ease
load
balancer
is
called.
If
there
is
a
type
called
load
balancer,
then
the
name
must
be
given.
That's
my
custom
rule
want
to
add,
so
the
name
must
be
given
is
satisfied
using
ascert
mean
length
1
and
we
are
checking
if
name
is
present.
So,
let's
see
what's
in
the
values
file
right
now,
I
don't
have
here
name,
and
so,
when
I
run
this,
I
get
this
kind
of
error.
H
H
This
validation
works
and
the
value
is
rendered
so
yeah.
These
are
the
these
are
some
of
the
rules
that
schema
validation
adds
out
of
the
box,
and
there
are
certain
custom
rules
you
can
add
to
using
lambda
functions
and
yeah,
so
that's
it
for
today.
Let
us
know
if
you
have
any
questions.
We
are
reachable
through
slack
channel
as
well
as
in
the
community
meetings.
A
Awesome
job
marsha,
thank
you
so
good.
We
have
two
minutes
left,
so
not
a
whole
lot
of
time
left
for
discussion,
but
if
anybody
has
any
questions
for
the
ytt
team
or
any
comments.
C
I
have
a
really
quick
question,
so
if
we
define
the
schema
like
that,
will
we
also
is
this?
Does
this
reflect
on
data
value,
schema
inspect
as
well
like
this?
The
open
api
schema
generated
with
all
these
validations.
E
G
Yep
there's
a
global
flag
to
disable.
It
entirely.
E
G
Right
right
exactly
it's
this
I
mean
that's
a
that's
a
beautiful
dev
ops
moment
right
because
it's
a
collaboration,
it's
an
intersection
of
understanding,
and
so
you
do
your
best
as
a
package
author
but
like
that,
may
not
be
the
right
thing
for
them.
E
A
Now
we're
at
time.
So
if
you
do
have
any
questions
or
comments
further,
you
can
find
us
in
slack
or
you
can
send
us
an
email
or
feel
free
to
add
comments
to
any
of
the
issues
associated
with
this.
With
that,
thank
you
all
for
joining
today.
It's
such
a
pleasure
having
such
a
large
group
join
and
all
the
folks
that
participated,
really
appreciate
you,
your
engagement
here
and
for
those
that
are
watching
from
home.