►
Description
Flatcar Container Linux is an open-source Linux distribution; with the recent announcements, the community around it is set to grow faster than ever. In this talk, we will see how to get involved in this community at various levels.
Technical contributions to the OS are more than welcome, let's break apart the package addition process with a simple example to get a first idea of what is Flatcar Container Linux development!
A
A
A
A
It
has
quite
his
importance
for
for
this
talk
and
second,
this
is
my
first
talk
in
english.
It's
not
my
first
thought,
but
my
first
in
english.
So
please
forgive
any
mistakes.
English
mistake,
I
will
do
during
this
talk
all
right
flat
card
container
linux.
What
is
it
I
won't
deep
dive
inside
the
technical
stuff
of
flat
car
container
linux,
because
we
already
provided
a
bunch
of
talk
about
what
is
flat
car
container
linux?
How
does
it
work
and
how
to
deploy
it?
A
A
So
it's
designed
to
run
this
kind
of
workloads
with,
because
we
provide
every
tools
we
need
to
run
container.
We
ship
everything
inside
the
os
flat
car
is
also
a
secure
os.
So
just
for
you
to
know
flat,
car
is
based
on
gen
2
linux.
So
you
understand
why
I
love
gen,
2
linux
and
now
why
I
like
to
work
on
flat
car.
So
it's
based
on
gen
2
linux,
which
means
it
will
get
all
the
mechanism
of
gen
2
linux
inside.
A
Let's
give
an
example
with
gen
2
everything
you
install
will
be
compiled
with
over
linux
distribution.
You
just
pre
you
just
pull
pre-built
binaries.
When
you
install
the
software
with
gen
2,
you
pull
the
source
code,
then
you
compile
on
your
own
machine
with
source
code
and
using
this
particularity
we
are
able,
with
gen2
linux,
to
tweak
and
to
have
a
granular
control
on
what
we
install.
A
Let's
suppose,
I
want
to
install
chromium
on
my
main
device,
so
the
classical
browser
I
want
to
style
chrome,
but
I
know
that
I
won't
need
to
print
stuff
with
cramlam,
so
I
don't
need
the
caps
protocol
to
to
run
chromium,
so
I
can
easily
disable
it
using
a
compiling
flag
with
gen
2.
It's
exactly
the
same
thing
you
can
for
each
package.
You
install
enable
or
disable
some
features
to
provide
really
the
strictness,
the
bare
minimum.
A
You
need
to
run
your
pack,
your
software,
so
like
this,
we
can
provide
a
secure
rest
because
we
have
a
minimal
surplus
attack
because
for
each
software
we
install,
we
just
provide
the
burn
minimum
to
run
and
to
securely
run
and
de
facto
it's
a
lightweight
operating
system,
because
we
just
embed
the
strict
the
minimum.
We
need
to
run
the
os
to
compare
flat
car.
You
can
just
think
about
over
os
doing
quite
the
same
thing,
so
running
container
workloads,
so
you
have
telos,
you
have
a
k3
os.
A
So
all
these
kind
of
os
are
on
the
same
purpose.
It's
to
run
container
workloads
so
now,
while
contributing
to
flat
car.
By
extension,
we
could
ask
the
question:
why
contributing
to
open
source
software,
because
first
it's
fun,
it's
always
fun-
to
contribute
to
something
open
source
because
you'll
be
involved
inside
the
community.
A
So
you
can
be
involved
in
meetups
in
conferences,
you
get
you
you
get
in
touch
with
all
other
people,
sharing
the
same
love
as
you
as
the
open
source
world,
and
it's
also
a
good
way
to
learn
new
things,
because
when
you
work
on
something
at
work,
it's
not
always,
but
most
of
the
time
it's
the
same
topic.
It's
the
same
technologies,
the
same
tools
and
by
contributing
to
pencil
software.
A
It's
super
cool
to
see
over
stuff
and,
finally,
to
work
on
something
you
really
want
to,
because
you
won't
get
the
the
feeling
to
work,
because
you
do
something
you
like
to
do
and
flatcare
has
something
more
than
over
open
source
of
software.
It's
that
is
an
os.
So
you
get
a
full
knowledge
of
what
is
developing
an
os
and
you'll
get
all
the
knowledge
to
run
something
like
a
file
system
network
consideration,
boot
engine
every
stuff,
every
piece
of
an
os
you
will
give
inside
and
understand
how
it
works
in
the
runtime.
A
A
Everything
leads
to
the
same
place
and
in
this
git
repository
you
will
find
everything
you
need
to
contribute
so
documentation
code
of
conduct
requirements.
How
does
it
work
and
also
you
get
access
to
the
issue
tracker
of
git,
so
on
teamwork,
slash
flatcar!
You
have
every
issue
for
every
flatcar
project,
so
it's
pretty
cool
because
it's
all
in
the
same
place
and
finally,
you
can
contribute.
First
of
all
with
communication,
it's
always
important
to
communicate
on
operator
software,
so
we
have
a
dedicated
matrix
channel
and
erc
channel
it's
a
flat
car
channel.
A
So
this
is
everything
you
need
to
getting
started
by
contributing
to
flat
car
container
linux.
What
kind
of
contribution
we
expect!
So
at
the
moment
it's
only
update
and
upgrade
of
packages
or
provide
new
packages,
but
we
can
also.
We
also
expect
to
have
a
documentation,
of
course,
because
our
documentation
is
not
yet
perfect,
so
it's
always
cool
to
fix
typos
and
to
to
reward
rewrite
something,
and
also
it's
to
me.
It's
the
best
thing
to
to
start
in
a
open
source,
it's
to
contribute
to
documentation.
A
A
But
before
going
further,
we
just
need
to
take
a
a
few,
a
few
moments
to
define
some
gen
2
vocabulary
which
are
essentials
to
continue
this
talk.
So
let's
define
an
e-build.
E-Build
is
just
a
file.
Actually
it's
a
file
extension,
it's
a
bash
file
and
inside
we
it's
like
a
recipe
like
we
see
earlier,
you
will
define
how
you
install
your
package,
as
I
said,
with
gen
2
everything
is
compiled,
so
we
need
to
to
say
how
are
you
going
to
compile
this
software?
A
We
can
have
c
software
c
software
python.gs,
so
if
I
don't
need
to
compile,
I
need
to
install
it.
So
in
this
file
we
just
describe
how
you
will
how
you
will
install
this
package
to
vos.
We
have
also
the
overlay
overlay.
It's
basically
where
you
store
the
e-build,
this
kind
of
apt
repository
really
in
code,
and
it
can
be
a
git
directory
http
server.
It
can
even
be
a
local
directory.
This
is
where
you
store
all
your
e-build
and
finally,
with
gen2
you
have
emerge
emerge
is
the
package
manager.
A
This
is
this
is
the
the
tool
you
will
use
to
install
your
software,
upgrade
your
softwares,
but
also
remove
software
and
in
general
vocabulary
we
we
talk
about
emerge,
something
to
emerge,
something
so
to
just
summarize
with
emerge.
We
will
install
e-build
which
are
stored
on
overly.
So
this
is
the
main
vocabulary
of
gen
2,
which
is
essential
to
continue
this
talk
earlier.
A
We
we
got
a
metaphor
with
a
cooking
process,
so
I'm
going
to
do
a
metaphor
too,
with
hiking
I
do
like
hiking
and
sleep
in
the
forest
and
stuff
like
that,
but
something
you
do
when
you
start
hiking
working
in
the
forest
at
first.
It's
that
you
want
to
take
everything
in
your
bag.
You
just
want
to
have
a
big
bag
full
of
what
I
call
just
in
case.
So,
let's
take
a
free
t-shirts
like
let's
take
a
free
underwear,
three
liters
of
bottle
of
water.
A
Sorry
anything
just
in
case
and
when
you'll
be
in
the
mountain
in
the
forest,
you
will
just
only
do
half
of
what
what
you
bring
with
you
on
the
field
so
contributing
to
flat
car
is
like
hiking.
You
need
to
ask
yourself
if
I
want
to
add
this
package
to
bos.
Is
it
something
just
in
case
or
is
it
something
I
really
need?
And
the
community
really
need
to
run
this
software
on
container
workloads
in
a
cluster?
A
So
this
is
something
always
to
keep
in
mind
and
we
can
even
go
further
so
if,
by
when
you
hike,
you
have
a
big
bag
full
of
justice
case,
it
will
be
dangerous
because
you
have
like
10
kilograms
on
your
back
or
20
kilograms
on
your
back
and
when
you
work
it
can
be,
you
can
feel
insecure
on
your
legs
because
you
have
a
bag
full
of
full
of
just
in
case.
So
this
is
a
same
thing
with
factor.
A
If
you
have
a
distro,
a
club
cloud
distro
full
of
packages,
you
will
take
some
times
to
boot.
You
will
increase
the
surprise
attack
so
yeah.
It's
not
it's
not
really,
really
cool
and
so
yeah.
You
just
ask
yourself
when
you
add
a
package
or
update
a
package
if
it
pulls
over
dependency,
is
this
something
a
required
to
run
my
os?
A
A
We
provide
an
os,
it's
pretty
old
now
for
five
years,
it's
old
in
vit
and
and
it's
bulletproof,
because
we've
been
through
a
lot
of
scenarios,
and
we
know
that
the
package
we
currently
shipped
are
useful
and
are
not
just
in
case
and
even
better
with
flat
car.
We
ship
docker,
so
everything
you
need
to
run
can
be
run
using
docker.
So
if
you
need
to
provide
a
new
software
or
new
software,
you
can
just
pull
it
with
docker
and
run
it
through
edition.
A
So
that
was
a
quick
metaphor.
So
yeah,
let's,
let's
go
inside
the
technical
stuff,
let's
add
a
package,
so
we
first
need
to
find
a
package
to
add.
First
thing
you
can
do
if
you
want
to
add
a
package
by
to
contribute
to
flat
car
is
to
go
on
the
github
repository
and
fan,
find
an
issue
mentioning
a
package
update
a
package
edition
sort.
So
this
is
the
first
thing
to
do.
A
All
the
second
things
to
do
is
to
open
yourself
an
issue
on
github,
saying
that
hey,
I
want
to
add
this
package
to
flakker.
Is
it
something
cool
I
think
it's?
It
will
be
useful
for
the
community
and
for
people
having
this
in
their
cluster,
so
yeah.
You
can
just
motivate
why
you
would
like
to
add
this
new
package
and
it
can
be
a
bonus
if
you're
able
to
estimate
the
size
of
this
new
package
to
know
how,
by
how
much
the
size
of
the
os
will
be
increased.
A
So
let's
take
the
example
of
p
fetch
package
ypfetch,
because
it's
a
simple
bash
script,
so
it
does
not
require
any
dependency.
It
does
not
require
compilation,
it's
really
a
simple
package
to
have-
and
it's
always
nice
to
flex
in
your
cluster
and
to
say,
hey.
My
cluster
is
running
on
flat
car
container
linux
and
to
share
it
on
twitter.
A
A
So
this
is
the
main
repository
where
every
e-bill
are
stored.
If
I
recall
correctly,
there
is
like
two
200
000
package
e-billed
in
this
repository,
so
yeah.
This
is
the
main
place.
We
call
it
the
upstream.
So
this
is
basically
where
most
of
the
flat
car
package
are
coming
from.
We
can
decide
to
use
another
overlay
to
find
out
this
e-bill
or
we
can
just
manually,
write
the
build
and
submit
it
to
to
a
flat
car
overlay.
A
A
A
Now
I'm
happy,
I
have
my
e-bill
of
p-fetch
what's
next,
so
we
have
to
decide
where
we
are
going
to
store
this
e-bill.
As
I
said,
on
gen
2
ebill
lives
inside
overlap
with
flat
car
container
linux.
We
currently
use
two
overlays
chorus.
Overlay
is
the
legacy
one,
not
the
legacy,
one,
it's
a
historical
one,
and
this
is
where
we
put
everything
every
e-build
with
heavy
modification
heavy
customization,
because
sometimes
for
some
package
we
have
some
constraints
related
to
cloud
provider
related
to
container
workloads.
So
we
need
to
patch.
A
We
need
to
remove
some
dependencies
or
to
add
dependencies
to
a
build.
So
all
these
e-bills
are
stored
in
the
core
and
we
have
the
portage
table.
This
is
a
sync
with
the
upstream,
so
this
is
where
we
store
the
e-bills
without
without
modification.
Actually,
so
it's
just
a
sync
with
a
gen
2,
gen,
2
or
another
variable
so
yeah.
This
is
the
two
overlays
we
have
one
for
heavy
customization
and
the
other
one
just
to
put
regular
e-build
inside
in
our
case
prefetch.
I
just
need
to
to
install
it.
A
There
is
no
flat
curl
shenanigans,
no
specific
stuff,
so
I
can
just
put
it
into
portage
table
right
now.
This
is
the
fun
part.
This
is
where
we
actually
build
the
os.
So
we're
going
to
to
take
all
the
packages
composing
accompanying
the
os
and
we're
going
to
compile
them
and
to
generate
an
image,
an
actual
image.
I
would
be
able
to
use
on
gce
on
aws
or
locally
we're
using
qmu,
so
yeah.
This
is
the
fun
part.
A
A
The
first
thing
to
do
when
you
contribute
to
flat
car
is
that
we
provide
sdk,
so
it's
a
collection
of
useful
scripts
and
and
everything
required
to
run
a
flat
car
contribution,
so
I
will
just
enter
inside
the
oops.
Sorry
enter
inside
the
sdk,
so
once
I'm
here,
I
can
just
go
in
this
repository,
and
this
is
where
I
have
all
the
overlay.
A
So
if
I
check
I
have
the
chorus
overlay,
so
this
is
where
we
put
babies
with
a
heavy
modification
and
I
have
the
portage
table.
So
if
I
go
into
portfolio
stable,
so
this
is
the
e-bills.
Without
many
modification
status,
I
can
see
that
I
added
a
p
fetch
directory.
A
So
this
is
just
a
copy
paste
of
the
upstream.
Something
interesting
is
that
the
architecture
of
an
overlay-
basically
everything
is
under
category.
So
you
can
see
the
category
you
have
the
dev
python.
You
have
the
network
dns
the
profile
system.
A
A
A
Yeah
he
said
that
he's
going
to
install
a
new
prefetch,
so
let's
install
the
software,
so
there
is
no
compilation
no
dependencies,
so
it
takes
a
few
seconds
to
install
it
into
a
system
and
yeah.
That's
it.
We
installed
prefetch.
So
now
we
can
generate
our
new
image
to
play
with,
of
course,
it's
quite
a
long
process.
A
A
So
we
need
to
wait
a
few
seconds
just
to
add
the
image
to
boot,
so
it
should
be
all
right,
let's
ssh
in
two
and
okay,
I'm
logged
inside
the
the
machine.
So
if
we
check
this
file,
you
can
see
that
we
run
on
the
fat
car
container
linux.
So
this
is
basically
what
you
have
when
you
spawn
a
cluster
on
aws
on
gce
on
azure
or
flat
card.
A
This
is
the
kind
of
node
you
will
have,
except
that
this
one
is
the
one
you
just
built
yourself
you
built
manually
and
you
can
play
with
it
and
it
runs
locally.
Of
course,
let's
see
if
pfetch
work,
yes,
it
works
as
expected.
I
can
flex
now
with
my
friends
on
twitter
to
see
that
my
node
is
actually
running
on
flat
car
container
linux,
but
there
is
something
I
I'm
not
happy
with.
Is
the
fact
that
the
ascii
art
is
a
tux?
A
It's
it's
not
a
customized
one,
because
if
we
go
back
to
my
slide
and
we
go
back
to
this
slide
on
prefetch,
we
can
see
that
I
have
the
gen
2
logo
and
on
this
one
I
just
have
tex
it's
normal,
because
pfetch
doesn't
know
flat
car
container
linux,
yet
so
it
does
not
provide
ascii
art
of
it.
A
A
And
if
you
understood
correctly
now
we
are
going
to
provide
some
modification
to
my
initial
package,
perfect
prefetch.
We
are
going
to
provide
a
patch
in
order
to
patch
this
software,
to
bring
this
ascii
art
and
to
display
a
nice
flatter
ascii
art
when
we
boot
the
machine.
So
since
it
requires
a
modification,
I'm
going
to
move
from
this
overlay,
I'm
going
to
move
it
into
the
chorus
okay
and
now
I'm
going
into
the
chorus,
and
I
have
exactly
the
same
thing.
A
A
So
let's
install
it
so
same
thing
as
earlier.
We
just
emerged
it
using
the
image
command
and
building
the
prefetch
software
so
for
gen,
2
and
for
flat
car.
There
is
nothing
new.
We
are
just
going
to
reinstall,
that's
why
we
have
r
we're
just
going
to
reinstall,
but
you
can
see
a
quite
a
difference
is
that
here
it's
right
portal
stable
and
here's.
Why
chorus?
Because
we
are
switching
overlay,
but
we
just
installed
the
same
package,
but
we
are
stretched.
A
We
are
switching
over,
so
let's
emerge
it
and
if
I
check
in
the
logs
of
the
installation,
I
can
see
that
my
patch
has
been
applied
as
expected.
A
So
that's
it
and
now
I
can
rebuild
the
image
so
just
for
you
to
see
the
command
it's
in
the
sdk
and
we
have
the
build
image.
So
you
just
need
to
run
this
image
this
command
and
it
will
run
build
the
camera
image
and
you'll
be
able
to
log
into
so.
Let's
leave
the
sdk,
I
already
built
this
image
earlier
to
save
us
a
30
minute
time.
A
A
A
Okay,
so
now
I'm
inside
container
linux,
booted
image
and
if
I
run
prefetch
and
voila,
I
now
my
square
out,
I'm
super
happy
and
my
package
is
installed
and
it
works
as
expected.
So
my
patch
was
okay
and
the
installation
process
has
been
okay,
since
I
can
see
that
everything
works
as
expected.
A
A
So
and
now
it's
developed
by
fatcar
and
we
provide
a
bunch
of
useful
tools
in
order
to
create
release
but
also
to
test
release,
and
we
have
a
tool
called
collar,
and
this
is
the
tool
which
takes
care
of
testing
everything
and
if
we
test,
if
we
take
a
look
at
the
test
folder,
we
can
see
that
we
have
some
some
folder
and
this
is
where
we
write
the
actual
test.
So
it's
right
using
a
go
programming,
language
and
you
can
just
define
the
test
and
what
you
want
to
test.
A
A
So
that's
all
we
could
push
the
test
further
and
to
check
the
output
of
running
this
command
and
to
see
that
if
it
works
as
it
would
work
but
yeah,
let's
just
keep
the
thing
simple,
and
we
will
just
run
this
test
to
assert
that
this
path
exists
and
using
this
you
can
create
complex
tests
suite
of
tests.
A
So
we
have
tests
to
to
to
spawn
an
ntct
etcd
cluster
and
create
a
kubernetes
cluster
using
this
cluster
etcd,
and
we
can
yeah
just
create
some
actual
stuff
used
in
production
to
be
sure
that
we
don't
break
something
when
we
release
a
new
version
of
flipkart
and
if
I
want
to
run
the
best
just
to
need
to
run
this
simple
command
and
it
will
run
on
premiere.
But
I
can
also
run
this
command
to
run
test
on
gce
on
azure,
on
every
cloud
provider
supported
by
factor.
A
A
If
we
remove
some
software,
so
we
can
see
that
the
test
was
a
success.
We
were
able
to
find
that
there
is
a
path
to
user
being
prefetch
so
yeah,
that's
it
for
the
programming
stuff.
If
we
go
back
to
the
slide,
so
there
is
a
this
to
wrap
everything
up
and
to
see
how
what's
the
workflow
to
add,
update
some
package,
so
we
first
provide
any
build.
If,
if
we
update
the
package,
we
just
update
the
bill,
then
we
build
everything
using
the
sdk.
A
So,
of
course,
it
can
be
a
nice
way
to
start
contributing
to
flat
car
it's
to
write
tests,
because
there
are
a
bunch
of
software
which
are
not
yet
tested,
so
it
can
be
a
nice
if
you
know
how
to
program
and
go,
it
can
be
a
nice
getting
started
to
understand.
How
does
it
work
and,
of
course
you
will
iterate
over
it
first,
if
the
tests
are
failing.
A
Finally,
when
everything
is
done,
you
can
submit
appear
and
it
will
be
reviewed
by
the
community
and
by
the
core
team
of
flipkart,
of
course,
in
each
step
of
this
workflow,
it
also
always
nice
to
communicate
on
the
issue
or
in
on
the
matrix
channel
to
share
a
date
to
share
something
where
you
are
blocking
on,
because
it's
you
don't
work
alone.
It's
a
community
work.
Everyone
can
contribute
and
contribute
as
well.
So
if
you
want
to
go
deeper
in
the
contributing
process,
you
have
these
resources,
so
kinwork,
slash
flatcar.
A
So,
as
I
said,
is
the
main
entry
point
everything
you
need
to
know
is
in
this
repository.
We
also
have
our
documentation
and
the
developer
guides,
which
are
some
nice
command
tips
and
tricks
everything.
I
shown
you
to
build
package
to
be
image.
It's
referenced
in
this
guide
and
it's
pretty
pretty
easy
to
follow
it
and
to
to
try
something
and
finally,
a
flat
current
free
node.
A
We
should
change
from
free
note
in
the
next
days.
We
kept
you
updating
this
also.
Something
is
not
in
the
slide,
but
we
started
last
month
to
organize
a
community
call,
so
it
it's
once
a
month
and
you'll
be
invited
to
the
next
one.
It
will
be
in
june
in
the
second
week
of
june,
if
I
recall
correctly,
but
you
will
know
everything
in
due
time
so
yeah,
that's
it.