►
From YouTube: GitOps Happy Hour (Ep 2): Avoid YAML Duplication
Description
Description:Join Christian Hernandez, GitOps Extraordinaire, for a journey through how to achieve GitOps in any number of ways. The occasional Red Hatters and special guest will join us too.
A
A
A
A
A
B
B
B
This
reminds
me
of
of
the
and
not
not
to
make
fun
of
you
langdon,
but
I
will
reminds
me
of
of
like
you
know
when
you,
when
you're
at
the
grocery
store
and
they're
training
a
new
cashier
and
like.
C
A
B
B
So
so,
if
for
those
of
you.
B
Who
don't
know
langdon?
Is
he
actually
does
the
level
up
hour?
So
he
does.
He
actually
does
another
show.
So
I
don't
know
if
any
of
you
that
are
on
I'll
shall
watch
that
show
and
kind
of
see
if
we're
doing
a
little
little
cross
training
here.
So
but
that's
that's!
Okay!
That's
that's!
That's!
To
be
that's
to
be
expected
and
yes.
B
B
So
yeah,
so
thank
you.
Everyone
thank
you
for
for
joining
another
another
episode
of
the
the
get
offs
happy
hour.
I
understand.
There's
there's
there's
meeting
fatigue
now
I
think
they're
like
or
like
virtual
event
fatigue.
I
know
I
feel
it
like
everyone
else,
so
I
actually
do
appreciate
everyone
coming
coming
on
and
tuning
into
the
stream.
So
so.
B
So
so
yeah
so
previous,
you
know
I'm
doing
this
get
offs
happy
hour
and
like
the
first
one
was
really
just
kind
of
level
set
like
you
know,
demystifying
get
up
so
what's
get
ups,
you
know
what
what
do
I
need
to
know
right
so
and
for
those
of
you
who
didn't
watch
it
go
ahead,
and
you
know
after
the
stream
you
can
watch
it,
but
get
ops
is
essentially
you
store
everything
in
git
right
and
you
do
it's
basically
operations
by
pull
request.
B
Everything
is
in
git
and
your
cluster
syncs
everything
from
this
git
repository.
So
the
first
thing,
though,
is
it's
like
okay?
Well,
I'm
going
to
store
everything
in
get
I'm
going
to
be.
You
know,
storing
all
my
cluster
manifest
as
you
can
get
all
my
my
deployment
manifesting
it
and
but,
like
you
start
noticing
it's
like
wow,
I'm
like
I'm,
really
duplicating
a
lot
of
yammer
because
it's
like
I
have
yaml.
B
Yaml
is
just
basically
everywhere
and
one
one
of
the
things
that
that's
some
people
come
to
realize
really
quickly
is
okay,
like
how
do
I
stop
duplicating
all
this
yam
all
right,
and
so
I
decided
to
take
a
very
you
know
very,
very
simple
use
case
and,
like
basically
just
start
like.
How
would
I
build.
B
You
know
a
deployment,
I
guess
get
repo
and
and
me
not
having
to
you
know,
duplicate
so
much
yaml
right
and
I'm
going
to.
We
talked
about
in
the
first
episode
the
the
different
templating
engines.
Right
customize
is
the
one
I'm
going
to
be
using
right.
Yeah,
it's
very
really
popular
helm,
I
guess
is,
is
the
other
reigning
champion
there's
also
a
case
on
it
and
other
things
like
that,
but
I
think
those
are
like
the
two
big
ones.
A
Yeah,
I
mean,
I
think
you
got
the
bases
covered
there.
A
B
Customize
or
or
or
helm
is
yeah.
You
basically
have
all
bases
covered
there,
the
I'm
going
to
be
using
customize,
because
that's
just
that's
your.
B
Is
what
I
know
if
someone
is
well,
someone
says
case
on
it
died,
yeah
well,.
B
Right,
there's
gonna
be
some
drop-offs
right
yeah.
If
there's
anyone
on
the
chat
or
in
anyone
else
that
has
done
stuff
with
helm,
I
would
love
for
you
guys
to
chime
up.
Get
your
get
your
opinions
here.
I'm
gonna
attempt
to
share
my
screen
that.
C
A
A
D
A
D
How
do
you
deploy
the
cluster
in
argo?
Cd
is
not
up
yet
and
needs
a
cluster.
B
Yeah,
that's
that's.
I
guess
that's
a
good
topic
for
another
for
another
episode,
but
argo.
Really,
although
I'm
going
to
be
using
argo,
argo
is
not
the
ideal
ideal
tool
for
that
right.
You
can
make
it
work.
You
could
do
things
like
use,
use,
techton
and
do
pipelining
to
where
techcon
can
fire
up
something
like
openshift
hide
where
it'll
spin
up
a
cluster
for
you
or
you
know
you
have
some
sort
of
a
cube
adm.
B
B
That'll,
you
know
spin
up
a
cluster
for
you
or
or
whatever
right,
whatever
automation
process,
but
that's
like
and
then
use
argo
cd
to
sync.
All
of
that
for
you,
but
that's
not
really
our
go
cd's
job
right,
roci
doesn't
install
or
instantiate
a
cluster
for
you
right.
It's
it's
purely
for
deployment
purposes.
So
with
that
said,
cross
your
crusher
cross,
whatever
fingers
toes
whatever.
A
B
B
Love
you
all
right,
let's
go
to
one,
this
is
125
and
if
anyone
complains
it's
not
complaining,
if
anyone
accommodating.
B
B
B
Be
doing
is
I
have.
I
have
a
simple
deployment
right,
so
I
have
an
application
that
when
you
pass
a
color
to
it,
it'll
just
display
it.
I
kind
of
light
a
little
bit
there.
So
I'll
go
back
it.
It
takes
either
blue
or
green.
So
not
any
color.
B
It's
an
app
that
I
use
to
show
the
green
deployment
and
I
have
the
the
manifests
off
to
the
side
here,
but
but.
B
Going
like
from
the
beginning
right
like
how
do
I
start
like
I'm,
starting
basically
from
the
ground
up,
I'm
gonna
start
literally,
I'm
gonna
be
going
a
new
repository
right,
so
we're
we're
literally
going
from
nothing.
Let's
call
this
test
oops.
Let's
call
this
test
ops.
How
about
that
everything
with
ops
right
test,
ops,
twitch,
testing,
all
right
public,
oh
fine,
I'll,
add
a
readme.
Just
I'm
gonna
delete
it
anyway,
but
you
know
all
right.
So
I
start
what
what
my
goal
is.
B
Is
it's
gonna
be
a
deployment
repository,
so
the
application's
already
built.
This
is
just
how
I'm
gonna
deploy
it
right.
So
we
talked
about
having
separating
your
your
repos
to
where
you
have
your
application
code
in
one
repo,
you
have
its
deployment
artifacts
and
another
repo
and
all
the
infrastructure
components
is
in
yet
another
repo.
So
so,
let's
get
to
it.
What
I'm
going
to
be
doing
here
is,
let
me
do
a
t-mux
and
then,
what's
my,
I
always
change
my
binding,
and
hopefully
I
have
it.
Okay,
cool.
B
So
I'm
going
to
do
is
I'm
going
to
see
I'm
going
to
get
clone
this
guy
test,
ops.
B
Yeah
so,
like
I
think
now,
I'm
going
to
invest
in
a
ups,
like
you
said,
I.
A
D
A
Like
two
of
these
things
powers
my
rh20
for
30
minutes
so
yeah,
that's
pretty
good
yeah
I'll,
send
you
a
link,
christian
cool,
all
right,
hopefully,.
B
The
last
thing
you
see
it's
a
it's
a
it's
a
learning
thing
right,
yeah,
let's
get
this
little,
I
don't
know
how,
let's
see
if
it
shows
up
what
I'm
going
to
be
doing.
I
don't
want
to
move
the
window
hello,
just
one
of
those
days
escape
there.
We
go
all
right
up
there.
I
want
test
ops
right
and
so
what
I'm
going
to
be
doing
is
I'm
just
going
to
create
a
directory
called
apps
or
apps
right.
B
B
B
There's
a
there's,
this
concept
of
a
base
right,
so
there's
like
you'll,
see
a
lot
of
people
who
have
customized
the
directory
structures
is
like
they'll
have
a
base,
although
base
in
terms
of
like
in
the
in
the
yaml
is
deprecated,
but
I
still
like
to
use
the
base
concept
because
it's
going
because
it's
a
because
it
just
makes
sense
to
me
right.
It's
like
the
this
is
the
base
configurations.
This
is
meaning
that
this
these
yamls
are
going
to
be
applied
like
to
all
my
clusters
right.
B
So
this
is
like
my
base
and
where
all
the
all.
C
B
Deployment
almost
going
to
be
here:
oh
all,
your
not
based
like
that,
but
face
it's
like
not
based
how
low
can
you
go
yeah?
B
So
so
you
notice
that
like
keep
track
of
the
left-hand
side
right,
so
I
thought
this
would
be
all
right.
So
the
first
thing
when
you
run
customize,
the
first
thing
it
looks
for
is
a
a
customized
customization.yaml
file.
This
yaml
file
basically
dictates
what
it
reads
in
and
what
and
what
it
does
right.
B
It's
see
if
I
spell
it
right
how
about
I
just
copy
and
paste
it
so,
let's,
let's
bend
this
guy
and
and
then
set
it
not
so
here,
resources
right,
so
you
get
resources
and
essentially
you're
just
going
to
list
the
yamls
that
you
want
loaded
in.
So
you
have
things
like
namespace.yaml
right
and
we're
gonna
have
to
name
these
things
accordingly,
employment.yaml
service.org
and
then
route
right
so
like
these
are
like
the
basic
components
of
an
application
right.
A
B
Whatever
like,
if
some
people
you
know,
if
you
have
an
ingress,
open
ship
will
read
that
and
apply
it
anyway.
So
so
here
I
have
app
base
and
then
customize.
B
Let
me
move
this
a
little
bit:
oops,
not
move
window.
What
is
it
there?
We
go
customization
you
may
or
may
not
be.
B
For
bases
base,
okay,
so
then
let
me
clear
that
and
the
customization
file
I
have
namespace
right.
So
let's
let's
create
that
guy
and
then
because
this
is
a
cooking
show
and
I
don't
think
you
want
me
to
just
write
yaml.
C
B
When,
when
yeah
so
like,
when,
when
you,
when
you
fill
out
these
the
applications
for
a
job,
you're
going
to
put
like
languages,
you
know
right,
like
yama,
is
going
to
be
one
of
them.
A
B
So
cool
name,
space
bgd
the
reason
I
call
it
bgd
because
it's
my
blue
green
deployment,
application,
so
cool,
straightforward,
simple,
yeah,
that's
very
all!
Right.
B
Chinese
and
yemelis,
I'm
known
to
make
a
mistake
or
two
in
yemen:
oh.
B
Copying
facing
this
here,
so
this
is
a
standard
deployment
right.
This
shouldn't
be,
if
those,
if
you've
been
around
kubernetes
long
enough,
openshift
long
enough.
This
is
just
it's.
It's
it
starts
to
blur
source
looks
the
same
right.
B
Yeah
yeah
json
path
is
another
thing,
another
language
right
that
you
have
to
know.
So
I
just
I
just
want
to
call
the
attention
line.
27
I
have
a
value
actually
26
and
27
right,
oops
2627
right.
I
have
an
environment
variable
color
and
the
value
this
application
takes
blue
and
it'll.
Show
you
a
blue
square
or
green
I'll.
Show
you
a
green
square,
any
other
value.
B
It'll
just
show
you
a
blue
square,
but
here
I
have
a
value
called
patch
me,
because
what
we're
going
to
be
doing
is
we're
going
to
take
this
base
yaml
file
and
apply
it
to
different
clusters
and,
depending
on
the
cluster,
I'm
at
I'm
going
to
do
something
different,
so
one
cluster,
I'm
gonna
have
blue
and
another
cluster.
I'm
gonna
have
green
and
and
but
we're
just
gonna
have
one
version
of
this
yaml
file
right.
B
So
this
is
kind
of
where
we're
customizing
templating
becomes
very
powerful,
especially
if
you're
doing
get
ops
right.
You
you're
gonna,
be
doing
everything
in
yaml
and
so
you're
gonna
you're
gonna
need
to
make
sure
you're.
Not
just
like
you
know,
constantly
copying
the
same
file
over
and
over
again
right.
You
have
one
version
and
it's
easy
to
take
care
of.
So
here
the
service
right
service
definition,
kind
of
the
oh
things
are
slowing
down
here.
For
me,
there
we
go.
B
It's
been
one
of
those
days,
so
here's
my
service
definition
right
for
that
application,
nothing
special
here
and
then
my
last
thing
is
route
right.
So
let
me
edit
this
route
and
then
in
my
route
definition.
B
Which
I
have
prepared
here,
the
thing
I
want
you
to
draw
draw
attention
to
you.
Guys
here
is
line
10
right
again
again:
host
patch
me
right,
I'm
in
different
clusters,
and
so
the
the
the
fqdn
is
gonna
be
different,
depending
on
which
cluster
I'm
at
so
so
this
is
another
thing
that
I'm
gonna
change.
I'm
gonna
have
one
route
definition,
but
I'm
gonna
change
it
as
I
load
it
in
right.
Don't
write
partial
buffer
all
right.
So
if
I
can't
customize
and
then
I
do
an
ls,
I
have
my
deploy.
B
Namespace
check
deployment,
check
service,
cool
route,
cool
all
right.
So
that's
my
base
right.
So
this
is
kind
of
straightforward.
There's,
nothing!
There's
nothing
get
upsy
about
this.
Just
yet
you
know
you
can
run
the
customize
and
it'll.
It's
basically
you're,
gonna
customize
says
it'll
read
this
like
okay,
when
when
you
call
me
I'm
gonna
load
up
all
these
manifests
that
you
told
me
to
tell
me
to
load
up.
So
I'm
going
back
here.
B
Obviously
we're
taking
a
look
at
the
left,
oops
the
left-hand
side
here,
you'll
see
I
have
app
base
and
inside
that
base.
I
have
all
my
my
manifest:
I'm
gonna
create
another
directory.
Let's
call
this.
Let's
call
this
blue
right
because
we're
going
to
deploy
an
application
called
blue.
B
So
so
here,
on
the
left
hand
side
you
see
now
I
have
basin
and
blue
in
those
directories.
So
let's
go
to
blue.
B
B
In
other
versions,
you
would
have
bases
right
and
you
would
just
go.
You
know,
base
that's
deprecated
now
I
know
shocker.
It.
B
B
Under
resources,
same
idea
right
so
when
this
reads
the
customization
file,
it
says
it'll,
say:
okay,
we'll
read
everything
in
base
directory,
which
is
one
up
and
then
it'll
read
that
customization
and
then
it'll
load
up
all
those
resources
right.
So
with
this
one
line,
you're
loading
up
all
your
manifests
in
in
this
customized
file
right.
B
So
this
next
part
is
apache
json
and
I
think
I'm
just
gonna
copy
paste
this
part,
because
it's
really
long
and
also
I
might
make
a
typo,
so
so
real
quick
right.
So
what
I'm
going
to
do
is
I'm
going
to
use
a
json
path
to
patch
this?
B
So
when
I
say
okay,
when
you
see
the
deployment
named
bgd
in
the
bgd,
namespace
patch
it
using
this
definition,
which
will
which
I'll
create
up
next
same
thing
with
the
round
right
so
line,
one
says:
okay,
go
up,
read
the
bases
and
then
that
in
turn
has
its
own
resources
list.
So
it'll
load
those
resources
in
when
it
reads
those
in
it'll
run
this
patch,
along
with
it
right.
So
you
can
do
all
kinds
of
stuff.
B
So,
let's,
let's
take
the
deployment
as
an
example
right,
so
let's
deployment
and
then
in
the
deployment
because
again
like
this
is
julia
child.
You
have
you,
have
a
cooking
show
yeah.
A
I
apologize
for
the
comments
folks,
bad
times.
Yeah,
it's
been
one
of
those
weeks
for
trolls.
B
Hammer
so
here
yeah,
so
let's
go
back
and
take
a
look.
So
now
in
this
directory
I
have
the
deployments
and
the
customization
file
in
the
customization
file.
Remember.
I
said
that
when
you
re,
when
you
see
this
deployment
patch
it
with
whatever
you
have
in
this
yaml
file
right,
so
I
did
create
that
deployment.
B
So
let's
kept
that
and
then
I'm
saying
that
replace
the
value
of
spec
template
spec
containers
zero
right,
because
it's
a
the
first
entry
and
then
the
first
value
right
and
I
want
to
have
the
value
equals
blue.
B
So
if
I
go
to
base
and
do
a
deployment
right,
we
can
say
spec
right,
spec,
template,
spec
containers,
right,
environment
variable
the
first
one
value.
We
want
to
replace
the
value,
another
customization
right,
spec
templates
fact,
containers,
spec
templates
effect
containers.
So
I'm
here
the
zero
right,
which
is
like
the
first
one
right,
because
you
can
have
many
containers
in
a
pod
and
then
and
in
the
environment.
B
So
I'm
now
here
in
the
environment
and
then
the
first
one
right,
because
it's
the
first
because
this
is
a
a
the
first
one
in
that
map
there
and
then
replace
the
value
right
and
then
what
the
value
is.
I
want
to
replace
it
with
blue
and
then
we
have
another
one
right:
customization.
B
I'm
going
to
be
deploying
this
in
a
different,
different
cluster.
It's
going
to
have
a
different
url
here
so
and
then
what
I
have.
What
do
I
have
here?
I
have
apps
dot
cluster
one
yeah,
so
this
should
work
we'll
see.
B
The
yeah,
so
I'm
gonna
replace
the
spec
host
with
blue
right
blue.apps.cluster1
chx.ocloud.com,
that's
my
first
cluster!
So
let's
take
a
closer
look
at
the
customization
right
so
notice.
I
have
the
patches.json.
D
One
you
had
some
ideas
in
the
chat
as
well.
A
D
D
If
you
want
to
delete
keys
for
an
entire
resource
is
like
it
is
that
cut
off.
Oh!
Is
that
the
one
that
get
do
you
need
to
do
a
strategic,
merge
patch
with
retain
key
strategy,
sgj.
B
Yeah
yeah
yeah,
so
strategic
merge
patch,
yes
right,
yeah,
so,
but
what
these
patches
here
some
of
me
can
actually
copy
and
paste
this,
because
this
is.
This
is
a
good,
a
good
resource
here.
There's
different.
B
So
you
have
here
patches
right.
This
is
the
one
I
was
using,
there's
other
ones
that
you
can
can
use
and
the
other
other
things
how
how
you
can
manipulate
the
the
yaml
coming
in
right.
So
I'm
using
replace
right.
You
can
also
do
merge
right,
so
you
can
do
strategic
merges.
You
can
do
where
is
it
here?
B
Yeah
add
right.
So
I
want
to
add,
like
one
of
my
options
is
add,
I
want
to
add
to
the
like,
if
it's
an
array
right
like
I
want
to
add
two,
you
know
to
the
array,
something
or
other
I
want
to
replace,
there's
patches
strategic,
merge
right.
So
this
is
an
example
here
this
I
find
and
it's
the
cube
ctl
doc,
because
if
you
didn't
know,
customize
is
built
in
to
cube
ctl
and
and
by
extension,
oc.
B
B
B
Anything
that
I
couldn't-
and
I
can't
find
here
and
whatever
I
can't
find-
I
usually
you
know,
go
to
the
the
kubernetes
slack
or
whatever,
and
you
know
basically
bug
the
folks
there,
but
this
this
resource
here
that
I
that
I
put
in
the
chat
is
probably
like
the
best
one
and
probably
cover
like
you
know.
B
B
Things
that
you
want
to
do
is
probably
in
this
in
this
in
the
stock.
So
so
I
recommend
reading
through
that
and
making
sure
you
know
you
you,
you
can
find
out
what
what
you
need
there
see
here
yeah.
So
I
was
curious
how
it
maps
the
helms,
delete,
key
option
and
the
new
post
render
flag
yeah.
So
I
don't
know
much
about
creating
helm
charts.
B
So
that's
I
don't
know
if
someone
else
can
chime
in
there
in
chat,
whoever
is
might
be
a
helm
guru.
I
still
need
to
do.
I
still
need
to
study
on
the
helm,
charts
so.
B
B
Yeah,
I
do
drama
so
so
yeah.
B
I'm
basically
replacing
a
cat
route
and
then
base
crowd.
Maybe
I
should've
done
it
the
other
way,
but
so
I'm
doing
I'm
gonna
replace
I'm
replacing
spec
host
and
then
patch
me
what
and
then
the
reason
I
have
patch
me
is
because,
because
I'm
doing
a
replace,
if
I
did
an
ad
I
would
I
would
have
to
have
that
removed.
B
So
just
the
way
I
did
so
so
that's
that's
really
all
I
need
right
if,
if
I
want
to
deploy
this
to
a
cluster,
I'm
already
already
set
to
do
that
right.
So
so,
let's
do
that
here.
Let
me
get
the
oc
browse,
I'm
doing
this
in
another
window.
So
don't
don't.
B
And
I'm
using
argo,
you
don't
need
to
use
argo,
you
can
use,
you
know
whatever.
Whatever
sync
tool,
it's
just
the
argo
is
just
the
easiest
for
me
is
with
the
one
I
learned
on
so
there
we
go
copy
that
I'm
ready
to
okay,
then
you
tab.
B
So
let's
do
this
here.
Sorry,
my
my
internet's
slow,
we
lost
power
and
I
haven't
had
a
chance
to
go
and
see
what
chaos.
B
Yeah
yeah:
where
is
my
network
that
I
s
that
I
set
up
in
my
home
lab?
No
one
knows
but
I'll
find
that
out
pretty
soon
after
the
stream.
There
we
go
so
let's
go
to
yeah.
I
accept
my
fate
and
then
I'm
gonna
use
cube
admin,
so
where's
the
keyboard
and
password
there.
It
is
here.
A
B
It
so
yeah
so
so.
C
B
So
yeah
I'm
gonna
use
argo
too,
so
I'm
just
gonna
create
application.
I'm
gonna
call
this
blue
green
deployment
project
default.
I'm
gonna
do
manual
sync
policy,
because
why
not
and
then
repository
url
good
question.
Luckily,
luckily
they
gave
me
that
option
because
I
forgot
to
edit
to
get
there's
no
get
offs
without
get
right,
so
this
will
get.
B
Get
push
this
wouldn't
have
worked
without
kids.
See
get
ops
is
already
is
already
solving
my
problems
because
nothing
happened
unless
I
have
it
in
get
right.
So
that's
the
idea.
A
B
Nothing
happens
unless
it's
in
get
so
that
would
have
worked.
B
B
I
don't
know
if
this
is
the
worst
stream
ever
or
the
best
stream,
also
trying
to
figure
that
out
repository
url
there
we
go
test
ops
path,
I'm
gonna.
Do
blue,
so
note
that
I
didn't
do
like
the
root
and
I
didn't
do
the
app.
I
did
blue
because
I
wanted
to
play
this
specific
version
like.
B
And
in
there,
if
I
go
to,
if
you
see
here
on
the
left
side,
so
here
it's
going
to
read
the
customization
file
and
then,
if
a
cat,
blue,
oops,
apps
blue
customization,
so
it's
going
to
come
here
and
read
the
customization
file
and
it's
going
to
first
thing:
it's
going
to
see
it's
going
to
when
when
the
customize
runs
is
gonna,
say:
okay,
we'll
read
everything
in
base,
so
you
know
going
up
one
directory
and
reading
base.
B
You
know
that
it's
gonna
read
all
those
because
up
there
sorry
based
customization
up
there.
It
basically
says
read
up
all
these
manifest
files
once
it
reads
that
going
back
up
to
blue.
It
says:
okay,
once
I
read
those
in
patch
it
with
everything
that
I
that
I
told
you
to
patch
it
with
a
route
and
a
deployment.
B
So
that's
very
important
right.
So
I'm
going
to
say
I
want
to
deploy
blue
in
this
cluster
oops
default.
There
we
go
and
then
destination
url,
I'm
just
going
to
put
it
in
this
host
here
and
then
create.
B
A
B
B
Work
so
it's
out
of
sync
right
because
it
read
the
manifest
and
I
have
the
manual
right,
so
it
didn't
automatically
sync
it
it
read
it.
It
said:
okay,
well,
you
want
these
manifests
here,
but
they're
not
on
the
cluster
right,
so
you're
out
of
sync.
So
let's
just
sync:
this.
B
All
right
so
now
it's
going
through
the
create
the
namespace,
it
created
the
service,
the
deployment
and
the
route.
So
if
we
go
to,
let's,
let's
inspect
something,
while
this
the
replica
set
is
trying
to
deploy
the
pod.
So
while
that's
going,
let's
look
at
some
of
the
things
we
patched
right.
B
We
didn't
patch
the
namespace
or
the
service,
so
that
should
be
the
same.
The
deployment
right,
the
the
desired
manifest
here.
It
says,
oh
see
now,
instead
of
patch
me.
It
says
blue
nice
so
because
they
ran
that
customize
and
it
just
patched
that
that
configuration
file
and
then
the
other
thing
we
patched
was
the
router
right.
So
let's
look
at
the
desired
manifest
here
and
you
see
that
instead
of
patchme,
it
says
dot
app,
store
cluster,
one
oc
right,
so
this
is
still
syncing
here
come
on.
B
Yeah
you'll
see
it'll
display
a
square,
but
it
was
originally.
B
B
A
Like
I
love
static
site
generators
like
I
really
do,
but
there's
some
that
are
just
like
pull
in
the
universe,
and
now
you
can
generate
aesthetics.
B
Yes,
so
now,
if
I
now
that
that
pods
running,
let
me
do
a
new
tab
and
then
this
should
display
a
blue
square,
we'll
see
we'll
see
if
it
works
there.
It
goes
all
right
all
right.
So
now
we
have
a
boost
square
right
in
one
cluster
cool
right.
B
B
D
B
So
fun
times,
so,
if
I
want
to
deploy
this
right
on
another
on
another
cluster,
except
I
want
to
change,
I
need
to
change
the
router
right,
because
another
cluster
will
have
a
different
route
and
I
want
to
deploy
a
green
square
instead
of
a
blue
instead
of
a
blue
square
right.
B
So,
instead
of
creating
the
base
all
over
again-
and
you
know
having
that
deployment
appear
in-
you
know
having
it
like
two
times
right
in
blue
and
green
it'll,
just
the
point
will
just
have
it
once
so,
it's
actually
as
easy
as
if
I
do
a
cp
of
blue
to
green
right.
B
So
now
I
have
a
directory
called
green
with
all
this
stuff
in
there
and
then
team,
look
at
the
customization
customization
is
actually
the
same
file
it,
because
what
I
want
to
do
is
I
want
to
load
everything
in
base
and
I
want
to
patch
it
right.
B
Yeah
only
then
like
that
the
deployment
I
actually
do
want
to
change
that
right.
So
I
said
I
wanted
green
right.
This
directory
says
green,
it
better
say
green.
So
I
basically
say
when
you
read
in
the
deployment
patch
this
to
green
cool
and
then
the
last
thing
is
the
route
right.
So
this
is
a
different
cluster.
There's
a
different
open
ship
cluster,
so
the
route
is
going
to
be
different.
Okay,
this
will
be
conveniently
conveniently
titled
oops,
a
green
right.
B
A
B
Green,
whatever
it
is,
but
I
have
cluster
two
now,
instead
of
cluster
one
and
green
and
red
blue
right
yeah,
and
that's
pretty
much
it
again
if
it's
not
in
git,
it
doesn't
exist,
hit
commit
we're
going
green.
D
Get
push,
although
we
do
not
recommend
ever
using
stars
for
get
ad
right.
B
D
A
D
E
D
To
it,
I
guess
the
other
one
for
me
is
the
dash
m
on
the
command
line.
I
always
do
that,
but
I
recommend.
E
B
B
C
E
A
E
B
So
then
I
need
now.
I
need
the
route
to
the
oc
get
route,
a
correct.
C
A
B
A
Just
give
me
five
more
minutes
here
I
mean
in
all
honesty
folks,
like
I,
I
have
specifically
designed
like
all
the
batteries
and
such
in
my
house,
so
that
I
can
run
the
stream
with
the
house
not
having
power
for
about
30
minutes.
Like
that's.
A
D
Know
like
that
is
a
level
house.
I
want
one
of
those
whole
house
ups,
essentially
where
they
basically
run
a
bunch
of
car
batteries
through
your
house.
A
So
I
didn't
think
there
was
that
so
we
had
those
kinds
of
ups's
in
our
like
mdf
locations
at
pope
air
force
base
and
if
you're,
in
a
human
environment
or
if
you're,
in
a
warm
environment
or
even
just
a
too
cold
environment,
like
all
that
affects
the
battery
life
cycle
and
like
we
would
have
batteries
expand
inside
ups
chassis.
C
A
Like
that,
like
really
required,
get
some
serious
downtime,
so
you
have
to
be
careful
with
those
things
but
like
yeah,
like
I've
been
in
the
rooms
like
if
you
go
to
like
a
big
telco
like
like
even
a
small
telco
like
site,
where,
like
you're
just
doing
like
dsl
and
voice
and
stuff
you'll,
see
a
room
like
full
of
batteries
and
that's,
what's
probably
that
48
hertz
or
whatever
over
the
phone
line.
A
B
Done
so
we
have
here
so
I'm
gonna
deploy
this
in
the
cluster
two
cluster
two
same
repo
right
except
I'm
gonna
point
to
green.
Obviously
right
so,
and
then
this
local
cluster
here
guys
we'll
do
that
and
create.
B
So
let's
take
a
look
and
see
what
happened
here,
the
deployment
right
so
the
deployment
in
the
cluster
two,
because
I'm
a
cluster
two.
Now
let's
go
to
the
desired
manifest
here
now
the
color
changed
to
green
right.
So
I
have
one
is
blue
one's
green,
but
only
only
one
deployment
yammel
that
I
needed
to
have
right,
so
I
didn't
need
to
have
two
separate
deployment
animals
to
get
this
going.
B
B
So
wait
till
this
comes
back
up,
but,
as
you
can
already
see,
if
you
go
here,
let
me
actually
go
back
and
do
this
here,
as
you
can
see
here,
on
the
left
hand
side
I
have
my
base
with
all
my
customization
says
that,
basically,
this
is
my
base
configuration
for
this
deployment
right,
so
everything
that's
common
for
my
deployment,
my
blue
directory.
I
basically
reference
my
base
and
then
do
some
patching,
so
I
only
have
to
do
define
the
deployment
once,
but
then
I
can
just
patch
it.
B
However,
I'd
like
right
same
thing
with
green
right,
so
going
from
blue
to
green
yourselves
as
easy
as
copying
that
whole
directory
and
just
kind
of
changing
a
few
parameters.
Now
I
have
two
deployments
each
with
the
same
base
deployment
configuration
but
different
different
parameters
right
and
I'm
using
customize
for
this,
you
can
use
helm
for
this.
A
lot
of
people
use
helm
for
this
as
well.
Let
me
see
if
this
is
deployed
yeah.
B
So
if
now
this
is
deployed
come
on,
come
on
baby,
no
whammies,
no
whammies
green
right.
So
now
I
have
a
green
square.
This
guy
has
a
blue
square:
blue,
green
woohoo
right
yeah
success,
one
of
the
one
of
the
cool
things
and
like
the
the
last
kind
of
thing
I
I
kind
of
wanted
to
go
over.
I
know
we
have
a
little
time
because
yeah
we
started
later
due.
A
B
So
if
I
go
here
yeah
so
I
was,
I
was
in
green,
so
here
I'm
in
green
and
if
I
look
at
my
customization
on
line
two
right,
this
is
referencing
a
directory.
This
actually
doesn't
have
to
be
a
directory.
A
B
B
D
D
B
Yeah,
so
here
I'm
going
to
create
a
new
repo,
empty.
A
B
That's
what's
this
is
available
public.
B
Just
do
the
same
thing
as
we
did
over
here.
Come
on
baby
go
go,
go
all
right!
So,
let's,
let's
clone
this,
so
what
I'm
to
do
here,
I
was
going
to
split
the
panes
again,
but
I
don't
know
if
that
even
makes
it.
B
Yeah,
let's
do
it
attach,
and
then
it's
let's
put
out
this
here
instead
of
testosterone,
get
cloned
landed
all
night
long.
B
B
So
here
I'm
gonna
create
a
director
called
app.
D
Youngest
son,
the
other
day
discovered
that
apparently
you
can.
There
is
a
rick
rolling
bot
for
discord.
Oh.
B
These
are
powers
for
good,
so
I'm
going
to
create
here
so
basically
the
same.
I
should
actually
do
this,
I'm
starting
to
run
out
of
room
here
twitch.
Let
me
call
this
test.
Ops,
app,
always
take
green
and
then
we'll
copy
it
here
all
right.
So
here
I'll
have
the
deployment
right
we'll
test.
My
theory
we'll
do
wood
color,
like
landon,
says
and
then
let's
bi
route
right
and
then
the
route
for
my
other
cluster
is
apps
and
then
oops
all
right.
B
So
here
we'll
do
what
color
right.
B
In
my
third
cluster
right,
the
only
so
the
only
difference
here
is
it's
been
here,
so
I'm
going
to
do
wood,
color
and
then,
but
for
my
resources
instead
of
doing
base,
I'm
actually
doing
this
off
the
cuff.
Here
I'm
going
to
do
app.
B
So
I'm
gonna
paste
that
here
right
so
here
I'm
gonna
say
I'm
just
gonna
reference,
the
app
base
from
another
another
another
repo
right
and
then
I'm
gonna
do
what
color
for
the
for
the
route
make
sure
that's
cluster
three
yeah,
if
I
do
get
add,
get
commit
a.m.
B
So
I
have
been
landing
all
night
right,
so
I
have
wood,
color
right
and
then
and
all
the
so
I
did
do
first.
Okay,
so.
B
E
B
A
B
There's
a
nightmare
well
and
also
the
like
a
lot
of
times,
you're
consoled
in
so
like
you
still
see
things,
pasting
you're
like
right.
B
So
this
should
hear
yeah,
so
this
here
again
bgd
project
he's
switching
to
itself.
B
B
D
Not
not
to
encourage
your
git
adding
technique,
but
you
know
you
don't
need
the
get.
Add
minus
a
you.
Can
either
just.
B
B
B
B
B
So
here
let
me
sync
this
because
I
did
manual
sync
so
here
I
did
the
langdon
all
night
repo
here
and
I
just
have
app
wood
color,
and
I
only
have
the
three
manifests
right:
the
customize
the
deployment
and
route,
but
even
so
it
created
the
name
space.
It
created
the
service.
It
created
everything
just
because
in
that,
in
that
you
know,
wood,
color,
customization
file,
I
said
for
your
base
and
go
to
the
get
go
to
this
git
repo.
B
So
this
lends
itself
to
a
lot
of
interesting
use
cases
right.
You
can
have
like
a
base
deployment
of
your
application
and
then
others
can
then
just
take
that
and
patch
it
and
then
make
it
do
whatever
it
needs
to
do
in
other
in
other,
repos
or
or
you
can
have
like
a
a
centralized
configuration
so
like
on
on
the
admin
side.
Right
like
you,
can
have
a
centralized
configuration.
B
That's
the
same
across
all
your
clusters,
except
maybe
in
this
cluster.
You
want
to
add,
like
an
extra
user
or
an
extra
service
account
for
something
else
or
an
extra
application
right.
You
can
take
the
base
of
this
of
this
repo
and
further
and
further
customize
it
right,
literally
and
and
figure
to
make
with
the
play
on
words
and
everything
right.
You
can
customize
it
with
a
customizer,
just
customize
it
just.
B
However,
you
like
right,
you
just
have
that
that
same
base
config
and
you
just
reference
that
in
your
customization
in
your
resources
right.
So
here
I
can
actually
in
the
resources.
Assistance
is
an
array
I
can
add
another
entry,
and
I
say,
oh
and
also
load
a
job
right
like
if
I
want
to
create
a
job
like.
Let's
see
how
that
looks
like
how
to
sample
a
job,
I
should
probably
be
more
specific
sample
job
kubernetes.
B
Here
we
go
so
let's
go
just
do
that
real,
quick
as
long
as
my
yeah.
Let's
just
do
this
here.
B
Is
that
valid?
We
don't
know
we'll
see
so
in
wood,
color
we'll
do.
B
Job
right
and
then
here
customization
we
can
do
job.yaml.
Is
that
what
I
called
it
yeah?
So
here
in
my
customization
file,
I
said:
read
that
base
oh
and
by
the
way
I
have
an
extra
configuration
for
this
for
this
vgd
application.
B
So
I
do
a
git
add
star
for
langdon
I'll
get
commit,
am
you
know,
adding
job?
I
get
push.
B
This
should
stay
out
of
sync
pretty
soon.
B
There's
a
job
pending
right,
so
let's
sync
it
right!
So
then
in
the
customize
file.
Now
it's
now
it's
running
the
job
right.
So
in
the
customize
file
right
you
can
see
that
with
very
little
yaml
I
I
can
start.
You
know,
have
a
bassy
ammo
with
very
little
yama.
I
can
actually
start
deploying
this
application
and
making
modifications
to
it.
So
so.
B
Base
deployment
and
deploy
it
to
multiple
clusters,
each
cluster
having
its
own
individual
parameters
or
you
know
whatever
customization
you
want
to
make
so.
B
I
think
they
named
it
right
with
the
k,
obviously,
because
it's
kubernetes
thing
so
and
cool
we're
getting
cool
with
the
k,
cool
decay.
Okay,
so
here
let's
actually
test
my
app
because
here,
if
I
did
desired
manifest
it
says:
wood
color,
it's
still
deploying
so,
let's
see
here
where's
the
round.
A
B
My
dog,
oh,
he
wants
to
play
no,
oh
okay,
so
blue,
so
it
shows
up
blue
right.
So
then
yeah
it
just
defaults
to
blue
if
it
doesn't
understand
the
color
so
so
yeah.
So
this
is
just
kind
of
like
a
high
level
kind
of
like
customization
101.
B
You
don't
need
to
do
you,
don't
you
don't
need
to
do
it
all
with
like
argo
with
the
sync
tool
right
like
you,
don't
need
argo
or
or
flux
or
whatever
right,
because
it's
actually
built
in
you
can
do
you
know
customized
build.
B
Right,
I'm
gonna
customize
build
everything
here
and
it
actually
does
it.
Does
it
for
you
here
see
there
you
go
it
just
spits,
it
just
fits
it
all
right,
so
you
can
just
do
it
locally.
You
do
customize
build
notice,
how
it
says:
spec
host
wood,
color
right,
and
so
you
can
just
do
it
locally
with
customize
right.
So
you
can
do
you
can
even
like
pipe
this
right
into
cube.
B
Ctl
create
f,
so
you
can
actually
play
with
this
and
see,
see
what
it
looks
like
even
before
coming
and
committing
it
to
get.
I
should
probably
mention
that
earlier.
You
should
probably
test
it.
B
A
B
Yeah
yeah
yeah,
yeah,
so
cool,
so
so
it
is,
there
haven't
been
keeping
track
of
the
chat.
So
I
don't
know
if
there's
any.
B
With
your
questions,
if
you
guys
are
one
of
the
questions
or
opinions
right,
so
this
is
kind
of
the
way
I've
been
using
customized
way
a
lot
of
well
me-
and
you
know
the
folks
here
at
red
hat
or
the
the
the
the
group
formerly
known
as
the
argonauts
our
getups
practice
here,
we've
been
kind
of
using
this
for
our
own,
like
even
demos,
when
we
build
demos.
B
So
some
of
the
essays
have
started
shout
out
to
the
canadian
red
hatters
have
been
starting
to
build
their
demos
just
based
on
this
practice
of
like
hey.
We
have
like
a
core
component
right
and
everyone
kind
of
just
takes
their
spin
on
it,
but
they
don't
have
to
keep
forking
and
copying.
C
A
B
Yeah
imported
done
beautiful.
A
B
A
D
Well,
honestly,
I
mean
you
know,
paths
these
days.
Right
is
such
a
kind
of
bad
word
yeah,
but
in
in
so
many
ways
that's,
I
think,
a
really
good
way
for
like
admins
and
developers
to
communicate.
You
know
in
the
sense
of
you
know,
here's
here's
your
available
tool
chain.
D
You
know,
mr
ms
developer,
you
know
please
consume
from
this
pool,
so
I
think
anything
like
that
where
the
admin
can
kind
of
say,
here's,
here's,
the
story
or
here's
the
platform,
here's,
the
environment,
here's.
D
The
flip
side
of
it
speaking
as
somebody
who
spent
a
long
time
in
development
as
well,
is
like
as
a
developer.
One
of
the
reasons
I
would
choose
red
hat
products
right
before
I
worked
for
red
hat
was
because
I
knew
in
advance.
I
wouldn't
have
to
go,
have
a
fight
with
the
admin
team
about
getting.
C
D
Then
then
at
least
I'll
have
constrained
choices.
You
know,
and
if
I,
if
I
run
into
a
problem
then
I
can
find
I
can
discover
the
problem
and
say:
oh,
I
really
need
this
thing
from
blah
blah
blah
and
let's
discuss
it,
and
we
can
give
you
three
months
as
an
admin
to
go
and
investigate
whether
it's
a
good
idea
or
not
without
you
know
so
so
I
think
anything
like
that
where
you
can
kind
of
say
here's
the
environment
in
which
you
can
play
that
is
clear
and
concise
and
is
modifiable.
D
Better
than
you
know,
what
I
think
is
a
lot
of
the
time
is,
you
know,
admins
kind
of
rely
on
developers
to
to
keep
track
of
what
they're
comfortable
putting
in
production,
which
you
know
developers
are
like.
D
Put
anything
in
production,
you
know
well.
B
You
you
actually
did
you
know,
you
touched
on
a
a
an
interesting
thing
and
I
think
it's
worth
it
iterate
reiterating
I'm
doing
it.
Maybe
every
episode
is
that
you
know
change
can
happen
right
and
you
do
have
that
communication
and
that
chain.
It's
it's
code,
review
really
really
right,
guess
get
ops
is
all
get.
C
B
And
a
lot
of
the
times
the
admins
don't
understand,
or
you
know,
or
they
just
don't
know
right
like
they're,
just
ignorant
like
you
know,
I
come
from
an
ops
background.
Is
that
you
know
no
there's
actually
like
a
process
that
happens
when
when
coders
right,
coders,
don't
just
throw
anything
up
there
right,
they
have
you
submit
a
pr
and
that
gets
you
know,
gets
reviewed
that
gets.
You
know
changed
multiple
times
like
how
many
times
did
you
submit
a
pr
and
the
what
you
submit
and
what
gets
merged
is
completely
different
right.
E
A
B
You
know
someone
can
make
a
pr
to
you
know
the
base
like
right.
Like
I
created
this
base,
you
know
the
test.
Ops.
Someone
can
submit
a
pr
to
permanently
change
the
scale
right
like
the
deployment
instead
of
deployment
one
to
ten,
but
I
can
look
at
that
as
a
as
a
maintainer
and
say
no
or
justify
it
or
no,
it
needs
review
or
you
need
to
go
through.
You
know
you
know
x,
y
z,
whatever
right
like
just
because
then
submitting
a
pr
doesn't
mean
it's
going
to
happen
right
so
well,.
D
It's
also
it's
also
a
really
good
way
to
get
like
kind
of
automatic
frequently
asked
questions
in
a
sense,
so
you
have
two
kinds
of
things:
one
see
you
can
see
all
the
rejected
pr's
and
why,
where
they
were
rejected,
right
or.
D
Also,
you
can
write
bots
around
the
kinds
of
changes
you
don't
want
to
make
right
or
don't
think
are
a
good
idea
at
this
time
or.
D
D
So
you
know,
so
I
just
think
kind
of
putting
all
of
that
information
in
kind
of
machine,
readable
ways
and
then
and
putting
it
in
public
whether
the
public
is
internal
to
your
organization
or
literally
public
means
that
it's
there's
so
many
different
things
that
you
can
decorate
that
with
with
workflows
with
bots
with
you
know,.
D
That
really
changes
the
relationships
within
the
organization
between
all
those
humans
who
are
trying
to
work
together.
B
B
Without
the
zoom
fatigue
right
less
about
throwing
code
over
the
fence
and
more
about
you
know
having
you
know
the
the
operation
having
all
eyes
that
are
involved,
that
are
that
are
stakeholders
in
your
in
your
organization
having
those
eyes
on
it
and
knowing
that
a
change
was
made
right
like
there's,
there
was
times
in
my
history,
whereas
a
change
was
made
and
I
didn't
as
an
operations
guy
didn't
know
what
you
know
stuff
was
going
down.
B
C
D
And
the
and
the
change
may
be
actually
not
even
known
by
anybody
right,
so
you
know,
as
we
you
know,
as
I
can't
remember,
newton,
whoever
it
was.
That
said,
you
know
standing
on
the
shoulders
of
giants
right
I
mean
when
we
drop
a
modern
web
application
into
production,
there's
probably
literally
millions
of
lines
of
code
in
there
right
and
all
of
the
library
expansion
et
cetera.
It's
just
happening
kind
of
dynamically.
D
C
B
Yeah
so
cool.
C
A
B
A
To
call
this
one
good,
finally,.
A
C
A
D
Isn't
that
is
it
the
area
code
la.
A
All
right:
well,
thank
everyone.
We'll
see
you
in
two
weeks
here
same
oh,
the
right
time.
A
Yeah
yeah,
hopefully
these
the
power
outages
stay
away
from
christian,
but
stay
safe
out
there.
Everyone
seriously,
we
hope
you're.
Well
and
yes,
you
can
run
wordpress
on
openshift
at
scale
and
dynamically.
We
can
talk
about
that
more
in
chat,
so
yeah
join
our
discord
if
you
haven't
yet-
and
this
link
should
work
now,
better
folks
so
feel
free
to
join
the
discord
to
continue
the
conversation
and,
if
you're
interested
in,
what's
going
on
tomorrow,
check
out
the
calendar
we
have
a
couple
shows
looks
like
no.