►
Description
In this video, Veer Muchandi explains how to promote your applications in different OpenShift environments.
In the blog post https://blog.openshift.com/promoting-applications-across-environments/ you can find some notes that can make it easier for you to follow all the steps mentioned in the video.
NOTE: For the latest information on OpenShift 3, please visit https://enterprise.openshift.com or subscribe to the OpenShift Blog (https://blog.openshift.com).
A
Hello
in
this
video
we'll
learn
how
to
promote
your
application
across
environments.
In
this
example,
we
assume
that
there
are
three
different
projects
for
different
environments,
development,
QA
and
production,
and
we
will
set
up
these
projects
in
such
a
way
that
the
developer
has
edit
access
to
the
development
project.
The
tester
would
have
a
DX
access
to
QA
and
operations
would
have
edit
access
to
production,
whereas
the
tester
would
have
you
access
to
the
development
project
and
the
same
as
the
operations
would
have
you
access
to
the
development
Rowlett
in
the.
A
In
the
real
example,
I
will
only
deal
with
development
project
in
the
QA
project.
Production
is
the
the
production
project
would
be
very
similar
to
how
we
work
with
the
QA
project.
So
how
does
this
work?
The
developer
creates
an
application
in
the
development
project
when
the
devil,
when
an
application
gets
created
it.
It
is
built
by
openshift,
a
docker
image
gets
created
and
it
will
be
pushed
into
the
internal
docker
registry.
A
Now
development
project
will
have
its
own
image
stream,
which
tells
you
what
the
what
the
images
name
is
and
what
the
tags
for
the
damaja
and
that's
that's,
where
your
image
is
pushed
into
to
that
particular
image
stream.
We
would
provide
image,
pull
access
for
QA
project
and
the
production
project.
So
now,
once
the
application
is
built
now,
the
development
development
itself
might
go
through
multiple
cycles
right.
A
So
when
the
developer
is
happy
with
the
application
and
thinks
that
this
is
the
time
to
promote
this
into
the
QA
environment,
let's
say
right
at
that
point
of
time.
The
developer
can
tag
that
image
as
ready
to
promote
kind
of
tag
right
so
and
at
that
one
of
time
that
particular
version
of
docker
image
gets
tagged
and
tester
can
pull
that
particular
image
to
create
the
application
in
the
QA.
Project
and
same
thing
can
be
done
in
production
once
the
testing
is
complete.
A
Another
question
that
comes
up
is,
if
you
are
using
a
single
installation
of
openshift
I,
have
some
infrastructure
where
I
want
to
deploy
only
production,
loads
or
I
have
some
cheaper
infrastructure.
I
can
run
my
dev
or
QA.
Can
I
really
direct
my
workloads,
production
workloads
to
specific
infrastructure?
Can
I
direct,
my
develop,
never
worked
rose
to
specific
infrastructure.
That
kind
of
question
comes
up.
The
answer
is
yes,
it
can
be
done
to
show
an
example
of
how
it
is
done.
Let's
have
a
look
at
the
default
project.
A
If
you
see
the
annotations
here,
there
is
something
called
a
node
selector
annotation
that
you
can
define
on
a
project
and
this
can
be
done
on
any
project.
All
it
says
is
when
you
deploy
anything
onto
this
project,
the
the
part
should
run
on
the
nodes
with
that
are
labeled
as
region
equal
to
in
front.
Now,
if
we
have
a
look
at
our
nodes
in
my
setup,
anything
that
I
run
on
in
the
default
project
will
run
only
on
this
particular
node.
A
In
the
same
way
for
your
setup,
let's
say
you
have
specific
set
of
hosts
that
are
meant
for
deploying
production
workloads.
Let's
say,
then
you
could
set
up
something
like
the
environment,
equal
to
production
as
a
label,
and
then
on
your
production,
prod
project.
You
can
set
up
a
node
selector
that
points
to
environment
equal
to
production
and
then
all
that
workload
that
is
created
in
the
project
will
land
up
only
on
those
particular
set
of
hosts.
A
Now,
let's
create
the
project
and
assign
permissions,
so
first
I
will
create
a
development
project
and
I'm
using
my
my
user
name
to
create
this
project
and
in
order
to
add
other
users,
for
example,
as
I
as
developers,
I
have
a
user
with
user
ID
developer
dev
one
I'll
add
that
user
as
a
developer,
so
I'll
give
ed
eat
access
to
the
developer
to
this
project.
Now
this
particular
developer
can
deploy
applications
onto
this
project.
I'll
also
add
view
access
to
a
tester
I
have
a
tester
with
ID
test,
one
so
I'm
saying
oh
see.
A
Poor
policy
add
role
to
user
view.
Access
to
the
tester
now
I'll
also
create
another
project,
and
this
is
the
QA
project
and
to
this
project.
I'll
provide
edit
access
to
the
tester.
Now
what
what
did
we
do?
We
created
the
development
project
and
we
give
edit
access
to
a
developer
named
devil
1
and
we
give
view
only
access
to
a
tester
named
test1
and
we
created
a
QA
project
and
we
gave
edit
access
to
the
tester
next
I
need
to
provide
this
testing
QA
Rowlett,
to
be
able
to
pull
images
from
the
development
project.
A
The
process
is
same
for
the
production
project,
so
I'm
I'm
not
doing
this
part
I
am
just
dealing
with
the
development
in
QA,
so
you
so
that
you
get
an
idea.
So,
in
order
to
do
this,
I'm
saying
OC
policy,
add
role
to
group
and
I
am
giving
system
image.
Fuller
access
to
a
service
account
that
is
created
by
default
in
this
testing
project,
which
is
named
as
testing.
This
is
the
default
service.
A
Account
will
get
image,
color
access
on
the
development
project
right
so
I
have
created
a
testing
project
and
there
is
a
testing
project
default
service
account
that
gets
the
image
color
access
now
I
log
in
as
the
developer
and
create
a
new
application,
so
I'll
log
in
as
developer
Devon
Devon
is
a
new
user.
The
only
project
that
the
developer
has
access
to
is
development,
and
this
this
is
the
default
project
that
is
getting
used
now,
I'm,
creating
a
new
application
now
so
I'm
creating
this
new
application
based
on
a
template.
A
It's
it
uses
the
EAP
six
basic
STI,
template
and
I
am
providing
all
the
parameters
that
the
template
expects.
I'm
calling
my
application
as
my
app
and
I
give
a
host
name.
I
have
my
app
dev,
which
represents
development,
dot,
app
store,
demo
v3,
all
the
rest
of
the
URL,
then
I
am
pointing
to
my
git
repository
to
pull
the
core
from
and
I'm
labeling
my
application.
A
As
my
app
in
a
few
minutes,
this
application
will
be
built
and
deployed
so
I'll
pause
for
a
moment
while
application
gets
deployed,
the
application
is
deployed,
and
it
is
now
running
as
a
single
pod,
and
here
is
the
URL
that
we
gave
my
app
there.
Let
me
open
this
in
a
new
tab.
The
application
is
running.
You
can
see
that
I
have
put
a
version
1
as
a
representation
here
just
what
version
of
application
is
running
now.
Let's
look
at
the
image
streams
that
that
are
there
in
this
development
project.
A
There
is
an
image
stream
called
my
app
as
part
of
the
development
project
and,
if
I
describe
this
image
stream,
I
can
see
the
full
name
of
the
image.
I'll
make
a
copy
of
this,
and
now,
let's
say
the
developers
have
created
this
application
and
they
have
tested
it
and
they
think
there
is
a
candidate
to
promote
into
QA
now.
A
In
order
to
promote
this
into
QA,
the
developers
would
go
and
tag
this
image,
so
I
am
still
logged
in
as
a
developer,
I'm
using
a
command
called
OC
tag
and
I'm,
pointing
to
the
full
name
of
this
image
and
I'm,
giving
it
a
new
tag.
Name
I've,
calling
it
development
slash
my
app,
which
was
which
is
already
there
right.
This
is
development,
slash
my
app
and
but
I'm
tagging
it
as
promote
just
to
indicate
that
I
want
to
promote
this
to
QA.
Now,
if
I
run,
oh,
she
described
him
a
streams
again.
A
A
Name
now,
I
log
in
as
a
tester
and
I'll
switch
over
to
the
disaster,
has
access
to
both
development
and
testing
and
that
for
the
development
project
he
has
view
only
access,
that's
what
we
have
signed
right,
but
for
the
resting
project
he
has
edit
access
I'll
switch
over
to
the
nesting
project
and
this
time
I
would
create
an
application
by
using
the
image
that
that
is
tagged
as
promote.
So
you
can
see.
A
I
am
pointing
to
development,
slash
my
app
colon
promote,
which
is
the
image
tag,
and
this
is
the
tag
I
am
using
to
create
my
application
inside
this
testing
project.
Now,
when
I
run
this
this
time,
there
is
no
build
and
deploy,
I
am
taking
an
existing
docker
image
from
the
development
project
and
I'm,
deploying
it
in
the
QA
project.
So
reason
there
is
no
build
process
involved.
I
am
reusing
the
docker
image
that
got
deployed
pretty
quickly
now,
since
I
created
an
application
directly
by
using
the
docker
image.
A
I
didn't
use
any
template,
so
let
me
look
at
the
service.
I
got
to
expose
the
service
and
when
I
expose
the
service,
her
route
gets
created,
and
this
is
the
URL
that
got
assigned
to
this
QA
project
this
time.
It's
my
app
testing.
This
is
the
project
name
and
let
me
pull
up
pull
that
up
in
the
browser,
and
here
is
the
this.
This
testing
application
that
God
deployed
inside
the
testing
project.
This
is
the
same
version
one.
This
was
created
based
on
the
darker
image.
A
A
Open
shift-
and
you
have
successfully
this
version
to
commit
this
genius
and
now
let
me
switch
over
I'll
login
as
developer
again
and
in
the
development
project.
I'll
start
a
new
build.
This
will
take
a
minute
for
the
bill
to
complete.
Let's
wait
for
it.
Have
the
second
bill
is
complete,
so
let's
and
it
should
have
been
already
deployed.
So
let's
go
and
see,
I'll
refresh
this
the
application
and
development
and
see
what
happened
there
is
our
change.
Jboss
AS
application
oops
there
is
a
spelling
mistake.
A
A
There
is
a
the
latest
is
now
pointing
to
a
newer
version
where,
as
promote
is
continuing
to
point
to
the
older
version,
the
earlier
the
latest
was
pointing
to
this
version,
so
both
are
there
but
the
the
docker
image
the
latest
is
pointing
to
the
whatever
was
built
just
a
couple
of
minutes
ago.
Qa
continues
to
stay
on
that
promotable.
The
promote
tag
is
pointing
to
so
that's
the
reason
why
this
QA
application
has
not
changed.
It
remains
the
same.
A
Now,
let's
make
one
more
change,
they
will
fix
this
error
made
in
this
development
version
now.
I'm
fixing
this
mistake
that
I
did
in
the
past
has
a
developer
and
I'm
being
more
careful
this
time-
and
this
is
version
3
commit
the
changes,
make
sure
I'm
logged
in
as
developer
and
start
a
new
build
now
build
3,
a
starter.
Let's
give
it
a
minute.
Build
three
shows,
sir,
is
now
complete.
Let's
go
back
and
refresh
this
page.
Yes,
now
the
mistakes
are
fixed,
its
version
3.
A
A
A
The
promote
tag
based
on
which
this
QA
version
of
the
project
was
using
the
application
as
like
this
application
was
created
from
promote
tag
and
since
that
version
of
the
application
with
promote,
had
changed
it
automatically
redeployed
it.
Now,
let's
go
back
and
check
the
QA
application
this
time,
the
testing
application.
If
I
refresh
now
it's
running
version
3.
So
it's
as
simple
as
that
the
development
goes
through
the
cycles.
They
may
have
some
versions
of
their
doc
development,
docker
images
that
are
not
ready
to
go
to
QA.
A
So
you
will
not
touch
this,
but
when
they
are
ready
to
pass
them
on
to
QA,
they
can
just
go
and
tag
them
as
okay,
promote
to
QA
and
it
gets
promoted
to
QA.
So
we
have
seen
how
a
project
can
be
promoted
from
development
to
QA,
and
now
the
Qi
can
have
its
own
cycles
and
when
they
are
ready
to
move
it
to
production,
they
can
intimate
operations
and
the
production
project
can
be
set
up
exactly
the
same
way.
A
How
we
did
with
the
QA
project
do
have
image
full
access
from
development
and
view
access
from
from
the
production
project
to
the
development
projects,
image
stream,
so
that
you
are
able
to
pull
the
images
and
they
may
just
can
land
in
production
in
the
same
way.
So
this
is
this
is
how
you
can
do
promotion
across
the
environments
when
OpenShift
is
managed
as
a
single
deployment,
and
there
are
three
different
projects
for
development,
QA
and
production.
A
Now
there
is
another
way
that
that
that
you
could
use
where
you
have
completely
distinct
openshift
environments
for
development,
QA
and
production,
or
or
maybe
this
one
environment
for
Devon
QA
and
a
distinct
one
print
production
for
whatever
the
reasons
are
in
such
a
case,
what
you
would
do
is
expose
the
docker
registry
outside
so
openshift
runs
the
docker
registry
as
a
part
right.
So
you
would
expose
the
darker
registries
service
with
with
a
name
so
that
and
make
it
accessible
from
the
from
the
other
openshift
environment,
where
the
production
project
is
running.
A
So
that
way
you
will
deploy
the
application
in
production,
for
example,
by
pulling
an
image
from
the
docker
registry.
From
the
other
openshift
on
one,
so
it's
it's
pretty
similar,
but
it's
two
different
environments,
so
your
access
is
not
within
internally
it
has
to
in
in
in
your
QA
or
production.
You
are
actually
pulling
an
image
from
a
docker
registry
from
a
completely
different
environment.
I
hope
you
enjoyed
this
video
thanks
for
watching.