►
From YouTube: 2016-AUG-25 -- Ceph Tech Talk: Unified CI
Description
A detailed update on Unified CI and transitioning away from gitbuilders for Ceph.
http://ceph.com/ceph-tech-talks/
A
Hello
guys,
my
name
is
Alfredo
Lisa
I
for
the
past
year
and
a
half
or
so
maybe
a
little
bit
more
I
have
been
in
charge
of
cutting
releases
for
safe
and
and
where
we
started
a
while
ago
was
with
it
was
originally
with
Jenkins.
But
it
was
done
in
a
very
traditional
ad
hoc
setup
and
when
we
started
growing
and
trying
to
get
more
releases
for
different
east
rose
in
different
combinations
of
these
distributions.
A
A
So
there
was
a
redesign
of
the
SDI
which
is
still
based
on
Jenkins,
and
we
did
a
bunch
of
work
there
which
allows
us
to
quickly
and
on
the
man
start
to
get
built
out
depending
on
what
was
forward
the
requirements.
So
we
wanted
to
unify
the
whole
release
process
with
the
development
process
as
well
to
use
the
same
tolling,
because
since
it
was,
there
was
a
clear
separation
of
system.
A
Some
some
things
that
would
work
in
the
creating
binaries
and
repositories
for
deaf
work
would
not
apply
or
will
not
trickle
down
to
the
release
process.
So
there
was
a
disconnect
there
that
cost
issues,
for
example
when
I
renew
dependencies
or
requirements
to
a
system,
but
we
would
find
those
when
we
were
about
to
cut
a
release,
and
sometimes
it
was
very
hard
for
us
to
to
to
basically
work
around
those.
A
A
So
right
now
get
builders
are
I
would
say
strong
a
little
bit
to
to
cope
with
demand.
We've
we've
grown,
not
only
the
the
core
development
team
for
Seth,
but
also
contributors
and
right
now
keep
builders
are
set
to
basically
build
great
binaries
and
repositories
for
every
single
branch.
Every
single
time
a
branch
gets
pushed.
So
that
creates
a
a
high
demand
for
key
builders
and
it
is
no
longer
a
very
small
team
of
people
contributing
so
self
and
give
yourself
being
able
to
cope
with
that
kind
of
man.
A
So
right
now,
they're
kind
of
slow
again,
because
of
the
way
the
way
they're
set
up,
which
is
basically
every
every
time
someone
pushes
to
a
branch.
It
will
create
a
build
and
there
is
no
easy
way
to
scale
that
out.
The
works
right
now
is
that
each
builder
host
produces
a
distinct
type
of
binary.
So,
for
example,
a
builder
for
Jesse
debian
Jesse
will
produce
steady
encased
by
trees
and
everything
is
tied
to
the
host
name.
A
Again,
the
load
part
of
it
and
how
to
scale
is
difficult
because
everything
is
tied
up
to
this
way
of
getting
hostings
mapped
to
whatever,
specifically
the
gate.
Builders
building
so
is
currently
not
possible
to
say:
well,
we
want
to
add
five
more
debian,
Jessie
or
whom
to
say
niall
get
builder
see
it's
just
everything
goes
to
a
single
specific
hosts.
A
The
other
thing
is
that
get
builders,
even
if
that
was
impossible,
is
setting
a
setting
up.
A
kid
builder
is
very,
very
tricky
and
time
consuming.
A
lot
of
the
process
is
very
well
documented.
There
are
some
spots
where,
like
it's
just
kind
of
difficult,
it's
a
lot
of
moving
pieces
and
again
we're
depending
on
false
names,
so
telling
them
out
or
replacing
them
issues
is
the
very
time
consuming
and
tricky
process.
A
A
Fatal
conditions
and
get
dollars
is
also
a
problem,
because
whenever
a
good
builder
is
down,
you're,
basically
left
without
binaries
and
repositories
for
whatever
right
you're
trying
to
test
or
consume
so
pedal
traditions
our
base,
it
may
basically
mean
let's,
let's
either
go
and
fix
whatever,
is
wrong
with
that
machine
or
try
to
create
a
new
one
and
get
a
DNS
mapping
or
that
new
closed
and
those
are
very,
very
time-consuming
operations.
I
mean
even
if
it
was
a
new
host
and
not
only
you're,
waiting
on
changes
or
insects,
setting
up
basically
racket
over
machine.
A
We
are
also
waiting
on
DNS
to
propagate.
If
it,
sir,
if
it's
a
new
IP
and
if
it's
fixin
it
well,
however
long
it
takes
to
fix
a
given
key
builder,
the
federal
conditions
are
are,
are
pretty
pretty
rough
now,
so
we
we
already
have
the
CI
working
for
us.
It
has
a
bunch
of
features
and
accommodating
the
gate.
Builders
style
of
workflow
is
not
it's
non-trivial,
because
there
are
certain
things
that
we
expect
to
happen.
A
One
of
the
things
was
to
be
able
to
communicate
or
provide
an
epi
to
communicate
the
current
state
of
a
repository
or
a
built,
so
I
think
right.
Now,
though,
there
are
some
flags
in
when
you're
running,
to
told
you,
you
can
say,
trying,
try
and
get
me
the
latest
bills
for
this
branch,
usually
or
before
that
it
was
which
is
not
possible
in
a
lot
of
test
failures
where
I
could
not
find
I
cannot
find
a
repository
for
for
this
specific
shot
shall
one
on
this
branch.
A
So
what
we
wanted
to
do
was
to
be
able
to
accurately
provide
the
test.
Runner,
whatever
find
to
say,
give
me.
The
repository
is
available
for
this
branch.
Optionally,
pass
a
sha-1
and
say:
give
me,
give
me
repose
for
these,
these
linux
distributions
and
these
lame
situations
of
versions
or
code
names,
so
that
was
critical
for
us.
A
So
that
way
we
would
I
return
everything
meeting
the
constraints
if
they
were
available
or
basically
tell
you
that
those
those
who
fosters
are
not
ready,
because
you're
giving
us
constraints
that
the
system
has
not
been
able
to
do
previous
yet
so
that
was
that
was
one
of
the
paintings
now
met
with
great
Farnum
and
his
son
in
to
discuss
a
little
bit
of
like
what,
from
their
perspective,
what
what
was
it
that
they
thought
is
the
biggest
problem
and
the
bees
problem
or
another
biggest
problem.
The
number
one
requirement
was
speed.
A
Most
of
it
I
would
say,
95.
Ninety-Eight
percent
of
all
the
junkies
notes
are
like
are
created
on
the
man.
So
a
a
request
for
building
something
will
come
in
and
if
there
are
machines
available,
Jenkins
will
just
send
those
jobs
and
distribute
will
distribute
them
to
a
bunch
of
builders,
and
those
will
be
in
charge
of
to
seen
the
binaries
for
whatever
these
shows
and
architectures
and
based
reversions
or
code
names
are
required.
A
So,
there's
a
system
there's
a
small
service
that
can
constantly
start
it's
a
poking
at
jenkins
and
seeing
if
it
needs
something
and
if
it
does,
it
starts
firing
up
these
machines
on
the
fly,
make
them
join
the
jenkins
pool
of
nodes
to
start
creating
or
working
doing
basically
work
for
the
bills
and
when
those
are
idle,
it
terminates
them
and
usually
takes
like
10
to
15
minutes
to
terminate
them
if
they're
being
idle
not
doing
anything.
So
this
diesel
elasticity
is
is
very
convenient
and
your
house.
A
A
So
the
load
there's
also
low
balance
for
your
repositories.
We
we've
just
discussed
the
scaling
from
the
Yankees
point
of
view,
but
Jenkins
Jenkins
notes
are
just
producing
binaries.
The
repository
production
is
delegated
to
different
different
services.
There's
a
service
that
is
an
HTTP,
an
HTTP,
binary
API
and
when
Jenkins
jinkies
notes
are
done,
are
complete
with
the
briefing
fineries.
What
Jenkins
we'll
do
is
we'll
start
sending
these
binaries
over
HTTP
to
this
remote
system.
A
So
these
service
will
have
a
full
of
these
notes
and
will
will
provide
you
with
we're
using
round-robin.
Go
bouncing
so
provide
you
that
the
the
one
that
was
least
used
or
the
one
that
is
basically
in
round-robin
fashion,
at
least
you
sort
of
wonder
what
slack
school
another
one
that
was
lasted,
not
not
the
most
recent
one,
and
then
it
will
return
that
and
before
returning,
which
is
in
this,
rather
that
the
coolest
features
witches
keep
this
issue
last
week
before
returning
back
to
Yankees
before
saying
hey,
you
know
like
this.
A
These
know
these
binary
HTTP
services
is
it's
the
one
that
you
should
be
using
it.
Does
it
does
a
health
check,
so
all
of
these
binary
AP
is
they
have
like
a
health
URL,
endpoint
and
Jenkins
will
double
the
reporting
service
will
go
and
check
this
URL
and
if
it's
healthy
will
return
it
to
you.
So
if,
for
whatever
reason,
this
thing
is
like
having
issues
or
there's
the
database
is
down
or
some
of
its
core
services
that
are
needed
to
run
or
not.
A
Okay,
or
even
if
an
administrator
went
in
and
took
the
application
down,
it
will
skip
and
try
to
return
to.
Something
else,
though,
is
not
only
load
balanced,
but
it's
low
balance
with
a
health
check
that
is
done
on
the
fly
as
the
built
is
about
to
start,
and
it
will
use
these
pool
of
resources
to
like
give
you
another
one.
So
we
have
three
or
four
or
five
that
will
happen.
So
this
way
repositories
are
not
tied
to
a
given
distribution
or
distribution
code,
name
or
even
architecture.
So
we
can.
A
A
You
know
unless
what
basically
other
ones
are
our
auto
rotation
and
and
also
very
important
for
this,
is
like
whenever
an
administrator
goes
and
says:
oh
well,
there
was
this
problem.
The
database
server
was
down
or
we
need
a
more
d
space
as
soon
as
it
boots
up
this
binary
be
I
will
say:
I
will
perform
all
the
health
checks
and
at
the
end
of
that
will
say,
oh
yeah,
I'm
healthy,
so
I'll
send
a
call
back
an
HTTP
requests
to
the
reporting
system
and
say
hey.
A
You
know
what
I
just
got
put
it
up
and
I'm
healthy.
This
is
my
hosting,
and
you
should
add
me
back
to
the
pool
and
so
like
on
the
administration
point
of
view.
That's
that's
very
cool
because
it
doesn't
require
we
starting
systems
or
trying
to
do
anything
manually
choose
your
job
is
to
jizz
in
this
one
system
going
and
working
and
getting
a
healthy
state
and
bounce
it
or
start
it,
and
then
it
will
join
the
pool,
and
this
is
the
same
thing
for
new
host.
A
So
we
more
with
like
to
add
two
more:
we
don't
need
to
change
configurations
or
edit
files
and
with
our
systems,
which
is
as
soon
as
these
things
boo.
They
are
going
to
auto
register
themselves
through
the
reporting
system,
which
in
turns
alright,
which
in
turn
up
use
it
to
send
a
host
to
the
Yankees
house.
A
A
So,
along
the
way
when
Jenkins
is
producing
these
binaries,
we
want
it
to
be
very,
very
clear
or
to
like
understand,
with
a
lot
of
granularity
in
what
in
what
part
of
the
build
process
we
are
currently
at
when,
when
the
when
the
Jenkins
job
is,
is
done,
and
it
has
posted
all
the
liner's,
it
tells
the
finer
API.
You
know,
I'm
done
posting
binaries,
you
should
start
being
the
repo
it'll.
A
A
This
is
the
URL
that
the
repulsor
is
going
to
be
leaving
and
throughout
that
process.
Well,
it
starts
at
getting
well
it's
requested.
Then
it
gets
to
a
point
where
it
gets
queued.
We
have
a
queue
system
were
to
be
able
to
cope
with
synchronously
with
multiple
different
builds
at
the
same
time
to
get
some
the
queue
and
then
it
gets
processed
and
then,
when
it
ends,
it's
like
it
says
it's
ready
or
if
it
doesn't
end,
if
you
get
it
finds
it
turns
on
their
report,
there's
an
air
conditioned.
A
So
that's
one
of
the
things
that
these
thing
does
and
eventually
what
we
want
to
do
is
to
provide
for
these
to
be
able
to
be
the
to
be
the
main
that
is
page
where
any
any
person
can
check
it.
What's
the
status
of
a
given
build
for
whatever
least
row
or
architecture,
and
whatever
branch
or
chauhan
and
and
to
feed
off
of
that
knowledge
of
the
status
of
the
build?
A
The
other
thing
that
he
does
is
like
I
mentioned
the
load
balancing,
so
it
receives.
It
receives
the
things
from
from
the
binary
API
when
they're
healthy
and
it
provides
them
to
a
client
which,
in
this
case,
is
changing.
So
Jenkins
is
saying
giving
the
given
gimme
a
gimme
a
host
where
I
could
put
push
some
wineries,
so
it
will
you'll
know
about
the
poor
hosts.
It
will
do
the
health
checks
on
these
systems
and
you
will
update
accordingly,
the
pool
whether
a
noise
is
is
healthy
or
not,
which
I
briefly
explain.
A
Index,
that's
right
now,
where
we're
at
with
those
things,
and
the
last
thing
that
we've
added
to
this
is
the
portion
where
we
provide
for
a
search
api,
hear
that
clients
like
to
Tala
g
will
be
able
to
ask
for
hey.
Give
me
the
give
me
the
the
latest
repo
for
a
repose
available
for
sent
OS
7,
and,
if
want
to
see
no
and
for
this
branch
for
this
project,
it
was
mostly
going
to
be
set,
of
course,
babe
we're
also
allowing
other
projects
to
be
able
to
be
accommodated
easily.
A
So
you
specify
the
project,
these
distributions,
the
link
situation,
so
you
want
in
the
architecture
and
either
a
specific
shell
one
or
just
request
the
latest,
and
it
will
return
the
whatever
is
available
matching
those
constraints,
so
that
that's
huge,
I
think,
for
for
something
to
ensure
that
when
at
test
time,
things
are
available
and
ready
to
be
tested,
not
not
just
relying
on
on
on
some
value.
That
might
not
be
correct
in
again.
All
of
these
is
fully
automated
very,
like
all
the
systems
that
we've
discussed
here
are
100
automated.
A
There
are
some
things
that
require
a
little
bit
of
a
manual
interaction
like
the
main.
The
tank
detectives
master
server
are
sort
of
manual
configuration,
the
most
of
it
is
inflated,
upgrades
are
or
changes
to
the
code
of
all.
These
different
systems
are
automated,
so
we're
just
pushing
buttons
here
and
deploying
and
making
them
restart
and
we're
extremely
happy
with
that.
A
We've
been
able
to
make
so
much
progress
and
so
fast
really
and
keep
deploying
these
things
as
soon
as
with
feel
confident-
and
this
is
just
a
very,
very,
very
simple
graph
on
the
things
that
I
described.
So
we
started
at
a
very
left
of
the
slide
where
the
janky
job
is
started,
that
fire
soft
the
different
build
types
to
the
Jenkees
notes
that
are
brought
up
on
the
fly.
If
they
don't
exist.
A
That's
the
obligation
that
produces
the
repositories
and
then
and
then
imposed
chakra
and
soft
posts,
its
statuses
to
xiamen,
which
is
the
repo
status
API,
so
to
speak
and
into
told
he
just
consumes
stuff
from
sham
now
Shannon
when
shaman
is
just
reporting
back
to
totally
eating
foods,
obviously
the
URLs
for
the
repositories
it
needs
to
ennis
PU,
so
eventually,
to
tell
you
which
is
pass
these
URLs
that
are
leaving
in
any
of
the
chapter
instances
to
to
the
test
suite.
So
you
will
be
able
to
consume
those.
A
Yeah,
well,
it's
it's
all
working
there.
One
of
the
recent
PCT
senses,
the
tautology
portion
and
sac,
is
going
to
be
working
on
that.
So,
for
the
totality
part,
what
we
wanted
to
do
is
not
not
make
dat
all
you
work
until
everything
is
absolutely
one
hundred
percent
correct,
I'm
our
point
of
view
bit.
A
We
want
to
get
documentation
on
how
the
API
works
and
basically
do
a
couple
of
feedback
sessions
with
Dan
make
insects
or
about
like
what
do
you
guys
think
about
this
API
so
that
the
toddy
can
consume
these
and
and
and
that's
what
we've
done
in
like
basically
we're
a.
B
A
So
we
don't
have
any
push
notifications
when
we
have
right
now
it's
we're
providing
a
Search
API
way
to
say,
given
these
constraints
evening,
I
really
hope
that
I
can
work
or
repose
that
I
can
work
with.
So
I
would
say
that
right
now
that
looks
mostly
as
a
tautology
implementation.
So
I'm
thinking
that
it
will
just
keep
were
trying
to
seek
a
preposterous
available
or
not
and
and
then
may
make
a
logical
position
on
to
either
drop
the
test
week,
because
the
constraints
couldn't
be
met
or
or
continuing
it
like.
I
don't
know
that.
A
Well,
thank
you
so
much
for
staying
a
few
minutes
to
basically
understand
how
are
these
things
are
working
I'm,
pretty
excited
about
this
work.
Things
are
very
very
of
way
more
resilient.
We're
able
to
scale
up
and
I
think
is
going
to
hopefully
make
a
good
impact
on
how
we
develop
and
provide
repositories
for
or
other
all
men,
consumption,
pinky.