►
From YouTube: TGI Kubernetes 087: Octant
Description
Join Bryan Liles in his first TGIK to explore octant. A new tool that provides a number of capabilities around visualizing the state of your Kubernetes cluster.
Come hangout, ask questions, and share you experiences!
A
Hello
good
afternoon,
I'm
Bryan
Liles,
and
this
is
TTI
k,
number
87.
So
this
is
my
first
T
GI
k
and
watching
them
for
an
extremely
long
time.
I
worked
at
hefty
o
with
Jo
beta
when
he
was
doing
these
for
quite
some
time
and
now
I
worked
with
Jo,
beta
and
and
Duffy
and
Josh,
while
they're
doing
them
here
at
VMware,
and
today
they
invited
me
to
do
one.
A
So
let's
get
started
here
well,
first,
let
me
go
through
and
look
at
the
chat,
happy
Friday
to
everyone
out
there.
So,
let's
see
who's
on
there,
so
Philippe
hi
how
you
doing
Rory
from
oh,
my
go
ahead:
Wow,
hello,
Oh,
May
good
evening
Nuno
in
Portugal,
hi,
all
right,
someone
Daniel
from
st.
Louis
and
in
Carlos,
Santana
I,
hope
it's
the
real
one
and
oh
wow
I'm
Bogdan
Bogdan
Luca
from
Bucharest
and
Tim
Reeves
from
Frankfurt
in
Ireland.
A
A
Let's
see
Jukka
phil
from
helsinki,
hello,
oh,
the
Finns
are
definitely
out
today,
Hyundai
from
VMware,
how
you
doing
and
then
Taz
murex
from
India
and
then
Malcom
X
from
New,
York,
New,
York,
I
know
that
guy
and
let's
see
we
got
Philip
from
Germany
and
we
have
Johan
from
South,
Africa
and
Suresh
from
Hamburg,
oh
right
and
then
joy
from
Richmond
and
Ramesh
from
San
Francisco.
Alright,
I'm
gonna
swing
back
around
on
this
and
a
little
bit.
A
A
So
our
notes
for
this
week
I
believe
they
are
at
TGI,
K,
dot,
io,
/
notes,
I
hope,
that's
where
it
is,
but
if
not,
if
you
squint,
you
can
actually
see
the
URL
and
we'll
just
go
over
all
these.
So
this
week
was
actually
kind
of
a
quiet
week.
I
think
everyone's
getting
ready
is
either
on
vacation
or
will
be
taking
a
vacation.
A
Pretty
soon
so
things
are
kind
of
quiet,
so
I
found
some
links
this
week
that
I
like
to
share
so
the
first
one
here
is
from
a
link
from
reddit
of
all
places.
It's
as
entitled
it
was
actually
a
post
called
sto,
Y
and
normally
I
avoid
the
snark
on
on
the
Internet's,
but
the
post
actually
had
some
good
arguments
about.
Why
why
you
wouldn't
use
this?
A
Do
and
I
don't
have
a
lot
of
commentary
on
it,
but
I
will
say
that
pinging
500,
whoever
they
are
definitely
laid
out
a
case,
but
the
best
part
about
this
is
that
in
the
comments
which
is
rare
for
the
Internet
is
that
there
were
a
whole
bunch
of
well-reasoned
replies
on.
Why
you
might
want
to
consider
is
the
app
and
some
of
the
good
ones
were,
let's
think
well,
you
do
get
load
balancing
with
services
include
burn
Eddie's,
but
you
don't
get
any
control
over
that
load.
A
Balancing,
there's,
no
sort,
there's
no
such
thing
as
traffic
shaping
so
is
theƶ
or
any
other
service
mesh
can
actually
help
you
out
there.
Another
thing
is
that
was
brought
up.
Is
things
like
mutual
TLS?
You
have
pod
a
and
it
has
to
talk
to
pod
B.
How
can
you
guarantee
that
no
one
else
can
get
a
get
a
part
of
that
conversation.
Service
messages
can
do
that
as
well.
So
I
do
encourage
you
all
to
read
in,
and
here's
actually
why
I
did
start
reading.
A
It
is
because
docking
came
in
there
and
he
dropped
some
notes
and
the
reason
why
it's
important
that
he
came
in
there
is
because
he
I
think
he
wrote
a
lot
of
this
stuff
I
think
he
wrote
ingress
for
kubernetes.
So
he
has
a
lot
of
insight
on
that.
So,
let's
check
out
the
next
link.
Oh
here's
a
Bitcoin
Bandai
and
the
dark
side
of
coop
config
I,
like
a
lot
of
things
about
kubernetes
and
one
of
the
things
that
isn't
on
that
list
of
things.
A
I
like
about
kubernetes,
is
cubes
and
things
and
the
problem
with
cube
configs
is
they
provide
just
enough
structure
to
ditch
you
to
where
you
want
to
be,
but
not
enough
structure
to
actually
do
things
in
a
well-formed
way
and
for
those
who
don't
understand
what
a
cute
config
file
is
queue.
Config
basically
contains
your
credentials
or
it
gathers
your
credentials
and
your
cluster
information.
So
you
can
talk
to
a
cluster
and
generally,
it's
separated
into
three
main
parts.
You
have
your
clusters,
which
point
to
your
cluster.
A
Where
your
clusters
are,
you
have
user
information,
which
is
whatever,
however,
you
dedicate,
and
then
you
have
a
context
which
binds
those
two
together
and
the
context
can
also
put
a
namespace
in.
So
whenever
you
talk
to
the
cluster,
you
can
talk
to
a
certain
namespace
by
default.
That
sounds
great,
but
the
problem
is
is:
is
there's
not
a
lot
of
standards
and
are
actually
there's
too
many
standards
and
how
you
can
configure
you're
off
to
the
cluster?
You
can
provide
simple
tokens.
A
So
this
article
right
here,
I,
remember,
reading
this
one
earlier
this
week,
where
is
basically
I
like
the
first
line
leaking
credentials
and
really
what
we
should
try
to
do
is
assume
that
you
know
people
are
going
to
do
the
absolute
worst
thing
they
can
do
in
your
platform
and
never
on
purpose.
Sometimes
on
purpose,
though,
and
so
we
should
make
it
easier
for
our
users
to
provide
their
credentials
in
a
safe
way.
A
So
what
this
article
does
is
it
actually
just
goes
through
all
the
issues
that
you
can
have
with
Cuba,
configs
and,
and
it
presents
some
solutions
on
how
you
can
get
around
it,
pretty
sound
advice
if
I
must
say
so
myself,
alright.
So
the
next
item
here
is
is
Oh
from
the
CN
CF.
There
is
a
new
cig
and
it's
called
apps
delivery,
and,
what's
so
exciting
about
this,
is
that
I
think
we
did
all
right.
A
That's
fine
I
think
that
we
get
a
little
bit
we're
really
into
our
Cooper
news
community,
but
realizing
that
the
cloud
Native
community
is
actually
larger
than
kubernetes
itself.
There's
lots
of
projects
and
there's
actually
a
huge
ecosystem
of
apps
and
really
what
this,
what
the
CN
CF
is
trying
to
do
is
provide
different
special
interest
groups
around
cloud
native
topics
rather
than
focusing
on
kubernetes
specifically,
so
this
new
sake
from
CN
CF
does
not
supersede
or
takeover
for
sig
apps
include
minetti's,
but
really
what
it
talked.
A
What
it's,
what
it's
focused
on
is
on
providing
more
information
in
this
space
and
I
will
scroll
down
here,
because
there's
actually
a
pretty
good
part
here,
where
it
actually
talks
about
some
of
the
things
that
the
cig
will
be
doing.
So
the
first
part
is
actually
my
favorite
part.
There's
a
lot
of
details
about
how
to
do
things
and
they're
just
not
out
there.
A
lot
of
people
are
cobbling
together
solutions
and
there's
a
big
place
for
weather.
A
Coming
up
with
canonical
solutions
or
sharing
our
solutions
with
others,
so
they
don't
have
the
same
to
make
the
same
mistakes
and
spend
all
the
time
we
did
so.
The
first
of
these
activities
that
was
presented
as
an
example
would
be
providing
educational
materials
and
a
good
example
of
that
would
be
finding
a
great
canonical
application
to
show
show
how
kubernetes
works.
There
was
a
back
in
the
day.
Many
years
ago
there
was
a
Java
pet
store,
I
think
there's
a
pet
store
on
kubernetes
I
know:
Google
Cloud
has
a
another
store.
They
offer.
A
That
has
a
lot
of
different
services
in
it,
so
you
can
actually
see
a
big
gap,
but
it
would
be
nice
if
this
was
owned
by
the
community
and
not
by
a
particular
company.
So
there's
a
lot
of
good
things
going
on
here.
Please
check
out
their
links.
They
also
have
a
mailing
list
and
I
know
that
elections
are
coming
up
and
the
group
will
be
meeting
pretty
regularly
to
start
showing
through
these
problems.
A
The
next
item
on
the
list
here
is
crew
and
the
reason
I
bring
crew
up
is
because
Google's
kubernetes,
podcast
featured
the
authors
of
crew
and
one
of
them's
name,
are
how
who
are
they?
They
are
awesome
and
and
Luke
and
and
the
rete
neat
thing
about
crew
is
what
Creole
is,
is
actually
a
plugin
system.
A
Things
like
snap
managing
being
able
to
manage
your
dependencies
is
super
helpful
and
first
to
make
sure
that
we
know
a
running
and
second,
it
makes
it
gives
people
who
are
creating
these
plugins
a
good
outlet.
So
I
encourage
you
to
listen
to
the
this
podcast
and
actually
just
go.
Take
a
look
at
crew
in
general.
A
A
So
this
article,
that's
a
lot
of
words
here
seems
like
got
pictures.
Oh
wow
I
actually
encourage
everyone
to
go,
read
this
article
and
not
because
I
think
it
might
be
the
greatest
idea.
It's
just
because
this
is
what
this
is:
the
kind
of
blog
posts
that
we
need
in
the
kubernetes
community
right
now
we
need
less.
We
need
less
blog
post,
actually
I
shouldn't
say
that
we
need
way
more
blog
post
about
how
to
do
business
things
and
and
get
apps
running
on
the
clusters
rather
than
just
running
clusters
themselves.
A
A
So
the
next
item
here
is
since
we're
talking
about
six
earlier.
There's
a
new
sick
in
kubernetes
land
called
cig
usability
and
really
what
it
is
is
talking
about
user
experience
and
accessibility.
An
interesting
thing
now
is
that
Cooper
Nettie's
is
matured
to
the
point
where
we're
not
just
talking
about.
Can
we
do
XY
and
Z,
but
can
we
do
XY
and
Z
in
a
way
that
actually
makes
sense
and
actually
has
a
good
experience
for
the
people
who
are
trying
to
do
it?
A
A
Okay.
So
just
before
I
get
started
here.
This
microphone
is
a
key
caster
from
blue.
It
has
a
nice
cool
boom
arm
and
all
that
and
I
want
to
sound
like
Barry
White
I
think
my
whole
bite
voice
is
a
little
bit
high.
So
I
don't
sound
like
Barry
White,
but
at
least
I
sound,
like
a
very
clear
bird.
So
let's
get
started
on
optin
and
before
I
get
into
octant.
A
Let
me
actually
tell
you
why
we
created
Achtung
so
last
September
before
anyone
was
even
talking
about
a
hefty
obeah
blurr
thing,
jo
beta
and
I,
were
sitting
around
talking
about
new
projects
that
we
could
think
about
in
a
developer
experience
and
the
reason
why
we
do
that
is
because
at
hep
do
and
then
somewhat
at
VMware's
I'm
focused
on
projects
that
are
helping
developers
use
kubernetes
in
a
better
form.
So
sig
usability
is
actually
very
interesting
to
me.
A
So
the
applications
I
think
about
are
not
providing
business
value
but
are
helping
people
who
are
providing
business
value.
Do
it
in
a
better,
faster,
cheaper
type
of
way.
Previous
examples
were
projects
like
case
on
it,
which
was
a
huge
experiment.
We
learned
a
lot
about
kubernetes
and
some
of
the
ins
and
outs
of
configuration,
but
we
decided
not
to
continue
that,
so
we
knew
that
was
going
to
happen.
So
we
were
thinking.
We
were
brainstorming
other
projects
and
it
came
down
to
a
conversation
about
I'm
using
kubernetes
and
something
is
broken.
A
Why
is
it
broken?
And
you
know
we
we
talk
about
these
things
and
and
as
experts
or
or
advanced
users
we're
like
well,
you
can
just
go
do
this,
so
what
we
found
I
mean
when
we
were
talking
is
that
this
is
acts
extremely
hard
to
do
so.
I
wanted
to
start
off
with
an
example
of
a
broken
kubernetes
site.
Please
do
not
put
this
on
kubernetes
WTF,
that's
only
an
example,
but
we
got
to
start
from
somewhere.
A
So
I
created
this
website,
it's
a
HTTP
s,
:
/,
/,
h,
TT,
bin
dot,
TG
t
GI,
k,
dot,
Brian,
L,
dev,
and
actually
that
is
the
wrong
address.
It
is
there
we
go
it.
Some
HTTP,
Ben,
TG
t
GI,
k,
87
dot,
Brian
L
dev.
At
one
time
this
site
worked
and
I
know.
That's.
The
cell
is
working
because
I'm
not
getting
any
messages,
but
what's
wrong
and
as
an
expert
kubernetes
developer
or
a
person,
who's
really
juiced,
the
kubernetes
you're
thinking
well,
I
would
just
go.
A
Do
this
and
I
have
a
go,
do
that
so
let
me
detail
what
some
of
this
and
some
of
that
is.
So
let
me
make
this
bigger
there.
We
go
so
I'm
on
my
command
line.
I'm
set
up
I,
have
my
cute
config
set
up
to
go
directly
to
this
cluster
and
specifically
to
this
namespace,
where
all
my
things
are
happening.
So
the
first
thing
I
want
to
see
is
well
what
would
I
want
to
see?
I
have
a
website
and
generally,
if
we
have
a
workload,
that
is
a
website
and
Kluber
Nettie's.
A
We're
gonna
have
a
couple
of
things:
we're
going
to
have
something
that
makes
a
pod
and
then
are
actually
we're.
Gonna
have
a
pod
or
one
more
than
one
pod,
we're
gonna,
something
that
makes
that
pod
we're
going
to
have
a
service,
but
so
that
we
can
actually
get
traffic
to
those
pods
and
because
you
notice
that
this
was
an
external
web
site,
there's
most
likely
an
ingress.
So
there's
four
things
that
we
would
have
to
look
for
before
we
even
get
started.
So
actually,
let's
go
look,
so
ok
get
pods.
A
A
So
it's
actually
the
same
thing.
So
I
see
that
my
pod
has
been
running.
It
looks
like
it's
fine.
What
we
can
probably
do
is,
we
can
do,
let's
say
K
logs
and
what
I'm
doing
now
is
I'm
just
looking
for
logs
in
here,
and
this
application
is
not
something
I
wrote
it's
HTTP
Ben.
You
should
probably
go
look
at
it.
It's
a
probably
the
best
demo
application
out
there
if
you're
doing
web
things,
because
it's
very
versatile
and
it
understands
they-
should
you
compete.
So
what
do
we
have
here?
Well,
it
looks
like
it's.
A
A
Well,
if
you
look
through
this,
there
are
some
nuances
here,
so
you
actually
have
to
understand
how
kubernetes
works
to
understand.
If
your
service
is
right,
it
was
working
correctly
and
the
service
is
working
correctly,
so
it
has
a
name.
It's
in
a
namespace
No
Labels
has
an
annotations.
This
is
because
I
applied
if
you'll
command
line,
it
has
a
selector.
Oh,
it
has
an
IP,
an
internal
IP
this
in
the
cluster.
It
has
a
port,
so
we
know
that
it's
running
on
8080
TCP.
A
Let's
see
what
else
we
have
here.
We
have
target
port,
no
endpoints,
no
session
identity
and
no
events.
So
as
a
beginner
to
kubernetes,
you
might
not
you're
stuck
you
don't
understand,
what's
happening,
but
as
an
intermediate
user
to
kubernetes,
you
might
realize
that
the
way
that
services
can
get
traffic
to
pods
is
there's.
This
thing
called
endpoints,
so
it's
basically
service
service
and
our
service,
endpoints
and
sexually
is
endpoints
and
pod
and
you'll
notice
that
there
is
no
in
points
here.
A
So
actually,
let's
take
a
look
at
this,
so
we'll
go
get
our
service
and
we'll
do
a
gamble,
and
the
way
this
is
configured
here
is
the
way
that
the
service
is
hooked
up
to
the
pod.
With
the
animal
configuration
is
using
a
selector,
and
in
this
case
the
selector
is
run,
it's
basically
a
run,
HTTP
bend.
So
what
it'll
do
is
it'll
find
pods
that
are
labeled
the
same
way.
So
let's
go
look
at
my
pod.
A
So
we'll
go
look
at
my
pod
and
I'm
not
doing
any
trickery
here,
we'll
just
go!
Look
at
it!
Look
at
it
and
notice
that
we
have
the
metadata
and
we
have
labels,
and
actually,
let
me
make
this
easier
so
because
this
is
animal
I
think
I
can
just
we'll
just
do
it
is
Jason
and
then
we'll
just
use
JQ
and
then
we'll
be
bit
metadata,
dot
labels.
A
So
now
we're
just
outputting
the
labels
for
my
pod
and
you
notice
before
when
we
said
that
the
selector
is
how
it
finds
pods
and
it
had
run
:
mase
to
be
been
here,
and
we
notice
that
it's
app.
The
reason
that
this
is
not
getting
traffic
is
because
the
service
doesn't
match
any
selectors.
How
are
you
supposed
to
know
that
I
don't
know
so
this
is
why
we
created
optin.
A
We
created
octant,
because
you
shouldn't
have
to
be
an
expert
to
figure
out
why
your
sites
not
working
you,
might
have
to
be
an
expert
to
make
it
run
better,
faster,
cheaper,
but
you
should
not
have
to
be
an
expert
to
get
started
out.
So
let
me
actually
start
taking
a
look
at
what
we've
done
with
optin.
A
A
So
what
I'm
going
to
do
is
actually
just
show
you
how
we
look
in
PI
Lockton,
so
the
first
thing
I'm
going
to
do
is
go
to
mountain
directory
and
then
what
I'm
going
to
do
is
this
is
actually
just
a
directory.
That's
pulled
down
from
github
I'm
on
a
Mac,
so
I'm
going
to
run
this
make
file
and
two
things
are
gonna
happen.
First,
because
optin
is
actually
a
web
application
and
backing
service
an
API
and
one
is
in
typescript
and
one
isn't
go.
A
We
need
to
compile
the
web
application
in
a
way
that
we
can
actually
embed
it
inside
of
the
binaries.
So
we
can
just
have
one
binary.
So
what's
going
to
happen
here,
is
we
actually
do
some?
What
we?
What
we
actually
do
here
is
we
are
building
a
dist
file
for
this
angular
app,
and
then
we
take
the
angular
app
and
we
package
it
into
this
go
file
and
actually
show
you
that
go
file
in
a
second
and
then
we
just
compile
it
in
as
a
binary
into
our
app.
It
actually
does
not
it's.
A
It's
not
super
slow
for
this
site
for
this
size
app.
It
doesn't
actually
it's
not
that
big
I
think
this
bundle
was
only
a
couple.
Meg's
client
goes
way
bigger,
so
this
is
almost
done
compiling
and-
and
you
notice
that
angular
apps,
especially
angular
7
apps,
do
not
pile
fast.
So
this
is
something
that
we
have
to
do.
Only
whenever
we're
going
to
deploy
it
and
our
development
mode,
we
can
actually
do
something
else.
We
can
just
run
it
from
the
file
system.
A
So
now,
what
it's
doing
is
it's
taking
all
that
JavaScript
that
it
generated
from
the
typescript
and
it's
trying
to
make
the
smallest
bundle
possible
and
when
it
gets
done
with
that,
we
will
be
moving
forward.
So,
in
the
meantime,
let's
go
back
to
my
other
screen
and
take
a
look
at
our
our
files
that
we
have
so
in
this,
and
today
we're
going
to
actually
do
a
few
things.
We're
going
to
go
over
this.
A
This
problem
use
case
for
octant
and
then
we're
going
to
take
a
take
a
whole
like
a
basically
a
whole
look
at
octant
and
look
at
all
the
parts
and
then
we're
going
to
show
you
how
octant
differs
from
the
kubernetes
dashboard,
because
I
know
this
is
a
hot
topic
and
then
I'm
going
to
show
you
how
features
that
octant.
Has
that
not
a
lot
of
other
not
on
the
other
dashboard
type
tools
have
and
then
we're
going
to
talk
about
how
you
can
extend
octant.
So
lots
of
things
talked
about
here.
A
So
whenever
and
because
it's
a
go
file
whenever
we
compile
it
in,
we
can
just
run
it
so
now.
What
I
also
did
is
I
built
this
octant
binary
and
because
we
compile
client
go
in
and
this
is
a
dead
build
that
doesn't
actually
remove
the
debugging
tables,
it's
actually
kind
of
big
anything
and
you'll
notice.
This
go
look
at
the
size
of
your
cube
control
binary.
A
This
is
the
reason
why
and
what
I'm
going
to
do
is
not
run
it
out
of
my
dev
directory,
because
I
have
an
environment
set
up
here
for
dev
I'm
gonna
move
it
too
I'm
just
gonna
copy
this.
This
version
build
octave
to
slash
temp
and
we'll
just
run
it
out
of
slash
temp.
That
way.
I
have
Durham
running
this
way.
A
That
I
know
that
there's
no
environment
here
and
now,
what
we're
going
to
do
is
we're
going
to
load,
often
and
what's
happening
here
is
so
this
is
often
so
you
notice
that
what
it
did
is
octant
actually
boots
on
a
whip
on
a
random
web
port,
and
then
it
tells
your
operating
system
that
says:
hey
I
want
to
open
a
web
browser.
This
works
on
Windows,
Linux
and
and
the
Mac,
and
it
just
opens
using
your
default
browser.
A
What
you
saw
what
I
had
there
is
this
thing
called
choosey
which
allows
me
to
choose
what
my
default
browser
is
or
at
length
time
so
I
just
happen
to
choose
Chrome.
So,
let's
see
what
do
we
have
here
so,
starting
from
the
top?
We
have
a
bar
good
old
title
and
then
we
have
a
namespace
chooser.
So
auxin
supports
multiple
namespaces
to
provide
a
view
for
developers.
They
can
understand
we're
only
looking
at
one
namespace
at
a
time
and
what
other
you
can
deal
with
often
is
you
can
filter
based
on
labels?
A
So
I
will
show
you
this
in
a
second,
and
it's
not
really
important
here,
because
I
think
everything
is
labeled
the
same,
but
what
we
can
do
is
we
can
actually
filter
our
views
down
to
a
label
or
a
set
of
labels,
and
also
up
here
is
we
have
a
cluster
picker.
So
our
context,
picker
so
Achtung
can
work.
A
It
works
like
cute
control
does
so
it
actually
picks
your
your
default
context,
but
if
you
have
provided
other
context
on
your
or
other
configurations
or
other
contexts
on
your
cute
config
line
or
to
the
application
itself,
we
can
pick
from
those.
So
we
can
actually
swap
between
so
I
have
five
clusters
here
and
I'll
show
you
some
more
about
that
in
a
little
bit.
So
actually,
let's
look
at
this.
Let's
go
back
to
this
original
problem
that
we
had
now
our
website
wasn't
working
just
go
over
here
and
dish
check,
still
not
working.
A
So
why
isn't
it
working
and,
as
you
might
recall,
as
I
said
originally
the
problem
that
that
I
wanted
to
solve
was?
Can
we
show
users
why
their
workloads
aren't
working?
So
let
me
just
walk
you
through
how
we
do
this
inside
of
octave.
So
we
have
an
appointment
and
we
know
our
deployment
creates
a
replica
set
or
Dewey
and
I
rip
up
to
set
crates
a
pod.
You
might
not
know
this,
so
what
we've
done
here
is
you
can
go
into
a
deployment
and
what
you
can
do
is
we
provide.
A
You
can
actually
see
data
about
all
the
objects
by
default
we
provide
metadata
and
for
all
the
built-in
kubernetes
types.
We
provide
detail
that
we
that
is
very
similar
to
what
keep
control,
get
and
keep
control
of
describe
we'll
show
so
an
example
for
a
for
deployment.
We
have
configuration
and
Status.
We
pull
all
this
information
out
of
this
Beck
for
deployment
and
we
pull
all
this
information
out
of
the
status
and
then
every
single
kubernetes
object
has
metadata.
So
we
pull
that
out
as
well
and
here's
something
that
we
do.
A
We
actually
go
through
and
we
look
at
the
replicas
sets
and
what
we
do
is
we
determine
what
pods
belong
to
a
particular
deployment.
So
in
this
case
this
pod,
this
pod
h-2b
been
that
ends
with
on
for
belongs
to
this
deployment.
We
don't
show
replicas
sets
here,
because
I've
trying
to
figure
out
the
best
design
language
for
this
I
think
it's
a
little
confusing
just
to
show
that,
because
replica
sets
are
designed,
they're
basically
implementation,
details
of
a
deployment,
so
really
what
you
care
about
are
the
pods.
A
So
we
noticed
that
this
deployment
has
one
pod.
There
is
make
that
a
little
bit
smaller.
There
is
some
conditions,
as
provided
by
the
status,
so
we
can
actually
determine
how
our
deployment
is
working
and
we
can
see
the
pod
template
if
this
deployment
had
events
at
the
init
events
related
to
it.
Maybe
there
was
a
scaling
event.
We
would
actually
see
them
down
at
the
bottom,
so
still
getting
us
closer,
and
this
is
what
dashboards
this
is
kind
of
boards
do.
A
So
you
can
click
through
your
application
to
see
what's
going
on,
but
there's
still
no
context.
You
still
have
to
know
what
you're
looking
for
and
that's
what
we
want
to
fix.
So
let
me
show
you
how
we
fixed
it.
So
we
wrote
this
thing.
We
call
it
the
resource
viewer
and
what
it
does
is
we
actually
go
through
the
Cooper
natives
API
and
we
use
owner
references
and
special
knowledge
that
we
put
in
there
to
build
up
this
graph.
A
But
one
thing
we
don't
see
right
now
is
any
links
to
services
and
definitely
not
name
leads
to
ingress.
So
let's
go
look
at
our:
let's
go
look
at
our
service.
Actually,
let's
go
look
at
our
ingress,
because
that's
what
we're
going
to
BES
what
the
uninitiated
person
would
do.
They
say
I
need
traffic
to
get
into
my
cluster
and
it's
not
working.
So
we
have
this
HTTP
bin
ingress
and,
let's
see
what's
going
on
with
it.
So
once
again
the
configuration
or
the
the
configuration
of
this
output
for
all
the
objects
is
very
similar.
A
A
Well
there
we
go
here.
So
here's
something
interesting.
The
events
for
the
ingress
is
telling
us
could
not
find
survey.
Tti,
k,
87,
slash,
HTTP,
B
n,
well,
that's
obviously
a
type
of,
but
she
would
have
to
have
known
where
to
look
and
where
you
would
have
found
that
in
kubernetes
with
cute
control
is
you
could
have
let's
go
here?
Cube
control
describe
ingress,
HP
pin.
You
would
have
seen
this
warning
under
the
events,
but
once
again
you
have
to
know
where
that's
the
where
to
go,
and
you
never.
A
You
don't
start
out
as
an
expert.
So
what
we've
done
is
is,
let
me
actually
see
if
this
will
work
is
up,
we've
seen
a
bug,
so
we'll
go
to
service
instead,
so
in
service.
What
we
have
here
is
a
resource
viewer
as
well,
and
what
we
notice
is
that
this
is
inside
the
resource
viewer.
The
service
should
be
pointing
to
our
pods,
but
it
doesn't,
and
not
only
does
it
doing,
that
it's
basically
telling
us
the
service
has
no
endpoints.
So
we
have
two
guides
of
what's
happening.
A
First
of
all,
we're
pointing
to
the
wrong
service
and
we're,
and
then
our
service
is
not
pointing
into
any
endpoints.
This
is
the
first
release
that
we
did
of
octant
last
week
or
last
week,
and
it's
very
early
days
for
this
software.
So
not
all
the
editors
that
we
need
in
our
in
our
app.
Are
there
yet
and
up,
but
I'll
show
you
an
editor
that
we
do
have.
So
how
will
we
fix
this?
A
Because
so
what
I'm
going
to
do
is
move
this
here
and
then
move
this
over
just
a
little
bit,
so
you
can
see
it
while
I
type.
So
the
first
thing
I'm
going
to
do
is
I'm
going
to
edit
my
ingress,
so
at
an
ingress,
a
chip-in
and
what
we're
trying
to
do
is
make
it.
So
people
don't
have
to
do
this,
and
normally
you
wouldn't
do
a
cute
control
edit
anyways.
You
would
probably
check
it
into
your
configuration
and
then
apply
that
whole
configuration
from
the
filesystem,
but
this
is
a
demo.
A
So
we're
not
going
to
do
that.
So
the
first
thing
I
want
to
do
is
fix
this
service
name,
so
I,
fixed
the
service
name
and
what's
happening
Oh,
see
very
quickly
what's
happening
here
is
now
because
I
fixed
the
service
name,
the
service
and
the
ingress
are
now
linked.
Service
is
still
broken,
but
at
least
we're
getting
closer
to
being
able
to
show
and
what's-
and
something
I
want
to
point
out
in
this
particular
screen.
A
Is
that
notice
that
we
had
an
ingress
and
the
ingressive
we're
using
certain
manager
from
jet
stack
to
get
our
certificates
notice
that
we
are
linking
to
CR
DS?
Actually,
there's
two
CR
DS
here,
so
we
don't
even
have
to
it,
doesn't
have
to
be
an
internal
or
it
has
to
be
a
cor.
Cooper
native
object.
It's
just
an
object
to
kubernetes
can
handle
so
we're
still
here
with
this
service
has
no
endpoints.
A
A
Let's
see
here
so
remember,
we
said
the
selector
was
wrong.
It
should
be
app
so
now
I've
edit
this
thing
and
what's
going
on
in
real
time,
what
octant
was
able
to
do
is
now
put
together
this
whole
graph.
So
it's
saying
that
we
have
from
our
deployment,
which
creates
a
replica
set
which
has
a
pods
which
is
somehow
related
to
a
service
account
and
now
the
pods
are
related
to
a
service,
and
then
we
have
an
ingress
and
it's
just
to
figure
it
in
our
order.
So
this
is
all
green
now.
A
So
if
we
go
back
to
our
website
hit
reload,
our
website
comes
back
up.
So
this
is
what
octant
was
created
for,
so
what
I'm
going
to
do
right
now
is
pause
for
one
second
and
go
look
at
the
chat
to
make
sure
it's
I
don't
have
to
answer
any
more
questions.
So
let
me
go
have
a
look
at
that
real
quick!
Do
you
all
right?
So
someone
says:
increase
the
font
size,
fair
enough,
love,
how
this
shows
up
orange
and
red?
A
Yes,
because,
and
actually
here's
here's
an
interesting
thing
and
we're
going
to
change
this
I
am
very
conscious
that
people
have
certain
kind
of
color,
blinds
I
know,
there's
like
the
blue,
green
colorblind
and
red
and
orange
are
very
close,
so
I'm
sure
there's
a
colorblind
that
affects
that
as
well.
So
this
was
our
first
attempt.
What
we
actually
would
like
to
do
is
not
only
be
able
to
show
in
color,
we'll
be
able
to
show
in
with
different
types
of
patterns.
So
if
it's
working
correct,
it
has
no
outline.
A
If
it's,
if
it's
in
warning
state,
maybe
it
has
a
dotted
outline.
If
it's
an
error,
it
has
a
warning,
I
mean
it
has
a
dash.
So
at
least
as
someone
who
might
be
colorblind,
you
can
be
able
to
see
this.
A
A
So,
let's
see
all
right
so
an
example
from
arc
or
a
statement
by
angel
Ramirez
is
kind
of
what
key
ally
does
and
if
I'm
thinking
right
is
kiala.
The
key
Ollie
is
the
sto
dashboard,
think
so
visualizing
what
you
have
and
a
cluster
is
a
very
big
term.
What
what
key
ally
does
is
it
that
is
it
visualizes
your
service
mesh?
A
A
You
know
I'll
bump
the
font
twice.
So
that
was
the
reason
why
we
created
octant,
but
the
problem
was
when
octant
first
started.
All
it
had
was
this
and
what
we
quickly
noticed
is
that
there's
not
a
lot
of
context
in
just
having
a
a
graph
and
what
we
wanted
to
do
is
be
able
to
show
more
data
around
an
object
as
well.
A
So
let
me
actually
show
you
what
we
do
so
I'll
start
with
this
deployment
and
I
kind
of
went
over
this
before
so,
for
every
single
object
that
we
know
about
we're
going
to
share
summary,
which
will
be
configuration,
status,
metadata
extra
stuff
depending
on
the
object
and
events
so
deployments
get
pods
replicas
sets
I
mean
staple
sets,
they
also
get
their
pods,
but
it's
shown
different
pods
are
actually
shown
different
as
well.
So
what
the
pod?
We
look
at
pod
conditions
and
we
look
at
the
containers
that
are
running
inside
of
it.
A
So
you
can
actually
see
the
container
stuff.
Another
thing
that
you
can
do
with
with
pods
is
we
have
this
other
functionality
and
something
else
that
I
hate
it
was.
How
does
cube
control
port
4?
It
works
and
it's
not
the
concept.
It
was.
The
command
line
always
blew
my
mind
and
I
never
go
and
I,
never
typed
it
right.
So
we
put
port
forwarding
into
octant
and
the
way
that
it
works.
A
Is
you
go
to
your
pod
and
eventually
we'll
do
it
on
a
workload
level
or
a
service
level,
but
right
now
and
then
works
on
pods.
So
you
just
click
start
port
for
it
and
what's
happening
is
we're
using
the
port
forward.
Api
that's
built
into
client
go
with.
It
comes
with
kubernetes
and
what
we
can
do
here
is
we
just
we
just
set
it
up
for
you,
so
this
is
actually
not
going
through
my
ingress
or
my
service
anymore.
We've
actually
just
used
the
port
forward
itself,
so
kind
of
cool.
A
It's
actually
really
cool
whenever
you're
developing
something
locally
and
you
don't
have
the
ingress
or
the
that
or
this
service
set
up.
Yet
you
want
to
see
how
it
looks
or
if
you
want
to
go
to
particular
pod
and
determine
why
it's
not
working
well.
So,
let's
see
what
else
we
have
here,
so
something
else
that
something
something
else
that
octant
is
going
to
focus
on
a
lot
more
now
that
we
have
some
of
this
structure
in
place
is
trying
to
tame
some
of
this
crazy
knowledge
that
is
built
into
the
pod
template
spec.
A
So
these
things
that
I'm
talking
about
are
what's
a
taint
and
what's
the
Toleration
and
what
are
infinities
and
anti
affinities,
what
pushes
a
pod
away
from
another
pod
and
what
draws
a
pod
to
another
pod
or
or
host
or
node
itself.
So
these
things
are
really
opaque
and
the
configuration
for
them
inside
of
kubernetes
is
actually
pretty
tough
and
I.
Think
most
people
who
would
have
to
do
it
have
to
go
look
at
the
dots.
A
A
Am
I
on
the
face?
Oh
thank
you
sorry
about
that.
Sorry
about
that.
This
is
my
first
time
doing
this.
So
going
back
to
what
I
was
saying
before
what
I
was
saying
is
that
understanding
things
like
paints
and
toleration
and
affinities
are
kind
of
difficult?
So
we
have
we
I
wrote
this
paint
basically
take
to
English
or
top
taking
toleration
in
English,
so
you
can
actually
tell
what
it
does
so.
A
Would
you
actually
rather
read
this
one,
and
this
is
not
bad,
but
whenever
you
get
down
to
affinities
it's
actually
pretty
hard
because
you
can
have
the
there's
there's
two
types
for
each
there's,
the
permissive
one
there's
a
non-permissive
one,
and
then
you
have
anti
affinities
and
the
affinities
and
stuff.
So
we
want
to
make
that
easier.
A
So,
since
we're
only
amyl
screen,
what
we
have
here
is
a
camel
view
of
the
pot
of
the
object
and
cluster.
So
it's
gonna
have
more
than
what
you
add
it,
because
when
you
put
the
object
in
the
cluster,
kubernetes
is
gonna.
Add
things
like
owner
references,
it's
gonna,
add
self
links,
resource
versions
and
eli
deeds
and
UIDs,
and
things
like
that.
A
So
what
you
can
see
for
any
particular
pod
is
you
can
see
logs?
We
don't
have
it
so
you
could
turn
timestamps
off,
because
some
people
actually
timestamp
their
their
logs,
but
we
don't
have
it
so
that
you
can
see
multiple
pods
logs
at
the
same
time.
That
is
a
feature
that
is
in
our
backlog
and
neat
thing
about.
A
This
is
that
if
there
was
multiple
containers
with
inside
your
pod,
so
if
you
had
a
NIC
container
and
then
like
some
kind
of
runtime
or
if
you
had
a
runtime
and
then
maybe
an
injected
sidecar,
you
could
actually
see
both
of
those
and
I'll
go
over
extra
pod
details
in
a
second.
What
that
is,
but
let's
see
I'm
going
back
to
the
chat
here
alright.
So
there
are
some
questions
on
how
do
I
get
this
information?
How
do
I
get
this
information?
A
Give
me
about
five
minutes
and
I
will
actually
show
you
how
I
get
that
information
so
like
I
was
saying
before
och.
Ten
is
all
real
time
and
what
I
mean
by
real
time
is
we
choice?
We
can
change
we're
changing
namespaces,
so
now
we're
in
our
cert
manager,
so
everything
around
from
jet
stack.
The
next
manages
my
certificates.
That's
kind
of
that's
in
there
I
installed
Jenkins
X
the
other
day,
and
now
what
we're
doing
is
we
can
see
all
the
pods
I'm
shrinking
X.
We
can
see
all
the
deployments
from
Jenkins
X.
A
A
It's
just
a
deployment
that
creates
some
pods
and
it
actually
uses
its
own
different
service
account.
What
you're,
seeing
here
and
and
what
why
it's
over
running
is
because
I
have
the
font
bumped
up
twice.
So
that's
what's
going
on
there,
but
it
doesn't
matter
what
type
of
information
is
in
the
in
the
cluster.
A
We
can
just
show
it
to
you,
so
here's
something
neat
that
we
can
do
and
then
after
I
show
you
this
I'll
move
into
our
informers
and
then
how
we
use
it
and
then
I'll
talk
about
plugins,
so
you'll
notice
that
we
can
show
custom
resources
and
we
only
show
the
custom
resource
for
the
particular
namespace
that
you're
in
so
in
this
case,
we
have
Jenkins.
X
actually
creates
this
environment
such
ink
inside
Oh,
custom
resource
and
there's
a
couple
of
neat
things
here.
One
is
that
we
can
support.
A
A
So
a
good
example
would
be
that
we
can
determine
that
if
it's
in
spec
inside
of
a
CR
D
or
on
a
custom
resource
that
we
can
put
it
in
configuration
and
if
we
had
a
CRD
or
a
custom
resource
that
had
status
information,
we
would
actually
just
create
the
status
for
it.
So
all
this
page
is
dynamic
and
I.
Think
that's
pretty
interesting
here.
So
let
me
move
to
another
namespace
and
I
will
just
do
it
in
default,
so
in
default
there
is
no
custom
resources.
So
what
I'll
do
in
default
is
I'll.
A
Show
you
how
this
works
so
we'll
move
this
over
I'll
move
this
over
just
a
little
bit.
So
you
can
just
see
it
so
what
I
have
here
and
we're
just
gonna?
Do
this
my
default
namespace
so
I
have
this
crontab,
CRD
yamo
and
what
it
does
it
creates.
This
I
took
this
example
right
off
somewhere
off
of
kubernetes
IO.
It
just
creates
a
CR
D,
there's
no
controller
behind
it,
so
we
won't.
We
won't
call
it
a.
We
won't
we'll
just
call
it
just
the
c
rd,
it's
not
an
operator.
A
So
what
it
does
is
it
creates
this
it.
It's
called
chrome,
tabs
ice
table.
It
has
a
group
and
then
it's
going
to
create
this
kind,
called
chrome
tab
with
a
short
name
and
then
you'll
notice.
It
has
a
dish
additional
printer
columns
and
what
will
happen
is
that
often
can
take
advantage
of
that.
So
let
me
show
you
how
that
works.
So
if
I
just
do
ka5
supply,
ans
and
we'll
change
this
to
default,
because
I
don't
like
typing
so
now
we
can
go
k5f,
crontab
CRT,
what's
gonna
happen!
A
Well,
nothing
because
we
actually
have
not
created
anything.
We
just
told
the
we
just
told
the
kubernetes
api
that
we
have
another
type,
but
here's
something
we're
going
to
do
so.
I'm
gonna
move
this
over
it's
about
right
here
and
I'm
going
to
view
kay,
apply,
f,
crontab
resource
and
inside
of
that
resource
inside
this
new
file.
Is
this
new
contact
so
what's
going
to
happen,
and
a
few
seconds
is
because
yep
we're
all
on
the
right
cluster
here,
just
making
sure
we're
on
the
right
class
what's
going
to
happen?
A
Is
it
does
take
a
sometimes
well?
Actually,
it's
all
distributed
systems.
So
we
don't
know
when
it's
going
to
happen
most
times
it
happens
fairly
quickly,
but
what
we're
doing
here
is
we're
waiting
for
this
new
resource
to
open
up
and
just
in
case.
Oh,
this
thing
is
upset.
Oh
I
know
why
this
is
so
what's
going
on
right
now
is
this?
Is
a
gke
ism
I
just
didn't?
Have
the
ability
to
do
this,
so
what
I'm
going
to
do
is
restart
this
thing
and
I'm
going
to
oh
there.
It
is.
A
It
showed
up
but
I'm,
going
to
move
to
a
different
cluster.
So
let
me
show
you
how
I
would
do
that.
So
this
is
another
feature
of
octant,
so
I'm
gonna
close
this
and
what
I'm
going
to
do
is
I'm
going
to
show
you
my
keep
config,
there's
nothing.
So
it's
using
the
default
cube
config.
So
all
these
contexts
that
you
saw
right
here,
we're
defined
in
my
they
were
defined
and
I'm.
A
A
So
that's
why
it's
kind
of
funky
like
this,
so
I'm
setting
up
I,
have
this
digital
ocean
cluster,
so
I'll
make
that
one
first
and
then
I
have
my
default
config
and
then
I
will
emerge
to
earlier,
because
they
were
too
kind
clusters
that
I
just
have
running
locally,
and
now
what
I'm
going
to
do
is
run
octant
there
we
go
so
now.
What
you
see
is
I
have
waiting
for.
All
these
to
show
up
is
actually
let
me
go
back
to
the
default
size
just
for
a
second,
so
I
can
show
you
this.
A
So
now
it
skipped
over
my
cube
config
because
it
for
some
reason,
client
go,
does
not
like
that,
but
you
can
see
that
I
have
three
clusters
here
and
like
this
CRD
one
is
on
my
local
machine
and
you'll
notice.
Whenever
we
swap
to
it,
it
actually
does
change,
and
actually
let
me
change
my
and
here
we
go
so
it
does.
It
actually
does
change
the
see,
look
the
context.
A
So
this
is
a
whole
new
cluster
right
now,
so
we're
not
even
on
the
digitalocean
cluster,
like
we
were
before
so
notice
that
we
have
the
cron
tabs
here,
and
this
is
actually
another
version
of
the
cron
tabs.
It
doesn't
have
the
custom
column,
so
I
could
show
you
that,
but
what
I
really
want
to
get
into
now
is.
This
is
a
lot
of
software
and
I
don't
want
to
click
on
all
the
links,
but
I
want
to
show
you
how
it
works.
So
before
I
do
that,
though,
let
me
go
look
at
the
questions.
A
A
So,
oh
so
Carlos
Santana
brings
up,
says
I
bet
there
is
a
nice
tight
script
utilities
common
libraries
that
can
be
used
to
build
other
domains,
you
eyes.
So
let
me
show
you
something
very
interesting
about
optin.
So
let
me
go
back
to
my
screen
here
and
we'll
go
back
to
my
there
and
then
we'll
launch
go
back
to
my
shell
and
let
me
just
figure
out
what
port
this
thing
is
running
on.
A
A
What
we
find
is
that
there's
an
API
behind
here,
so
what
I
can
actually
do
is
I
mean
just
let
me
find
one
of
these
work
wave
there
we
go.
A
What
we'll
find
out
quickly
is
that
because
octant
is
an
API
and
a
front-end
and
they
are
actually
separate,
we
can
actually
bring
down
the
way
this
works
is
that
the
backend
serves
to
the
front-end.
So
you
could
actually
take
octaves
back
in
the
API
piece
and
you
could
build
tools
like
an
editor
plugin.
You
could
actually
put
this
in
your
cluster.
A
You
could
do
all
sorts
of
things
that
I
haven't
thought
of
yet,
but
we
purposely
split
them
apart
and
the
front-end
is
just
a
component
library,
it
has
no
knowledge
of
kubernetes
or
anything
else
just
knows
display
this
text
display
this
list
display
this
table
and
that's
all
of
those
so
I
just
think.
That's
an
that
was
an
interesting
design
decision
we
made
early
on.
A
But
what
that
will
allow
us
to
do
is
to
make
octant
work
the
Occident
API
working
ways
that
we
could
or
someone
else
to
make
it
work
in
ways
that
we
had
never
thought
of.
So
actually,
if
I
go
back
and
we
can
see
a
lot
of
data
oops
oh
flash
on
there-
this
is
this
screen
right
here
of
all.
This
Jason
renders
this
page
I'm
not
using
the
right
one.
A
There
we
go
so
it
renders
whatever
is
going
to
pop
up
on
this
page,
and
what's
your,
what
you'll
notice
is.
There
is
a
delay
and
what
we're
working
on
is
is
making
the
angular
render
this
faster.
There's
a
lot
of
data
on
this
page
and
doing
real-time
updates
is
we
find
this
sometimes
it's
kind
of
slow,
but
we
are
working
out
ways
to
make
it
simpler.
So
what
I
wanted
to
get
into
this
point
right
now
is
how
do
we
make
this
work
in
real
time
and
then
also?
A
A
My
iPad
there
we
go
and-
and
this
is
your
kubernetes
lesson
for
the
day,
so
this
is
how
octant
works.
So
what
you
can
do
with
kubernetes
is
kubernetes
has
a
REST
API,
so
you
can
do
things
like
get
slash
path
and
you
can
also
do
things
like
post.
Please
stop,
and
you
can
also
do
things
like
your
list
and
your
watches
as
well,
and
that's
cool.
A
If
you
know
what
you
want
to
see
and
the
problem
with
this,
though,
is
that
you'd
have
to
every
time
you
wanted
to
see
something
or
a
new
path
update.
You
would
have
to
fetch.
Now.
That's
fine!
If
you
only
have
one
item
that
wants
to
do
it.
What
if
you
have
an
indeterminate
items
that
want
to
doing
well,
kubernetes
has
has
a
solution
for
this
and
what
they
are
called
are
informers.
And
what
informers
do
surprisingly
enough?
Is
they
inform
the
listeners
to
the
informer?
A
So
what
we
do
is
we
say:
hey
informer
and
form
me
about
this
gbr
and
when
I
say
gbr,
this
is
something
else
is
interesting
about.
Kubernetes
is
it's
a
group
version
resource
and
you're,
saying
hey
Brian?
What
does
that
mean?
Well,
let's
think
about
this,
so
you
have
a
pod
and
you
want
to
watch
for
changes
for
a
pod.
What
is
that?
What
is
a
pod?
A
And
so
where's
this
resource
thing
come
from
well
because
kubernetes
is
a
REST
API
they've
trying
to
use
some
kind
of
rest
semantics,
so,
instead
of
having
a
kind
pod,
what
it
has
instead
is
a
resource
pods
and
generally.
This
is
how
they
look,
they're,
lowercase
and
plural.
So
for
an
informer,
you
say
hey
and
please
inform
me
about
this
group
version
resource
for
pods.
So
this
quote
this
core
v1
pods
before
and
then
let
me
know
when
things
happen
or
basically
cache
this
information.
A
So
I
can
query
you
rather
than
querying
over
the
network
and
an
interesting
thing
that
I
forgot
is
that
inside
of
kubernetes
we
don't
specify
core,
of
course
it's
course
silent.
So
it's
actually
just
v1.
So
when
you
talk
about
people
talking
about
v1,
pods
they're
just
talking
about
core
viewing
pods,
but
you
also,
but
we
also
talked
about
like
apps
v1
deployments.
Apps
is
not
silent
and
kubernetes.
The
core
is
so
we
created
informer
for
a
particular
type.
Now
that's
cool,
but
the
problem
would
be
quickly
is
the
head.
A
And
then
you
have
informer
for
dot
dot.
Who
knows
so
that
gets
kind
of
confusing
quickly.
So
inside
of
client
go
there's
this
thing
called
shared
and
former
Factory
and
what
the
shared
and
former
factory
does
is.
It
manages
it
manages
Informer's
for
our
namespace
or
the
clusters
cooked,
so
cluster
scope
would
be
all
the
same
and
then
any
individual
namespace
to
be
all
the
same.
So
what
we
do
in
octant
is
we
go
one
step
further
than
that.
We
have
basically-
and
we
do
not
name
it
this,
but
this
is
basically
what
we
did.
A
So
we
have
a
shared
and
former
factory
Factory,
it's
very
Java
right
now,
and
but
what
we
do
now
is
we
manage
a
set
of
shared
and
former
factories
per
namespace
and
then
what
we
do
is
whenever
we
change
namespace,
we
just
change
which
in
former
factory
that
we
get
from
and
that's
how
this
works,
there's
something
else
that
we
do
that,
not
a
sum
of
apps.
Don't
do
we
don't
are,
for
the
most
part
we
don't
use,
kubernetes
typed
objects.
So
what
does
that
mean
so
in
go?
A
Go
there
somewhere
and
go
code
is
a
type
pod
and
and
it's
a
struct,
and
that
just
means
that
it
is
contain
some
kind
of
data
and
that's
where
all
the
pod
information
lives.
We
don't
actually
use
that.
What
we
do
is
we
use
something
called
the
dynamic
library
and
I'm
going
to
highlight
some
code
snippets
in
a
second
too.
If
I
just
want
to
give
you
some
theory
here,
so
we
use
a
dynamic
library.
So
what
does
that
mean?
A
We
don't
really
care
what
objects
are
we
don't
have
to
think
about
objects,
because
there's
objects
that
we
do
know
about.
There's
CRTs,
we
don't
know
about
if
it's
we
don't
have
the
source
for
these.
So
what
we
think
about
it
is,
we
think
of
objects
as
a
basically
like
a
map
and
map
in
and
go,
but
an
object
in
other
languages
like
like
a
jet
like
a
javascript
object,
a
data
bag.
So
we
just
look
at
objects
like
that
and
what
we
want.
A
A
My
team
is
in
here
killing
it
right
now,
all
right,
so
that's
pretty
much
how
octant
works
so
I
have
to
show
you
just
a
tiny
bit
of
code
of
how
we
do
this
and
how
we
set
it
up.
I
promise
I
will
not
turn
this
into
a
development
class,
but
what
I
have
here
is
there's
some
code
here
for
listing
objects
from
an
informer
and
what
we
do
is
we
look
at
whenever
somebody
wants
to
list
an
object
or
getting
a
list
of
objects
from
the
cluster.
What
they
do
is
they
provide.
A
This
thing
called
context,
which
is
basically
it's
just
local
name
space
that
we
can
use
it.
Some
basic
don't
worry
about
what
it
is.
It's
just
local
context,
and
then
we
provide
this
thing
called
a
key
and
really
what
a
key
is
is
it
can
change
the
names
based
API
version,
the
kind
and
the
name
maybe
and
a
selector.
So
what
we
do
with
that
is.
A
A
A
There's
just
there's
this
type
called
a
dynamic
cache
and
what
it
does
is
it
can
access
kubernetes
clusters
data
and
what
I'm
gonna
do
is
whisk
walk
through
how
list
works,
the
other
methods
are
get
is
similar,
so
I
want
walk
through
that.
So
first
thing
we
do.
Is
we
check
for?
Do
we
have
access,
so
we
can
actually
look
to
see
if
you
have
access.
If
not,
we
tell
you
actually
don't
right.
Now.
We
I
made
this
decision
just
a
little
bit
ago
that
if
it's
a
no
match
air
guess
what
there's
no
objects.
A
Then
what
we
do
is
we
make
a
determination
of
how
you
want
a
list,
so
you
can
use
the
dynamic
client,
which
is
basically
issue
a
get
request
to
kubernetes
or
you
can
use
the
informer,
which
is
use
the
former
that
we've
set
up
before.
So
let
me
show
you
how
this
informer
works.
So
what
it
does
is
we
get
the
current
and
former
off
the
name
off
the
key.
So
like
I
was
saying
before
the
key
has
a
namespace,
an
API
version,
a
kind,
that's
three
things
that'll
be
used
here.
A
So
we
get
the
factory
for
this
particular
namespace.
We
make
some
determinations
to
see
if
you
can
actually
watch
on
it,
and
then
we
get
the
informer
for
the
resource
itself
and
then
we
started
and
what
start
does
is
it
just
says,
make
your
connection
to
the
kubernetes
cluster
and
I'd
be
some
work
here
to
see
if
the
keys
are
synced,
because
we
don't
want
to
wait,
we
want
to
actually
deliver
as
quickly
as
possible.
We
don't
want
to
wait
for
the
informer
to
be
ready
and
and
then
what
we
do
is
we
just
call?
A
Actually
let
me
go
back
sorry
we're
going
around
in
code
on
you
on
what
we
do
is
we
determine
if
we're
making
a
namespace
connection
or
not,
and
then
we
determine
if
we're
listing
everything
or
we're
using
labels
and
and
then
we
actually
just
go
talk
to
the
cluster
and
say
list
and
then
what
we
do
is
we
create
an
unstructured
list
ourselves
and
we
we
say
that
the
object
and
we
return
the
object
and
what
you'll
notice
right
here
is.
It
says
this
has
synced
the.
A
What
we're
doing
here
is
we're
actually
returning
objects
from
the
Informer,
but
not
waiting
for
the
informer
to
be
ready,
so
there
might
be
objects
in
there
or
there
might
not
be
so.
What
we
do
is
we
return
if
the
former
was
ready
or
not.
So
what
that
allows
us
to
do
is
like
for
custom
resources
that
might
take
a
little
bit
longer
to
load,
because
it's
definitely
n
plus
1
connections.
A
What
we
do
is
we
just
show
we
can
now
show
a
spinner
for
it
and
that
will
allow
us
to
at
least
have
a
better
experience
there
rather
than
waiting
for
some
time.
So
we've
gone
over
octant
a
little
bit
here.
We
walk
through
it.
So
let
me
talk
about
some
things
that
are
happening
right
now,
so
I
will
show
you
I
will
go
to
my
demo
and
we'll
go
to
actually
there's
nothing
in
this
cluster.
A
Let
me
go
over
here,
so
I'm
switching
cost
of
clusters
now
and
there
we
go
so,
but
when
working
on
the
this
concept
of
editing
and
the
problem
with
editors
is
editors
require
HTML
and
the
problem
with
that
is
not
that
it's
hard
to
do.
The
problem
is,
is
how
do
you
describe
it,
so
you
can
make
it
fit
in
an
application
that
doesn't
understand.
Like
I
was
saying
before
this
front-end
doesn't
know
anything.
It
knows
how
to
display
a
navigation.
A
It
knows
how
to
display
big
text
and
icons
in
the
tab,
but
it
has
no
conceptual
information
about
this.
So
how
do
you
create
editors
that
actually
can
work
with
data?
You
don't
know
so
really
dynamic
editor.
So
an
example
of
a
dynamic
editor
is
this:
so
we've
configured
it
for
deployments
only
to
be
able
to
change
the
replica,
so
I
made
a
number
editor
that
can
actually
change
to
replicas.
So
what
what
should
happen
in
a
little
bit
is
see.
The
replicas
are
now
four
and
the
pods
are
coming
up.
A
So
we
I
don't
know
how
big
this
cluster
is.
So
they
may
come
up.
They
may
not
come
up,
but
at
least
we
know
they
were
scheduled.
Oh
they
will
come
up,
so
I
want
to
be
able
to
apply
this
everywhere.
So
we
should
be
able
to
apply
this
to.
Let's
say
if
we're
an
appointment
in
a
pod
template
I
should
be
able
to
change
things
like
container
ports,
and
we
should
be
able
to
update
images
and
things
like
that.
A
So
the
idea
here
is
not
only
to
not
only
to
provide
a
dashboard
but
provide
but
talk
to
our
developers
and
and
talk
on
their
level.
So
what
would
things
I
want
to
change
on
my
development,
environment?
Well,
things
like
images.
I
would
like
to
be
able
to
change
a
tag
or
a
manifest
number,
or
something
like
that.
So
we're
thinking
about
ways
of
doing
that,
but
to
do
all
those
things.
We've
definitely
had
to
have
this
platform
person
and
that's
where
we
are
so.
A
This
leads
me
to
my
final
topic
and
this
thing
like
this
thing.
This
thing
it's
cool,
but
the
problem
is
it's
only
cool
to
me
because
I
wrote
it
and
and
Wayne's
on
my
team
and
Sam
is
here
on
my
team
as
well.
It's
cool
to
us.
We
wrote
it,
but
how
can
we
make
it
cool
to
everybody
and
what
we
noticed
is
that,
or
at
least
what
I
noticed
was
one
of
the
things
about
vs
code.
A
That
I
really
liked
is
that
ad
extensions
vs
code
is
an
okay
editor,
not
my
the
best
editor
I've
ever
used,
but
the
reason
why
people
really
love
it
is
because
it
can
be
extended
and
it
can
be
configured
in
a
way
that
you
like
for
your
particular
environment
and
then
also
that
the
extensions
for
it,
if
you
know
a
little
bit
of
typescript,
are
not
very
hard
to
write.
So
we
wanted
to
do
the
same
thing
inside
of
octant.
So
what
we
do
is
we
have
this
really
alpha
plug-in
API.
So
it's
so
alpha.
A
A
A
But
what
I
really
wanted
to
do
was
give
people
the
ability
to
be
able
to
change,
octant
and
game
that
built
all
the
abilities
from
octant
but
be
able
to
change
data
where
they
wanted
to
so
in
the
first
iteration
of
our
plug-in
API
you'll
notice
that
it
says
from
plugin
for
configuration
and
from
plug-in
from
status
and
then
down
at
the
bottom
there's
extra
output,
where
we
were
just
able
to
show
extra
output
and
then
up
at
the
top.
It
says
extra
pod
details,
content
from
a
plug-in
yep.
A
Someone
just
reported
a
bug
on
this,
but
there
we
go
we'll
we'll
get
that.
So
what
I've
done
here
is
and
and
the
only
reason,
I
use
eyes,
because
I
wrote
the
sample
plug-in
so
I
should
deserve
all
the
flack
for
it
for
not
being
complete
yet,
but
really
what
we've
done
is
we've
started
on
a
project
that
will
allow
you
to
create
plugins
Rockton,
so
everything
you
saw
right
now,
there's
a
lot
of
boilerplate
in
which
we're
working
on
reducing
the
boilerplate
in
providing
examples.
A
So
you
can
provide
data
for
your
objects
and
what
kind
of
data
is
that?
Well,
it
could
be
extending
like
for
pod.
You
can
add
more
data,
it
could
be
custom
objects
for
your
company,
because
I
know
at
VMware
we
use
cuss,
we
use
C.
Our
days
will
never
release.
It
could
be
that
or
what
you
can
do
with
the
plug-in
is
you
can
actually
extend
octants
interface
and-
and
let
me
give
you
some
examples
of
how
we
can
do
that
so
down
at
the
bottom.
A
You
notice
it
says
sample
plugin
and
there's
another
menu
and
what
this
menu.
This
is
all
provided
by
this
plug-in
and
the
way
the
plug-in
works
is
that
we
create
we
just
basically
exec
the
prop
as
a
process,
and
we
have
a
G
RPC
branch
and
actually
a
two-way
grcc
bridge.
So
plugins
can
talk
to
the
kubernetes
api.
They
don't
have
to
manage
those
credentials,
but
then
the
kubernetes,
but
then
octant
can
can
talk
to
the
plugins
like
hey.
What
do
you
know
about?
Who
knows
about
pods?
A
Who
must
tell
me
stuff
about
pods
and
that's
what
we
saw
earlier
so
we're
working
on
this
plug-in
API
to
present
things
like
graph
data,
because
I
don't
want
have
an
opinion
about
anything.
This
is
a
VMware
project,
but
this
is
a
community
project,
so
we
make
no
choices
about
metrics
libraries.
So
that's
why
you
notice,
there's
no
metrics
in
here.
A
I
want
you
to
be
able
to
use
your
Prometheus,
your
wavefront,
your
data
dog
or
whatever
that's
up
to
you
and
the
plug-in
authors,
but
we're
gonna
make
it
easier
for
the
plug-in
authors,
so
I
think
I
went
over
all
the
things
in
my
list.
Let's
go
back
to
the
questions
here
to
the
chat
and
let
me
see
if
there's
anything
else
now:
oh
all
right,
I
apologize,
let's
see
there,
we
go
all
right.
So
I
guess
you
know:
we've
gone
around
20
minutes
here.
A
I
think
I'm
gonna
bring
this
to
an
end,
but
the
call
to
action
is:
is
this
on
octant
on
beam,
we're
calm,
our
github.com
/
beam
where
/
octant
try
it
out
and
it
don't
consider
it
as
a
project.
This
is
not.
This
is
a
VMware
sponsored
project,
they
pay
me
and
they
pay
my
team,
but
this
is
a
community
project
and
really
our
goal
here
is
to
help
developers
solve
these
problems
by
giving
them
more
information.
Really.
A
What
we
want
to
do
is
find
these
experts
get
the
information
out
of
them,
put
it
in
this
tool
and
then
make
other
tools
and
then
make
other
interfaces.
So
we
can
gather
even
more
information,
so
the
hardest
part
of
working
on
kubernetes
is
actually
making
your
app
work
right.
So
I
think
that
oh,
oh,
so
let
me
ask
this
answers:
question
from
Delos
Duffy.
Are
you
planning
on
surfacing
the
metrics
API
in
kubernetes?
Yes,
we
are,
but
to
do
that,
there's
a
little
bit
more
work
that
we
need
to
do.
A
A
We
actually
don't
have
a
lot
of
dependencies
in
our
app
I
mean
there
are
some
in
there
for
like
dumping
data
and
things
like
that,
but
we've
written
a
lot
of
code,
so
trapped
most
of
the
dependencies
are
kubernetes
dependencies
and
our
logger
we're
using
zap
for
the
logger
I
know
a
lot
of
people
like
longer
s
or
other
things.
Uber
did
a
great
job
of
of
writing
this
log
app
and
then
on
the
front
end.
It's
a
type
script.
It's
a
type
trip
app
on
angular
7.
A
We
haven't
moved
it
yet
and
we're
using
clarity,
clarity,
design
as
our
widget
set.
The
reason.
Why
is
because
my
dev
team
is
three
people
and
not
one
of
us
would
say
that
we
are
friend
experts.
I
will
I
will
get
in
there
and
do
these
things,
but
we're
not
what
we
actually
do
need
help
is
with
icons
if
you
notice,
I
octants
icons
are
literally
the
kubernetes
SVG
ones,
and
this
so
we're
trying
to
get
some
help
with
that.
A
Oh
Duffy
just
reminded
me
of
the
last
thing
that
I
want
to
say
the
biggest
differentiator
between
octant
and
every
other
dashboard
out.
There
is
this.
You
notice
that
I
ran
octant
on
my
desktop
I
octant
uses
my
cube
config
in
the
credentials
it
contains.
We
remove
a
whole
class
of
security
vectors
by
not
running
this
and
cut
in
a
cluster.
What
super
user?
What
can
you
see
in
octant?
A
Well,
whatever
your
cube,
config
file
lets
you
see,
and
if
you
really
want
to
change
it,
create
a
read-only
context
and
then
use
that
the
whole
purpose
here
is
to
get
things
out
of
the
cluster.
Don't
need
to
be
in
the
cluster.
This
is
a
great
tool
that
it
runs
locally
when
you're
developing
with
kind
or
micro,
Cades
or
mini
cube.
This
is
great
I
use.
All
of
those
plus
I
have
digitalocean
clusters
as
your
clusters
in
gke
clusters.
A
This
tool
allows
me
to
do
all
of
these
things
and
I
showed
you
this
example
earlier
where
we
were
when
I
showed
you
the
resource
graph
of
how
it
was
broken.
The
reason
I
wrote
that
the
reason
I
know
that
that
works
is
it
wasn't
a
demo,
and
some
of
you
all
might
not
know
this,
but
I
am
a
senior
staff
engineer
at
VMware,
but
I'm.
A
Also,
one
of
the
chairs
of
cube
con
and
I
wrote
a
review
tool
and
I
deployed
it
and
I
sat
and
thought
about
45
minutes
of
why
it
didn't
work
and
then
I
said
actually
use
octant
and
then
I
use
octant,
and
it
showed
me
in
five
seconds
where
I
was
wrong.
So
I
was
like
I'm
forever
going
to
use
that
as
my
example
so
I
think
with
that
please
reach
us.
We
are
on.
We
have
a
mailing
list.
Oh
gosh,
we'll
put
that
in
the
show
notes.
A
So
if
you
and
then
we
have
our
github
issues,
we're
just
looking
for
great
feedback
right
now,
because
it's
really
been
three
people
ish
putting
this
together
and
now
we
need
to
listen
to
the
the
worst
for
the
rest
of
the
world
and
and
I
will
say
this.
All
the
feedback
we've
done
so
far
has
been
amazing.
I'm
glad
this
project
hit
where
it
did
so.
This
is
my
first
time
I,
don't
know
how
to
quit
this.
A
This
shirt
is,
it
was
given
to
me
by
a
friend
many
years
ago
and
I
guess
he
had
some
kind
of
foundations,
but
I
loved
it,
and
it
says
we
are
humans,
working
with
humans
to
develop
software
for
humans
or
for
the
better
benefit
of
humans,
and-
and
this
really
does
capture
how
I
look
at
developer
experience.
We
are
writing
software
to
help
you
make
to
make
you
better
developers.