►
Description
This is the first weekly update for the Incubation Engineering - Server Runtime SEG. In this video, Shekhar walks you through what is Server Runtime and gives a demo of a prototype control plane that can provision environments / IDEs for the user.
Chapters
0:00 Hello! and What is Server Runtime
1:13 First goal - Custom Control Plane
2:18 VS Code Demo
4:59 vim Demo
A
Hello,
everyone
welcome
to
the
first
update
for
the
server
runtime
seg,
so
first
of
all,
I
would
like
to
say
hello,
I
joined
about
three
weeks
ago
to
work
on
server,
runtime
and
I'm,
so
excited
to
be
here.
A
The
question
I've
been
asked
multiple
times
already
is
what
is
server
at
time,
and
so
the
answer
is
pretty
simple.
Today
on
gitlab,
we
have
the
ability
to
edit
code
using
our
web
IDE,
but
what
we
can't
do
is
run
our
code
or
run
tests.
The
server
runtime
gives
you
that,
so
it
gives
you
the
ability,
you
have
a
full
runtime
environment,
which
you
can
run
your
code
and
test.
A
So
this
is
a
pretty
big
space,
and
so
the
question
is:
what's
the
first
problem,
you're
going
to
tackle
and
again
I'm
lucky
to
be
working
very
closely
with
the
editor
group.
Who've
done
a
lot
of
work
in
this
space
already,
so
they
have
already
embedded
vs
code
as
an
IDE
to
replace
the
current
web
IDE
and
they're,
also
working
on
a
way
to
to
embed
Eclipse
J
into
gitlab
right,
and
so
that
that
investigation,
which
is
ongoing.
A
The
problem
I
wanted
to
tackle
is
is
related
to
having
a
complete
server
runtime
like
J,
but
an
alternative
to
that.
So
what
I
would
really
want
to
do
is
build
a
custom
control
plane
and
the
goal
to
the
control
pane
are
going
to
be
such
that
one
it
can
be
installed
in
any
kubernetes
cluster.
A
The
second
thing
I
want
is
to
have
really
tight
integration
with
gitlab,
and
what
that
means
is
things
like
authentication
things
like
having
the
right
extensions
installed,
being
able
to
provision
an
environment
right
from
gitlab
very
easily
to
be
able
to
view
your
environments
in
gitlab,
so
I
want
that
whole
experience
and,
of
course,
I
want
people
to
offer
a
multitude
of
different
ID
experiences
through
this,
so
not
just
vs
code,
but
things
like
Jupiter,
Hub,
vim
and
not
just
Ides,
with
the
UI
but
also
headless
Ides,
that
you
can
connect
their
own
IDE
to
the
server
runtime
environment.
A
Now.
The
idea
is
also
that
this
can
be
run
on
the
customer's
cluster,
but
also
on
our
own
classes
on
gitlab.com,
so
we
could
potentially
support
a
free
or
paid
offering
by
running
it
on
our
own
clusters.
With
that
I've
been
working
on
a
on
a
prototype
for
a
custom
control.
Pane
I
would
love
to
take
you
through
that,
so
the
journey
really
starts
from
any
repository
and
I've
got
this
very
basic.
A
Go
example
set
up
here,
so
there's
nothing
special
about
this
repository
other
than
the
fact
that
it's
got
this
gitlab
experiments
yaml
file
and
all
this
really
has
a
defined
your
development
environment.
So
it's
got
an
image
that
describes
a
development
environment,
and
so
this
image
is
just
a
normal
Docker
image
containing
vs
code
go
and
a
few
go
extensions.
A
So
if
I
go
ahead
and
I
click
on
a
link
here,
so
I'll
just
provide
a
link
here
which
takes
it
currently
to
my
own
domain,
where
we
could
host
this
obviously
on
on
gitlab
and
all
you
need
to
pass
to
this
is
your
project
and
a
ref.
A
So
if
I
go
ahead
and
click
that
it
goes
and
starts
provisioning
in
my
environment,
so
what
it
does
is
in
the
kubernetes
cluster
it
Provisions
pods
and
Ingress
and
services,
and
things
like
that
and
and
soon
to
come
volumes
and
starts
and
starts,
starts
creating
a
DNS
entry
so
that
we
can
actually
be
navigated
to
the
IDE.
Now
it's
going
to
take
a
few
seconds,
I'll
pause.
The
video
here.
A
So,
as
you
can
see,
it's
gone
ahead
and
provisioned
an
environment
for
me,
so
startup
vs
code
and,
as
you
can
see,
it's
actually
cloned
the
repository
as
well
and
I
can
access
my
main.co
file
as
you
can
see.
So
it's
also.
It's
also
installed
the
go
extension
for
vs
code.
I
can
go
ahead
and
start
a
new
terminal
right
and
I
can
go
ahead
and
actually
run
the
program,
so
I
can
say,
go
runway.go
and
that
would
actually
run
the
program.
A
And
you
can
see
that
so
I
can
go
ahead
and
run
the
program.
I
could
actually
make
changes
to
this
program
as
well
and
because
I
have
the
the
go
extension
it
would,
you
know:
do
things
like
auto
correction
and
re
recreate
import
so,
for
example,
I
removed
the
import
that
I
removed
the
reference
to
the
library
and
sort
of
move,
the
importance,
the
class
that
that's
done
by
the
actual
extension
itself.
So
now
I
can
go
ahead
and
commit
my
code.
A
A
And
so
so
so
that's
the
experience.
I've
got
an
environment
which
has
all
the
tools
installed.
I
can
go
and
push
I
just
want
to
quickly.
Show
you
another
example
that
I
have
this
time:
it's
not
going
to
BBS
code,
but
vim
and
emacs.
Instead,
so
I'll
show
you
another
shell
script
example
that
I've
got
so.
This
is
a
very
simple
shell
script
and
we've
got
again
a
gitlab
experiments
file,
which
has
which
runs
dtyd
and
also
has
women
emacs
installed.
A
So
if
I
go
ahead
and
click
on
provision,
it's
going
to
go
again,
start
creating
all
the
components
of
the
Ingress
and
the
Pod,
and
things
like
that
and
it's
going
to
go
ahead
and
and
wait
for
the
DNS
to
become
reachable.
A
Once
that's
successful,
you
can
see
that
it's
gone
ahead
and
started
a
terminal
window
and
I
can
look
at
the
file
again.
It
has
cloned.
My
repository
and
I
can
start
editing
my
script.
If
I
wanted
to
do
right,
so
I've
got
the
full
whim
experience.
I
can
have
them
extension
installed
as
well,
so
I
can
go
ahead
and
you
know
save
and
close
Etc
I
can
also
push
as
I
would
normally.
I
could
also
start
emacs
in
this
one,
because
I
also
have
emacs
installed
so
I.
A
Can
you
know
I
have
the
the
emac
experience
that
I
want
I.
Have
that
as
well?
I
can
also
run
my
code
Etc
right
from
here.
So
again.
What
I
want
to
tackle
next
after
this
is
the
ability
to
run
headless
IDE
so
where
you
run
your
IDE
locally,
but
connect
to
this
server,
runtime
and
also
I
haven't
done
authentication
for
the
Ides.
Yet
there's
authentication
for
the
bot
that
actually
Provisions
the
environment,
but
no
authentication
with
the
Ides.
So
that's
what
I
want
to
tackle
next.
Thank
you
for
listening.
Everyone.