►
Description
Join OpenShift's Developer Experience experts for our regularly scheduled program filled with cloud native, Kubernetes, and OpenShift tips and tricks for developers.
Dewan Ahmed
https://twitter.com/DewanAhmed
https://www.linkedin.com/in/diahmed/
Eric Deandrea
https://www.linkedin.com/in/edeandrea/
https://twitter.com/edeandrea
Chris Short
https://www.linkedin.com/in/thechrisshort
https://twitter.com/ChrisShort
A
A
A
Good
morning,
good
afternoon,
good
evening,
wherever
you're
hanging
from
welcome
to
the
developer
experience
office
hour
here
on
red
hat
live
streaming,
I
am
chris
short
a
host
and
a
show
runner
is
the
proper
tv
title.
I've
been
told,
I'm
joined
today
by
dewan
ahmed
and
eric
d'andrea.
We're
gonna
have
an
awesome
time
with
fruit.
Apparently
I
I'm
curious
how
this
is
going
to
go
down.
Please
introduce
yourself
for
the
audience
and
and
tell
us
what
we're
doing
today.
B
C
My
favorite
so
good,
like
chris,
said
good
morning
good
afternoon
good
evening,
wherever
it
is
that
you
are
I'm
eric
d'andrea
like
dewan,
I'm
not
not
in
canada,
but
just
below
him,
I'm
in
new
the
great
state
of
new
hampshire,
granite
state,
my
favorite
fruit,
I
like
watermelon,
especially
this
time
of
year.
It's
been.
C
B
B
B
C
A
C
C
A
A
So
yeah,
let's
this
is
kind
of
the
first
developer
experience
officer
we've
had
in
a
while,
so
you
know
apologize,
you
know,
think
life
has
happened
it's
summer.
All
these
other
things
hell.
We
had
storms
rolling
through
here
this
weekend
that
left
me
without
power
for
almost
48
hours.
So
you
know,
there's
there's
a
lot
going
on
and
dawan
is
new
to
the
team,
and
this
is
his
first
office
hour
of
sorts,
so
at
least
live
here.
So
thank
you
for
joining
us
dwan.
We
really
appreciate.
D
A
A
B
A
B
Since,
since
we
started
the
show
with
talk
about
fruits,
so.
A
B
Maybe
let's
talk
about
fruits
but
how
to
build
a
fruit
sap,
maybe
all
right.
A
B
Yeah
yeah
yeah.
So
so
let
me
start
by
sharing
my
screen
and
if
you,
if
you
can
see
my
cool
t-shirt,
that's
the
was
the
only
java
t-shirt.
I
could.
I
could
find.
A
B
Wardrobe,
so
so
we're
gonna
we're
gonna,
build
something
with
with
spring
framework
and
we
will
deploy
the
app
on
openshift.
A
C
B
Yes,
yeah.
Yes,
yes,
it's
all
like
sprayed
with
hand
sanitizers,
so
it's
very
clean
and
okay.
So
I
think
you
can
see
the
link
on
the
screen
learn.openshift.com,
but
my
friend
can
also
add
this
link
on
on
the
on
the
chat
or
comments
or,
however,
you're.
B
Okay,
okay,
perfect,
so
learn.openshift.com!
Actually
let
me
go
to
the
the
main
page,
so
you
can
also
see
how
to
navigate
here
and
there's
tons
of
scenarios
for
for
different
topics,
but
today's
topic
is
developing
with
spring
and
spring
book.
So
if
you
click
that
tab
right
here,
you
get
six
scenarios.
Let's
start
with
the
first
one,
getting
started
with
spring.
B
If
you
click
on
start
the
scenario
this
this
setup
runs
on
on
on
an
openshift
cluster
which
which
is
not
your
openshift
cluster.
This
is
provided
for
you
as
a
sandbox,
and
I
think,
if
I'm
not
mistaken,
this
is
live
for
60
minutes,
but
that
should
be
more
than
enough
to
to
complete
this
scenario.
A
B
B
B
So
if
we
look
at
the
palm.xml,
you'll
see
a
typical
palm.xml
with
some
to
do
so.
These
to-do's
are
stuff
that
we
would
like
you
to
add
yourself
just
to
get
used
to
the
scenario
and
and
do
the
scenario
yourself,
but
majority
of
the
stuff
are
already
added
for
you.
So
this
is
more
like
a
template
and
you
add
only
the
missing
pieces
again.
All
this
thing
you
can
type
by
hand,
but
because
we
don't
want
to
do
that,
we
can
do
just
click
and
execute.
B
So
if
you
come
here
this
section,
you
see
a
nice
copy
to
editor
button
watch
the
line
watch
line
number
59.
So
this
is
the
the
dependency
for
springboard
starter
web,
the
web
dependency.
If
I
click
here
there,
you
have
that
dependency
added.
So
that's
the
very
first
of
the
dependency
just
to
even
run
the
application.
We
add
the
other
dependencies,
but
for
the
first
step
you
don't
need
anything
else.
You
can
click
maven
spring
boot
run
and
it
starts
running.
So
this
is
a
after
maven
downloads,
the
internet.
B
Yes,
yes,
that's
what
I
wanted
to
say.
If
you
actually
the
introduction
we
had,
we
could
have
the
introduction
right
now
how
how's
everything
the
state
of
world,
whatever.
C
A
B
And
yeah
we
were
just
overestimating
the
run
time
because
I
think
it
was
like
seven
or
eight
seconds
till
we
made
the
joke,
see
the
jvm
running
for
1.3
seconds.
So
now
you
have
the
app
running
so
where
you
can
see
the
app
where
you
have
two
options.
First,
is
you
can
click
right
here.
A
B
B
B
Say
it's
not
gonna
do
anything
because
it
doesn't
have
the
methods
to
to
add
the
fruit,
but
but
don't
you
worry,
we
were
gonna.
Add
that
watermelon
to
the
list.
That's
our
promise,
sometimes
today,
all
right
so
so
now
that
we
have
that,
let's
do
a
ctrl
c
exit
that
process
and
congratulations.
We
will
keep
congratulating
you
on
every
step
because
we
are
sure
you
can
do
it.
Okay.
So
let's
go
to
the
next
step.
B
C
B
That's
just
a
quick
way
of.
If
you
want
to
test
your
application,
you
can
use
an
in-memory
database
rather
than
maybe
spinning
up
an
actual
like
a
full-fledged
database.
So
we'll
add
again,
that's
if
you
scroll
down
on
the
palm
you'll,
see
there's
a
section
at
h2
dependency
line,
130
so
copy
to
editor.
B
B
So
if
you
see
source
main
java.com,
we
don't
have
anything
yet
that's
going
to
change.
If
I
click
copy
editor,
you
can
also
like
click
here
and
then
copy
to
edit
it.
It's
gonna.
Do
the
same
thing.
Copy
to
editor
actually
opens
up
the
of
the
file
on
the
on
the
ui
and
then
copies
the
content.
If
you
like
vim,
you
can
also
do
let's
say
like
a
vim,
and
then
you
can
copy
that
file
name
and
add
that
from
the
terminal.
However,
you
want
you.
B
Can
you
have
lots
of
options
so
here
we're
adding
that
the
fruit.java
has
some
some?
It
has
the
constructor.
It
has
some
some
methods,
as
you
can
see
now,
we
need
to
create
a
repository
class
for
for
our
content,
like
some
something
that
will
talk
to
the
database
so
like
it's
like
it's
a
middle
layer
from
from
your
from
a
source
file
and
talking
to
your
database.
B
Yep
yep
and
to
do
let
me
open
up
this
link
right
here
on
a
separate
tab
and
we'll
come
back
to
that
later,
but
that
will
be
handy
sometimes
later
so
next
we
have
to
populate
the
database
with
some
initial
content,
there's
nothing
in
the
database
right
now.
So
if
we
click
here,
just
some
sql
commands
sql
sql
one
one
of
those
two.
As
you
can
see,
we
have
three
fruits
in
the
list:
cherry
apple
banana,
no
watermelon.
Yet
next,
who
doesn't
like
testing
right?
B
B
Yeah,
just
part
of
it
is
that
concept
similar
to
docker
file,
eric
like
where
it
caches
all
the
previous
stages.
Let's
say
if
I
do
maven
x
command
and
then
maven
y
command,
the
previous
dependencies
that
may
even
download
it
it
only
downloads.
The
thing
that
it
didn't
download
in
the
previous
step
is
that
right.
C
A
C
B
Correct-
and
that
applies
to
let's
say
the
version
as
well.
So
if
I
have
a
dependency
and
I
updated
the
version,
it's
gonna
again
download
the
newer
version
right.
B
Okay,
all
right!
So,
as
you
can
see
on
the
screen,
we
did
run
the
maven
verify
and
exist
expected.
We
can
see
test,
run
five,
no
failure,
so
all
our
tests
passed.
So
that's
that's
a
good
step.
Again!
Congratulations
for
completing
step,
two
out
of
five,
so
we
should
have.
B
B
You
know
actually,
on
that
note,
I
I
saw
a
patent
online
pat
on
the
back
patent.
You
can
you,
can
you?
Can
google
right
now,
like
pat
on
the
back
patent,
so
someone
actually
paid
in
an
idea
of
a
device
which,
like
you
attach
here
and
then
you,
you
move
that
and
then
the
mechanical
arm
that
pats
you
in
the
back?
This
is
apparently
a
patent
on
that
okay.
B
So
coming
back
to
to
rest
so
so
far
you
have
your
application
running
locally,
so
no
one
can
access
that
right.
So
on
other
than
yourself,
so
opening
up
to
the
internet
means
you
add
some
rest
endpoints,
so
that
folks
from
the
internet
can
can
talk
to
your
application,
see
the
list
of
the
fruits
you
have
so
for
that
we'll
start
with
the
fruit
controller.
B
So
you
can
see
this.
This
class
has
and
again
an
empty
to
do
so.
If
I
click
copy
to
editor,
we'll
add
those
those
methods,
it
doesn't
have
anything
else
except
slash.
Api,
slash,
slash
fruits,
which
is
just
the
list
tongue
twister,
okay,.
C
Let
me
let
me
throw
something
else
in
there,
too
people
a
lot
of
people
with
spring
are
familiar
with,
like
the
thing
called
auto
wired
and
you
notice
there's
no
auto
wired
on
the
fruit
repository
and
you
might
start
like
asking
why.
Why
is
there
no
auto
wired
and
that
that
goes
to
what's
called
field
injection
versus
constructor
injection?
And
although
the
spring
team
doesn't
come
out
and
say
it,
you
know
in
any
other
documentation
they,
they
really
do.
C
C
Why
and
if
you
think
about
it,
passing
your
dependencies
that
a
class
depends
on
if
you
just
have
them
as
fields,
it
makes
it
really
hard
as
someone
who's
trying
to
use
that
class
to
know
what
what
things
do,
I
need
to
provide
this
class
in
order
for
it
to
function
properly
right
by
using
constructor
injection.
It's
pretty
obvious
right.
C
B
No,
no,
that
that
that's
that's!
That's
a
lot
of
helpful
information,
so
here,
if
we
see
the
the
method
find
all
so
you
can,
you
can
find
this
method
in
the
classes
we
have
written.
But
if
you
see
it,
the
the
type
of
repository
variable
is
fruit
repository.
B
So
if
I
see
fruit
repository,
it
imports
this
particular
package
and
if
I
look
here
in
the
document
in
the
spring
documentation
and
try
to
find
this
method
find
all
I
can
see
where
it
gets
the
the
definition
of
the
method
so
coming
back
here,
so
we
added
the
the
fruit
repository
class.
Well,
we
added
that
before
so
here
we
added
fruit
controller
class.
Let
me
open
up
fruit
controller
right
here
here,
so
we
added
fruit
controller
with
some
to
to
add
additional
service
calls
here.
B
So
with
the
empty
service
calls,
we
can
now
again
run
maven
springboardrun.
At
this
point
we
are
skipping
the
test
because
we
actually
don't
have
any
test
tool
to
test
the
endpoints
which
we
haven't
added.
So
you
can
see
that
jvm
is
running.
I
can
go
to
my
local
web
browser
and
see
it
here
and
if
I
try
to
add
watermelon
at
this
point,
we
still
can't
because
we
don't
have
the
methods
in
order.
A
B
Add
add
a
fruit,
so
so
that's,
okay!
Next
we'll
create
additional
service.
So
here
we
can
update,
create
and
delete.
So
if
I
click
copy
to
editor,
so
you
can
see
the
post
mapping
this
dot
repository
save
so
this
should
let
us
save
any
new
fruit
that
we're
adding
to
the
list
eric.
Do
you
have
any
comments
on
on
any
of
these.
C
Like,
like
anything
in
software
engineering,
there's
a
million
different
ways,
you
could
solve
the
same
problem
and
the
same
holds
true
in
spring
I
mean
there's
like
you
notice,
there's,
like
some
exception,
handling
and
validation
handling.
That's
there
that's
one
way
you
could
do
it
there's
probably
five
other
ways
that
you
could
do
it
as
well.
B
Yeah
yep,
so
I
know
you
all
have
been
waiting
eagerly
to
to
see
the
watermelon
eric's
favorite
fruit
on
the
on
the
list.
So.
B
If
we
can
get
that
working
in
this
try
and
this
time,
I'm
not
gonna
click.
This
link
right
here
we
can
go
from
this
link
which
should
take
us
to
the
same
list
all
right.
So,
let's
see
water
melon.
B
B
So
it
seems
the
methods
that
we
added
are
working.
We
can.
We
can
see
the
list
which
is
just
in
slash
api
fruits,
and
then
we
can
add
a
fruit.
We
can
even
update
the
fruit
right,
probably
we
can
say
red
cherry.
B
So
we
can.
We
can
update
the
fruit.
So
if
you're
watching
this
live
or
you're
watching
this
at
a
later
time,
we
have
a
challenge
for
you.
So
let's
say
watermelon.
If
I
add
it
again,
it
adds
a
second
watermelon,
so
the
the
to
do
for
you
if
you're
watching
it
at
any
time
now
or
in
future.
How
do
you
add
a
check
so
that
it
doesn't
add
the
same
fruit
to
the
list?
C
D
C
A
C
C
C
B
Okay,
so
let's
clear
up
the
screen
continue
to
the
next
step,
so
all
good.
I
know
we've
been
talking
a
lot
about
the
local
environment
and
and
building
a
spring
app,
but
now
you
have
to
deploy
and
let's
deploy
to
the
best
platform,
best
kubernetes
platform
on
openshift
okay.
So
if
you
haven't
used
openshift
before,
let
me
show
you
one
more
scenario.
B
So
if
I
go
to
learn.openshift.com,
I
think
somewhere
at
the
bottom,
you
have
openshift
playground,
so
you
can
go
to
openshift
playground
and
choose,
whichever
version
will
say
openshift4.7,
and
it's
going
to
give
you
one
more
60
minutes
sandbox,
where
you
can
type
in
different
commands
and
learn
about
openshift
and
once
you're
familiar
you
can
all
the
instructions
are
here
by
the
way,
but
in
case
you
want
to
get
more
familiar
with
openshift
you
can
have.
You
can
have
that
playground
so
coming
back
here.
B
D
B
So,
let's,
let's
be,
let's
just
create
a
simple
project:
let's
not
cause
any
havoc,
let's
say
you
do
something
and
that
oc
delete
and
then
chris's
internet
goes
down
again
right.
So
we
don't
want
to
do
that.
Why.
A
B
B
B
Okay,
so
now
that
you
have,
you
are
authenticated
to
a
cluster.
You
have
created
a
project,
let's
actually
go
to
the
openshift
web
console
oops.
Let's
try
again
open
shift
console.
C
B
Yes,
yes,
and,
and
probably
this
will
be
fixed
at
a
later
date,
but
if
you're,
if
you're
trying
this
scenario
now,
I
will
suggest
you
use
admin
admin
credential
to
log
in
rather
than
develop
a
developer,
because
if
you
are
developer,
you
probably
won't
be
able
to
switch
projects
right
now,
because
we
are
using
dev
project
and
let's
say,
if
you're
a
default
project,
you
probably
won't
be
able
to
switch
right
now.
B
So
if
you
go
from
here
administrator,
you
can
see
all
the
projects.
Dev
is
the
project
we
are.
We
should
be
on
and
now,
if
I
switch
the
perspective
to
develop
perspective,
we
are
in
dev.
We
shouldn't
have
any
resources,
a
clean
slat,
so
first
step
after
you
create
the
project
would
be
creating
a
database,
a
postgresql
database.
B
So
remember
we
were
using
an
h2-data
database
in
in
previous
steps,
but
now
you
can-
and
that
is
as
simple
as
oc
new
app
and
some
some
environmental
variables
for
for
the
username
and
password,
and
then
you
specify
this
is
the
image
image
name,
openshift
postgresql
and
the
version-
and
you
give
it
a
name.
B
So
once
you
do
that,
let's
go
back
to
the
topology
and
see
you
can
see
now
the
database
is
starting
up
if
you're
using
openshift.
For
the
first
time
the
the
cyan
blue
circle
means
the
deployment
config
or
the
pods
are
still
starting
up.
It's
not
running,
and
I
think
the
solid
blue
yeah
right
like
that.
It
means
it's
running.
So
if
I
hover
my
mouse,
it
says
it's
running
all
right,
so
you
can
see
the
database
configuration
here,
source
main
jquery,
deployment.yml
and
again
you
can
go.
C
So
should
we
talk
a
little
bit
about
what
jqb
is
so
like?
Yes,
please,
yeah
yeah,
so
j
cube
is
a
it's
a
set
of
maven
plugins
for
interacting
with
kubernetes
platforms
and
openshift
being
one
of
them.
So
it's
a
way
where
you
can
take
your
application,
your
java
application,
it's
not
real
specific
to
spring,
but
I
just
through
running
a
maven
command,
deploy
that
application
to
a
kubernetes
cluster,
in
this
case
we're
using
the
the
openshift
maven
plugin,
because
it
we're
dealing
with
openshift.
C
So
there's
some
openshift
like
a
deployment
config
instead
of
a
deployment
and
a
root
instead
of
an
ingress
and
all
that
stuff,
and
so
what
you
can
do
is
if
you
go
back
to
your
editor
there
and
you
go
into
that
source
main
j
cube
directory.
Is
you
notice
this?
If
you
scroll
up
to
the
top
of
the
editor,
that's
not
a
complete!
Actually,
this
one
is
a
complete
one,
but
it
doesn't
have
to
be
a
complete
manifest
file.
It
could
be
just
what
they
call
a
fragment.
A
C
It'll
create
the
j-cube
plug-in
when
it
runs,
it'll
actually
create
all
the
necessary
kubernetes
manifests
and
it'll
look
in
this
source
main
j-cube
and,
if
you've
specified
anything.
So
in
this
case,
it's
like
deployment
or
deployment.
Config.Yaml
it'll
apply
those
on
top
of
whatever
it
generates.
So
if
you
overwrite
something
like
an
environment
variable
section
or
what
add
some
labels
or
whatever
it'll
apply
that
on
top
of
whatever
it
generates
before
it
does
the
actual
deployment.
A
A
C
This
that
kind
of
died
on
the
vine
and-
and
this
is
the
new
incarnation
of
that
which
reuses
a
lot
of
the
code.
But
it's
it's
a
little
bit
more
structured
because
I
you
know
I'll
throw
my
hand
out
there
and
say
I'm
a
gradle
fan
and
not
a
maven
fan
that
this
kind
of
stuff
didn't
exist
in
gradle
before
I
still
don't
think
it
does.
But
it's
it's
getting
there,
because
they've
done
a
lot
of
refactoring
and
a
lot
of
retooling
around
how
the
code
is
structured.
B
No,
that
that's
that's
very
important
and
also
eric
like
here.
I
see
that
for
for
openshift,
maven
plugin.
It
helps
with
like
building
s2i
images.
So,
for
example,
when
we
do
that
the
command
we
haven't
executed
yet,
but
when
we
do
mavenoc
deploy
we'll
be
able
to
see
like
how
it
builds
the
image
before
actually
deploying
it
right.
So
s2i
is
one
one
mechanism
where
openshift
builds
container
images
right
from
your
source
repository,
so
you
don't
have
to
have
a
docker
file.
It's
just
one
of
the
techniques.
B
How
openshift
builds
right,
so
I
can
see
that
openshift
may
even
plug
in
it
has
an
integration.
If
we
may
say
to
to
build
those
s2i
images.
C
A
C
B
Right
right-
and
that
reminds
me
of
the
pre-container
era,
where
the
actual
jar
was
the
the
deployment
artifact
like
you,
produce
the
jar
and
the
j.
That's
the
jar
you
pushed
onto
some
other
vm
and
that's
what
around
the
server,
but
now
is
the
container,
and
the
container
image
is
what
you
use
to
deploy
your
image.
C
Is
cool
too
because,
like
if
you
had
a
local
you're
in
again
in
air
quotes
if
I
were
doing
it
on
my
laptop
here,
you
know
a
lot
of
organizations
are
so
locked
down.
You
can't
even
install
a
java
runtime
right
right.
So
assuming
you
had
a
java
runtime,
but
you
can't
install
the
docker
runtime.
You
know
that's
forbidden,
especially
in
financial
services,
which
is
my.
B
Wow
nice
got
it
so
coming
back,
so
where
we
were
was
we
logged
into
the
openshift
cluster?
We
created
a
new
project
called
dev.
We
created
a
postgresql
database
called
my
database
and
we
could
see
in
the
topology
that
you
have
your
my
database,
but
we
don't
have
the
app
yet
but
before
actually
creating
the
app
we
again
have
to
so.
If
you
remember
the
palm.xml,
it
had
lots
of
to
do
so
in
the
last
20
minutes
or
so
so
we
added
all
those
studios,
but
one
to
do
or
two
to
do
actually
are
left.
B
One
of
them
is
the
postgresql
dependency.
So
if
I
click
here
it
has
the
postgresql
database
and
the
final
dependency
is
a
health
check.
So
using
springboot
provides
something
called
actuator
and
it
exposes
like
that,
slash
health
matrix
and
if
I
click
here
I
think
that's
the.
C
Same
what's
cool
about
that,
if
you're
going
back
to
the
j
cube,
conversation
is
j,
cube
kind
of
understands.
You
know
that
your
app
is
a
spring
boot
app
and
that
if
you
have
actuator
it
knows
that
it
has
health
and
ready
and
liveness
probe
endpoints
already
built
in
so
it'll,
add
those
to
the
deployment
and
the
or
the
deployment
config
for
you
automatically
that
gets
deployed.
So
you
don't
have
to
go.
Do
that.
B
B
B
So
let's
click
that
and
you'll
see
more
of
the.
B
To
now
now
is
that
the
other
parts
of
the
galaxy
being
downloaded
and
then
let's,
let's
show
the
topology.
This
is.
C
B
C
Could
talk
about
mine
yeah,
so
I
I
don't
know
if
I
did
it
in
the
introduction,
but
you
know
my
background
is
spraying
I'm
or
at
least
I
was
for
a
period
of
time.
I
committed
a
lot
a
lot
of
stuff
in
spring
security,
but
I
was,
I
was
a
committer
and
a
lot
of
spring
stuff
and
for
those
who
haven't
heard
of
this
thing
called
corkus.
C
That's
out
there,
I've
written
a
book,
that's
going
to
be
published
in
august
at
some
point
mid
to
late
august,
we're
looking
at
quarkus
from
a
spring
developer's
perspective,
so
looking
at
a
lot
of
the
conventions
like
spring
data
jpa
and
controllers
and
cloud
and
kubernetes,
and
all
that
kind
of
stuff,
but
looking
at
it
from
the
eye
of
a
spring
developer
and
kind
of
showcasing
side
by
side
hey.
This
is
how
you
do
something
in
spring,
and
this
is
what
it
looks
like
in
quarkus
and
by
the
way,
it's
not
really
so
different.
A
C
C
A
B
A
C
C
B
Is
complete?
No,
that
was
a
very
important
plug
now
that
the
build
is
complete
part
of
part
of
the
command.
You
can
see
like
your
familiar
docker
like
commands,
or
you
can
see
like
step
one
two
like
you
see
using
a
base
image,
so
you
can
see
like
how
the
the
image
is
built
in
in
different
different
parts.
B
So
once
the
build
is
done,
we
can
go
back
to
the
topology
topology
view
and
you
can
see
now
the
the
deploy
con
the
deployment
config
is
there.
You
can
also
check
from
command
line
oc
rollout
status.
The
name
of
the
deployment
config
is
spring
getting
started.
B
B
B
A
So
it's
actually
in
the
lower
third
folks
that
qr
code
there
will
teach
you
straight
to
it
perfect.
So.
B
Red
hat
developer
sandbox,
so
you
can
get
started
on
the
sandbox
for
30
days.
You'll
have
an
open
shift
cluster.
Absolutely
no
credit
cards
required,
no
swiping
needed
no
swiping
needed.
So
since
I
have
already
have
the
sandbox,
if
I
click
and
start
using
my
sandbox,
it
takes
me
right
to
my
sandbox
and
here
I
already
have
this
deploy.
B
But
let
me
delete
the
previous
deployment
just
to
show
how
I
can
also
use
my
sandbox
to
deploy
the
application
for
the
sake
of
time
I'll
keep
the
database
I'll
just
keep
the
database
for
the
sake
of
time.
B
So,
if
you
see
at
the
end
of
of
your
scenario,
you
can
fork
the
repository
so
for
that
there's
a
there's
a
nifty
little
script
that
my
friend
eric
written
and
if
you
click
here,
it's
gonna
give
you
a
code,
this
code
right
here
and
then
you
copy
the
code
right
here
to
for
device
activation.
B
I'm
already
like
I
already
authorized
github
before
and
I
already
went
through
with
the
forking
of
the
repository.
So
if
I
come
back,
if
I
close
right
here
and
come
here.
C
A
B
Right,
so
you
can
see
that
the
repository
I
have
it
here,
forked
and
then
on
my
local.
So
this
is
my
local
machine.
I
have
again
if
I
do
ls-la,
I
I
have
the
the
clone
version
of
of
the
repository
that
we
just
forked
and
now
I'm
I'm
gonna,
deploy
it
on
my
sandbox
environment,
which
is
right
here.
So
let
me
just
copy
the
the
actual
maven
oc,
deploy
command
and
copy
this
one
right
here.
B
C
B
Yes,
so
once
you
once,
you
check
out,
you'll,
probably
be
with
a
master
branch
and
then,
if
you
check
out
solution,
you'll
have
the
the
all
the
solutions.
So
you
just
completed
something
on
learn.openshift.com.
You
probably
don't
want
to
redo
the
same
thing
you
just
want
to
deploy.
You
can
check
out
solution,
brands
and,
let's
say
the
project
I'm
on
right.
Now,
I'm
on
tv,
that's
fine!
I'm
just
going
to
deploy
on
this
project.
B
B
Developer,
sandbox
cluster,
similar
similar
command
for
for
building
the
the.
C
C
A
A
A
A
C
D
B
All
right,
it's
finished
now
the
pod
is
not
yet
running
it's
container,
creating
stage.
Let's
see.
C
C
C
C
C
A
C
That
that's
all
kind
of
cool,
you
know
what
we
what
we
just
did,
but
you
know
one
thing
that
a
lot
of
developers,
kind
of
you
got
to
kind
of
figure
out
is
okay.
I
deployed
this
environment
and
I
deployed
you
know
I
tied
my
app
to
a
database
right
and
we
did
that
through
environment
variables.
So
how
do
I
take
that
application
and
then
move
it
from
dev
to
qa
to
integration
test
to
smoke
test?
C
You
know,
whatever
you
know,
end
number
of
environments
you
have
until
you
get
to
production
and
I'm
going
to
use
the
word
environment
in
air
quotes
again
because
in
the
old
days
you
know
an
environment
was
a
physical
environment.
You
know
it
took
weeks
months
years.
You
know,
however,
you
submitted
a
request
and
you
needed
a
bare
metal
server
or
vm
or
whatnot,
and
then
god
forbid,
you
need
a
new
environment.
You
know
where
everything
needs
to
be
wired.
Together
I
mean
that
you
know
the
ops.
People
just
need
to
send
them
on
early
retirement.
C
If
you
start
mentioning
that
kind
of
stuff,
so
kubernetes
and
openshift
make
that
really
really
easy,
and
what
I'm
going
to
do
is
I'm
going
to
there's
actually
another
scenario
here
that
talks
about
externalized
configuration
and
I'm
going
to
kind
of
blow
through
some
of
the
setup
stuff,
because
it's
you
know
essentially
the
same
stuff
that
dejuan
just
did
you
know
once
this
thing
is
my
font,
size,
good
and
what
everybody
can
read?
What
I'm
doing
here
go
up
on
more
one,
more.
B
C
You
know
here
we
go
all
right
so
that
that's
going
it's
pulling
down
the
the
jdk
and
whatnot
once
that's
done
all
right,
we're
good
to
go.
So
I'm
going
to
start
it's
the
same
source,
repo,
just
there's
a
bunch
of
different
projects
in
that
source
repo.
So
it's
the
same
source
repo,
just
a
different
folder
within
it.
I
don't
know
if
I
can
make
this
bigger,
but
so
essentially
we've
got
that
we're
still
dealing
with
fruits.
We've
got
a
fruit
controller,
except
this
one's
much
simpler.
C
It
doesn't
have
all
the
whiz
bang
stuff
that
dejuan
was
just
showing
with
like
the
list
and
being
able
to
do
stuff.
But
what
this
really
showcases
is.
I'm
gonna
read
a
property
from
a
properties
file
and
I
want
to
change
that
property
without
having
to
change
my
applications.
Kind
of
simulating
as
if
I
was
moving,
my
application
from
one
environment
to
another
and
hooking
up
different
configuration
to
it.
So
we've
got
and
again
you
know
I
talked
about
in
the
in
the
last
one.
You
know
we
talked
about
constructor
injection
versus
field
injection.
C
C
Great
you
know
spring,
has
that
value
annotation,
that
you
can
use
to
inject
a
property
value,
but
if
you
need
a
bunch
of
properties
that
are
kind
of
somewhat
related
to
each
other,
and
you
want
to
do
validation
on
it
or
you
know
strong
typing,
that
kind
of
stuff
you,
you
would
build
a
spring
call
as
a
configuration
properties
class
and
you
can
you
can
you
see
this?
One
has
validation
and
it
makes
sure
that
there's
actually
a
message.
C
You
know
a
greeting.message
variable
and
if
your
application
goes
to
startup
and
it's
not
there,
it
won't
it'll
fail
to
start.
So
it's
doing
some
some
startup
validation
that
you're,
that
your
properties
are
there,
and
so,
when
we
run
it
look
again,
air
quotes
here
locally.
We
have
our
greeting.message
and
you
notice
it's
a
it's
kind
of
an
injection.
Your
favorite
fruit
is,
and
then
the
the
thing
that
gets
injected
is
what
you
actually
passed
in
the
in
the
as
a
request
parameter.
C
C
I'm
a
theme
on
this
show
yeah,
it's
a
theme.
Next
time,
it's
run
the
thing
before
you
start
talking
right,
mm-hmm,
yeah
lesson
learned
postmortem
all
right.
So
all
that
goes
we'll
I'll,
actually
open
a
new
channel
just
to
kind
of
show
off
a
little
bit
of
the
catacota
stuff.
You
can
open
new
terminals
as
well
and
whatever
the
active
terminal
is,
is,
I
think,
where
the
command
goes.
So
if
I
click
the
command,
it
goes
into
the
new
terminal,
so
we're
kind
of
doing
stuff
in
the
background
here.
C
So
one
thing
that
you
kind
of
need
is
with
some
of
this
actuator
stuff.
If
the
one
thing
in
in
this
project,
we're
using
is
the
the
spring
cloud
kubernetes
spring
boot
starter
in
this
case,
specifically
the
config
starter,
which
means
gives
us
the
ability
to
to
natively
our
application
to
natively,
use
the
cube
api
to
read,
config
maps
and
secrets
right
and
those
are
two
object
types
within
kubernetes.
But
in
order
to
do
that,
your
project
needs
a
policy.
C
The
service
account
that
runs
the
pod
needs
a
policy
that
gives
it
access
to
that
cube
api.
So
we
have
to
add
that
by
default,
openshift
doesn't
allow
that
doesn't
allow
you
the
default
service
account
because
we're
just
using
all
the
defaults
here.
So
we've
got
to
add
that
that
role
to
our
user
and
then
we'll
create
a
config
map.
So
in
the
source
here,
we've
got
the
source
main
etsy
application.
We've
just
got
a
greeting
message
that
we're
going
to
create,
as
as
a
config
map,
all
right.
C
C
Kind
of
thing,
so
if
we
go
to
the
dev
project
and
we
look
at
our
config
map
so
now
there
shouldn't
be
any
nothing
really
running
here,
but
we
do
have
a
config
map
and
if
you
look
at
the
config
map,
there's
a
there's
actually
a
whole
application.properties
file.
That's
embedded
in
the
config
map,
there's
a
bunch
of
ways.
You
could
do
it.
You
could
do
it
this
way
or
you
could
just
specify
the
properties.
C
So
I
could
just
have
a
greeting.message
without
being
part
of
the
file,
and
that
would
work
just
fine,
the
the
underlying
spring
boot
starter.
For
that
you
know,
doesn't
really
care
how
you
do
it
at
least
the
last
time
I
checked
and
then
we're
going
to
deploy
this
to
open
shift
again.
Cue,
the
cue
the
elevator
music.
C
A
I
know
the
tigers
are
being
awful
this
year,
so
well,
not
awful,
but
you
know
not
up
to
the
standard
detroit
is
used
to.
I
feel
like
and
dejuan.
C
A
B
C
So
maybe
what
I'll
do
here?
Because
we've
got
some
limited
time,
is
I'll
just
kind
of
skip
to
the
thing
I
want
to
talk
about.
You
know
once
while
maven's
downloading
the
internet
again
at
the
very
own,
at
the
very
end
of
every
scenario,
all
the
spring
scenarios,
all
the
corporate
scenarios.
You
know
dejuan
showed
the
you
know
being
able
to
fork
it
to
your
own
github
and
downloading
and
clone
it
and
use
the
developer
sandbox,
which
is
all
cool
stuff.
One
thing:
that's
there
as
part
of
the
developer.
C
Sandbox
is
a
what
we
call
code
ready
workspaces
which
is
based
on
the
the
upstream
eclipse
che,
which
is
an
ide.
So
if
you
don't
even
have
an
ide
on
your
machine
well,
who
doesn't
have
an
id?
But
if
you
don't
have
an
idea
machine,
you
don't
have
all
the
right,
tooling
or
the
java
versions
or
all
that
kind
of
stuff.
C
You
can
use
the
the
code
ready
workspaces.
That's
there
as
part
of
the
developer
sandbox,
to
actually
develop
your
your
your
applications
and
like
this
catacota
environment,
it's
running
in
the
cloud
and
it's
running
on
the
openshift
cluster,
and
so
you,
you
use
the
same
red
hat
account.
There's
a
link
here
you
would
click,
it
takes
a
few
a
minute
or
so
to
start
it
up
so,
like
any
good
cooking,
show
I've
already
kind
of
put
it
in
the
oven
and
and
taken
it
out.
C
You
know
in
real
time
here
so
it
would
actually
load
the
solution.
We
talked
about
the
two
branches,
it
would
load
the
solution
branch,
but
it
would
filter.
You
know
when
you've
got
the
repo
just
cloned
there's
a
bunch
of
projects
in
there,
so
this
that
would
actually
filter
it
to
the
one
that
you're
actually
working
on
in
that
scenario,
so
the
whole
source
code
is
there,
you
can
do
all
the
same
commands.
There's
this
nice
little
thing,
that's
pre-configured
for
you
with
all
these
different
tools.
C
If
I
want
to
build
the
app
I
can
just
click
it
and
it'll
go
and
again
I
actually.
I
think
I
already
did
it,
although
it
does
have
an
idle
time
if
you
leave
it
idle.
For
I
don't
know,
I
don't
know
what
the
timeout
is,
but
the
pods
will
stop,
but
it
should
have
noticed
it
didn't
have
to
re-download
the
internet.
It
does
have
persistent
storage.
C
So
even
if
your
workspace
stops
as
long
as
you
don't
destroy
it
and
you
restart
it
all
stuff,
any
changes
you
made
are
still
there
on
the
file
system
because
it
all
the
persistent
storage
is
attached.
If
you
see
it
build,
I
could
do
an
open
shift
deploy.
I
could
run
it
and
then
in
the
air
quotes
again
locally
against
my
local
machine.
I
think
it'll
actually
fail,
because
it's
looking
for
a
postgres
database.
C
Maybe
it
uses
h2.
I
forget,
I
built
the
scenario,
but
I
can't
remember
what
I
did:
no,
it
actually
works
and
if
you
notice
it's
got
this
little
hey,
I
see
that
there's
something
running
on
8080.
You
want
to
open
it.
I
can
either
open
it
in
this
little
preview
thing
that
comes
up
over
here
or
I
can
just
have
it
open
a
new
tab
and
voila
I've
got
my
my
thing
built,
make
it
a
little
bigger.
C
I
like
watermelon,
all
right
that
I
can
say
it,
your
favorite
fruit's
watermelon,
but
what's
cool
what
we
wanted
to
show
as
part
of
the
scenario
you
know
now
that
it's
actually
deployed.
If
I
go
back
and
I
run
using
the
local,
not
local
web
browser,
I
actually
wanted
to
go
to
the
openshift
console
by
cooking.
Here.
C
I've
got
the
same
thing.
If
I
say
watermelon,
you
see,
it's
greetings.
You've
picked
watermelon
your
favorite
fruit.
If
I
go
back
and
I
actually
edit
this
config
mat
so
instead
of
greetings,
I
say
bonjour:
do
you
speak
french
up
there?
I
know
I
know
enough
french
to
be
dangerous.
Yeah
me
too
yeah.
I.
C
Words
that
all
my
friends
have
taught
me
right
nice,
so
I
can
save
the
config
map
and
if
I
come
back
here
and
I
instead
of
watermelon,
I
say
banana,
they
say
now.
It
says
bonjour,
because
it's
picking
up
the
change,
I
didn't
even
have
to
restart
my
app
it's
picking
up
the
change
nice,
and
so
you
could
see,
as
I
started,
deploying
the
same
app
and
multiple
namespaces
with
the
same
config
map
just
with
different
values.
It
would,
you
know,
pick
up
pick
it
up
or
even
pick
it
up
on
the
fly.
B
Amazing
not
not
just
a
martial
arts,
ninja.
C
A
Yeah,
that's
a
good
point
all
right!
Well,
thank
you,
dewan
and
eric.
This
was
awesome
to
see
in
demo
and
everything
if
there's
any
questions
after
the
fact
feel
free
to
reach
out
to
me
on
twitter
at
chrisshort
or
short
at
redhat.com,
and
I
will
forward
your
message
to
the
right
people
but
yeah.
Thank
you
for
demoing
this
today,
dawan,
that's
and
and
eric.
This
was
a
great
great
stream,
really
appreciate
it.
B
It's
our
it's
our
pleasure
and
thanks
chris
and
bobby,
and
all
the
folks
making
the
the
show
always
as
awesome.