►
Description
This video demonstrates how to migrate GitLab from using embedded Gitaly to a Gitaly Cluster
B
A
Not
this
one,
can
you
see
my
screen
with
the
giddily
overview
and
the
terminal,
or
am
I
sharing
a
different
screen.
A
Okay
cool
so
today
I
just
kind
of
wanted
to
talk
about
italy
cluster
and
how
to
set
up
a
getaway
cluster
and
basically,
all
the
nodes
that
are
involved.
It's
there's
a
handful
of
nodes.
It's
relatively
straightforward,
there's
just
quite
a
few
steps
at
first,
so
the
big
difference
between
getaway
and
getaway
cluster
is
getting.
The
cluster
is
obviously
more
resilient.
It's
an
active
active
cluster
configuration
instead
of
just
having
a
single
giddily
node.
A
We
use
gitaly
for
all
of
our
git
operations,
so
this
just
allows
more
high
availability
and
better
performance,
so
at
minimum
you're
going
to
want
one
postgres
node
for
the
purpose
of
this
demo.
I
just
have
one
postgres
node,
I'm
going
to
do
another
video
here
soon,
where
we
scale
out
to
from
a
single
omnibus
node,
that's
running
an
embedded
database
to
a
postgres
cluster,
but
for
the
purpose
of
this
demo
we're
just
going
to
use
one
postgres
node.
A
You
can
have
a
pg
bouncer
node
and
it's
recommended,
but
you
don't
explicitly
have
to
use
one,
especially
for
the
purpose
of
a
demo,
it's
kind
of
small.
So
I
did
see
the
the
instance
with
test
data,
but
there's
not
not
a
whole
lot
of
operations
that
really
require
pg
balancer,
plus
I
kind
of
was
going
to
cover
pg
bounce
here
with
postgres.
A
You
need
three,
I
don't
think
you
actually
need
three
graphic
notes,
but
it's
best
practices,
so
I
would
do
three
prefect
notes
and
through
gitaly
nodes
and
then
one
load
balancer,
and
in
this
case
I
used
gcp
because
that's
where
all
my
nodes
live.
A
So
the
prefect
nodes
work
as
a
coordinator
to
go
to
giddaly
and
then
obviously
over
here
where
we
have
shards.
These
are
through
getting
nodes.
The
application
server
running
gitlab
would
be
somewhere
over
here
and
then
this
is
your
database,
which
is
the
data
store
for
prefect.
If
you
were
going
to
use,
pg
bouncer,
it
would
go
somewhere
right
in
here
to
work.
Is
the
db
connection
pull
between
prefect
and
postgres
before
you
get
started
with
any
any
of
this
setup?
A
I
would
make
secrets
for
all
of
these
because
you're
going
to
need
them
later,
as
you
fill
in
values,
and
it's
also
important
for
all
of
the
nodes
that
you're
going
to
set
up.
You
want
to
set
up
just
steps,
one
and
two.
You
don't
want
to
actually
sign
into
any
of
the
the
nodes
except
for
the
application
server.
A
Obviously,
because
that's
your
front
end,
but
everything
else
just
go
through
steps,
one
and
two
of
the
gitlab
installation
steps
which
is
basically
just
setting
up
the
location
to
pull
down
the
package
pulling
down
the
package
and
installing
it
but
not
signing
in
so.
C
A
Like
this,
so
you
have
we're
defining
the
role
as
postgres
rule
prometheus,
we're
disabling
alert
manager,
we're
disabling
pg,
bouncer
exporter,
we're
disabling
redis
exporter,
gitlab
exporter,
we're
basically
just
disabling
all
the
stuff
that
we
don't
need
for
the
postgres
note,
because
we're
just
going
to
run
just
postgres.
So
then
we
have
our
listen
address
5432,
and
this
is
where
you'll
have
to
create
a
hash.
Let
me
go
over
to.
A
So
over
here
I've
basically
created
my
password
hash
and
I
I
did
that
with
go
to
the
postgres
setup.
A
Yeah
I
ran
this
command
right
here:
sudo
gitlab,
ctl,
pg,
password
md5
gitlab,
and
that
gave
me
this
big
hash
over
here
that
I
provided
in
my
gitlab
rv,
and
then
I
had
to
figure
out
what
network
all
my
nodes
are
on.
So
I
did
an
ifconfig
and
to
see
that
they're
on
10
128
and
then
I
went
over
to
load,
balancing
or
sorry.
I
went
over
to
the.
A
A
So
I
went
through
that
and
then
ran
reconfigure
on
all
on
just
this
one
postgresql
node.
So
once
that's
set
up,
then
we
can
start
working
on
setting
up
the
prefect
nodes.
We
have
three
prefect
nodes,
they're
all
basically
configured
the
same.
A
With
the
exception
of
on
this
force
on
this
first
node,
I've
made
it
the
deploy
node
so
but
before
I
did
that
I
had
to
create
a
role
inside
of
the
database
to
be
able
to
connect
to
it
from
prefix.
So
this
is,
you
could
basically
just
copy
and
paste
this
as
long
as
you
swap
out
your
prefix
sql
password
and
your
prefix
sql
password
hash,
which
is
values
that
you
have
to
generate
on
your
own.
A
So
once
you
have
that
then,
and
you've
authorized
the
prefix
user,
then
you
can
actually
go
through
the
configuration
for
effect,
so
we
defined
the
postgres
host
here.
If
we
didn't
want
to
communicate
directly
with
postgres
and
we
wanted
to
use
a
connection
pool,
we
would
point
it
to
the
pg
bouncer
host
and
we
would
also
have
to.
A
Give
the
pg
bouncer
user
access
here
as
well.
Let's
see
so
then
this
basically
everything
else
in
here
is
pretty
much
standard
and
then
down
here
we
turn
up
all
the
services,
so
we've
disabled,
git,
elite,
postgres,
redis,
puma,
sidekick,
gitlab,
prometheus
alert
manager,
grafana,
gitlab,
exporter,
github
costs,
and
then
we
just
explicitly
enabled
prefect
here
and
so.
D
A
A
D
A
And
so
once
you're
done
with
that,
then
you
can
run
reconfigure
and
you
shouldn't
get
any
errors.
But
if
you
do
it's
probably
a
syntax
thing.
A
Finally,
we
get
to
italy
here
on
the
giddily
node.
We
want
to
disable
all
the
services
again,
so
postcards
redis
and
genetics.
We're
explicitly
enabling
italy
we're
enabling
prometheus
for
metrics
autumn
migrate
is
false.
It's
like
that
on
all
the
nodes
and
then
the
listen.
D
A
Is
just
zero:
zero,
zero,
zero
at
eighty?
Eighty,
seventy
five
port,
the
prometheus,
listen
address
is
same
thing.
These
are
just
the
default
values
and
then
you
make
a
super
secret
auth
token,
and
then
I
meant
to
comment
that
up
and
then
yeah.
You
just
fill
in
the
data
directory
paths
which
I
believe
are
all
default
here.
A
I
just
put
in
the
names
of
the
nodes,
so
once
you've
done
that,
then
you
have
to
reconfigure
and
it
sets
those
nodes
up
as
giddily
nodes,
but
we
need
to
set
up
a
load
balancer
on
top
of
that
to
make
to
sort
of
handle
all
the
all
the
distribution
of
work.
A
So
you
have
to
do
two
things
in
your
whichever
you
decide
to
use,
I
I
prefer.
I
mean
if
the
servers
are
on.
Google
just
use
google
services,
but
you
could
also
use
aha
proxy.
You
could
use
whatever
you
want,
so
I've
made
a
load
balancer
here,
but
the
important
thing
first
is
you
have
to
make
an
instance
group
so
make
an
instance
group
to
include
your
three
nodes
inside
here.
So
you
see
I've
created.
This
group
called
getting
the
instance
group.
A
A
Go
back
over
to
the
balancer
yep,
and
so
I
just
made
this
load
balancer
that
has
a
health
check
on
port
80
75,
because
that's
the
that's
the
italy
port,
and
so
this
basically
just
makes
sure
that
everything
is
healthy,
looks
like
we
had
some
successes
and
failures
earlier,
but
at
the
moment
everything
is
healthy.
So,
with
that
said
so,
we've
covered
the
load
balancer,
we
have
giddily,
we
have
prefect,
and
then
we
have
the
postgres
node
that
we've
touched
so
far.
A
So
all
of
those
are
set
up
once
you
apply
the
values
into
lbrv,
you
just
run
reconfigure
and
everything
is
ready
to
go
more
or
less
so.
What
we
can
do
now
is
we
can
talk
about
migrating
from
embeddedly
to
getaway.
A
A
So
I've
set
up
I've
added
a
bunch
of
things
to
our
gitlab
rb
here
besides
by
default,
the
only
thing
that's
added
because
we're
just
running
out
of
box
gitlab
is
just
the
external
url
right
here,
but
I've
gone
ahead
and
added
all
of
the
other
giddily
values
so.
A
First
of
all,
we're
explicitly
turning
giddily
off
on
the
application
node
and
then
we're
pointing
the
get
data
directors
to
the
get
elite
address.
Now
the
address
is
actually
the
load
balancer,
which
should
be
yeah
right
here.
10
128,
20
13
over
report
2305.,
so
we're
actually
pointing
to
the
load
balancer.
Then
the
load
balancer
will
then
distribute
work
to
the
various
different
kitterly
nodes,
providing
the
token
another
secret
token
for
the
gitlab
shell.
A
And
then
I
have
my
static
configs.
So
I
pointed
to
all
three
prefect
nodes
over
9652
and
then
all
three
getaly
nodes
over
9236.
So
that
should
be
all
we
have
to
do.
We're
disabling
italy
and
we're
saying
getaly
is
going
over
to
this
new
address
and
here's
all
the
resources
behind
it.
So
with
that,
we
should
be
able
to
run
reconfigure
in
the
smartphone
phase.
A
So
once
this
completes,
we
should
essentially
be
on
getting
the
cluster,
but
we
can
poke
around
on
the
nodes
and
see
if
things
have
moved
over.
A
It
took
me
once
I
had
my
nodes
deployed.
It
took
me,
probably
a
good
90
minutes
of
work,
maybe
two
hours
of
work,
just
I
just
I
went
through
all
the
documentation.
Basically,
everything
on
this
page
is
transposed
from.
A
So
I
should
say
most
of
what
I
put
together
on
this
notes.
Page
came
from
this
page,
so
I
basically
just
followed
this.
The
configure
gita
cluster
steps,
there's
just
a
fair
amount
of
information.
That's
on
this
page
that
isn't
necessarily
relevant
like
immediately
relevant
it's
just
if
you
like,
for
example,
if
you
want
to
run
it
behind
tls
or
something
or
you
want
to
use
certificates
like
in
this
case,
I'm
not
using
any
certificates,
I'm
not
using
any
tls.
So
it
was
pretty
straightforward
to
set
up.
A
I
just
had
to
kind
of
parse
through
all
the
steps
to
sort
of
weed
out
what
I
wanted
to
talk
about.
What
I
didn't
want
to
talk
about,
because
there's
a
lot
of
information
on
this
page,
but
from
start
to
finish,
let's
say
two:
two
and
a
half
hours
of
actual
setup
time
that
was
kind
of
in
between
working
on
tickets
and
other
stuff.
That
answers
your
question.
A
So
I
think
I
could
probably
do
it
faster
if
I
had
had
to
do
it
again,
but
it
just
I
just
kind
of
wanted
to
make
sure
I
went
through
and
had
all
the
right
right
values
before
you
know
doing
anything
too
crazy,
but
so.
D
B
A
D
A
Interesting,
so
we're
getting
this
deadline
exceeded
error
message.
B
A
B
D
C
Just
while
we're
waiting
have
you
got
a,
can
you
sign
a
copy
of
those
rb
fails
and
their
final
state
to
your
doc.
A
Yeah,
absolutely
I
I
wasn't
sure
if
I
should
put
straight
up
rv
files
on
there
or
you
know,
sanitize
files,
but
yeah.
I
can
do
that.
D
A
Yeah,
I
don't
know,
that's,
we
have
to
have
a
part
two.
A
A
A
C
D
A
Yeah
there
was
another
exception
message
about
which
is
gone
now,.
E
E
E
C
E
D
E
Verify
yeah
prefetch
whether
it
can
reach
from
jittery
whether
it
can
reach
the
prefect
note.
E
A
C
E
E
E
A
E
Yeah,
because
I
assume
is
you're
connecting
the
load
balancer
to
prefetch
notes
to
g3.
D
A
Is
it
the
prefix
or
digitally
I
created
oh?
This
is
for,
I
think
I
see
the
I
think
I
understand
this
is
for
getaway.
I
didn't
create.
D
C
A
Yeah
well
and
load:
balancers
aren't
the
one
thing
that
are
the
only
thing
that
we
don't
explicitly
cover
in
our
documentation
too.
So
yeah
absolutely.
A
The
thing
with
the
thing
with
I
mean
we
could
do
that
we
could
add
some
sort
of
helpful
hint
or
something
for
using
this
specific
type
of
load
balancer.
But
our
current
documentation
says
to
just
use
a
load
balancer
and
then
it
gives
gives
examples
like
aws
or
gcp,
or
you
know,
like
an
f5
physical
load,
balancer
software
little
bouncer
like
aj
proxy,
and
this
is
taking
forever.
A
A
A
B
E
A
B
E
E
It
is
and
then
pick
that
one
there
is
one
network
that
has
a
lot
of
pots,
so
increase
that
has
a
lot
of
pots
yeah
that
one
just
adds
2305
this.
E
D
B
B
D
A
A
This
last
one
was
acts
33
after
so
it's
been
a
while
okay,
so
that
seems
positive.
Let's
look
at.
D
D
A
Fantastic
okay,
so
then
we
can
come
over
here,
go
and
choose
shouldn't
it.
Correct
me
if
I'm
wrong,
but
because
I
already
have
all
these
repos,
it
should
be
copying
all
this
data
over
right,
there's,
not
a
command
that
I
have
to
manually
invoke
to
copy
everything
over.
At
least
that
I
saw
is
that
right.
E
Yeah,
I
think,
because
I
prefer
just
to
truly
think
once
you're
doing
all
that
so
prefer
to
be
very
thinking
and
copying
over
vegetarian.
C
E
A
Okay,
so
that's
that's
essentially
this
demo,
then
so
I'm
gonna
put
some
additional
notes
of
what
we
did
to
make
this
work
and
then
I'll
drop.
As
you
asked
john
I'll
drop,
my
actual
configurations
in
here
and
yeah.
Anybody
have
any
questions,
but
we
still
have
a
few
more
minutes.
D
C
Feel
of
what
to
do
in
those
types
of
circumstances
and
then
explain
what
we
did.
Are
you
sorry
use
folks?
You
and
david
did
regarding
the
load.
Balancer
reports?
Okay,
the
part
with
the
health
check.
You
know
it's
important,
you
know,
I
don't
know
if
that's
documented,
but
assume
that,
since
it's
free
tcp,
you
have
to
make
sure
the
health
checks
set
up.
Firewall
has
the
port
two
three
five
open
and
all
those
types
of
things
because
they're
all
very
pertinent
to.
A
What
I'll
do
is
I'll
make,
so
I'm
going
to
change
these
right
here
to
my
actual
values,
and
then
I
will
make
a
I'll
change.
The
screenshots
also
for
the
load,
bouncer
and
then
I'll
add
a
troubleshooting
section
down
here.
A
It
yeah.
Thank
you,
everybody
for
your
time.
I
hope
that
you
found
this
useful
gilly.
Isn't
that
scary,
it's
other
than
the
load
bouncer
but
yeah.
I
hope
that
that
was
useful
to
all
of
you.
I
didn't
share
my
video
of
myself
during
the
whole
call,
because
I
thought
I
might
have
a
slow
internet
connection
so
anyways.
A
If
there's
no
other
questions
we'll
we'll
conclude
the
call
and
I'll
update
the
notes
and
I'll
probably
drop
a
link
to
the
notes
in
the
support,
chat
and
yeah
thanks
very
much
have
a
great
day.