►
From YouTube: Developer Exp Office Hours: A deep dive into CodeReady Workspaces w/ Angel Misevski & David Harris
Description
Join OpenShift's Developer Experience experts and occasional special guest for our regularly scheduled program filled with cloud native, Kubernetes, and OpenShift tips and tricks for developers.
A
Good
morning,
good
afternoon,
good
evening,
wherever
you're
hailing
from
welcome
to
another
edition
of
the
developer
experience
office
hours
here
on
openshift
tv,
I'm
chris
short,
executive
producer
of
openshift
tv
and
I
am
joined
by
several
friends
from
red
hat
here-
we're
going
to
be
talking
about
code,
ready,
workspace
is
kind
of
in
depth
and
I
would
like
to
hand
it
off
to
david
first
david.
Please
introduce
yourself
to
the
audience.
B
C
Angel
you
want
to
go
yeah.
My
name
is
angel
mizhevsky,
I'm
a
senior
software
engineer,
working
on
code,
ready
workspaces
on
eclipse,
che
and
stuff
like
that.
So
I
work
on
the
stuff
that
we're
gonna
be
talking
about
today,
based
up
here
in
toronto.
Oh
cool
and
yeah,
not
much
to
that
much
more
to
add
there.
A
D
I'm
gonna
be
around
in
the
in
the
chat
helping
with
questions
and
in
case
I
pop
up
later.
I
just
want
to
say
hi
at
the
top
of
the
show
here,
yeah
say
hello
and
chat
folks
and
I'll
I'll
do
my
best
to
keep
track
of
what
the
activity
there.
C
Yeah
I
mean
I
can
talk
about
it
a
bit
so
code
ready
workspaces.
Crw
is
basically
a
cloud
ide
where
the
idea
is
you're.
Writing
programs
that
you
know
you're
running
in
a
kubernetes
cluster
in
an
open
shift
cluster,
that's
a
different
modality
than
running
something
locally
on
your
computer,
and
so
it
makes
some
sense
to
have
a
way
of
developing
things
in
that
cluster
reusing
the
sort
of
concepts
you're
using
to
deploy.
C
You
know
multiple
services,
multiple
backends,
and
putting
that
putting
your
development
environment
in
the
cluster
to
match
sort
of
what
you're
dealing
with
in
reality,
rather
than
you
know,
having
your
local
setup
running
a
bunch
of
docker
containers
and
trying
to
network
them
together.
So
it's
basically
a
way
to
simplify
that
setup,
put
everything
together
in
a
real,
easy
way
and
it
give
you
a
familiar
sort
of
environment
but
in
a
sort
of
different
underlying
system
that
it's
running
on
yeah.
I
don't
know
if
you
want
to
add
anything
david.
B
That
was
good,
I
mean
yeah.
There's
kind
of
two
two
key
things
to
touch
on,
like
one
of
the
principles
is
that
anyone
with
a
browser
can
easily
contribute
code,
so,
instead
of
you
needing
the
high
spec
machine,
just
to
be
able
to
run
simple
mode
like
that,
you
can
run
everything
in
the
clouds.
B
It's
really
good
for
like
open
source
projects,
in
particular,
where
we
kind
of
see
people
dipping
in
and
out
of
a
lot
of
different
runtime
stacks,
and
instead
of
having
to
have
everything
on
your
machine
to
deal
with
all
of
those
different
environments,
you
can
just
quickly
click
a
link
provided
to
you
by
that
open
source
project
spins
up
a
workspace
and
you've
got
everything
that
you
need
in
your
browser
with
some
of
red
hat's,
more
enterprise
security
concerned
customers.
C
Yeah
definitely-
and
you
know
what
you're
getting
is
the
immutability
of
a
docker
container
for
your
environment,
so
your
dependencies
are
all
set
to
you.
You
know
you
define
what
you
need
to
build
your
application
and
everyone
can
immediately
just
grab
it
and
start
an
ide
in
it.
Basically,
so
that's
the
that's
the
pitch
overall,
I
would
say.
A
Just
to
let
the
audience
know
kind
of
I'm
dealing
with
a
slightly
sick
dog
today.
So
if
you
see
me
doing
this,
it's
me
trying
to
calm
her
down
and
everything
but
yeah.
So
if
it
brings
a
you
know,
unified
experience
to
a
group
of
developers,
code
ready,
workspaces
does
and
it
allows
you
to
not
have
to
have
these
various
bespoke
environments
in
which
you
can
code.
C
It
basically
enables
you
to
sort
of
get
people
started
on
board
more
quickly
and
also,
you
know,
run
into
different
situations
and
just
kind
of
dive
right
into
writing
the
code.
Don't
don't
worry
about
setup?
Don't
worry
about
configuration,
don't
worry
about
here's
the
list
of
tools.
You
need
to
install
to
build
this
project.
Here's
the
build
process,
we
kind
of
encapsulate
everything
from
you
know.
You
can
have
multiple
containers
running
so
that
when
your
workspace
starts
up,
it
also
starts
up.
C
Your
database
container
starts
up
a
front
end
container
if
you're
working
on
the
back
end
or
a
you
know
back
end
container
if
you're
working
on
the
front
end.
Basically
it's
a
one-click
way
of
defining
what
your
deployment
looks
like
and
then
starting
that
up,
so
that
you
can
kind
of
focus
in
on
the
part
that
you
need,
while
keeping
in
mind
that
there
are
related
components.
You
have
to
worry
about.
So
you
know
my
application
interacts
with
the
database.
C
Your
onboarding
doc
is
going
to
say
here's
you
know
deploy
this
database,
here's
the
configuration
for
the
database,
then
you
start
up
your
program
locally
when
you're
debugging
it
or
whatever,
because
they
connect
to
the
database
and
there's
a
lot
of
hoops
to
potentially
jump
through
to
get
that
working
right
and
there's
some
maintenance
to
keeping
it
running
right.
If
you're,
you
know
updating
your
system
stuff
like
that,
I
pretty
consistently
run
into.
C
Why
is
my
build
broken
now
that
I've,
you
know,
updated
the
fedora
34
or
something
like
that,
so
things
like
that
are
what
we
want
to
avoid,
so
encapsulating,
basically,
the
components
that
run
your
workspace,
the
network,
the
components
that
run
your
application,
the
networking
that
sort
of
connects
everything
together
and
also
the
sort
of
build
logic
of
you
know.
What's
the
sequence
you
have
to
do
things
in.
Do
you
have
to
start
this
start
this
and
wait
for
it
to
be
ready
before
starting
another
component?
C
That
sort
of
thing
and
yeah
we'll
talk
about
it
more,
I'm
sure
in
a
bit,
but
it's
all
encapsulated
in
a
single
file
that
you
know
you
can
just
keep
this
yaml
file
that
defines
your
entire
development
environment
and
just
pass
it
into
the
program
and
get
an
identical
environment.
You
know
practically
for
for
me.
I
work
on
the
sort
of
eclipse
j
project
which
is
the
upstream
to
code,
ready,
workspaces
and
we've
got
a
large
number
of
repos
all
have
different
setups,
some
of
them
some
of
them.
C
I
don't
contribute
too
often,
but
when
I
do
contribute,
you
need
to
install
a
bunch
of
you
know:
linters,
a
bunch
of
tooling
that
is
specific
to
that
project,
with
sort
of
code
ready
workspaces.
What
I
can
do
is
just
feed
that
project's
dev
file.
That
defines
the
workspace
that
you
need
for
that.
You
know
for
the
for
the
docs
repo,
for
example,
feed
that
into
code
ready,
workspaces
and
instantly
have
everything
set
up
that
I
need
click,
a
few
buttons
to
do
the
validations
that
are
required
and
just
more
easily
write
the
code.
A
C
Yeah,
so
I
mean
crw
there's
a
number
of
ways
to
install
it.
I
think
the
sort
of
mainline
way
you'd
want
to
do
it
is
it's
just
an
operator.
You
can
go
to
operator
hub
and
just
grab
it
and
deploy
it,
and
it
should
be
pretty
straightforward
once
it's
up
and
running,
then
on
openshift,
at
least
with
crw,
you
log,
in
with
your
openshift
user.
You
know
we're
going
through
openshift
oauth,
there's
nothing
to
set
up
there
and
that's
about
it.
C
It
comes
with
some
samples
that
you
can
play
around
with
and
then
you
know,
start
diving
into
documentation
and
reading
about
how
to
set
things
up
for
yourself.
We
try
to
keep
it
pretty
simple,
but
yeah
operators,
the
main
lines,
are
the
way
to
install
there's
other
tooling.
We
have
a
crw
ctl,
which
is
a
command
line
utility
that
you
can
use
to
deploy
automatically
on
your
cluster.
I
think
there's
probably
links
somewhere.
I
don't
have
them
on
hand
right
now,.
A
C
Links
yeah,
so
those
are
the
two
sort
of
main
ways
to
install
it
yourself.
If
you
have,
you
know
crc
running
locally
or
if
you
have
access
to
a
cluster.
If
you
just
want
to
try
out
the
application,
you
just
want
to
try
code
ready,
workspaces
out,
not
worry
about
it.
Not
you
know
deal
with
any
setup
yourself.
We
also
have
a
free
service
hosted
at
workspaces.openshift.com.
C
You
just
sign
in
with.
I
think
your
red
hat
developer
id
kind
of
pop
in
there
and
you
get
a
pretty
decently
provisioned
environment,
where
you
can
try
out
the
samples
write,
your
own
thing
and
start
up
a
workspace,
see
how
it
works,
see
the
architecture
of
the
thing
you
can
also
you
know,
go
back
to
the
openshift
console.
Look
at
what's
happening
under
the
hood.
If
you're
interested
in
that
and
yeah,
the
only
downside
of
the
workspaces.openshift.com
is
that
it
is
sort
of
time
limited.
C
C
B
C
Sun
box
yeah:
that's
that's
a
good
thing
to
mention
that
I'm
kind
of
glossing
over.
So
you
define
your
workspace
and
that's
a
portable
sort
of
yaml
file
that
you
deploy
it
locally
or
you
recreate
your
account.
You
can
just
take
that
same
yaml
file
and
get
the
identical
thing.
You
don't
actually
lose
data
in
that
sense.
So
as
long
as
you're
pushing
to
you
know,
github
and
saving
the
dev
file,
you
have
no
worries.
C
A
So
first
question
does
crw
support
plugins.
I
tried
crw
with
openshift
sandbox,
but
can't
find
from
where
to
install
the
plugins.
Okay.
C
Yeah,
of
course,
of
course,
so
let
me
see
if
I
can
get
this
running
the
way
I
expect
it
to
so
switch
over
here.
This
is
so.
This
is
actually
oh.
No,
the
ui
is
the
same.
It's
hard
to
distinguish
them,
so
this
is
this.
Is
the
code
ready
workspace,
the
workspaces.openshift.com?
C
I
was
talking
about,
so
it's
the
thing
you
would
see.
I
have
a
few
workspaces
here,
but
the
so
the
editor
so
some
background
before
we
get
into
plug-ins.
We
support
the
thea
editor,
which
is
based
on
monaco,
which
is
the
same
sort
of
basis
for
vs
code.
C
At
the
end
of
the
day,
what
we're
trying
to
do
is
support
the
vs
code
extension
api.
So
any
extensions
you
might
have
from
your
local
vs
code
environment.
You
can
just
pretty
easily
import
into
a
workspace
here,
so
if
we
go
through
the
get
started,
actually,
let's
do
this
way.
This
is
a
little
easier
to
see.
C
So
we
go
from
a
template.
Let's
just
pick
out,
I'm
using
go
a
lot
so
I'll
go
with
that.
So
this
is
the
dev
file
that
I
was
talking
about.
This
one
is
a
little
complicated
because
it
includes
some.
You
know:
here's
how
you
build.
Here's
how
you
run.
Let
me
know
if
this
text
is
too
small.
I
can
also
zoom
in
a
little
bit
more
yeah.
Let
me
know
audience.
A
C
C
And
you
know
so:
here's
your
debug
configuration
you
can
see
it's
a
vs
code
launch,
so
we're
a
lot
of
the
time
since
we're
using
monaco
you'll
see
that
it
looks
a
lot
like
you
know.
It
looks
like
what
you're
used
to
if
you're
running
vs
code
and
a
lot
of
the
api
is
supported
so
that
you
can
more
easily
port
stuff
over
the
way
plugins
are
added
here.
Is
we
have
components,
it's
kind
of
hard
to
see
the
yeah.
C
There
you
go
all
right
there
we
go
so
the
wrapping
on
this
is
making
a
little
bit
hard
to
read,
because
the
urls
can
get
a
little
long,
but
we
have
a
plugin
elements
to
the
sort
of
dev
file
structure.
So
here's
my
go
plugin
and
you
can
see
it's
go.
Lango
latest
it
used
to
be
more
clear
that
this
was
just
exactly
the
vs
code.
Go
plugin.
C
So
exactly
what
you're
getting
on
vs
code
is
what
we're
going
to
start
up
in
your
workspace.
The
way
we
do
this
is
we.
You
know
we're
running
in
docker
containers.
You
can't
just
grab
the
dependencies
you
need,
but
what
we
can
do
is
start
up.
A
sidecar
container
that
runs
go
stuff,
put
the
extension
in
there
and
then
remotely
access
it
from
thea,
which
you
know
it's
like
it's
like
vs
code,
split
into
multiple
containers.
Basically,
the
other
thing
we
have
here
is
the
docker
image
thing.
So
that's
basically
defining
here's,
a
here's.
C
Let
me
see
if
well,
okay,
let's
just
go.
Let's
just
go
to
one.
I
already
have
defined
here's
a
good
one,
so
this
is
one
of
our
dog
fooding
dev
files.
So
you
can
see
we
have
the
go
plug-in.
We
have
we're
defining.
You
know
the
dev
container.
That
has
has
all
my
dependencies
already
there.
I
don't
have
to
worry
about
getting
the
right
go
version.
Anything
like
that.
C
C
Built-In
list
of
plugins
that
we
kind
of
maintain
ourselves.
So
if
you
go
into
your
actual,
you
know
workspace
details,
you
can
hit
these
toggles.
I
can
you
know,
do
this
and
next
time
I
start
it.
It's
gonna
have
ascii
doc
support.
C
If,
for
whatever
reason
you
want
to
have
both
go
and
java
and
node,
you
can
do
that.
You
know
we
can
do
the
openshift
connector
that'll
start
up
with
the
openshift
connector
from
that
you
would
use
on
vs
code
if
the
list
that
we
have
here
isn't
sufficient.
If
there's
something
that
you're
missing
the
thing
to
keep
in
mind
is
that
we
do
support,
I
think
most,
if
not
all,
of
the
vs
code.
C
Extensions
api,
there's
a
few
details
where
we'll
hit
some
roughness,
but
it's
easy
to
define
your
own
plugin,
especially
if
it's
something
like
you
know,
there's
I
think
down
here
is
the
well.
The
zoom
has
broken
a
scroll
to
the
bottom,
so
zooming
a
little
bit
past
the
limits
of
what's
expected
in
the
ui
design.
Maybe
there's
the
ammo
plug-in,
for
example,
doesn't
have
any
dependencies.
It
just
runs.
C
C
Extensions
is
what
I'm
trying
to
say
in
a
very
long-winded
way:
nice
and
there's
something
another
little
detail
is
going
to
say:
oh
yeah,
so
the
language
support
like
in
vs
code
is
provided
through
the
language
server
protocol,
so
anything
that
you've
got
a
you
know
language
server,
for
that's
what
we're
getting
it
from
go
is
the
microsoft.
I
think
I
can't
remember
if
it's
microsoft
or
google
that
builds
the
lsb
for
go.
But
you
know
java
is
the
openg,
the
jdk
java
language
server
stuff
like
that.
A
So
two
questions
have
popped
up
as
a
result
of
you
know
going
through
this
demo.
Here,
one
kind
of
the
the
the
every
pm
wants
to
know
question:
can
we
do
it
in
dark
mode.
C
Oh,
I
believe
we
can.
I
prefer
light
mode
personally.
So
right
I
mean
everybody.
Has
their
preference
right
like
a
lot
of
people
are
used
to
the
traditional?
It
should
be
able
to
go
in
dark
mode,
but
the
thing
I
can
offer
as
a
consolation
is
if
I
actually
go
ahead
and
start
up
one
of
these
workspaces,
we
have
dark
mode.
A
C
C
I
work
on
the
bits
that
start
up
pods
in
the
background
it
is
you
know,
once
this
gets
started,
it's
taking
some
time
to
a
bit
of
slowness
on
the
cluster
today,
but
once
it
gets
started,
you'll
see
that
it's
it's
going
to
be
very
similar
to
vs
code,
so
you
should
be
able
to
hit
settings
in
the
same
way.
C
The
only
issue
I
feel
like
you
might
run
into
is,
if
you
know
you
have
these
fonts
installed,
it's
a
browser,
so
how
browsers
handle
fonts
might
be
different,
but
I'm
pretty
sure
you
should
be
able
to
just
set
that
we
can
maybe
give
it
a
shot,
see
what
happens.
I
haven't
actually
done
that
because
I
am
personally
fine
with
the
font.
I
totally
understand
disagreement
there
yeah
here,
you
can
see
a
sort
of
running
log
of
what's
happening
to
actually
get
this
running
here.
It's
loading
and
in
a
moment.
A
I
will
say
that
yeah,
if
you
have
a
like
somewhat
limited
upload,
yeah
you're
gonna,
feel
it
yeah.
It's
the
joys
of
canadian
internet.
I
have
great.
C
C
C
To
okay.
A
Code
is
what
was
asked
for
I've
used
hack,
I've
used
julia,
there's,
all
kinds
of
ones.
I'm.
C
I'm
a
kind
of
guy,
that's
the
really
narrow
one
but
still
monospace
see.
The
problem
is
that
I
don't
remember
the
fonts
I
have
installed
on
this
machine,
so
I.
C
C
B
C
Is
complicated
so
what
parts
they
replace
they're,
not
exactly
sure,
but
the
sort
of
soul
of
the
thing
is
the
same,
and
the
contributions
go
both
ways
right.
We
collaborate
with
microsoft
on
their
api.
We
contribute
to
some
of
the
first
language
servers
for
vs
code
and
then
they
come
back
into
you
know.
Thea
code
ready,
workspaces
stuff
like
that.
A
A
C
C
A
Is
just
running
I
mean
there
is
one
question
that
you
know
we
could
probably
address
now.
I
was
saving
for
a
little
bit
later,
but
rapscallion
reeves,
regular
viewer
would
love
to
know
if
it's
possible
to
have
like
a
test
instance
right
like
so
some
kind
of
automation,
around
crw
right
like
create
a
dev
file
that
pulls
from
git,
spend
it
up
locally
and
get
like
a
successful
like
health
check
or
status
code
or
whatever,
and
then
like
that
way,
you
can
do
some
testing
kind
of
automatically
right.
C
Yeah,
I
mean
it's
not
a
use
case.
I've
sort
of
experimented
with
what
we
try
to
go
for
in
general
is
enough
flexibility
to
do
what
you
need.
C
If
I
just
stop
this
one
up
and
go
back
to
over
here,
let's
see
if
this
is
configured
in
a
way
that
makes
sense
for
talking
about
this
yeah,
so
this
so
basically,
this
is
maybe
an
example
of
what
you're
talking
about
not
sure
if
I'm
getting
the
exact
sort
of
concept,
but
this
this
data
file
for
the
plug-in
broker,
which
is
one
of
the
things
that
helps
startup
workspaces.
C
We
define
this
plug-in
registry.
This
is
the
sort
of
this
is
the
registry
that
the
plugins
are
getting
installed
from.
This
is
what
defines
sort
of
what
container
you
get
when
you're
installing
you
know
the
go
plugin,
for
example,
and
this
is
just
an
image-
we're
gonna
when
we
fingers
crossed
that.
I
didn't
break
this
at
some
point
in
the
recent
times
when
we
start
up
this,
this
workspace.
What
it's
going
to
do
is
it's
going
to
start
up
that
image
and
it's
just
going
to
run.
It's
not
idling.
C
You
could,
in
a
similar
way,
have
a
container
that
runs
tests.
You
could
have
you
know
we
don't
have
the
logic
for
easily
defining
what
look
running
a
test
looks
like,
but
if
you
have
a
container
you
can
set
the
you
know
command
for
it
to
you
know,
make
test.
However,
you
define
your
testing
platform
and
it
will
just
run
a
few
sort
of
minor
details
that
we
have
to
worry
about
here
is
the
idea
behind
this.
Is
that
any
container
you
add
is
going
to
just
run?
C
It's
not
going
to
stop
it's
not
going
to
exit
even
successfully
if
it
does,
what
openshift
will
do
is
it'll
just
say:
oh,
hey
this,
this
deployment's
not
healthy,
let's
restart
the
whole
thing
exactly
yeah
and
in
general,
what
we
try
to
do
for
all
of
our
samples
is,
you
know,
you're
going
to
start
up
your
editor,
it's
going
to
come
with
commands
that
will
run
your
tests.
It's
going
to
come
with
commands
that
will
do
all
of
those
details,
so
you
can
run
tests.
A
Window
just
went
wonky
on
me,
hang
on.
Let
me
find
the
question
again,
of
course,
for
whatever
reason
my
window
just
went
to
the
other,
monitor
and
came
back
because
that
makes
sense.
Zoom
does
that
on
i3
for
sure
yeah.
This
is
actually
my
browser
window,
which
makes
it
weirder.
So
if
you
can
start
the
crw
with
a
specified
bash
script,
then
I
can
at
least
make
my
own
tests.
A
C
That
would
potentially
work.
You
know
ping
me
on
there's
a
public
there's
the
eclipse
matter.
Most
we
have
a
channel
there.
You
can
ask
questions
there
and
you
know
we
have
a
quite
large
team
working
on
this
and
I'm
sure
someone
would
be
happy
to
help.
You
know
depends
on
the
details
of
what
exactly
you
want
to
do.
C
Unless
you
know,
unless
our
our
way
of
configuring,
these
things
matches
up
perfectly
with
what
you
need.
You
know
we
have
a
simpler
way
of
deploying
something
complex
which
is
the
dev
file,
and
you
know
what
is
actually
getting
put
on.
The
cluster
is
pretty
complex
in
that
situation,
but
the
whole
thing
that
comes
with
something
simple
to
represent
something
complex
is
we're
representing
a
small
slice
of
the
complexity,
and
if
you
need
something
outside
of
what
we
represent,
then
it
might
not
work
for
you.
C
So
that's
kind
of
why
I'm
hesitating
on
answering
this
one.
No,
no
worries
I
mean.
While
I
got
this
running,
I
can
just
show
this
should
just
open
up
yeah.
So
this
is
what
the
registry
looks
like.
It's
basically
just
showing
me
a
readme
file
right
now,
and
so,
if
I
run
this
code
here
and
say
I
think
start,
this
will
work
okay,
so
I
didn't
actually
build
it
first.
C
This
is
this
is
a
dev
container,
and
this
is
the
plug-in
registry
container
and
they're
both
running
they're
both
started
up
at
the
same
time
and
configured
exactly
how
I
need
them
to
we'll
hit
that
compile
and
see
how
long
it
takes
sorry.
You
were
saying
something
before
I
kind
of
interrupted
there.
C
D
Yeah
yeah
there's
a
yeah,
a
ton
of
people
pitching
in
and
chat.
One
question
I
had
is
and
there's
a
couple
more
here
we
can
get
to
as
well,
but
I
wondered
if
you
wanted
to
talk
to
at
a
high
level,
what's
the
best
way
for
teams
to
collaborate
around
dev
files.
Is
this
just
another
yaml
that
I
put
in
with
each
repo,
or
I
know
you
also
mentioned
a
a
registry,
a
dev
file
registry?
D
Should
we
have
an
internal
registry
that
we
share,
or
do
I
just
check
a
dev
file
into
each
repo
and
then
have
like
a
launch
button
on
github
right?
That
sounds
like
an
easy
way
to
go
yeah,
but
you
know
there's
probably
plenty
of
ways
to
do
it.
What's
the
value
in
the
registry
and
is
that
a
good
way
for
a
team
to
collaborate.
C
Yeah,
so
I
mean
again,
you
know,
flexibility
is
kind
of
the
goal.
What
we
want
something
that'll
work.
The
registry
is
an
option
for
sure
we
have
this
built
in.
You
know
when
you
go
here
and
look
at
this
is
a
little
broken
by
this
and
there
we
go
and
if
we
look
at
this
list
here,
this
is
the
built-in
dev
file
registry
inside
this
are
just
yaml
files
that
define
the
you
know.
Python
stack,
go
stack
java
spring
boot,
et
cetera.
C
You
can
build
your
own
registry,
you
could
store
all
your
you
know.
You
could
say
here
are
the
dev
files
we
use.
You
could
configure
crw
if
you're
deploying
it
locally
to
use
your
registry
and
then,
when
you
navigate
to
this
page
you'll
get
here
is
my
you
know:
here's
my
team's
projects
that
we
work
on
you
just
click
on
one
instantly
get
a
workspace.
C
The
other
way,
which
is
maybe
more
easy
or
straightforward,
is
to
store
this
dev
file
in
the
repo
that
you
want
to
use
it
for.
So
if
I
go
here
and
let's
say
the
same,
the
same
repo
that
we
were
just
looking
at
here-
the
plug-in
broker-
it's
a
go
repo
and
down
here
we
have
the
devil,
yaml
and
I'll
zoom
back
in
because
I
zoomed
out.
C
If
you
look
here,
it's
the
same
thing
that
we
had
in
the
ui
back
in
the
dashboard.
So
this
defines
the
sort
of
code
ready
workspaces
workspace
for
this
repo
and
if
we
actually
have
to
go
to
my
fork,
because
I
just
fixed
a
little
issue
here
that
I
caught.
If
we
go
here
and
copy
this,
so
you
can
just
have
a
badge.
I
don't
think
I
put
one.
I
don't
think
I
put
any
on
this
repo.
This
is
one
of
the
repos
I
worked
on
in
the
past.
C
C
C
C
C
Screen
ever
right
yeah,
so
this
is
a
little
ugly
because
the
sort
of
provisioned
environment
for
the
sandbox
workspaces
is
a
long
url.
But
basically
you
have.
This
is
the
url
to
the
code
ready
workspaces
instance.
So
what
I
can
do
is
just
pass
in
what
we
call
a
factory
url
and
pass
in
a
link
to
a
github
repo
link
to
a
bitbucket
repo.
C
C
But
let
me
just
quickly
yes,
this
is
this
is
the
problem
I
ran
into
okay
forgot
to
shut
that
one
down.
So
if
we
do
that
again
and
pass
that
url
in
it
will
go
to
github
it'll
grab
that
dev
file
and
it'll
apply
it
and
what
we'll?
What
we'll
get
is
the
exact
same
thing?
We
were
just
looking
at
so
short
of
building
your
own
dev
file
registry.
You
can
just
put
these
files
in
in
your
in
your
git
repos.
You
can
also
just
post
the
files
on
a
server.
C
You
can,
you
know,
paste
a
link
that
when
you
load
it
will
load
a
dev
file
and
code
ready
workspaces
will
apply.
It
start
a
workspace
from
it.
So
yeah
flexibility,
but
I
would
say
the
ideal
way
is
either
keep
your
files
in
the
repo
and
then
you
can
just
kind
of
you.
Can
this
isn't
a
great
example,
but
I
believe
oops.
C
I
believe
here
somewhere
nope.
We
have
a
badge
that
shows
up
on
pr's
for
a
lot
of
our
components
that
you,
you
click
it
and
it'll
start
up
a
workspace
with
the
pr
checked
out.
You
can
click
the
things
to
run,
to
test
to
review
that
sort
of
thing,
so
the
the
easiest
way
is
definitely
here's
a
badge
that
you
just
click
when
you're
in
the
github,
ui
and
it'll
start
up
a
workspace
for
this
specific
repo
cool
yeah.
C
D
Awesome
cool
another
question
we
had,
and
you
kind
of
mentioned
testing
at
the
end
of
your
answer
on
that
last
one:
is
there
a
good
way
to
test
a
dev
file
or
lint
it
or
just
make
sure
that
the
repos
going
to
successfully
deploy
you
have
any
tips
for
automation
or
how
teams
would
approach
that
yeah.
C
So
the
design
of
these
dev
files
is
maybe
going
to
be
the
trickiest
part,
especially
like
until
you
sort
of
understand
the
sort
of
rules
around
how
it's
done.
So,
if
you
want
to
just
write
one
of
these
things,
there
are
schemas
you
can
in
vs
code
you
can
import
the
yaml
schema
if
you
use
the
red
hat
biamol
plugin,
one
of
the
guys
I
work
with
on
closely
actually
developed
that
plugin,
initially
four
four
code
ready
workspaces
and
pushed
it
to
vs
code
and
it's
very
popular
there,
but
you
know
there's
schemas!
C
We
can.
We
can
link
this.
We
can
say
you
know
this
shows
up
better
on
the
ui
when
it's
at
the
normal
zoom
level.
So
you
know
missing
property
name.
You
can
get
some
autocomplete
here.
So
I
can
say
I
want
to
add
an
id
and
we
get
it
autocomplete
for
the
plugins
that
the
dashboard
sort
of
knows
about.
I
want
to
add
the
vs
code,
yaml
plugin.
C
What
can
I
add
other
than
that?
Well,
I
can
add
a
cpu
limit
that
sort
of
thing.
So
writing
the
thing.
You'll
write
a
valid.
You
know
you'll
write
a
valid
dev
file.
We
have
linting
for
that.
The
detail
you
might
run
into
that
is
a
little
tricky
is
open
shift,
has
rules
about
how
you
run
containers
and
we
have
additional
rules
about
how
you
run
containers.
So,
basically,
the
idea
is
any
container
you
start
up
has
to
be
non-terminating.
C
C
Ideally,
the
sort
of
samples
we
have
are
a
good
way
of
demoing
these
features
and
you
can
kind
of
pull
from
them.
The
idea
behind
the
sort
of
samples
that
you
see
by
default
is
that
you
say:
okay,
I'm
working
on
something
that
uses
node
and
it's
using
mongodb
click.
Here
you
have
a
basic
skeleton
of
what
you
might
want.
Eventually,
you
know
we
have
the
plugin
for
typescript.
We
have
the
plugin
for
debugging
node.
C
We
have
the
sort
of
dev
container.
That's
going
to
be
building
our
node
project.
We
have
a
mongodb
container
that
gets
started
up.
It's
configured
here,
I
I
don't
know
if
I'm
answering
the
question
so
stop
me
if
I'm
just
kind
of
going
off.
D
Go
ahead
that
that
sounds.
That
was
a
question
from
rap
scallion
reeves,
who
actually
had
to
leave
so,
hopefully,
they'll
watch
the
recording.
D
To
us
at
some
point
but
yeah
yeah
that
looks
like
it
covers
a
lot
of
it
for
me.
Is
there
also
a
way
to
do
kind
of
config
injection
or
or
any
other?
I
guess
you
could
use
kind
of
standard,
kubernetes
secrets
and
other
things
yeah.
C
Yeah,
the
sort
of
underlying
thing
here
is
that
we're
we're
kind
of
abstracting
over
the
kubernetes
api.
So
a
lot
of
the
fields
that
you're
seeing
here
are
coming,
you
know,
are
mapping
in
some
way
to
a
container
in
a
pod
in
a
deployment.
You
know
this
is
the
environment.
I
can
add.
C
Command
so
I
could
define
commands
like
I
do
and
change
the
sort
of
entry
point
to
my
container.
Endpoints
is
the
tricky
one
and
the
sort
of
thing
that
we're
kind
of
improving
here
you
just
define.
I
want
an
endpoint
named
mongodb
available
and
we'll
set
up
the
service
and
the
route
and
expose
ports
correctly.
All
of
that
stuff,
but
yeah
generally
things
are
mapping
over
to
over
to
kubernetes
or
openshift
the
the
sort
of
ultimate
pitch.
Is
you
have
a
definition
for
how
you're
running
your
application
on
openshift
on
kubernetes?
C
That's
going
to
be
a
bunch
of
yaml,
take
pieces
of
that
yaml
put
it
into
a
dev
file
and
define
your
workspace
that
way
so
that
you
know
I
know
I
need
these
environment
variables.
I
know
I
need
these
entry
points.
I
know
I
need
these
volumes
mounted,
define
those
you
know
take
the
definition
you
use
for
your
production
deployment,
deploy
it
as
a
workspace
and
start
editing
code
in
the
same
environment
that
you're
going
to
be
running
in
eventually
nice.
D
Yeah
awesome
it
you
were
showing
a
lot
of
nice
kind
of
plug-in
integration
higher
up
in
this
file.
We
had
another
question
in
the
chat
about
if
whether
it's
possible
to
add
plugins
using
the
ui.
C
So
add
plugins
to
to
this
dev
file
or
in
a
more
abstract
sense.
C
That,
let's
see
yeah
are
we
so
if
we
want
to
add
plugins
via
the
ui,
if
I
go
back
and
say,
let's
look
at
the
go,
plug
go
workspace,
so
if
I
want
to
add
eslint,
I
hit
this
hit.
Save
that's
from
the
editor
here
in
chat.
D
B
Yeah
so
once
you've
actually
got
a
workspace
running,
basically
just
showing
that.
C
B
C
Running
workspace,
yes,
I
haven't
tried
this
in
a
while.
I'm
I
remember
correctly.
Yes,
there
is
a
way,
so
thea
will
look
at
the
same
sort
of
source.
This
is
actually
something
that's
very
in
flux.
Right
now,
so
the
thing
I've
been
working
on
for
the
past
year
is
rewriting
the
sort
of
core
provisioning
logic
of
code,
ready
workspaces
as
a
kubernetes
operator.
C
So
how
we're
doing
plug-ins
and
stuff
is
kind
of
in
flux
right
now,
we're
going
to
be
basically
the
next
sort
of
step
that
we're
looking
towards
is
your
dev
file
that
you
use
to
define.
Your
workspace
is
also
a
custom
resource
that
you
can
just
directly
apply
to
the
cluster
and
you'll
get
this.
So
that's
what
we're
working
towards
that
change.
C
That
requires
us
to
change
how
we
handle
plugins
slightly,
but
for
now
I'm
pretty
sure
that
thea
will
just
go
to
the
same
registry
that
the
dashboard
you
know
the
ui
I
was
just
showing
it's
called.
We
call
the
dashboard
it'll
go
to
the
same
source,
look
at
the
list
of
plugins
and
go
that
way.
I
can
also
talk
a
bit
about
sort
of
what
a
plugin
definition
looks
like.
I
don't
know
if
there's
a
good
way
to
do
that
unless
I
go.
C
It'll
it'll
be
weird
on
my
machine
because,
as
someone
mentioned,
it's
i3,
I
have
set
everything,
nothing
works
as
I
expect
it
to.
I
I'm
a
clicker
most
of
the
time
unless
I'm
using
my
ui.
B
C
C
Puzzle
piece
anywhere,
lovely
yeah,
so
yeah
I
could
you
know,
do
this
and
now
the
ammo
is
installed.
Sometimes
you
have
to
restart
the
workspace.
What
will
happen
is
if
you
know,
if
I
install
java,
then
the
next
time
the
workspace
starts.
It
needs
a
javaside
car
to
have
the
dependencies
to
run
the
java.
Lsp
that'll
be
a
quick,
little
restart
or
a
long
restart
in
firefox
today.
For
some
reason,
apologies
for
that
this
is
no
worries.
This
is
how
it
goes
sometimes
but
yeah.
C
So
that's
installing
plugins
from
the
ui,
the
plugins
are
defined.
Similarly
as
yaml
files.
So
the
other
thing
you
can
do
if
you
don't
want
to
go
to
the
sort
of
internal
plug-in
registry
is
you
can
prepare
one
of
these
things
yourself
and
the
same
sort
of
syntax
in
the
dev
file
for
referring
to
a
plugin
id?
You
can
use
to
just
paste
in
a
url
that
points
at
a
plugin
points
out
the
yaml
definition
for
a
plugin
and
add
plugins.
C
C
That's
how
you
would
run
you
know,
that's
how
you
would
say
run
the
app
build,
the
app
debug,
the
app
you
can
basically
do
any
command
line
stuff,
but
once
this
gets
loaded
I'll
show,
you
can
also
open
terminals
directly
into
each
container
and
kind
of
just
have
a
you
know.
Have
a
remote
shell
on
the
cluster
that,
let's
see,
if
I
can.
C
No
here
we
go
so
in
the
go
cli,
so
yeah,
I'm
just
in
standard
terminal
except
the
terminal,
is
basically
sshing
into
the
go
dev
container.
I
can
go
into.
C
Let's
look
what
we
have
here,
so
we
can
go
into
the
golang
health
check
and
we
see
the
same
same
stuff.
That's
right
here!
You
can
use
this
to
sort
of
do
more
detailed.
You
know
I
I'm
the
sort
of
person
that
goes
to
terminal.
Very
often,
I
usually
don't
even
use
sort
of
a
get
ui
for
for
committing
pushing
that
sort
of
stuff.
C
I
do
most
of
my
stuff
from
the
command
line,
so
this
is
the
sort
of
thing
that
I
look
for
maybe
others
are
different
in
this
approach,
but
I
like
to
I
like
to
go
to
the
command
line
for
a
lot
of
stuff,
and
so
it's
very
easy
to
say,
open
up
a
command
line
into
this
and
you
can
even
go
and
you
know
I
can.
C
I
can
open
a
terminal
into
the
theater
container,
so
this
is
the
container
that's
running
the
sort
of
back
end
for
the
editor
right
now
down
here
we
also
see
the
other
stuff.
So
here's
the
vs
code,
yaml
plugin,
here's
the
vs
code
go
plugin.
You
can
open
a
terminal
into
that
poke
around
all.
We
want
fun
stuff
like
that.
B
It
might
just
be
worth
talking
about
the
commands
that
we
have
at
the
top
as
well.
You
can
define.
B
B
Themselves,
if
there's
like
a
segway
that
we
recommend,
so
if
you
want
one
node,
one,
for
example,
yeah
with
the
known
project,
you
can
all
encapsulate
that
within
yaml
within
the
the
default
itself,.
C
Yeah,
so
this
whoever
wrote
this
dev
file
did
a
much
better
job
than
I
did
on
the
one
I
was
showing
earlier,
where
you
know
we
have
one
build
the
application
to
run
the
application,
so
you
can
define
you
know
you
can
define
the
logic
for
building.
The
idea
is
you're,
defining
the
logic
for
everything
you
need
so
from
deploying
to
setting
up
to
building
to
testing,
to
pushing
all
of
that
stuff
defined
in
the
dev
file.
C
So
these
are
basic
commands.
Like
you
know,
this
one
is
go
build
and
this
one
is
just
the
golang
health
check,
which
is
a
file
in
the
in
the
well.
It's
it's
built
by
the
application
and
put
into
your
repo.
Basically,
so
you
know
you
can
imagine
more
complex
things
here.
You
can
imagine
start
up
your
start
up
your
postgres
database
and
then
inject
this
information.
C
So
with
one
click,
you
can
sort
of
set
things
up
for
testing
and
there
are
other
repos.
I
don't
have
them
easily
on
hand,
but
we
have
some.
You
know
demo
repos,
that
kind
of
get
into
this
a
little
bit
more
set
up
a
front
end
and
a
back
end
and
a
database,
and
you
know
a
few
clicks
to
get
everything
going,
how
you
want
it
and
then
you
can
start
debugging
your
code
running
with
a
front
end
and
a
back
end
and
all
that
stuff.
C
A
C
A
C
The
there's
a
component,
one
of
the
plugins
that
automatically
gets
added,
is
the
machine
exec
plugin.
Okay,
what
that's
basically
doing
is
it's
trying
to
resolve
a
shell
in
your
workspace
and
kind
of
opening
it.
It's
definitely
something
I've
done,
but
it
will
it'll
generally
require
building
a
container
to
do
it.
So
when
I
was
contributing
a
lot
to
one
of
our
repos,
that
is
just
it's
so
much
easier
to
contribute
in
this
environment.
C
I
use
z,
shell,
I
sort
of
rebuilt
the
dev
container
to
use
z
shell
by
default,
and
once
you
do
that
it
just
works,
but
it's
not.
You
know,
I
can't.
I
can't
go
into
the
go
see
up.
I
can't
go
into
the
go:
cli
dev
container
and
install
z,
shell
and.
C
That'll
be
lost
as
soon
as
the
container
stops
right.
If
you
know,
if
you
build
the
go
cli,
if
you
build
your
sort
of
dev
container
so
that
z,
shell
is
the
default,
then
you
get
z,
shell,
okay,.
A
Interesting
awesome
folks,
if
you
got
questions
now's
the
time
to
ask
and
we're
running
up
here
on
the
top
of
the
hour
ryan,
anything
that
I
missed
in
chat.
D
I
haven't
seen
anything
else
new
in
chat.
This
has
been
really
really
cool
to
see,
though,
how
how
this
has
evolved
and-
and
I
can
imagine
with
those
build
and
run
actions.
Those
are
basically
just
running
docker
images
right,
so
you
could
kind
of
run
just
about
anything
anything
in
there
and
do
really
advanced
integrations.
Do
you
have
anything
that
does
active
interaction
with
the
ide,
like
linting
feedback
or
or
anything
extra
that
folks
have
added
yeah?
So
I
mean.
C
What
we
generally
do
is
for
for
linting
and
stuff,
like
that,
you
know
we're
adding.
D
C
Not
sure
I
think
you
would
probably
have
to
write
a
plug-in
to
interact
with
thea
I've
not
done
it
myself.
So
I
don't
know
the
details
there
yeah
for
for
our
repos.
What
we
generally
will
do
is
you
know
we
have
the
defined
linter
files
and
then,
if
we
need
a
specific
linter,
this
comes
up
a
lot
in
the
docs
repo,
because
it's
you
know
ascii
doc,
sort
of
different
build
chain.
C
We
just
add
those
plugins
and
then
get
that
linting
for
like
sort
of
programmatically
putting
markers
in
your
into
your
sort
of
files.
I
don't
think
we
support
that.
Currently,
though,
you
could
write
a
plugin
to
do
it.
You
can
write
a
plugin
to
support
that,
but
built-in.
D
Yeah
yeah
and
there's
there's
a
whole
plug-in
architecture
for
that
as
well.
So
yeah
that's
a
a
path,
that's
kind
of
already
outlined
and
and
yeah
that's
that's
really
cool
yeah.
C
A
Yeah,
I
dropped
a
link
to
all
the
the
vs
code.
Extensions
redhead
offers
in
chat.
So
if
you're
looking
for
particular,
you
know,
I
want
that
open
shift,
connector.
Well,
it's
technically
already
there.
I
think
right
and
then
you
know,
if
you
need
your
language
server,
all
that
stuff
can
be
plugged
in.
So
it's
just
really
nice.
C
A
C
It's
potentially
worth
noting
also
that
sort
of
code
ready
workspaces
is
the
productized
version
from
red
hat.
The
sort
of
set
of
plugins
that's
supported
in
the
sort
of
upstream
che
repo
is
actually
larger.
There's
you
know
we
do
a
process
to
vet
plug-ins,
to
check
them
and
you
know
build
them
ourselves
and
support
them.
So
there's
more
plug-ins
in
these
sort
of
upstream
repo.
D
C
This
is
running
on
the
openshift
sandbox.
Currently
this
is
this
is
the.
If
you
go
and
sign
up,
if
you
go
to
I
mean
I
can
never
remember
the
full
url,
but
the
url
to
the
crw
is
workspaces.openshift.com.
So
if
you
go
here,
this
is
basically
what
you
will
get.
You
can
do
everything
I'm
doing
today
from
your
browser.
Without
installing
anything.
A
Cool
yeah
that
connector
or
you
know,
is
one
of
my
favorite
tools,
because
I
often
log
into
various
clusters
across
the
planet
and
yeah
it's
hard
to
keep
them
all
sorted
out
just
from
the
cli,
sometimes
because
they'll
have
a
name
like
admin.
Oh
that's
useful,
which
one
is
that
right,
so
yeah
when
I
hit
cube
ctx,
it's
like
ooh.
C
C
C
You're,
proud
of
that,
I'm
proud
of
so,
as
I
mentioned
earlier,
I'm
not
working
directly
on
this
code
for
the
last
little
bit.
The
next
step
that
we
want
to
do
is
you
know
if
I
can
remember
how
to
get
back
to
the
ui.
I
could
show
you,
but
you
know,
this
is
starting
up
a
lot
of
services
and
routes
and
pods
and
volumes
and
all
the
open
shift.
C
Goodness
that
you
know
you
expect
for
a
running
application,
so
your
workspace
is
fairly
complicated
under
the
hood,
we're
working
on
moving
that
logic
to
an
operator
and
that
operator
it
will
it
does.
It
won't
replace
everything
but
it'll
replace
the
parts
that
say
this
piece
of
the
dev
file
maps
to
this
sort
of
element
of
a
pod.
C
C
D
And
you
can,
if
you're,
using
open
shift
four
seven
or
later
it
should
be
available
in
the
hub
within
your
cluster,
and
you
could
just
search
for
web
terminal
and
install
it
it's
not
on
operator
hub.
I
was
a
little
disappointed.
I
didn't
see
it
there,
but
they
don't
have
a
console
to
integrate
with.
So
I
don't
know
how
how
it
would
be
displayed.
You
know.
C
So
this
is
this
is
my
crc
instance,
and
actually
I've
got
web
terminal
installed
from
operator
hub,
oh
cool,
so
I
don't
know
depends
on
I'm
sure
it
depends
on
some
underlying
configuration,
but
web
terminals.
C
Yeah,
yes,
yeah
yeah,
and
it's
been
there
since,
I
believe
four
five,
I
think
four
five
dot
four
is
when
we
first
pushed
it
and
I'll
hit
this,
and
if
we
run
out
of
time
we
run
at
a
time,
but
basically
this
is
applying
the
custom
resource
that
represents
a
dev
file
onto
my
cluster
and
once
this
starts
up,
this
is
going
through
a
couple
proxies
to
get
to
it,
but
yeah.
So
here's
my
command
line
terminal.
C
C
C
A
A
C
D
D
A
And
thank
you
all
for
tuning
in
and
there's
actually
nothing
else
scheduled
for
today
on
the
channel
so
tune
in
tomorrow.
First
thing
for
the
level
up
hour
at
9am,
eastern
1300
utc.
If
I'm
reading
this
right,
yes
and
we'll
be
talking
about
well,
we
have
a
special
guest
coming
and
his
name
is
scott
mccarty.
I
think
that's
this
week,
if
I
remember
correctly
so
definitely
tune
in.
A
Yes,
it
is
scott
mccarty.
I
wasn't
thinking
ahead.
Brain
worked
in
your
face
brain,
so
thank
you
all
for
joining.
Thank
you
all
for
listening
and
we
will
catch.
You
tomorrow
see.