►
From YouTube: TGI Kubernetes Episode 163: NAML
Description
This week TGIK will explore the Not Another Markup Language (NAML) project! Join us in checking out how we can use this project to install and delete Kubernetes resources in clusters.
B
A
A
While
yeah
totally
totally
so
I'm
sure
you
all
know,
but
if
you
don't
chris
and
I
work
together
at
heptio
and
a
little
bit
at
vmware
for
a
tiny
bit
of
time
and
we've
both
done
tgik
chris
is
like
the
tgik
og.
So
we've
got
her
back
today.
We're
super
psyched
to
have
you
all
those
of
you
who
are
joining
us
if
you
have
not
seen
tgik
before.
Typically,
we
use
this
time
to
look
over
some
kind
of
open
source
project
and
kind
of
get
to
know.
A
B
Cool,
I'm
I'm
stoked
to
be
here
so
a
little
bit
of
context.
I
I'm
here
in
denver
I'll,
be
here
well
we're
not
in
denver
right
now,
but
I'm
in
colorado
and
just
kind
of
passing
through
for
a
few
weeks
and
josh,
and
I
just
got
done
rock
climbing
and-
and
you
know
I
had
written
this
project
and
well
here
we
are
yep
and
so
yeah
we're
gonna.
We're
gonna
certainly
send
this
episode
of
tgik.
A
Awesome
cool
all
right,
yeah
and
if
you
are
joining
us
and
want
to
say,
hey
in
chat,
feel
free
to
say
where
you're
tuning
in
from
abc
it's
great
to
see
you
again:
kr
martin,
yogi,
yuka
and
kristoff
thanks
for
joining
us
today.
We're
super
glad
to
have
you
colorado.
Oh
nick
nick
is
on
my
team
in
vmware
and
he
is
also
a
colorado
human.
So
thanks
for
joining
us
today,
nick
I.
A
Yeah
we're
we're
trying
to
wrap
colorado,
we're
up
in
colorado,
fantastically
exactly
hey
keith
thanks
for
joining
us
from
ireland
all
right.
So
let's
see
what
we've
got
going
on
newswise
this
week
and
chris-
and
I
were
just
talking
about
this-
I
did
a
bad
tgik
host
job
and
didn't
get
much
news.
So,
as
always,
if
you
do
want
to
add,
add
any
news
to
tgi
k,
dot,
io,
slash
notes,
feel
free
to
add
some
in
because
we
are.
A
We
are
light
this
week,
but
we
got
a
really
cool
episode
for
you,
so
we
can
review
chris.
Maybe
you
can
tell
us
about
this
weird
terminal
thing
that
you.
B
Like
so
much
so
so
this
one
was
we
added
this
at
the
last,
like
last
minute,
like
we
were
getting
ready
and
I
was
like:
oh
josh,
you
got
to
check
out
this
terminal
that
I
use
so
really
there's
two
things
I
want
to
show
josh
slash
all
of
you
all
out
there.
The
first
one
is
just
the
terminal
itself
and
then
part
of
the
magic
of
the
terminal
is
in
the
fonts
that
the
terminal
uses.
B
B
Is
the
correct
place
to
go
and
it's
the
same
fonts
I
use
on
my
my
personal
blog
and
I
like
to
sneak
it
into
all
of
my
presentations
that
I
do
so
anyway,
we're
going
to
see
if
we
can't
get
josh
to
install
it
and
demo
it
for
folks.
Okay.
So
if
you
want
to
pull
it
up,
it
is
called
cool
retro
term.
B
C
B
C
B
So
this
is
my
dog.
His
name
is
tiago
biern
or,
as
I
like
to
call
him
barnaby.
He
is
an
f2
golden
doodle
and
he
wants
everybody
to
know
that
he
is
putting
the
dude
back
in
golden
doodle
and
so
he's
been
rock
climbing
with
us
and
hanging
out
here
in
colorado.
Being
a
sport
and
he's
going
to
be
bothering
us
today,
yep.
C
B
B
A
B
But
so
it's
I
think,
it's
written
in
c,
plus
plus
it's
gpl
licensed
okay
and
you
you
can
just
like
it's
in
all
of
the
the
major
repositories.
So
I
think
it's
in
ubuntu
should
be
in
arch
linux,
yeah,
I'm
assuming
it's
got
it.
You
said
you
found
it.
It.
B
A
Oh
no
apple,
we'll
fix
this
hold
on
everybody.
Apple.
Just
doesn't
like
that.
It's
not
signed
because
apple's
weird
we'll
fix
that
they
liked
oops
open
anyway
cool.
B
B
So
now
right
click
and
go
to
settings.
Okay,
settings
and
just
jump
around
in
here
see
if
you
can't
tr.
So
I
like
the
ibm.
B
D
C
A
With
tmux,
okay
cool,
let's
grab,
let's
get
into
my
linux
boxes,
yeah.
A
B
Is
nice
you
said
h-top
yeah
there
you
go
so
that's.
A
A
B
D
B
Okay,
so
grab
it's
called,
be
pi
top.
A
B,
like
download
the
package.
B
Yeah
so
like
pac-man
capital
s
and
what.
A
A
Me
this
one
pseudo
would
be
helpful.
Yeah.
C
B
This
is
the
ultimate
hacker
right
here:
oh
adjust
your
your
size
to
fit
it
really
quick.
There
you
go
and
then
you
might
want
to
change
your
try
to
try
to
fool
with
the
the
settings
on.
A
The
like
the
theme
or
something
yeah
just.
B
A
little
closer
okay
yeah,
it's
a
little
bit
closer.
So
if
you
maybe
tried
an
item
too
yeah,
let's
try
it,
but
it
does
like
it's
written
in
python,
which
is
crazy
and
it
just
it
like
it
has
like
a
glow
in
the
terminal.
Anyway,
these
are
like
my
favorite
things
ever.
Oh.
B
Bash
profile,
maybe
it
looks
like
we're
trying
to
do
like
monic,
monocolor
or
not
monocolor.
What
is
it
true,
color
in
a
256
or
something.
A
Terminals
now
well,
this
I
mean
this
was
worth
the
whole
episode
honestly,
so
hope
you
all
enjoyed
it.
Yeah
cool
all
right,
so
we'll
go
back
to
the
notes
here
and
check
that
link
out.
If
you
do
want
to
try
out
cool
retro
term
and
we'll
go
right
into
maybe
some
of
the
show
stuff,
so
chris,
I'm
just
so
curious,
enamel,
obviously
a
very
interesting
project.
It's
called
not
another
markup
language,
so
maybe
you
could
frame
it
like
motivation
like
just
give
us
an
overview
of
what
you're
thinking
here.
B
Okay,
so
to
be,
I
just
want
to
be
really
clear
yeah.
I
did
not
expect
this
thing
to
blow
up.
I
I
definitely
wrote
this
like
as
a
like.
I
was,
I
wouldn't
say,
frustrated,
but
I
I
I
always
had
assumed
that
that
somebody
somewhere
had
done
something
like
this.
Okay
and
I
I've
never
been
in
kubernetes
package
management
land
before
sure.
All
of
my
work
in
cube
is
like,
like
the
api
server
is
high
level
for
me
totally.
C
A
B
B
I
can't
believe
we're,
not
writing
a
lot
of
the
stuff
and
go
totally
and
to
me
it
just
seemed
very
like
natural,
that's
kind
of
like
you
know,
that's
what
I
thought
we
did
with
controllers
and
with
operators,
and
I
kind
of
thought
as
a
community.
We
had
moved
past.
You
know
if
you're
gonna
be
putting
logic
into
your
apps,
like
I
thought
we
were
in
a
place
where
we
were
like
starting
to
write
it
and
go
or
like
starting
to
explore
other
options
than
trying
to
like
replace
yaml
for
specific
config.
C
B
B
C
B
Going
to
need
a
make
file,
yeah
and
you're
going
to
need
a
main.go
and
you're
going
to
need.
You
know,
there's
there's
probably
a
lot
of
commonality
across
like
applications
yeah
and
so
that
ultimately
turned
into
nemo
what
we
see
here,
okay-
and
it
started
out
as
like
a
let
me
just
hard
code,
a
deployment
yeah.
A
B
D
B
D
B
Is
like
how
do
we
get?
You
know,
common
object
properties
shared
across
all
the
cube
objects?
Okay,
while
keeping
it
literal
enough,
while
still
making
it
flexible
enough
to
be
like
you
know,
polymorphic,
so
to
speak
totally.
A
B
And
really
like
this
is
all
I
think
of
when
I
think
of
the
project
was.
It
was
just
my
way
of
basically
being
like
if
you're
going
to
write
a
go
app
at
least
have
it
like
implement
some
common
interfaces.
Sure.
C
B
C
B
Anything
we
we
want
to
write
that
operates
on
this
interface,
can
now
be
used
by
by
any
application
in
general,
cool
cool,
so
I'll
stop
there
and
see
if
people
have
questions
or
if.
A
You
have
questions
or
anything,
yeah
chat.
Do
you
have
any
any
questions
for
chris?
So
far,
one
question
I'll
ask
you.
Maybe
out
of
the
gate
chris
is
like
looking
at
this
project
like
it
sounds
like
if
I'm
a
kubernetes
user
who's
deep
into
like
helm,
templating
and
I'm
starting
to
put
some
logic
into
my
template
to
render
it
like
this
could
be
a
different
approach
to
that
where
it's
using
a
typed
language.
B
B
D
B
So
so
then,
like,
if
you
look
at
a
project
I
used
to
work
on
that,
I'm
still
a
maintainer
of
called
falco.
Okay,
we
had
a
lot
of
config
right,
like
the
falco
rules
are
just
like
very,
very
config,
based
totally
and.
B
If
you,
if
you
don't
know
the
history
of
c
plus
and
lua
and
templating,
it's
all
turn
complete.
You
can
add.
If
statements,
you
can
add
a
for
loop,
you
can
iterate,
you
can.
You
know,
there's
memory
exchange
like
it's.
Basically,
a
full-fledged
programming
language,
but
just
without
the
constructs
of
like
a
you
know,
a
programming
language
that
was
set
out
to
be
a
programming.
D
D
B
B
A
A
D
A
B
B
B
C
B
C
B
My
app
dash
dash
dev
and
it
just
breezes
right
over
the
tls
stuff,
because
you're
running
I
see
and
it'll
spit
out
the
yaml
for,
like
whatever
input
you
get
it
so
like
it'll,
have
like
rules
and
logic
based
in
you
know.
If
we
get
this
input,
configure
it
this
way
and
if
you
get
that
input
configure
it
that
way
totally.
So
I
would
say:
enamel
definitely
embraces
this
same
idea:
okay
and
up
until
like
last
night.
B
B
A
Totally
totally
yeah,
okay
cool
all
right
and
then
would
you
say,
palumi's
kind
of
in
a
similar
domain.
Is
that
or
do
you
view
polymias
different
you're,
getting
all
the
questions
about
how
it
compares
to
other
tools,
which
is.
B
B
A
C
C
B
Love
it
and
it
looks
like
they're
saying
and
thinking
all
the
same
things
I
am
yeah
or
I'm
saying
and
thinking
all
the
same
things
they
are
totally,
and
I
would
say
that,
if
you're
looking
to
like
do
something
like
this
in
production,
yep,
there's
people
there
totally.
A
A
D
B
Any
programming,
language
and
and
in
a
time
where
sometimes
you
know
templating
yaml,
might
not
be
quite
enough
for
what
you're
looking
for.
B
B
A
So,
let's
we'll
get
rid
of
cool
retro
just
because.
C
B
B
B
C
A
I'll
clone
enamel
does
that
make
sense.
Yeah,
okay,
cool.
B
A
Special
treatment,
we
appreciate
it
yeah
should
we
go
to
you
or
so.
B
Dashboard
example,
great.
A
Yeah,
it's
kind
of
it's
kind
of
a
full
circle
moment
where
one
of
your
projects
is
being
featured
on
tgik
yeah.
B
Yeah,
but
I
mean
I
don't
know
like
it's-
I'm
happy
to
talk
about
it
here.
I
I
just
feel
like
there's
so
much
god
I
I
knew
I
wouldn't
be
able
to
do
a
tgik
without
bringing
this
up,
there's
so
much
dang
capitalism
out
there
these
days
that,
like
it's,
there's
nothing
wrong
with
just
writing
a
project
because
it
sounds
fun
and
I
just
want
to
talk
like
I.
A
B
If
anything,
I
want
to
collaborate
and
give
it
away
yeah
so
like
this
was
just
my
way
of
like
I
just
tinkered.
What.
A
A
A
Build
enamel
just
by
itself,
let's
go
enamel.
Do
you
want
me
to
look
at
the
makefile,
or
do
you
just
want
to
tell
me
the
make
command
that
I
know.
A
B
The
best
day
ever,
of
course,
there
is
okay
cool,
and
this
I
have,
if
you
go
to
github.com,
there's
like
a
like
a
makefile
template
that
will
like
you,
so
all.
B
So,
anyway,
we
can
compile
namel
and
it's
it'll.
You
know
it's,
it's
a
pretty
big
binary.
It's
like
45
banks,.
C
B
A
It
yep
cool
and
maybe
I'll
open
up
a
another
session
here,
just
in
case
we
we
want
to
look
at
something
so.
C
B
A
D
C
B
A
A
Okay,
do
you
want
to
run
just
yeah.
B
B
So
yeah
use
use
enamel
like
any
other
tool,
so
like
you
can
convert
kubernetes
gimbal
to
go
which,
like
I
already
dropped
the
bomb.
But
that's
like
really
the
main
feature.
B
And
then
you
can
use
it
to
to
actually
install
and
uninstall
and
so
like,
if,
if
you
could
imagine
that
like
yes,
this
can
install
and
uninstall
as
a
command
line
tool,
but
that's
certainly
not
what
we're
trying
to
tell
people
to
do.
Okay,
fair.
B
Like
what
we're
trying
to
say
is
you
have
an
easy
way
to
install
and
uninstall,
and
you
can
now
do
that
directly
from
code
got
it,
and
so,
like
the
sky's,
the
limit,
it
can
be
a
command
line
tool.
It
could
be
a
library,
it
could
be
a
crd
or
a
crd
with
an
operator
combo.
It
could
be
whatever
you
know.
You
could
have
write
an
http
api
that
takes
json.
That
says,
install
my
package.
A
B
It's
kind
of
the
thought.
Okay,
so
if
you
run
enamel
list
it
will
list
all
applications
that
are
compiled
into
itself.
Should
I.
B
And
so
so,
right
now
you'll
see
that
there's
no
packages
here,
because
this
is
just
the
enamel
command
line
tool.
Okay,
so
what
we
want
to
do
is
we
want
to
build
a
kubernetes
package
and
then
we're
going
to
compile
that
into
enamel
binary.
Okay.
So
a
quick
note
on
namo
binaries,
once
you
I've
over
engineered
this,
I
didn't.
I
haven't
realized
how
much
I
ever
engineered
this
until
now.
This
is
great.
This
is
awesome,
so
I
basically
re-invented
like
kind
of
like
an
abi.
B
So
once
you
have
enamel
binary,
that's
been
compiled
with
enamel
standard
library.
Okay,
you
can
stitch
them
together
at
runtime,
so
you.
A
A
A
Let's
bounce
over
to
that
real,
quick,
so
tgik,
okay,
so
this
is
our
app
yeah
yeah.
B
Yeah
yeah,
okay,
so
if
you
okay,
so
yeah,
let's
take
a
look.
What
we
have
here
cool,
so
we
have
an
app.go
which
app.go
is
the
new
values.yaml.
If
you
want
to
think
of
that,
okay,
so
yeah
scroll
down
and
it's
going
to
be
huge.
This
is
a
huge
file.
Okay,
but
don't
let
that
scare
you,
because
it's
not
that
big
and
it's
not
that
hard
to
understand
yeah.
B
C
B
So
this
is
just
basically
a
small
go
system
that
that
is
about
90
the
same
as
a
conventional
yaml
file
cool,
so
the
app
that
we're
actually
looking
at.
If
you
look
online
180,
it's
the
kubernetes
dashboard.
B
And
so
this
is
a
this
is
the
secret.
So
if
you
go
actually
go
into
google
and
just
look
for
the
kubernetes
dashboard,
okay,
like
project
yeah-
and
you
can
see
where
I
got
this
from
dashboard.
B
A
A
Great
yeah
feel
free
to
take
control
too.
If
I
get
too
slow
so
we'll
do
this
and
we
will
do
it
against
this
url.
Okay!
So
we're
looking
at
recommended.yaml,
yeah,
yeah,
cool,
okay,
great.
B
B
Yep
so
scroll
down
there,
you
go
cool,
so
labels,
kate's,
app
kubernetes,
dashboard,
name,
kubernetes,
dashboard,
search,
namespace,
kubernetes,
dashboard.
A
B
Yeah
there
it
is
okay,
that
might
be
a
name
keyholder.
D
Maybe
so,
let's
see
so
oops,
okay,
so.
B
Exactly
got
it
yeah
cool
and
so,
like
I'd
love
to
talk,
I
don't
know
if
we
can
go
deep
on
go,
but
we
can
talk
about
polymorphism
and
go
and
object
meta
and
all
that
in
kubernetes
anyway
sure
so
every
so
go
has
a
concept
called
embedding
and
there's
also
like
sort
of
like
a
cousin
concept
called
composition.
Okay,
embedding,
basically
you
know.
If
you
imagine
you
had
like
a
holistic
object,
you
can
embed
logic
and
fields
from
another
object
into
it.
B
Okay,
so
every
object
in
kubernetes
embeds
this
thing
called
runtime.object
yep
and
that's
where
object,
meta
and
name
and
like
all
these
things
that
every
kubernetes
object
has
in
common
okay,
and
so
that's
where
we
get
the
polymorphism
from
got
it.
So
every
object
in
cube
can
be
rationalized
as
a
runtime
object.
And
if
you
go
back
to
the
enamel
yep
interface.
D
C
A
A
We
got
a
barnaby's,
I
think,
barking
at
a
a
garbage
truck,
but
we're
back.
B
And
we're
back
yeah,
okay,
so
cool
okay.
So
so
that's
where
the
runtime
object
comes
into
play
got
it
if
we
go
back
into
the
go
code.
Okay,
if
you
look
here
on
line
185,
you
can
see
where
we're
actually
defining
the
object
meta
into
this
core
v1
secret.
So
that's
where
we
get
that
polymorphism
and
that's
where
we
get
that
embedding
and
go
and
everybody
wants
to
say
go
is
not
an
object-oriented
language
and
I
used
to
actually
be
really
big
about
that.
But,
like
I've
I
mean
look
at
it.
We
have.
B
So
yeah
so
anyway,
that's
we
do
that
for
every
every
kubernetes
object
in
that
yaml
file,
okay
and
anyway.
So
that's
what
we
are
looking
at
here
and
if
you
scroll
up
to
the
tippy
top
of
this
function
or
this
method
that
we're
in
the.
B
A
A
Sounds
great
all
right,
so
we'll
get
out
of
the
code
here
and
okay
so
compiling
it
or
am
I
just
like?
Am
I
just
doing
a
go?
Build
no.
A
B
Yeah
cool
make
compile,
and
it's
just
it's
gonna
work
just
like
the
regular
naval
binary,
because
this
is
basically
we
looked
at
90
of
enamel
before
and
now
we're
doing
that.
90
plus
your
10,
which
is
the
kubernetes
dashboard,
got
it
okay.
So
when
this
gets
done,
it
should
look
almost
identical
to
the
the
vanilla
enamel
that
you'll
get
out
of
the
box,
got
it
undefined
output.
Maybe
do
it
go
mod,
tidy
yeah
that
could
be.
A
Cool
and
then
we
will
try
make
again
vendor
json.
A
B
So
let's
try
get
out
of
here
and
try
to
go
mod
vendor
and
then
let's
try
to
make
again
and
then.
B
C
A
B
It
should
look
just
like
the
regular
naval
binary,
okay
cool.
So
now
do
you
now.
B
C
B
A
B
So
like,
if
you
wanted
so
if
we
want,
for
instance,
we
talked
about
like
having
like
a
dash
dash
production
or
something
sure
we
could
totally
bundle
in
like
a
field
that
would
then
be
represented
here.
That
would
say
it's
a
bull.
It
can
be
true
or
false,
and
then
you
could
add
some
language
about
like
what
it.
B
Yeah,
okay.
So
and
then,
if
you
actually
look
at
the
binary
size,
which
we
don't
have
to
do
this,
but
you
if
you
want
to
ls
la
or
whatever
yeah
so
the
binary
size
of
tgik
or
do
dash
h
for
human
yeah,
got.
B
B
Okay,
so
that's
47
megs
and
if
you
go
back
to
the
enamel
binary
it'll
probably
be
if
44
45,
maybe
46.
B
D
C
B
Okay,
so
what's
really
cool
is,
if
you
go
to
the
the
the
regular
namal
binary
now.
A
A
A
A
A
We
will
do
tgik.
B
Right
tgik
install
yeah
but
period.
A
A
Okay,
so
let's
then
just
watch
cube
cuddle
get
pods
all
we'll
make
this
a
tiny
bit
smaller.
Oh,
I
see
the
dashboard
already
yeah.
What
namespace
would
I
put
it
in.
A
Yeah,
great
okay,
so
this
is
an
instance
running
in
aws.
Okay,
which
means
did.
Was
there
a
service
type
load
balancer?
That
would
have
gone
in
maybe
kubernetes.
If
not,
we
can
do
like
a
node
port
thing.
Kubernetes.
A
Oh
port
forward,
duh,
okay,
great-
I
never
port
forward,
so
help
me
out
here.
B
D
B
Space,
the
name
of
the
pod,
okay,
space
yeah,
you
got
it
dashboard
and
then
it's
it's!
It's
port,
colon
port,
docker
syntax.
So
we
gotta
go
to
the
docs
and
I
think
it's
eight
thousand.
A
A
B
A
D
A
A
A
A
C
A
Great
close,
this
we'll
do
this
we'll
grab
the
ip.
That's
why
it
wasn't
running
local,
that's
exactly
it
yeah
and.
B
It
looks
like
carlos
said,
use
prop
cubectylproxy
to
respect
the
to
to
avoid
the
off.
So
I
don't
know
if
that's
that's
good
best
practice
or
worst
best
practice.
A
A
Perfect,
so
this
and
we'll
do
it
right
here
so
8080.
B
8001,
okay,
colon
8001.
great
run
that.
A
A
C
D
A
That's
being
used,
okay,
wrong.
A
D
A
Oh,
is
this
no
here
it
is
here
it
is
yeah.
It's
running.
A
Kubernetes
dashboard
service
is
what
I'm
looking
for
svc
cool.
B
A
B
B
B
B
It's
not
even
doing
the
portforwarding
thing
here:
okay,
so
alias
katie
equals
cubectyl
dash,
namespace
kubernetes,
new
keyboard,
cool.
B
A
A
Yeah,
oh,
wait:
you
did
what'd,
you
do.
B
B
Yeah:
okay:
choose
a
cube:
config
file;
okay,
so
I'll.
Let
you.
D
D
C
A
Just
such
a
power
user
chris,
let
me
tell
you
all
right:
you
want
this
guy
here,
yeah.
A
A
All
right
choose
the
cube
config
file,
config.
D
A
Okay,
we're
with
kubernetes
kubernetes
dashboard
github,
see
if
that
spelling
will
get
me
there.
Okay,
cool
there.
B
B
A
A
Yeah
we
tried
create.
A
A
What
I
mean
the
cubeconfig
is
upset
because
create
a
service
account
and
associate
it
with
cluster
admin
role
and
grab
the
token
from
that.
You
wanna
do
that:
okay,.
A
Should
do
it
so
we
should
probably
do
it.
Okay,
so
this
right
here,
all
right,
cool,
we'll
just
make
a
big
animal
file
here.
B
And
then
actually
throw
that
in
the
we
could
this
one
can
be
our
pull
request.
Enamel,
oh.
A
So
we'll
put
it
here
and
we'll
say:
service
dash.
B
A
It
seems
good.
Okay,
let's
make
this
bigger.
Okay,
so
service
accounts,
admin,
user,
we're
binding
that
to
cluster
admin,
seem
reasonable,
okay
and
then
after
we
apply
it,
we
get
a
bearer
token
from
it.
I
think
okay
makes
sense.
A
Fault
by
the
way,
yeah
service,
dashboard,
great
thing.
D
A
B
A
C
D
A
C
A
A
B
B
Right
so
so,
let's
go
back
to
enable
great:
let's
do
it
and
so
we'll
we'll
get
to
the
future
when
we
get
there
yeah,
let's,
let's
generate
a
new
application.
Okay
from
the
the
the
yaml
file
you
just
created.
B
B
B
B
See
the
default
values
over
there,
okay,
and
I
would
at
least
suggest
checking
renaming
dash
dash
name
from
app
to
something
else.
Okay,.
B
B
Right
now
it
just
stores
it
in
the
apache
two
header.
Oh.
B
B
B
Okay,
cool
so
do
service
dashboard
hit,
yeah
run.
A
C
C
B
So
I
implemented
the
deployable
interface.
We
looked
at
earlier.
B
Yeah,
so
pipe
that
to
you
can
just
do
a
single
carrot,
call
it
main.go
for
now.
Okay,
great!
Actually,
sorry.
Can
you
rename
that
to
app.go
yep.
B
C
B
So,
like
it'll
get,
you
started
and
like
for
me
as
a
go
author.
This
like
this
is
this
is
crazy,
convenient
because
nobody
wants
to
like
copy
paste
and
go
look
up
at
docs
anymore,
totally
coming
from
from
yaml,
but
so
what
this
does?
Is
it
basically
gets
you
a
standalone,
app,
okay,
we're
gonna
vendor
this
app
from
that
original
tgik
go
program.
B
B
A
A
So,
let's,
let's
get
rid
of
tag
bar
real
quick
and
make
this
smaller.
Oh
geez,
okay,
great
here.
A
B
Call
it
dashboard
great
or
dashboard
off
it
works
for
me
there
you
go
okay,
okay,
that
should
do
it.
That
should
do
it.
Okay,
so
great
quick,
yep
right,
quit,
okay
and
then
go
so
now.
Let's
pull
up
the
the
original
tgik
yup,
you
got
it
app.go
command,
main.go,.
B
D
B
A
Fantastic,
so
what
are
we.
B
So
I
would
do
no
it's
okay,
so
do
github.com,
chrisnova
or
sorry.
B
B
But
you
just
trust
me
here:
okay,
so
type,
simple,
okay
and
then
do
slash
the
dashboard.
A
A
Cool,
so
this
will
be
dash.
Can
I
call
this
dba
sure
whatever
you
want
to
college
might
not
be
the
best
name,
but
we'll
roll
with
it
sure.
B
A
D
A
Okay,
go
mod
tidy,
yep.
D
A
On
that
so
now
you're
in
the
tgik
directory
cool.
B
So
if
you
want
to
edit
the
go
mod.
C
A
A
A
B
A
And
I.
C
B
C
A
Let's
just
check
real
quick
dashboard
off
and
it
was
app.go.
I
think
yeah.
C
A
Okay,
cool
just
just
just
run,
go
oh
enamel.
You
want
me
to
run
or.
B
Yes,
run,
make
oh
make
make
compile
or
just
make
we'll
default
to
compile.
So
you
guys,
you
can
just
type
got
it:
okay,
cool
on
app.go
line,
23
semicolon
or
new
line.
So
let's
check
out
like.
D
B
Put
a
dash
in
a
hacker
james,
I
don't
know
get
rid
of
it.
Okay,
I
think
you
have
to
do
an
underbar.
B
B
B
And
you
renamed
the
folder
right.
I.
A
B
Yep
there
we
go
dashboard
os,
so
do
you
get
you
got
to
run
a
so
that's
all
from
the
main.
B
C
C
A
Yeah
yeah
do
all
this
stuff
we're
stuck
in
the
past
right
now.
Okay,
so
we're
gonna
do
want
to
go
fum
to
this
thingy
yep.
A
C
B
A
A
B
In
the
past,
if
you
and
your
team
in
kubernetes-
like
let's
say
you
were
using
helmer
customized,
if
you
had
multiple
charts,
okay
stitching
them
together,
was
like
this
whole
exercise
of
like
how
do
we
reference
other
packages
and
do
other
things
totally?
So
I'm
I'm
not
saying
go
mod
is
god's
gift
to
package
management
sure,
but
I
am
saying
that,
like
it's,
it's
actually
better
than
a
lot
of
the
other
kubernetes,
because.
D
B
C
C
C
D
B
A
B
Right,
absolutely,
okay
got
it.
That's
interesting!
That's
the
idea
here,
okay
and
then
you
could
so,
let's
let's
say
you
know
we
had
30
packages
yeah
and
we
grouped
all
those
together
in
our
meta,
app
yeah.
We
could
release
that
meta,
app
version,
1.0,
okay,.
C
B
B
D
B
A
A
A
B
Oh,
did
you
compile
it?
I.
B
A
Let's
we'll
put
screen
share
screen
here.
Oh
yeah
good
point
thanks
everybody.
They
didn't
even
see
us
screw.
A
Well,
I
know
abc
got
to
us
first,
but
yeah,
okay,
so
we're
back
here
everyone
just
so
you
know
what
happened.
I
ran
where's
my
mouse
at
iran,
oh
geez,
here
we
are
okay,
I
ran
tgik
listener
only
said
the
dashboard
and
we
think
what
happened
is
inside
of
here.
We
didn't
register
it
as
a
unique
name
as
a
hashmap
but
of
course
overwrite.
The
key
so.
B
It
does
do
a
map
on
the
name,
so
there's
a
ton
of
like
implementation
detail
here
that,
like
totally,
I
just
picked
something
just
to
kind
of
like
demo
it
to
show
that
this
this
works
yeah,
but,
like
I
don't
know,
I
would
hope
that,
like
somebody
somewhere
just
like
cubicorn
kind
of
turned
into
a
lot
of
the
stuff
for
cluster
api,
I
would
hope
that
there's
people
who
are
smarter
than
I
am
that
can
kind
of
like
debate
about
you
know.
Do
we
use
a
hashmap?
B
B
B
B
Okay,
so
yeah,
so
then.
A
C
A
sticker,
yeah,
okay,
so
this
okay,
great.
A
So
in
theory,
if
we
bump
that
did
another
patch
release
yep,
we
would
make
compile
again
yep
and
or
make
right
tgik.
B
Then
we
can,
let's
tgik
yep,
we
can
install
and
then
you
just
type,
you
know,
cube
dashboard
roles,
thingies,
okay
and
it
already
exists.
C
D
B
A
B
B
Just
it's
deterministic
in
nature.
Each
way
yeah
so
you'll
always
just
create
the
same
sweet.
The
same
way
that
the
same
code
so
and
it
uses
this
tool
called
ballast,
which
is
like
a
recursive
ast
for
go.
B
C
A
B
A
B
The
to
the
repo
here
cool
I'm
going
to
play
the
role
of
a
maintainer
here:
okay,
josh,
you
don't
have
unit
tests
for
your
application.
B
C
C
B
B
C
B
A
C
B
C
B
A
I
believe
I
do,
but
I
do
need
to
start
my
doctor
damon
real,
quick,
okay,
so.
A
System
ctl
status,
docker
yeah,
you
are
definitely
not
on.
Let's
start
you
up.
A
Yeah
docker
here
we
go
cool,
okay
and
I
think
I
have
kind
yeah.
B
B
B
A
B
B
Gives
us
an
opportunity
to
actually
build
logic
to
set
up
our
tests
across
the
board?
Yeah.
A
B
C
A
D
B
Cool
okay
today
I
learned
great
yep,
okay,
so
going
to
test
app
and
then
so
here
we
basically
get
a
cube,
client.
A
B
Want
to
do
it
was
the
tgik.new
app
which.
C
C
C
B
Dot
install
method
from
the
deployable
internet,
interface,
yeah,
and
so
anyway,
you
can
probably
just
do
a
make
test
here
and
let's.
A
See
if
it
goes
yeah
it
should
just
go
and
I'll
see
if
she
goes
just
so
we
can
just
so.
We
can
watch
our
little
docker
friend
here
too
I'll
open
up
another
another
buffer
cool.
So
we'll
watch
docker,
ps,
sweet.
A
Let's
get
rid
of
this
running
one
because
who
knows
in
fact
you
know
here's
what
we're
gonna
do
because
josh
doesn't
do
this
as
much
as
he
should:
docker
kill,
docker,
ps,
q
and
and
docker
system
prune.
Did
you
want
q
or
a
volumes
q?
Oh
apparently
I
wanted
a
really
bad
q.
Okay,
great
sudo
maybe
requires
one
argument:
docker
psq.
A
B
A
A
B
B
B
B
B
A
B
A
B
Cool
and
then
we
just
all
have
to
do
is
edit.
Our
new
remember.
A
B
This
will
be,
this
will
be
kubernetes,
auth,
dot,
new
app.
B
A
Dashboard
auth
dot,
new,
app,
okay
and
then
we'll
just
do
some
quick
trickery
here.
You.
B
B
Yep
and
then
we
also
have
to
make
one
more
little
change
down
there.
Okay,
great.
A
I'm
just
going
to
go
here
real,
quick
and
grab
my
import
statement
from
yeah.
Where
did
it
wait?
Oh,
it
was
cmd
main
dot.
Go.
B
A
C
C
B
B
Default
and
sample
app.
These
are
the
the
parameters
you
pass
in.
So
oh
right,
right,
okay,
so
the
whole
paradigm
here
is:
when
you
do
new
app
right,
it
can
be
new.
My
thing
new
josh's
thing
call
it
whatever
you
want
and
if
you
want
to
follow
like
the
new
like
the
idiomatic
way
of
using
go
new
should
just
be
like
not
new,
totally.
B
Want
to
pass
in
a
container
image
or
a
replica
account
yeah
or
an
user,
or
you
want
to
pass
in
a
name.
B
It's
just
for
yeah,
and
this
goes
back
to
like
carlos,
was
saying
in
the
chat.
This
goes
back
to
dash
dash
name.
B
B
D
B
C
B
Do
whatever
you
want
to
with
it?
Okay,
so
anyway,
so
this
should
this
should
work,
so
we
should
be
able
to
do
make
test
it'll
spin
up
a
time.
Cluster
it'll
run
two
unit
tests
and
both
of
our
kubernetes
app.goes
that
we
created
one
for
the
dashboard
and
one
for
the.
The
off
yeah
should
get
deployed
to
queue.
Okay
and
then
should
pass
the
test,
and
then
what
we
can
do
is
we'll
go
ahead
and
run
it
yeah.
C
B
A
D
C
A
Carlos
says
I'm
paying
attention
where's
that
beer,
yours
carlos,
is
in
the
mail
mine's
right
here.
B
A
So
maybe
in
a
couple
days,
field
testing,
ooh.
B
Oh
I'm
unable
to
install
a
sample,
app
admin
users
forbidden
to
create
a
new
content.
So
we
actually
got
a
problem
with
cube
here,
which
is
cool
because.
A
This
is
yeah.
This
is
a
great
this
way
you
want
to
catch
yeah,
exactly
so
admin
user,
maybe
isn't
a
service
account
in
kind
or.
D
D
B
A
B
A
Yep
makes
sense
to
me,
and
so
we'll
take
out
this
here
and
then
we'll
take
out
this
here.
Yeah.
A
D
A
C
B
Okay,
so
yeah
that,
should
that
should
do
it.
B
B
A
A
A
B
A
D
B
D
D
B
This
big,
like
add
your
config
here
yep.
So
if
you
wanted
to
expose
like
you
know
any
field
you
wanted
to
and
plug
that
through
to
your
app,
you
totally
could
okay.
So
in
this
case
we're
gonna.
Actually
you
pass
in
name
and
we're
gonna
plumb
that,
through
to
the
rest
of
our
because
remember,
this
was
auto-generated
yeah.
C
C
B
B
So
like
we
created
a
new
service,
account
yep
typed
made
a
kind
and
then
object
made
a
name.
Okay,
so
just
go
in
and
replace
admin
user.
Okay
with
it's
so
a
for
app
dot,
name,
a.
A
B
B
B
A
Okay,
great
cool,
I
think
it's
just
a
warning.
Yeah
we're
good
yep.
A
D
C
A
B
A
Okay,
cool
all
right:
should
we
pump
in
that
bad
name
again
and
see
if
it
breaks
it,
yeah
should
be
able
to
run
it.
So
we'll
do
make
test.
C
B
D
B
Like
we
have
computers,
let's
use
computers
to
make
it
easier
easy
for
me.
Did
we
do
we
passed.
A
I
put
the
funky
the.
B
A
Dba
right,
yep
there
you
go
that
should
do
it
great
make
test
cool.
This
should
break
yeah.
This
will
hopefully
break
so
chris.
If
I
was
an
app
developer
and
I
like
had
a
repository
that
my
app
source
code
was
in
yes,.
B
B
C
B
C
B
That
complexity
makes
it
really
hard
for
us
to
iterate
on
apps.
So
I
would
say
that
if
you
start
to
think
of
this
app.go
as
your
install
system
yeah,
that's
part
of
your
project's
responsibility,
that's
in
scope
for
you,
your
your
project,
totally.
D
D
A
B
So
yeah,
and
so
that
that's
coming
from
the
kubernetes
api
yeah,
that's
a
real
cube
error
that
you
might
see
in
prague
that
you're
going
to
see
in
your
builds
and
you're
able
to
get
that
right
here
locally
as
well
totally.
So
the
only
other
thing
we
could
do
is
if
we
wanted
to
try
to
like
expose
it
and
then
actually
send
a
curl
to
make
sure
the
dashboard
is
working
yeah.
We
don't
have
to
do
that
today,
especially
because
obviously
we're
both
naive
to
proxy.
B
D
B
A
Yeah,
so
what
do
you
think
chat,
interesting,
stuff,
very
cool?
Is
there
anything
that
you
want
to
say
chris,
like
getting
involved?
Have
people
open
issues
the
typical
open
source
model,
I
guess
or.
B
I
mean
yeah,
it's
open
source
if
you're
thinking
about
doing
this,
like
maybe
give
me
a
call
or
like
consider
pulling
me
first
like
there's
people
who
do
this
professionally,
who
are
happy
to
talk
to
you
and
listen
to
your
problems.
I
probably
don't
have
very
much
time
to
listen
to
your
problems
and,
frankly,
don't
really
care
so
like
just.
B
So,
like
you
know,
like
I
don't
know
this,
was
this
gonna
go
somewhere
or
turn
into
something?
Maybe
it's
I.
I
have
no
interest
in
becoming
an
app
maintain
app
of
apps
maintainer
sure
so
like
use
it.
If
you
want
I'll,
keep
the
unit
test
working.
If
you
open
up
a
pr
and
if,
if
you
know
you
want
to
start
writing
unit
tests
for
the
project
itself,
I'll
make
sure
that
the
releases
pass
the
unit
test.
D
B
A
We
have
time,
go
for
it,
let's
jump.
A
B
This
point
we
deployed
an
app
yep
that
we
got
from
yaml.
Okay,
we
haven't
edited
a
single
yaml
file,
yep
no
text
templating.
Okay,
we
piped
that
into
go.
We
built
two
go
systems
totally
plumbed
both
of
those
through
the
same
enamel
boilerplate
code,
we're
able
to
list
both
of
them
and
install
both
and
write
unit
tests
for
both
cool.
We
haven't
outputted
our
uml,
yet.
A
C
B
D
B
We
want
to
actually
now
like
give
somebody
a
yaml
file.
This
is
basically
what
what
you
would
do
and
if
you
look
it
just
spits
out
regular
old
kubernetes
whatever,
and
you
can
actually
pass
in
whatever
name
of
the
the
app
you
wanted
to
do
so
you
could
do
tgik.
You
know
this.
The
name
of
the
second
app
dash
o
yaml
or
ojson
and
it'll
spit
out
your
your
app
that
you
got
it
got.
A
B
B
B
Anyway,
that's
that's
the
I'm
not
sure
if
I
want
to
keep
this
feature
or
not,
but
I
think
I
do
just
because
I
feel
like
people
are
yeah.
You
know
one
of
the
things
somebody
on
the
t
my
teammate
twilio
said
to
me.
He
was
like.
I
know
you.
I
know
this
is
good,
but
like
no
matter
how
much
you
want
we're,
never
going
to
get
away
from
totally.
B
B
A
For
today,
if
you
haven't
already
check
out
github.com
chris
nova,
slash
enamel,
give
it
a
shot,
and
thanks
for
hanging
out
with
us,
it
was
really
fun.