►
From YouTube: Keptn Refinement Meeting - May 30, 2023
Description
Meeting notes: https://docs.google.com/document/d/10Fig1eYFZ9iQFSYWkz0c4eTwzgJiPtQI5IsczbvLsuE/edit
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
Sign up to our newsletter: https://bit.ly/KeptnNews
A
A
Another
one
is
to
get
rid
of
the
scheduler
in
favor
of
the
Readiness
Gates
API,
and
the
last
part
is
one
on
the
top
start
to
support
different
runtimes
for
running
tasks,
not
just
note
or
Dino
in
particular,
but
also
Python
and
containers,
since
Python
and
container
should
be
the
main
focus
of
the
next
release.
I
would
suggest
to
start
with
this,
or
do
you
have
a
ticket
that
you
would
like
to
talk
in
particular,
I
see
nope
from
Anna
and
I
will
take
that
the
group
says
no.
B
Tickets,
Giovanni
you're
not
sharing
still.
A
A
B
Was
writing
this,
so
I
can
talk
yeah
they
what's
basically
in
this
ticket,
as
Johnny
already
mentioned,
we
want
to
introduce
another
possibility,
how
to
run
or
what
to
run
into
part
of
Captain
task.
In
this
case,
we
want
to
introduce
a
patent
time
runner
in
the
which
will
be
used
in
the
berries,
a
similar
manner
as
the
dino
or
node.js
Runner
is
currently
working.
So
the
first
task
is
to
create
such
an
image.
B
So
that
means
we
need
to
create
a
small
script
that
will
actually
run
the
user-defined
Python
scripts
and
additionally,
to
that
to
create
a
Docker
file.
So
we
can
build
this
to
an
image
that
we
can
afterwards
used
as
a
part
of
Captain
tasks
or
Antarctic,
and
that
means
part
of
the
jobs
that
are
run
part
of
the
captain
tasks
yeah.
So
what
needs
to
be
done
is
mentioned:
small
bash
script,
accepting
the
environment
variables
which
are
passed
to
the
python
to
the
script
and
a
Docker
file
for
building
the
image.
B
There
is
a
POC
of
brief
implementation
as
previously
to
these
tickets.
Research
was
mate
and
therefore
that
we
know
the
what
all
what
needs
to
be
implemented
and
such
things.
C
All
the
PIP
packages
which
are
referred
here
is
there?
Is
there
any
documentation,
but
any
discussion
made,
which.
C
Just
just
doesn't
question:
was
there
some
kind
of
discussion
or
or
or
yeah
was
there
some
kind
of
discussion
which
tip
packages
should
be
installed
by
default
in
this
container.
B
That's
I
was
I,
was
doing
the
research
back
then,
and
therefore
I
referred
to
these
packages.
I
think
it
was
good,
but
if
you
open
Giovanni
the
docker
file
example,
there
is
a
list
of
packages
that
are
installed
as
part
of
the
image.
B
B
Got
it
we're
building
the
image
already
on
existing
python
free
run
time,
but
because
of
we
want
to
inject
some
additional
command
line
parameters
that
can
be
injected
for
a
casual
python
script.
Therefore,
we
need
to
create
a
simple
wrapper
around
it,
so
we
can
actually
pass
it
and
make
use
of
it.
Yeah.
A
D
E
A
E
Yes,
that's
what
I
was
thinking.
That's
why
I
was
going
for
a
large
thinking
of
the
bigger
pictures.
This
is
a
smaller
one.
Never
mind
no
worries.
A
A
B
This
we
already
have
a
function
runtime
mentioned
as
ignore
dependencies
in
the
in
the
renovate
configuration
so
I
guess.
This
means
that
this
dependency
isn't.
D
D
A
B
One,
the
second
one
is
doing
edit
yeah.
As
you
can
see
the
following
pipelines.
Actions
are
adapted,
Deploy
klt
on
cluster
there,
it's
an
action
where
we
actually
deploy
the
klt,
and
this
needs
to
be
adapted
there,
or
these
are
the
basically
pipelines
or
actions
that
need
to
be
adapted
in
the
way
that
the
python
Runner
or
python
runtime
image
is
built,
tested
or
whatever
in
there
now.
A
I
get
confused
by
the
configuration
and
the
pipeline,
but
no
it's.
D
A
B
Yes,
so
this
is
the
actual
implementation
in
the
operator,
with
the
use
of
the
already
created
image.
First
thing
we
need
to
do
is
introduce
a
new
python
parameter
into
the
cap.
Captain
task
definition
spec,
so
the
user
can
actually
Define
the
container
and
the
volumes.
B
And
so
gosh
I'm
I'm
thinking
about
one
ticket
and
speaking
about
under
sorry,
the
user
can
actually
Define
the
python
script
and
python
parameters
to
the
captain
task
definition.
Spec,
that's
the
first
point,
I
think
that's
pretty
clear.
We
want
to
add
the
possibility
to
the
function,
reference
to
Define,
an
inline
function
to
define
a
HTTP
reference,
Define,
the
the
script
via
the
config
map
reference
and
then
some
additional
parameters.
D
D
A
B
The
klt
operator
deployment
pointing
to
a
new
python
Runner
image,
so
we
will
have
in
the
same
manner
as
for
the
functions
runtime
environment
variable,
which
value
is
the
actual
image
of
the
of
the
Python
Runner.
B
So
when
the
when
the
inline
function
is
defined
for
the
python
Runner
there,
this
function
should
be
stored
in
the
config
map
and
afterwards
referenced
in
the
task
definition
and
the
task
so
fairly
again
copying
the
path
which
the
JS
Builder
is
working
in.
D
C
H
C
B
B
B
A
Was
not
really
yeah?
Okay,
both
controllers
need
to
be
adopted.
A
A
G
Taking
for
granted
that
this
should
happen
after
the
two
runtime
have
been,
or
after
this,
each
of
the
runtime
has
been
implemented,
take
just
the
examples
and
the
samples
that
we
should
provide
and
put
them
in
the
captain
task
right
now,
as
far
as
I
could
tell
the
only
place
in
documentation.
Is
this
write
task
where
we
make
directly
examples
only
with
the
dino
so.
G
A
Because
my
problem
with
that,
it's
F
mixed
opinions.
A
E
It's
updating
a
section
that
is
not
yet
written,
but
is
it's
going
to
need?
A
little
piece
in
I
mean
maybe
a
couple
of
paragraphs
but
in
architecture
about
how
tasks
are
executed
specifically
because
you
have
the
different
runtimes.
A
So
let
me
go
to
the
phone
by
the
one
first,
where
is
the
architecture?
Oh.
E
It's
under
Concepts
right
now,
which
is
not
good.
It
needs
to
be
upstairs
and
it
doesn't
have
much.
It's
I
mean
I'm
rich,
just
back
working
on
it.
We
don't
have
a
lot,
so
we
as
I
say
we
did
the
first
section
we
do
not
yet
have,
but,
but
it
seemed
to
me
like
how
tasks
got
executed
just
got
a
lot
more
interesting
from
an
architect.
You
know
just
a
little
bit
about
how
how
Captain
figures
out
which
run
time
to
pull
for
a
task.
E
And
can
I
can
I
have
an
application
where
some
tasks
are
written
in
JavaScript
and
some
are
in
Python.
A
E
A
First
of
all,
so
you
have
time
to
estimate
mention
the
limitation
about
seeing
what
around
time
per
task.
A
A
E
I
really
vacillated
as
to
whether
it
be
small
it
actually
is
not
that
much
writing
I
think
the
biggest
one
is
going
to
be
getting
the
extra
examples,
extra
tested
examples,
and
that's
why
I
went
to
medium.
But
my
writing,
I
think,
is
fairly
small.
A
G
A
D
A
No
worries
on
that,
so
the
next
one
is
to
introduce
a
validation,
Web
book
because
we
mentioned
in
the
previous
ticket.
There
are
several
several.
There
is
a
limitation
that
we
don't
allowed
to
provide
in
a
captain
task
definition,
a
definition
for
a
node
runtime
and
a
python
runtime,
but
only
one
of
the
two.
A
E
What
happens?
Okay,
I'm,
trying
to
think
the
the
the
third
Syntax
for
the
current
function?
Ref?
Is
that
you
list
a
whole
bunch
of
other
tasks
in
this,
so
you
have
one
task
that
actually
comprises.
Several
tasks
are
all
of
those
tasks
going
to
have
to
be
either
JS
or
python?
Or
could
you
call
a
mix.
D
G
Usb
or
as
I
can
imagine,
this
logic
is
now
contained
in
the
specific
JavaScript
function:
runtime
as
we
refactor
it
right
now,.
E
B
D
A
A
A
G
H
Yeah
the
complexity
of
the
web
hook
itself
is
obviously
not
that
high,
but
with
tests
being
added,
and
also
recently
this
product
a
little
bit
with
adding
a
validating
that
book
to
the
Matrix
operator,
because
it
seems
like,
for
example,
Cube
Builder
wasn't
creating
develop
validating
that
configuration,
so
I
had
to
do
some
troubleshooting.
That's
why
I
have
heard
by
us
more
towards
the
higher
complexity
value
right
now
in
this
particular
area.
I
If
you
work
on
it
together,
sorry
I
couldn't
hear
you.
You
mentioned
us
irration
picking
up
this
this
issue.
Should
they
work
on
the
issue
to
data
I
want
to
do
more
clarification.
If
you
should
work
on
the
issue
together,
yeah.
I
A
Sure
mind
that
there
is
a
dependency,
so
first
we
need
to
implement
the
runtimes.
Then
we
can
add
the
validation
of
the
book,
so
you
could
start,
but
you
won't
be
able
to
finish
or
best
better
say
you
will
not
be
able
to
test
it.
So
I
would
ping
both
of
you
as
soon
as
we
finished
to
implement
the
container
runtime
and
the
python
runtime,
and
thanks
a
lot
for
basically
volunteering
to
implement
this.
A
Let
me
keep
this.
You
know
the
window,
so
don't
forget
to
add.
E
A
D
A
I
D
A
That,
meanwhile,
did
we
cover
everything,
or
this.
A
I
A
A
Yes,
so
we're
already
spoiled
a
bit
the
content
of
this
ticket
speaking
of
the
remaining
tickets,
but
we
want
also
to
support
General
container
runtime.
So
you
just
provide
the
image
tag
and
we
run
that
as
part
of
pre-imposed
task
only
base
look,
or
only
basically,
we
decide
if
the
task
is
successful
or
not.
Based
on
the
return
code
of
the
container.
A
G
Yes,
so
thank
you.
We
agreed
that,
basically,
we
want
to
leave
freedom
to
user
to
set
up
whatever
container
they
would
like
as
a
task.
So
the
idea
is
to
introduce
a
spec
like
we
have
for
our
script
functions
back
for
the
containers
pack
and
this
pack
will
contain
the
container
single
container
that
can
be
run
and
the
list
of
volumes
that
are
associated
with
at
the
beginning.
D
A
G
So
basically
that
needs
to
be
added
in
the
API
and
then
we
need
to
do
exactly
the
same.
That
is
there
for
the
JavaScript
just
for
this
container,
so
we
need
to
implement
the
interface
with
this
function.
I
mentioned
here,
and
this
function
should
return
exactly
what
we
parse
from
this
container
spec.
F
G
There
are
two
large
function
used
for
the
logic
of
the
generic
building,
one
to
decide
which
one
is
the
runtime
and
want
to
decide
whether
or
not
we
do
have
a
runtime
defined.
And
this
should
be
updated
to
ensure
that
we
check
also,
for
instance,
and
then
tests
and
thus
for
Andre's
description.
Before
modifying
the
examples
and
examples
so
that
we
have
done.
A
A
B
But
that's
we're
speaking
about
volumes
and
volume
mounts.
Therefore,
if
we
reference
a
container
there,
we
can
mount
anything
inside.
B
B
A
But
the
container
part
is
just
saying
this
volume
in
which
folder
in
the
local
file
system
is
mounted,
and
it's
not
saying
here
in
the
job
level
volume
part.
Let's
say
there,
you
can
say:
I
want
this
AWS
bucket
S3
bucket,
for
instance,
to
be
mounted
and
then
in
the
container
side.
Okay,
this
is
a
free
bucket
in
which
folder
I
can
find
the
files.
G
A
A
A
A
G
A
A
I
can
change
my
cost
after
I'm
a
bit
scared.
A
And
I
told
up
this
part
but
I
trust
the
remaining
of
the
maintainers.
G
E
G
E
A
A
A
We
don't
have
any
research
label
for
this,
and
the
remaining
one
are
for
the
following
up:
Milestone
0.9.
So
since
we
have
only
12
minutes,
I
don't
want
to
open
Pandora
box
I
start
to
discuss
a
very
huge
topic
and
set
of
tickets
that
are
connected
between
each
others.
So
we'll
skip
these
for
next
week.
H
Yes,
of
course,
here
right
now
we
have
the
problem
or
the
inconvenience
that,
for
example,
we
have
dependencies
between
our
sub
modules.
So,
for
example,
the
life
cycle
operator
depends
on
the
Matrix
operator
because
we're
using
the
metrics
in
the
evaluations
and
both
of
those
operators
are
using
parts
of
what's
located
in
the
certificate
manager,
because
this
now
also
provides
the
library
functionality
where
it
can
make
sure
that
the
certificate
secrets
for
the
web
hooks
is
available,
and
therefore
we
have
this
inconvenience
that
we
frequently
have
to
upgrade
the
dependencies.
H
For
example,
when
we've
changed
something
in
the
certificate
manager,
we
get
a
renovate
PR
that
upgrades
the
dependencies
in
the
operators
and
then,
if
we
have
merged
that
dependency
update
in
the
metrics
operator,
we
get
another
renovate
PR
in
the
life
cycle
operator
and
to
make
this
a
little
bit
easier
for
us.
We
should
look
into
go
workspaces,
which
is
the
yeah
a
recommended
way
of
handling
these
kinds
of
situation
where
you
have
dependencies
between
different
sub
modules
within
repositories.
H
So
with
the
go
workspace,
you're
able
to
just
use.
What's
here
in
the
same
Repository
and
as
an
example,
I've
linked
the
flag,
D
repository
of
the
open
feature
project,
because
they
have
a
similar
concept
where
they
have
a
shared
core
sub
module,
which
is
then
used
by
other
modules
in
the
same
Repository.
H
So
we
can
look
into
into
using
the
same
concept
here.
For
the
most
part,
it
should
be
a
relatively
straightforward.
H
H
Yeah,
that's
actually
included
in
this
second
paragraph
here.
I
only
mentioned
the
docker
files,
but
also
the
made
files
and
therefore
also
the
the
pipelines
using
them
will
likely
be
touched.
A
A
A
A
A
For
that
we
need
to
do
a
bump
into
our
dependencies
and
start
to
use
the
controller
runtime
V
version.
015,
although
this
version-
it's
not
that
very
easy
to
bump,
because
there
are
a
lot
of
breaking
changes,
so
the
first
one
is
to
reward
how
we
do
the
injection.
Sorry,
oh
we
yeah.
We
do
a
dependency
inject
of
the
decoder
and
we
cannot
do
like
we
were
doing
before.
We
need
to
change
that
and
also
other
few
things.
A
A
This
new
webbook
is
registered
only
for
creates,
so
he
has
only
permission
or
it's
only
invoked
when
a
new
manifest
a
completely
fresh
new
manifest,
is
being
applied
against
the
apis.
If
a
manifest
is
updated,
then
this
webwork
will
not
be
invoked,
and
here
this
webbook
just
mutates
the
Manifest
in
order
to
add
a
Readiness
gate
instead
of
the
scheduler.
Now
we
add
a
Readiness
gate,
but
everything
should
be
behind
the
feature
flag.
A
Oh
sorry,
this
is
the
feature
flag.
So
if
this
kld.reddineskates
feature
flag
is
true,
then
this
Behavior
will
occur.
Otherwise
this
workbook
will
do
nothing.
We
simply
said
yes,
everything
that
you
send
to
the
API
server
is
fine
for
me.
Why?
This?
Because
we
don't
get
want
to
get
rid
of
the
scheduler
immediately.
A
We
need
to
wait
until
the
Readiness
Gates
API
are
stable
and
also
we
need
to
check
if
the
kubernetes,
scheduler
or
sorry
the
kubernetes
server
is
at
the
right
version
because
they
plan
to
be
stable
in
version
1.26
or
27.
I
also
forgot,
exactly
which
version
by
Christine
quite
late
to
say:
bye,
yes,
because
before
124
there
is
no
API
available,
so
we
still
need
to
deploy
this
category
for
other
version
of
the
server
API
server
So.
Based
on
that,
we
need
to
trigger,
on
and
of
this
feature
flag.
A
Then
we
need
to
adapt
the
existing
imitation
Web
book
because
right
now
we
add
a
scheduler
with
this,
but
based
on
the
feature
flag,
klt
reading
Escape.
We
need
to
change
this
Behavior.
If
it's
false,
then
that
means
we
are
using
the
scheduler
approach
and
the
current
behavior
of
the
current
mutation
mutating
Web
book
stays
the
same.
If
the
flag
is
true.
Instead,
this
Behavior
should
be
only
an
update
of
the
Manifest.
A
A
And
finally,
finally,
in
the
implementation
side
of
things,
we
need
to
adapt
also
the
workload
instance
controller,
because
the
workload
instance
controller
is
the
one
that
knows
when
all
the
pre-tasks
have
been
completed
and
in
before
we're
notifying
the
scheduler.
Hey
look
all
the
pre-tasks
are
done
now.
Instead,
it
has
to
change
and
remove
the
gate.
A
We
don't
remove
it
immediately.
We
just
mark
it
as
deprecated
to
say
we
favor
Readiness
Gates
over
our
custom
scheduler,
and
here
we
need
to
do
a
bit
of
chicory
because
for
the
helm
charts
we
need
to
check
which
version
of
the
API
server
we
are
hitting,
because,
based
on
that,
we
can
set
the
feature
flag
value
and
decide
if
we
need
to
create
a
deployment
for
the
scheduler
or
not
and
following
that,
we
need
also
to
provide
good
documentation
so
adopt
also
the
website.