►
From YouTube: Keptn 0.8 feature highlights and important changes - Keptn User Group, March 16th, 2021
Description
Learn more about feature highlights and important changes in Keptn 0.8 from Keptn maintainers Andi Grabner and Jürgen Etzlstorfer.
Join our user groups: https://keptn.sh/community/meetings/
Timecodes:
00:00 Intro
05:22 Shipyard 2.0
36:47 Eventing & tool integration
43:08 Multi-cluster support
54:10 Update existing integrations
Learn more: https://keptn.sh
Get started with tutorials: https://tutorials.keptn.sh
Join us in Slack: https://slack.keptn.sh
Star us on Github: https://github.com/keptn/keptn
Follow us on Twitter: https://twitter.com/keptnProject
A
Hey
hello,
captain
user
community,
hello,
jung.
A
A
Good
that
we're
here
and
we
have
some
announcements-
some
really
cool
stuff-
to
show
it's
really
hot
off
the
press,
captain
0.8
long
awaited
and
eureka-
and
I
decided
to
give
you
an
overview
of
we've-
been
playing.
Both
of
us
have
been
playing
with
captain
0.0
for
the
last
couple
of
days,
and
it's
really
that
that
new
and
depending
on
when
you
watch
the
recording
it
might
already
be
out
for
longer.
A
But
for
us
it's
pretty
new
and
we
wanted
to
just
show
you
what
we've
learned
and
especially
everybody
that
gets
into
captain
0.8.
You
need
to
understand
a
lot
of
the
changes
that
happen.
Really
exciting
changes,
opening
up
a
lot
of
opportunity.
B
We
can
get
started.
I
just
want
to
announce.
So
this
is
a
captain
is
a
cncf
project.
That
also
means
we
are
following
the
cncf
code
of
conduct
here.
So
basically,
please
be
nice
to
each
other
in
the
in
the
chat
and
also
in
the
in
the
meeting
document.
B
A
B
Please
indicate
also
with
your
name
that
you
are
attending
the
captain
user
group
and
I'm
really
excited
to
see
a
lot
of
new
cool
features
of
to
show
a
little
bit
of
vehicle
features.
So,
let's
get
this
started.
A
Yeah
all
right,
so
some
of
you
might
be
new
to
captain.
That's
why
I
have
two
slides
such
as
highlights
again.
What
captain
is
so
for
newbies
captain
is
something
I
think
really
amazing
for
whoever
you
are,
whether
you
are
in
dev,
really
automates
data
driven
based
decisions
or
beta
data
driven
based
up
processes.
So
whoever
you
are.
You
can
pick
a
use
case
that
you
want
to
automate
where
maybe
right
now,
you're
trying
to
use
your
existing
automation.
A
Scripts
you're,
trying
to
build
custom,
integrations
into
your
testing
tools
into
your
monitoring
tools
into
delivery
tools.
We
basically
have
done
the
work
for
you
so
with
captain.
You
can
pick
a
use
case
that
you
want
to
automate
whether
this
is
evaluating
of
quality,
gates,
delivery,
automation,
sr
re-automation,
that's
performance,
test,
engineering,
chaos,
engineering
which
jung
is
driving
heavily
l
or
also
all
the
remediation
workflows.
A
Every
use
casing
captain
comes
with
some
configuration
because
you
need
to
tell
captain
what
type
of
let's
say:
sli,
service
level,
indicators
and
slo
service
level
objectives.
You
want
to
use
for
your
quality
gates.
What
type
of
workloads
or
chaos
engineer
in
chaos
use
cases
you
want
to
execute
what
type
of
delivery
you
want
to
execute
and
whatever
runbooks
you
want
to
automate.
So
you
bring
your
configuration
best
of
all.
You
connect
your
tools
because
everyone
out
there
has
their
own
different
tools
for
the
different
environments.
Captain
doesn't
replace
your
testing
tool.
A
It
orchestrates
captain
doesn't
replace
your
deployment
tool
it
orchestrates
captain
doesn't
you
know,
do
the
monitoring
for
you.
It
reaches
out
to
your
monitoring
tool,
so
it
connects
to
your
tools
and
then
the
real
magic
is
instead
of
you
having
to
build
all
of
these
workflows
with
custom
coding
and
custom
integrations
into
your
pipelines.
Captain
helps
you
with
this,
so
captain
automatically
configures
and
connects
the
tools
and
then
provides
the
picked
use
case
as
a
self-service,
and
it
does
it
through
a
declarative
way.
A
Everything
is
stored
in
git,
so
that
means
every
configuration
is
all
version
controlled.
Captain
everything
when
captain
does
something
it
always
double
checks
and
validates
against
your
service
level
objectives
that
you
specified.
So
whether
you're
deploying
something
you're
testing,
something
you
executing
all
the
remediation
captain
always
validates.
Did
this
action
not
break
anything,
and
if
so,
it
then
takes
a
different
course
in
the
process
and
everything
is
based
on
standards.
So
we
are
basing
our
communication
to
all
of
these
different
tools.
A
We
are
basing
it
on
cloud
events,
which
is
another
cncf
project,
so
three
examples
of
how
captain
already
solves
problems
with
some
of
our
users,
sumit
was
on
a
on
a
webinar
earlier
he
talked
about
how
they
are
using
captain
to
automate
quality
gate
evaluations
in
integrated
into
argo
jenkins
and
getling.
So
they're
doing
a
massive
amount
of
testing
captain
helps
them
to
analyze
all
the
tests
fully
automatically
roman
managing
director
twiscon.
A
They
are
scaling
performance,
testing
and
resiliency
testing
at
different
organizations,
especially
in
central
europe,
where,
with
captain
they
were
able
to
15-fold
improved
increased
the
number
of
performance
tests
that
they
now
run
and
tenfold
the
number
of
apps
that
they
are
testing,
because
captain
is
now
automating
the
test
execution
and
the
test
analysis
and
christian.
He
was
also
already
talking
here.
A
A
So,
instead
of
building
a
lot
of
custom
code
into
the
gitlab
pipelines
like
for
test
execution
for
deployment,
automation
for
validation
that
are
using
captain
and
they
have
already
onboarded
their
latest
services
on
kubernetes
with
captain
and
especially
what
captain
helps
them
is
they
have
14
different
stages:
they're,
a
clinical
trial
company,
very
complex
approval
processes
and
instead
of
building
all
these
complexities,
these
checks
into
their
existing
pipelines.
They
use
captain
to
orchestrate
all
of
this
all
right
now.
This
is
just
a
recap
on
walt
captain
is
in
case
you're
new
to
captain.
A
A
The
masterminds
behind
the
thing
read
up
on
the
in
on
the
declaration
of
shipbuilder
there's
a
lot
of
information
in
there
shipyard
is
the
way
in
captain
where
you
specify
what
do
you
actually
want
captain
to
do,
and
I
want
to
give
you
a
quick
overview
of
how
shipyard
used
to
look
like
and
how
it's
looking
like
now.
So
this
is
an
example
of
shipyard
0.1.x.
A
With
a
classical
three-stage
delivery
pipeline.
We
had
a
very
opinionated,
very
opinionated
approach,
which
means
you
specified
dev,
staging
and
prod,
and
you
gave
some
additional
hints
to
captain
what
should
happen
in
each
stage.
We
got
a
lot
of
feedback
that,
while
this
is
great
to
be
so
opinionated
people
needed
more
flexibility.
A
This
is
why
now
with
shipyard
0.2,
you
still
specify
your
stages,
staff
staging
and
production,
but
then,
within
a
stage
you
have
much
more
flexibility.
You
can
define.
So-Called
sequences
sequences
can
contain
one
or
more
tasks.
Sequences
can
sequences
can
depend
on
each
other
or
can
be
triggered
by
each
other,
so
one
sequence
can
be
triggered
by
another.
Gives
you
a
lot
of
flexibility?
A
The
tasks
there's
a
set
of-
let's
say,
well-defined
tasks
like
deployment
test
evaluation,
release
rollback,
but
then
you
can
also
define
your
own
tasks
and
include
new
capabilities.
That
might
not
yet
be
that
we
have
not
thought
yet
about
right.
So
really
the
important
thing
is
we
used
to
have
a
very
opinionated
approach.
A
So
I
have
a
three-stage
pipeline
and
you
see
on
the
left
here.
My
dev
stage
has
a
delivery
sequence.
Where
I
say
when
I
kick
off
dev
delivery.
I
want
deployment
to
happen
with
a
direct
deployment,
so,
whichever
tool
I
have,
then
I
want
tests
to
happen
to
do
some
functional
tests.
Then
I
want
evaluation
to
happen.
If
the
evaluations
go
well,
then
I
want
to
officially
release
that
particular
artifact
and
then
I
want
to
have
an
approval
stage
to
say:
is
this
good
to
go
into
the
next
stage?
A
So
in
order
to
kick
this
off-
and
this
is
also
slightly
different
because
we
now,
instead
of
just
sending
an
arbitrary
event
like
a
new
artifact
event,
we
are
now
sending
a
so-called
captain,
sh
dot
stage,
dot
sequence
dot
trigger
so
you're,
always
triggering
a
certain
sequence
in
a
certain
stage.
Now
for
some
of
the
use
cases,
the
captain
cli
provides
a
very
nice
shortcut,
you
can,
for
instance,
say
captain
trigger
delivery
and
then
the
cli
will
exactly
create
the
right
event
for
you.
But
in
my
case
what
happens
with
the
ship
on
the
left?
A
A
I
need
to
send
the
deployment
event,
so
it
basically
sends
a
deployment
start
event
or
deployment
triggered
event
with
the
additional
properties
I've
specified
in
my
shipyard,
then
my
deployment
tools,
whatever
this
is
maybe
the
built-in
helm
service,
maybe
you're,
calling
argo,
maybe
you're
calling
jenkins,
maybe
you're,
calling
gitlab,
maybe
you're
calling
spinnaker
whatever
you
have,
will
then
react
to
it
and
then
send
back
the
status
once
this
is
done.
The
next
thing
happens.
A
B
B
Through
this,
but
I
think
we
already
see
a
little
bit
of
the
the
new
ui
here
of
captain.8,
and
it
makes
a
lot
of
sense
to
explain
how
the
events
are
actually
triggered
on
the
sequence
of
the
units.
Thanks
for
this
deep
dive.
A
Yeah
next
thing,
in
my
case
right
when
my
death
is
done,
captain
is
basically
finishing
the
death
stage
at
the
end
or
the
dev
sequence
in
this
case
with
captain
sh
dev
delivery
finish
because
that
sequence
is
finished
once
all
the
tasks
are
executed,
it
will
send
the
finished
event
and
also
includes
the
status
passed
or
failed,
depending
on
the
latest
result
of
all
the
tasks.
A
Now,
in
my
case
now,
if
you
look
on
the
left
side-
and
maybe
I
want
to
quickly
highlight
and
annotate
this-
because
this
is
really
important-
this
is
all
new,
and
I
wasn't
aware
of
this
right,
so
I
have
my
staging
and
my
delivery
sequence.
So,
within
my
staging
stage
I
have
a
delivery
sequence
and
I
say
please
trigger
this
delivery
sequence,
so
I
know
I
just
over
over
kind
of
painted
it
but
triggered
on
def
delivery
finished.
A
So
if
dev
delivery
finished,
then
I
want
to
continue
with
this
particular
sequence
and,
as
you
can
see
here
in
my
case
I
then
execute
a
couple
of
tasks,
and
this
is
exactly
what
captain
then
will
do
here
for
me.
So,
let's
go
on.
Where
is
my,
I
need
to
clear
my
drawings,
because
they're
really
not
that
beautiful,
but,
as
you
can
see
here,
captain
justice
before
it
is
sending
all
these
events.
Based
on
my
specification.
A
It
is
sending
events
with
this
triggering
the
right
tools,
the
tools
every
time
an
event
is
sent
we'll
then
respond
back,
and
I
will
cover
a
little
bit
more
of
this
later,
the
status
when
they
started
when
they
stopped
and
what
the
status
is
and
also
what's
very
important,
and
this
might
be
again
worth
another
drawing
attempt
from
me,
but
I
use
a
smaller
size
of
the
of
my
of
my
of
my
paintbrush.
A
I
have,
as
you
can
see
here,
as
sequence-
delivery
right,
that's
the
one
that
I
triggered
earlier
and
it's
triggered
when
the
dev
stage
is
finished.
What
I've
also
have
here
is
a
rollback
component,
so
I
can
basically
say
hey
within
the
same
staging.
I
have
one
sequence
that
is
responsible
for
delivery,
which
makes
sense
right
the
best
case
scenario
deploy
test
evaluate,
but
then
I
also
have
a
sequence
that
I
call
rollback
that
will
be
triggered
in
case
my
staging
delivery
finished.
So
basically,
this
here
in
case
this
one
fails.
A
I
may
want
to
execute
some
tasks
I
may
want
to
notify
people
or
I
want
to
trigger
a
rollback
event
or
send
a
rollback
event
and
depending
on
your
delivery
tool.
Maybe
this
triggers
a
special
jenkins
pipeline.
Does
a
rollback
or
it
triggers
whatever
else
you
use,
but
this
is
a
nice
way
to
model
and
connect
your
individual
sequences
through
eventing
and
the
nice
thing
is,
you
can
also
the
triggered
on.
This
is
really
beautiful
because
you
can
say
trigger
on
an
event,
but
you
can
also
use
the
selector
to
match
certain
criteria.
A
I
think
this
is
pretty
powerful
all
right.
So
before
I
go
into
the
first
demo,
how
can
I
actually
trigger
all
of
this?
You
can
trigger
it
always
through
the
api,
but
a
very
convenient
way
that
a
lot
of
people
do
when
they
start
with.
Captain
is
using
the
captain
cli,
so
the
captain
cli
gives
us
very
easy
triggers.
We
can
trigger
a
delivery
and
a
quality
gate
use
case
through
the
cli,
because
it
has
built-in
captain
trigger
delivery
and
captain
trigger
eva
evaluation
endpoints.
A
Now
I
want
to
focus
on
the
delivery
aspect
now.
So
here
is
a
captain
trigger
delivery,
and
what
this
takes
is
a
project,
this
stage
and
a
service,
because
captain
still
uses
the
same
configuration
construct
and
then
because
it's
a
trigger
delivery,
I,
I
can
add
additional
delivery
parameters
like
image
tag,
so
this
is
stuff
that
is
then.
This
is
data
that
will
then
be
needed
by
any
of
the
tools
that
will
participate
in
that
sequence,
I'm
triggering.
So
what
does
this
actually
do
right?
So
I
have
trigger
delivery,
def
and
additional
metadata.
A
This
is
taken
by
the
cli,
and
I
like
this
because
now
I
can
also
show
you
how
you
could
trigger
that.
Do
the
same
thing
with
the
api.
It
basically
sends
a
captain
event.
Def
de
lev
delivery
triggered
event
right,
we're
triggering
that
sequence
and
it
is
adding
this
particular
image
and
tag
as
data
construct
in
the
configuration
change
block.
This
is
something
that
we've
specified
if
we
read
up
on
the
spec.
This
is
for
the
delivery
use
case,
which
means
right
really
what
it
does.
A
It
is
then
triggering
the
depth
in
the
dev
stage.
The
delivery
pro
the
delivery
sequence
and
then
all
the
tools,
all
the
events
that
will
be
sent
in
they
will
be
able
to
access
this
configuration
data.
They
can
add
more
data.
They
may
also
need
additional
data,
and
this
is
also
then
additional
data
that
comes
in
through
the
properties
all
right.
So
now,
let's
go
to
the
first
demo,
so
what
I
have
prepared,
I
have
for
captain
o7.
A
Here
again,
I've
created
my
captain
on
k3s,
with
some
examples
for
especially
for
dynatrace
use
cases.
So
I
want
to
show
this
now
as
well.
I
have
I'm
going
to
deliver
a
new
version
of
my
service
and
one
thing
that
I
also
highlight
here.
These
are
the
screenshots,
because
there's
a
new
view
that
I
want
to
introduce
you
to
so,
let's
go
over.
A
A
This
is
stuff
where
I
have.
I
have
triggered
it
earlier
now.
It's
working
out,
it's
not
beautiful.
This
is
the
stuff
that
I
fixed
earlier
because
I
completely
broke
all
of
my
whole
environment.
This
is
what
you've
seen
what
you
are
already
used
to
in
captain
07,
but
now
the
service
view
is
really
focusing
on
a
little,
let's
say,
optimized
view
so
on
the
top.
I
can
see
the
def
and
the
staging
use
case.
A
So
def
is
already
finished
and
if
I
click
on
it,
we
are
showing
you
the
most
important
thing,
which
is
the
quality
gate
result
in
depth.
We
don't
show
you
all
the
other
details,
because
maybe
you're
not
even
needed
staging
currently
says
question
mark
because
staging
yes,
we
already
have
an
evaluation
result.
Everything
is
green,
but
I've
specified
that
between
staging
and
production
I
want
to
have
an
approval
stage
into
production,
and
this
is
also
something.
Maybe
this
is
also
about
johannes,
I
know
he's
on
and
we
had
a
discussion
earlier.
A
Do
we
want
to
have
the
approval
on
the
production
side
to
let
something
in
from
staging
into
prod?
In
my
case,
I'm
just
doing
it
from
staging
and
I
say:
shall
it
go
on
yes
or
no
and
I
keep
let
it
go
and
that's
it
now
and
now
you
can
see
now
I
see
the
third
stage
they
have
staging
and
prod
and
prod
is
currently
happening.
A
If
I
go
back
everything
that
happened
in
depth,
the
deployment,
the
test,
the
evaluation,
the
get
sli,
which
is
part
of
the
evolution,
the
release
and
then
the
approval
between
dev
and
staging
here
I
had
automated
approval
turned
on
then
in
staging
I
had
my
monaco
service
from
config
automatically
configuring,
my
dyna
trace
environment,
doing
the
deployment
running
some
tests,
evaluation
and
so
on.
So
this
is
also
a
nice
way
to
see
my
individual
sequences
that
I
have
specified
on
my
individual
tasks
within
a
sequence.
So
remember
I
am
currently
looking
at
the
demo
delivery.
A
I
have
def
staging
and
production
as
my
three
stages,
but
within
a
stage
I
always
execute
a
sequence
and
a
sequence
is
a
set
of
tasks.
A
B
Andy,
may
I
just
interrupt
you
because
ins
can
you
click
again
on
on
staging
or
dev?
I
just
want
yeah
here.
That's
perfect,
maybe
just
one
word
on
this
monaco
point,
because
we
have
not
seen
this
in
the
shipyard.
So
maybe
just
if
you
can
just
spare
one
word
on
why
we
can
see
it.
A
B
A
I
will
give
a
quick
overview,
so
here's
my
project,
my
demo,
delivery.
I
have
gitea
or
kitty.
I
think
that's
how
it's
called
and
if
I
look
at
my
shipyard
file,
then
under
in-depth
I
only
have
the
deployment
test,
but
in
staging
I
also
added
the
mono
task.
So
monaco
is
monitoring
his
code.
Now
I
could
have
decided
to
trigger
monaco
from
any
type
of
event
because
monaco,
what
monaco
does
it
reaches
out
to
my
dynadress
environment
and
make
sure
everything
is
correctly
configured
based
on
config
data?
A
I
have
in
my
in
my
config
repo
from
captain,
but
I
decided
to
add
an
additional
task
here
that
is
called
monitoring
as
code,
hoping
also
that
other
monitoring
vendors
in
the
future
that
have
some
automated
way
to
configure
their
monitoring
environments
may
also
create
a
captain
service,
for
instance,
automatically
configuring
data
dock
automatically
configuring
prometheus
or
new
relic.
That
would
be
great,
so
I'm
trying
to
establish
a
new
task
here
for
particularly
monitoring
configuration
right
and
in
my
case
you
again
if
I
go
back
in
my
staging
environment,
the
simple
note
under
dynatrace.
A
I
have
here
dashboards
and
management
zones
that
I've
specified
and
they
will
automatically
be
rolled
out
to
dynadress
for
me,
but
the
nice
thing
is,
I
have
the
source
of
truth
isn't
kept
in
here.
Thank
you,
good.
I
wanted
to
kick
off
another
build.
Where
is
my
environment?
So
here's
my?
Let
me
just
do
this
so
in
order
to
trigger
a
new,
a
new
sequence,
especially
a
delivery
sequence
right,
I
can
now
do
captain
trigger
delivery
for
the
project.
A
For
my
stage
I
start
in
depth
and
then
simple
node,
and
then
I
give
it
the
data.
So
what
this
will
now
do,
as
I
mentioned
earlier
in
the
slides,
it
will
craft
an
event
that
basically
tells
captain
hey.
Somebody
wants
to
trigger
the
delivery
sequence
for
the
dev
stage
in
this
product
and
project
for
this
service,
and
here
is
some
additional
information
that
is
needed
for
delivery.
So
because
you
say
captain
trigger
delivery.
It
takes
the
image
and
the
tag
parameter
and
packages
it
in
that
particular
data
block.
A
For,
for,
for,
let's
say
for
your
deployment
tools,
so
they
know
what
they
should
deploy.
So
if
I
go
back
in
here-
and
if
I
go
to
my
simple
node
now,
build
number
two
has
started
right
again.
This
is
the
view
where
only
we'll
see
things
like
approval
or
quality
gate
results,
the
things
that
are
important
for
you.
But
if
I
click
here,
I
see
that
deployment
has
already
kicked
off.
So
the
first
thing
right.
This
was
what
actually
sent
sh
captain
event
deployment
triggered.
A
So
it
triggered
the
deployment
task
and
you
can
see
in
here
under
the
configuration
change.
This
is
what
the
this
is,
what
the
the
cli
made
sure
that
it
put
it
into
the
right
data
block
and
for
because,
depending
on
kind
of
the
the
task
for
testing
and
for
notifications
and
for
anything
else,
you
have
different
data
blocks
and
everybody
adds
the
data
to
the
right
data
block,
cool
and
now
right,
you
can
see
your
deployment.
Helm
service
has
started
help
service
finish.
This
is
also
new.
A
A
I
have
one
thing
and
I
I've,
as
some
of
you
may
know,
I
love
performance.
Engineering
and
I've
been
doing
this
for
a
while.
So
I
thought,
how
can
I
use
captain
for
making
my
performance
as
a
self-service
use
case
even
better
than
before,
because
my
survey,
my
my
use
case,
was
always
captain.
I
tell
you
url
and
you
run
a
test
and
at
the
end,
you're
done,
but
now
I
said
with
the
capability
that
I
have
to
specify
sequences
and
I
can
quick.
I
can
define
a
sequence
that
had
been
triggered
by
another
sequence.
A
I
can
do
some
really
cool
things,
so
here's
what
I've
done.
I
have
said
if
I
want
to
performance
test
a
new
service.
I
first
and
maybe
I
need
my
magic
wand
again.
Where
is
it
here?
We
go.
I
basically
specified.
I
have
a
testing
sequence
first
that
has
a
functional
test.
So
first,
when
I
kick
off
testing,
I
want
to
run
a
quick
functional
test.
Just
validating
is
my
service.
Even
up
and
running
could
be
a
selenium
test
could
be
just
an
api
test.
A
Once
this
is
done,
I
wanna
run
the
sequence
performance
light,
so
performance
light,
then
I'm
really
so
bad
in
drawing
but
performance
light
is
triggered
if
the
functional
tests
are
passed
and
so
what
is
performance,
light
performance
light
runs
at
tests
with
a
very
light
workload.
Now.
Why
am
I
doing
this?
Because
in
performance
engineering,
I've
learned
that
a
lot
of
problems
can
be
identified?
Let's
say
with
just
two
virtual
users
and
it
doesn't
make
sense
to
run
a
10
hour,
10
minute
load
test
with
100
users.
A
If
they
can
already
have
a
quick,
does
it
even
scale
to
two
users?
So
that's
why
I
say
start
with
functional.
If
that's
okay
do
a
light
performance
test,
and
if
that
is
okay,
then
I
really
go
into
the
performance
stage
and
here
right
performance
stage.
It
is
triggered
if
the
functional
performance
light
is
finished
with
pass.
A
A
In
my
shipyard,
when
I
say
please
run
this,
I
will
trigger
the
sequence.
Captain
will
send
the
first
strategy,
the
first
test
event
with
functional
tests.
If
the
functional
tests
pass,
it
will
then,
as
I
just
said,
run
the
performance
light
tests.
It
will
do
the
evaluation
and,
if
that's
good,
then
it
will
trigger
kind
of
the
real
performance
tests,
all
right
cool,
and
so
in
this
case,
how
can
I
do
this?
The
way
I
I
do
this?
The
way
I
can
trigger
such
a
a
sequence?
A
Is
I
don't
I
I
can
do
it
through
the
captain
cli
by
doing
captain
scent
event,
but
I
have
to
craft
my
own
event
and
for
this
in
my
sample
I
just
wrote
a
little
shell
script.
That
is
exactly
creating
this
particular
json
file.
Here
right,
it's
basically
sh
captain,
I'm
one.
I
started
the.
I
started
the
functional
testing
phase,
so
I
trigger
the
function,
testing
phase
and
I
am
passing
in
the
url.
That's
all
I
do
and
then
captain
will
exactly
execute
the
stuff
that
I've
that
I
wanted
to
execute.
A
A
I
have
my
demo
advanced
performance.
I
have
functional
and
performance
stage.
I
have
my
app
under
test
and
here
earlier
I
triggered
I
sent
exactly
an
event
in
that
was
first
executing
some
functional
tests.
Here
I
didn't
have
specified
any
slos.
I
just
wanted
to
make
sure
if
I
click
on
view
sequence
is
my
my
test.
My
initial
test
score.
B
Think
it's
it's
a
great
way
actually
to
not
waste
any
resources,
because
you
can
first
check
if
the
environment.
If
everything
is
ready
for
testing
and
then
you
can
basically
hit
it
with
a
lot
of
load.
But
I
I
love
the
concept
of
this
performance,
light
that
you
basically
evaluate
if
everything's
ready
and
if
you
can
have
early
feedback
and-
and
you
don't
have
to
wait
for
one
hour
to
get
the
results
of
the
performance
test
when
when
you
know
that
they
will
be
failing
anyway,
because
of
some
dependency.
That's
not
ready.
A
A
It's
that
easy,
it's
really
cool
and
then
you
can
easily
click
here,
functional
performance
and
you-
and
I
also
like
this-
you
always
just
get
automatically
directed
to
the
heat
map,
which
is
also
really
cool
and
by
the
way,
the
heat
map
or
the
evaluation
result.
We
now
also
have
a
direct
link
to
it,
so
you
have
a
deep
link
where
you
can
say
captain
bridge
evaluation
and
then,
if
you
have
the
captain
context,
you
automatically
get
the
full
screen.
This
is
great.
A
You
know
all
right
good.
Another
thing
this
is
where
I
told
you
in
the
beginning,
we
kind
of
moved
away
a
little
bit
from
being
very
opinionated
to
give
you
more
freedom.
However,
we
know
that
we
wanna,
we
wanna,
show
you
that
we
have
an
opinion
and
hopefully
a
good
opinion
on
on
certain
things.
So
if
you
want
to
create
this,
I
would
say
the
number
one
use
case
right
now
that
we
have
with
captain
that
we
see
that
our
users
are
using,
which
is
quality
gates.
A
You
don't
need
to
craft
a
complex
shipyard
file,
so
I
have
three
versions
here
and
the
first
two
are
actually
doing
the
same
thing
you
can
see
on
the
left
side.
If
you
create
a
shipyard
file
and
you
just
specify
the
stage
name,
then
you
can
use
kept
and
say,
captain
trigger
evaluation
project
survey,
stage
time
frame
labels,
whatever
it
will
automatically
take
the
shipyard
and
implicitly
create
an
evaluation
sequence
with
an
evaluation
task.
A
So,
basically,
if
you
use
this,
it's
the
same
as
the
one
in
the
middle,
you
can
also
create
it
of
course,
the
same
way,
but
we
kind
of
have
a
certain
opinion
on
that
and
you
can
just
create
a
very
simple
shipyard
file.
Now
what
I
have
done
in
some
of
my
demos,
I'm
extending
that
simple
version
and
because,
before
I
run
the
quality
gate
evaluation,
especially
with
dynamic
trace,
I
always
run
monaco,
because
monaco
is
first
making
sure
that
dynatrace,
so
my
monitoring
tool
is
properly
configured.
A
So
let
me
show
you
this
quickly
as
well.
I
have
my
dynatrace
project
here,
my
qualitygate
sequence
and
demo,
and
what
I
can
do.
If
I
go
to
my
cli,
I
can
say
here
captain
trigger
and
if
I
don't,
if
you
don't
know
it
by
heart,
you
can
do
something
like
this
trigger
evaluation
and
then,
if
you
do
help,
this
is
really
helpful.
That's
why
they
call
it
help.
I
guess
captain
trigger
evaluation-
and
I
can
say
project
in
my
case-
is
dynatrace
service-
is
demo
stage,
is
quality
gate.
A
I
think
that's
how
I
called
it
and
now
I
can
say
time
frame
equals,
let's
say
30
minutes,
and
what
I
also
really
love
is
that
I
can
do
labels,
and
I
can
say
you
may
know
that
we
have
one
special
label
build
id,
so
I
can
pass
in
the
build
id.
If
I
have
something
run
by
andy
watched
by
here
again,
all
right,
I
can,
I
can
add
labels
and
now
just
choose
not
oh
yeah.
I
need
to
push
dash
stage
here.
A
A
It
was
watched
by
jurg,
it
was
run
by
andy
and
what's
also
nice
is
in
my
case
I
actually
have
a
dashboard
behind
the
scenes
and
it's
this
dashboard
here-
and
this
was
also
created
before
the
quality
git
was
executed
by
monaco,
and
this
dashboard
is
something
I
have
in
my
config
repo.
It
will
automatically
be
created
every
time
around.
It
will
make
sure
that
it's
it's
there,
so
really
sweet.
B
A
Exactly
so,
then,
I
think
I've
shown
you
this.
I
ran
all
of
this,
that's
good,
so
here's
some
good
to
knows-
and
this
is
also
where,
thanks
to
johannes,
who
gave
us
some
insights
this
morning
and
I'm
sure,
there's
more
coming,
you
can
add
and
remove
sequences
and
tasks.
So
that
means,
if
you
decide
that
you
want
to
add
a
new
sequence
in
a
certain
stage,
you
want
to
add
or
remove
tasks.
You
can
do
it
now.
A
The
only
thing
that
is
not
possible
right
now
is,
you
cannot
add
or
remove
stages,
but
this
is
also
planned.
I
told
you
the
opinionated
versus
non-opinionated,
so
we
give
you
more
freedom,
I'm
pretty
sure
we
want
our.
We
want
in
the
end.
Also
give
you
more
opinion
again.
If
you're,
starting
with
a
multi-stage
delivery,
you
may
not
want
to
craft
a
full
like
pipeline
that
I
had
or
shipyard
file.
So
I'm
sure
we
will.
A
We
will
do
this,
but
I
think
this
is
where
we're
in
a
very
good
state
right
now,
where
we
give
you
the
freedom,
but
we
also
have
for
especially
for
the
quality
gates,
a
good
default,
the
approval.
This
is
something
that
I
learned
right
now
only
makes
sense
after
an
evaluation.
So
it's
right
now
in
captain
07,
we
always
had
the
approval
in
the
in
the
target
stage.
Let's
say
in
production,
you
were
asked:
do
you
want
to
let
something
in
from
staging?
A
A
If
you
do
the
approval
in
the
in
the
beginning
of
a
stage,
it
doesn't
have
access
to
the
previous
results.
So
this
is
why
the
best
practice-
and
I
think,
also
based
on
the
tutorials
that
we
have
out
there
right
now.
We
have
the
approval
always
at
the
end
of
a
stage,
and
then
we
say
is
it
good
to
go
into
the
next?
A
This
is
something
that
I've
learned
very
quickly,
because
this
is
also
new.
For
me,
it
was
new
for
me
we
have
no
longer
just
a
deployment
strategy,
but
now
we
have
a
couple
of
new
tasks.
We
have
a
deployment
task,
a
release
task
and
a
rollback
task,
so
these
are
well-defined
tasks,
and
so
the
idea
is
with
deployment.
Your
deployment
tool
should,
let's
say,
deploy
a
canary
and
then
turn
on
and
manage
the
canary
deployment
or
blue
green
and
maybe
switch
the
traffic
releasing
means
after
you've
done
the
deployment
and
the
testing
release
means.
A
A
So
there's
I'm
sure
different
ways
how
you
can
integrate
this
now
I
tried
to
highlight
how
this
works
with
captain's
helm
service,
because
captain
comes
with
an
out-of-the-box
helm
service
that
you
can
use
and
it
uses
that
the
one
the
thing
it
can
do
with
istio.
You
can
do
blue
green
deployments,
but
it
also
allows
to
do
two
direct
deployments
and
I
try
to
visualize
what
happens
right
now.
A
If
you
do
a
direct
deployment
with
captain
all
the
box
capability
and
let's
say
your
version-
one
right
now
deployed
in
a
stage
and
you
divert
the
deploy
version.
Two
that's
a
direct
deployment
and
that's
it
if
the
deployment
is
then
tested
and
validated,
and
you
have
a
release
tasks
in
your
pipeline.
Like
I
had
actually
nothing
happens,
it
just
stays
there.
If
you
do
a
rollback,
nothing
happens.
It's
a
direct
deployment.
Nothing
happens.
Okay.
This
is
the.
This
is
why
you
specified
direct
deployment.
You
just
override
the
old
one.
A
Now
with
blue
green,
it's
a
little
different
with
blue
gleam
blue
green.
If
you
have
you're
having
istio
as
a
load
balancer
and
if
you
have
version
one
as
the
primary
out
there
right
now
and
then
you
say:
hey
captain
knife
version
number
two:
it
will
deploy
version
number
two
as
a
canary
and
also
redirect
the
traffic.
A
A
Now,
if
it's
a
rollback,
then
it
will
basically
switch
back.
That's
kind
of
the
idea.
It
will
go
back
to
the
the
initial
state.
This
is
how
captains
helm
service
work.
I
know
we
have
a
lot
of
folks
that
are
asking
for
argo,
rollout
support
right
now
and
for
other
things,
I'm
sure
we'll
figure
out
the
best
way
how
to
integrate
these
tools
using
these
three
tasks:
good
click
on
eventing
and
tool,
integration,
because
I
know
you
can
you
have
done
already
a
lot
of
tool
integrations
with
o8,
especially
uplifting.
B
A
Other
tools,
I
can
really
recommend
you
to
watch
christian's
youtube
video
that
he
published
actually
end
of
january.
It
might
no
longer
be
completely
up
to
date,
because
this
was
the
alpha
version
of
capno8,
but
he
did
a
great
job
in
explaining
the
new
event
thing
and
how
all
this
works
with
started
with
triggered.
We
started
with
finished
events
really
cool,
just
to
give
an
example
of,
for
instance,
how
that
chemical
service
works.
A
So
but
it's
always
a
triggered
and
then
a
start
and
a
finished
and
based
on
that
the
shipyard
controlling
captain
makes
the
decision.
Do
we
continue
with
that
sequence
with
the
next
task?
Is
the
sequence
finished
yes
or
no,
and
what
happens
next
good?
You
can
build
your
own
stand.
Existing
services,
captain
service
template
go,
has
been
updated
already.
I
think
it
was
christian
again
who
did
a
great
job
here.
There's
already
some
other
services
like
litmus
and
lowcast
and
the.
A
A
A
So
what
you
can
do
is
you
can
install
just
the
captain
control
plane
on
any
kubernetes
cluster
like
I
have
it
on
k3s
control.
Plane
means
you
get
the
the
core
components:
the
shipboard
controller,
the
lighthouse,
the
configuration
service-
and
maybe
you
add,
some
additional
services.
Whatever
you
you,
you
think,
should
be
part
of
the
control
plane
and
then
you
can
install
those
services
that
need
to
do
a
job
and
need
to
execute
a
task
on
a
target
environment.
A
Let's
say
you're
running
your
pre-prod
environment
on
some
eks
cluster
somewhere,
so
you
can
install
the
execution
plane
there
and
then
you
can
install,
for
instance,
that
you
meter
service
the
helm
service,
whatever
other
service,
maybe
we'll
have
a
spinnaker
service
in
the
future
or
argo
service.
On
that
cluster
and
important
here,
when
you
configure
that
service
remember,
every
captain
service
has
the
service
itself,
and
in
that
same
deployment
you
have
the
service
port
or
the
service
container
and
the
so-called
distributor
container.
A
The
distributor
is
the
one
that
is
listening
for
events
from
captain
and
you
can
now
configure
that
distributor
to
not
only
listen
for
events
within
that
same
cluster,
but
you
can
say
please
reach
out
to
that
captain
api
over
there
and
you
need
to
specify
api
endpoint
and
token
so
that
this
is
the
way
it
works.
And
then
you
can
say
hey.
A
Then
you
may
have
a
a
broad
cluster
on
gke,
and
here
you
would
say
for
all
the
projects
for
all
the
services,
but
only
where
the
stage
is
production
gk
and
then
you
may
have
another
on-premise
kubernetes
cluster,
and
then
you
do
the
same
thing
here.
So
the
idea
is
really
then
these
are
constantly
polling.
A
For
events
and
for
you
in
the
end,
it's
completely
transparent
and
what's
also
nice-
and
this
is
kind
of
my
last
thing
that
I
want
and
then
I
you
can
also
if
you
want
to
demo
something
because
I
realize
I've
just
talked
45
minutes,
but
the
way
the.
What
this
enables
you
to
do-
and
this
is
something
that
I
remember,
that
the
folks
from
abu
dhabi
have
asked
for
it
and
also
christian
hegelman.
A
A
Exactly
so
your
game,
I
didn't,
have
a
remote
because
I
completely
messed
up
my
environment
about
two
hours
ago.
I
know
you
have
a
remote
system
in
the
end,
it's
it's
very
transparent
to
the
end
user,
because
it's
just
you
don't
really
see
anything
in
the
different
in
the
bridge
because
it
just
happens
magically
but
yeah.
If
you
want
to
show
your
environment
if
any
other
questions
are
coming
in,
let
us
know
sure.
B
So
I
can
quickly
show
my
environment.
What
you
already
said
is
it's
basically,
I'm
not
sure
if
I'm
already
yeah,
I
think
I'm
sharing.
So
it's
basically
very
transparent.
B
B
So
what
I've
done
is
I
spun
up
a
very
small
cluster
kubernetes
cluster
and
I
installed
only
one
service,
so
there
is
no
need
for
the
captain
control
plane
running
on
it.
There
is
no
need
for
any
other
capture
dependency
running
on
it.
You
basically
have
one
service
running
in
my
case,
it's
the
locust
service.
So
this
is
how
I
installed
it.
I
installed
it
with
help
install
with
the
local
service.
There
will
be
the
helm
template.
B
The
help
chart
will
be
provided
also
as
part
of
the
captain
service
template
that
we
right
now
already
provide
for
go,
and
this
part
to
also
make
it
available
already
for
multi-cluster
support
it's
right
now,
not
there.
We
will
edit
and
it's
basically
a
help
chart
behind
the
scenes,
with
a
value
style
that
we
that
you
just
have
to
to
adopt,
which
is
only
a
couple
of
lines
and
also
this
file
here
or
that
that's
basically,
this
file,
the
values
file
that
you
will
adopt
and
is
I've
just
added.
B
Basically,
my
host
name,
where
my
captain
control
plane
lives,
a
token
I've
removed
the
token
just
before
this.
This
presentation
so
but
just
be
reminded.
There
is
a
token,
and
one
very
important
part
is
here
that
it
is
the
control
plane
is
on
a
remote
cluster.
It's
not
on
the
same
cluster,
so
you
have
to
set
this
to
true.
It's
a
remote
control,
plane
and
then
basically
yeah
things
that
you.
That
should
not
surprise
you
like,
which
server
which
image
you
want
to
run
the
image
for
policy
right
here.
B
B
It's
the
only
part
that
I've
running
on
this
cluster,
basically
besides
on
the
the
kubernetes
ones,
but
there
is
no
other
captain
instance
or
anything
running.
So
I
have
one
service
running
here
and
it's
my
locust
service.
I
just
keep
this
for
a
second,
because
what
we
now
want
to
do
is
just
trigger
this
integration,
and
I
do
this
with
a
deployment
event,
so
we
can
do
it
in
the
same
way
as
you
might
already
have
done
this
earlier
with
the
captain
sent
event
and
I'm
just
sending
a
deployment
event
to
this.
B
We
can
also
take
a
look
really
quick
on
this
deployment
event.
It's
just
the
pushing
or
just
basically
sending
to
captain
the
image
the
replica
account
and
yeah,
basically
where
it's
coming
it's
coming
from,
so
nothing
very
special
and
let's
just
send
this
captain
same
event
and
I'm
sending
this
to
the
captain
control
plane,
so
not
to
the
cluster
that
I
just
showed
you,
but
this
is
going
to
the
captain.
Control
plane,
we
can
take
a
look
in
the
captain's
bridge.
I
just
started
this
a
second
ago.
B
Deployment
is
already
finished.
It
was
very
fast
because
I
already
did
the
deployment
earlier,
so
it
was
basically
just
checking
if
it's
still
the
same
version,
so
deployment
is
finished,
all
good
tests.
So
actually
right
now,
I
start
two
tests.
B
One
is
elitmus
chaos
test
and
the
other
one
is
locust,
so
litmus
was
actually
started
on
the
same
cluster.
It's
this
cluster,
where
I
do
have
the
deployment.
So
I'm
kind
of
messing
with
my
deployments
cluster,
but
the
traffic
is
coming
from
outside
from
the
local
service
and
right
now,
I'm
just
waiting
for
both
services
to
be
finished.
It's
also
a
cool
part
of
captain
0.8.
B
B
It
does
not
even
have
to
know
that
there's
a
local
service
running
and
the
other
way
around,
so
each
service
can
act
autonomously,
let's
say,
and
they
will
just
announce
when
they're
whenever
they're
finished,
so
they
indicated
already
that
they
have
started
both
services
and
they
will
also
indicate
when
they're
finished
my
load
tests
here
again
coming
from
outside
of
the
cluster.
Maybe.
A
B
See
this
yeah,
we
can
see
it's
already,
it's
initialized,
it's
got
the
event,
it's
already
starting,
it's
sending
the
traffic
from
outside,
and
it's
sending
this
to
this
instance.
So
my
hello
service
is
running
on
this.
Cluster
locus
is
right
now
executing
these
tests
and
they
will
take
two
minutes
to
be
finished.
So
after
two
minutes,
I
will
see
the
result
and
the
result
will
be
sent
to
captain,
and
I
can
also
see
it
in
the
bridge.
B
The
locals
integration
with
sorry,
the
litmus
integration
would
it's
usually
a
little
bit
faster.
So
in
this
case
it
actually
was
a
little
bit
faster.
Lit
was
already
finished.
Captain
does
not
move
on
to
the
next
stage
yet
or
to
the
next
task,
because
it's
still
waiting
for
the
other
started
test
to
be
finished.
So
whenever
the
locus
is
finished,
we
will
send
back
to
captain
will
send
back
the
result,
so
we
can
see
a
little
bit
of
a
messy
output
here.
This
is
just
because
why,
because.
B
Integration,
but
what
we
can
also
see
it's
working
and
one
part,
was
executed
on
the
same
cluster
where
capital
was
installed.
The
other
part
was
executed
on
a
completely
different
cluster,
same
thing,
all
the
traffic
to
the
to
the
captain
installation,
or
actually
to
my
hello
server
application
and
whenever
both
are
finished,
captain
moves
on
with
the
evaluation-
and
I
can
see
evaluation
in
this
case.
Let's
take
a
look,
but
we
saw
it
was
green
and
evolution
all
good
here
with.
Although
I
had
some
chaos
running
on
this
and
yeah.
B
Said
we
cannot
see
really
all
the
magic
going
on
behind
it,
but
the
installation
procedure
of
remote
services,
it's
really
easy
and
yeah.
That's.
We
know
that
this
feature
was
asked
for
a
lot
of
times
and
I'm
really
happy
that
it's
here
and
it's
really
great
to
use.
So
please
give
it
a
try.
A
Hey,
I
got
a
question.
I
know
that
johannes
is
on
the
line.
Maybe
we
can
promote
him
through
to
panelists,
hopefully
still
there,
because
if,
if
I
understand
this
correctly,
the
only
thing
you
install
on
the
execution
plan
is
really
just
some
service
that
is
listening
on
an
api.
It's
pulling
the
captain
api.
So
that
means
we
have
no
dependency
at
all
anymore
to
kubernetes,
that's
correct,
yeah!
That's.
A
Just
yeah
pulls
on
the
api,
and
that
is
what
it
does
yeah.
So
that
means
we
can
run
this
anywhere,
and
this
is
a
this
is
phenomenal.
I
mean
the
control
plane.
Yes,
it
makes
sense
that
we
run
it.
Obviously
we
have
the
dependency
and
it
and
and
it's
architecture
for
kubernetes,
but
the
execution
plan
can
run
anywhere.
This
is
really
cool.
B
A
B
Case
it's
a
port
with
two
containers
in
it,
so
we're
still
using
the
concept
of
kubernetes
parts.
Basically,
you
can
mimic
the
same
with
other
concepts.
A
A
A
A
Cool
and
in
theory,
if
somebody
doesn't
want
to
have
two
containers,
you
could
even
probably
build
a
captain
service
that
includes
the
logic
of
the
distributor.
Right
I
mean
that's.
That's
is
really
phenomenal.
Thanks,
johannes
welcome
for
that
clarification,
good.
Are
there
any
other
questions
from
anyone
in
the
audience?
A
If
you
have
a
question,
we
can
either
promote
it
to
a
panelist,
I
guess,
or
just
start
with
q,
a
the
q
a
window.
That's
always
the
easiest.
I
know
it's
late
for
many
of
us
based
considering
or
charging
by
the
names.
I
think
a
lot
of
people
are
from
europe
or
even
further
east.
So
it's
late,
some
are
in
the
u.s.
I
see
jeff
there.
A
Johannes
says
I
have
you
on
the
line
and
as
we're
waiting
for
question
the
the
thing
that
I
mentioned
with
the
approval.
This
is
really,
I
think
something
we
should
probably
look
into
as
a
like.
A
What
what
do
we
really
expect
and
what
is
the
best
practice,
the
approval
at
the
end
of
onstage
or
the
approval
at
the
beginning,
and
if
it's
at
the
beginning,
how
do
we
get
that
result
over
because,
right
now,
if
it's
in
the
beginning
of
the
stage
it
seems
it
doesn't
have
to
result
from
the
previous
stage,
the
previous
one
yeah
I.
A
B
B
B
Developers
also
joining
right
now,
so
andy
has
also
highlighted
that
there
is
a
video
from
christian
how
to
migrate.
Your
already
existing
integrations
to
captain
from
7.x2.8.
B
B
You
just
have
to
make
good
use
of
all
the
utility
functions
that
the
captain
development
team
already
provided,
and
it's
it's
quite
easy
and
we
are
happy
to
see
all
these
integrations
being
migrated
to
the
latest
version
of
captain,
because
it
really
gives
you
all
this
power
and
flexibility
that
we've
just
seen
also
in
the
demos
from
andy-
and
I
think
it's
really
great-
and
that's
not
just
only
the
video
christian
also
provided.
A
B
A
B
Thanks
so
much
andy
for
for
rushing
us
through
this,
the
demos
and
also
the
great
explanation
how
on
the
changes
between
1.7.x
and
the
latest
version
of
captain,
I
just
want
to
highlight-
we
do
have
our
captain
developer
meetings
each
thursday.
So
whenever
you're
watching
this
video
also
make
sure
on
thursdays,
we
are
having
captain
developer
meetings
and
we
are
focusing
also
on
community
contributions
and
helping
the
captain
community
there
to
get
started.
B
We
will
have
great
content
this
week.
On
thursday.
We
actually
have
two
community
contributors
showcasing
what
they
have
done,
so
please
make
sure
to
tune
in
there
as
well.
Thanks
so
much
everyone
for
today
and
hopefully
see
you
all
in
the
next
captain
community
meeting
in
about
one
month
thanks
andy
thanks,
johannes
also
for
joining
and
and
sharing
all
your
insights
and
yeah
with
that,
I
think
we
can
close
it
for
today.