►
From YouTube: Argo CD and Rollouts Community Meeting 2nd Jun 2021
Description
No description was provided for this meeting.
If this is YOUR meeting, an easy way to fix this is to add a description to your video, wherever mtngs.io found it (probably YouTube).
A
Okay,
hello,
everyone
and
welcome
to
the
june
2021
argo
cd
and
argo
robots
community
meeting,
I'm
your
host
for
today,
jesse
suen,
I'm
a
principal
engineer
at
intuit
and
one
of
the
maintainers
of
the
argo
project
and
the
agenda
for
today
is
that
we
have
we'll
be
talking
about
notifications
and,
more
specifically,
the
argo
rollouts
notification
support,
that's
upcoming
in
the
next
release
and
the
engine
or
the
library
behind
that
which
is
argo,
proj
notification
engine
that
is
also
what's
powering
argos
cd
notifications
and
then
alex
will
talk
about
how
this
is
actually
a
generic
library
that
you
can
incorporate
into
your
own
projects
or
and
write
a
mini
controller
to
add
support
for
other
crs
or
or
even
native
kubernetes
kinds
that
you
want
notifications
on
just
a
reminder
that
these
meetings
are
being
recorded
and
will
be
uploaded
to
youtube.
A
All
right,
I
want
to
go
ahead
and
start
sharing.
B
Hopefully,
everyone
can
see
my
screen
so
hi
everyone,
my
name,
is
karina
herrani.
I
am
a
software
engineer
intuit
and
I
work
on
the
argo
roulettes
team.
Today,
I'm
going
to
be
discussing
the
notifications
feature
I
created
for
argo
rollouts,
along
with
my
colleagues,
hari
rangali
and
alex
m,
so
for
argo,
rollouts
notifications,
the
rollouts
controller
is
continuously
monitoring
the
rollouts
in
a
cluster
and
it
provides
a
flexible
way
to
notify
users
about
important
changes
in
the
rollout
state.
B
It
uses
a
flexible
mechanism
of
triggers
and
templates,
and
these
are
used
to
configure
when
the
notification
should
be
sent
and
also
what
the
notification
content
should
be.
So,
like
jesse
mentioned,
the
rollouts
notification
feature
is
powered
by
the
notifications
engine,
which
is
a
general
project
that
powers
a
unified
notification
experience
for
all
the
different
argo
projects.
So
the
notification
engine
integrates
with
many
different
messaging
services,
such
as
slack,
email
and
custom
web
hooks,
just
to
name
a
few.
B
So
you
can
send
notifications
to
any
of
these
services
and
you
are
able
to
configure
the
message,
format
and
authentication
info,
which
I
will
go
over
soon
and
alex
will
also
go
into
more
detail
about
the
general
notification
engine
project
later
in
the
meeting
so
for
notification
subscriptions
basically
for
each
individual
rollout,
you
can
subscribe
to
triggers
by
adding
annotations
in
a
rollout
object,
so
this
allows
for
fine
grained
subscriptions
because
for
each
individual
rollout
object
you
can
subscribe
to
as
many
or
as
view
notifications
as
you
want
so
for
configuration.
B
The
rollouts
notifications
includes
a
lot
of
useful
built-in
triggers
and
templates
that
correspond
to
regular
roll-out,
lifecycle
events
and
you
are
free
to
use
these
right
now.
We
have
them
for
a
handful
of
life
cycle
events,
and
this
is
the
file
that
contains
all
of
the
built-in
triggers
so
right
now
we
have
them
for
the
life
cycle.
Events
on
rollout,
completed
on
rollout,
step,
completed
for
canary,
on
rollout,
updated
and
on
replica
on
scaling
replica
set,
and
for
each
one
of
these
triggers
there
is
a
template
defined
that
formats
notification
messages.
B
So
each
template
contains
kind
of
special
formatting
for
the
notification
message
and
it
also
formats
you
know
based
on
the
notification
service
like
it
has
a
bunch
of
slack
attachments
and
it
has
some
stuff
for
email.
So
you
can
install
this
and
you
can
have
these
default
notifications
available,
and
you
can
also
create
custom
notifications,
so
custom
notifications.
B
You
can
configure
your
own
custom
notifications
on
your
own
personal
use
cases
and
your
own
environment,
so
I'll
go
over
a
simple
example
of
that
soon,
but
for
configuration
there
is
a
config
map
object
in
called
argo,
rollouts
notification
configma.
This
is
where
triggers
and
templates
are
defined.
So
this
is
where
you
can
define
custom
triggers
it's
where
you
can
override
config
for
built-in
triggers,
and
this
is
meant
to
be
managed
by
the
administrator,
and
you
can
also.
This
is
also
where
you
configure
the
integration
with
notification
services.
B
So
this
is
where
you
would
put
the
authentication
information
for
the
different
messaging
services
in
this
example.
B
This
integrates
with
slack
so
it
references
the
slack
token
and
the
slack
token
is
in
this
secret
called
argo
rollouts
notification
secret
and
for
subscriptions
they
have
to
adhere
to
a
specific
format
too.
They
always
go
underneath
the
annotation
label
in
the
rollout
and
the
subscription
annotation
will
contain
the
trigger
name,
the
notification
service
name
and
the
list
of
recipients.
So
in
this
example,
here
the
annotation
subscribes
to
to
these
two
slack
channels
to
notifications
about
rollout
canary
step
completion.
B
So
when
you
are
creating
custom
notifications,
these
are
also
defined
in
the
config
map.
Argo
rollouts
notification,
config
map,
so
for
templates
templates,
are
stateless
functions.
These
are
what
creates
the
content
of
the
notification
they're
reusable.
They
can
be
referenced
by
multiple
triggers
and
they
also
have
access
to
the
rollout
object
and
the
recipient.
So
when
the
message
is
being
formatted,
it
can
reference
the
rollout
and
use
fields
in
the
rollout
to
format
the
message.
B
So
in
this
particular
example,
it's
called
my
purple
template
and
the
message
says:
rollout
has
a
purple
image
and
it
sends
this
notification
through
slack,
and
it
has
some
custom
configuration.
That's
specific
to
slack
and
for
the
trigger
for
creating
a
custom
trigger
and
trigger
is,
basically,
you
have
to
define
a
condition
when
the
notification
should
be
sent.
So
that
includes
the
trigger
name.
It
includes
a
condition,
and
it
also
includes
a
reference
to
a
notification
template.
B
So
the
condition
is
an
expression,
and
if
the
expression
evaluates
as
true,
then
the
notification
is
sent.
So
in
this
example,
it's
a
trigger
called
on
purple.
It
references
my
purple
template
which
we
went
over
up
here
and
it
triggers
on
the
condition
when
the
rollout
container
image
is
purple,
so
each
trigger
can
reference
multiple
templates
and
typically
each
template
is
responsible
for
a
service,
specific
notification,
so
just
to
go
over
all
the
components
we
just
discussed
like
and
how
they
work
together.
B
So
if
this
is
your
cluster
here,
you
have
a
bunch
of
rollouts
running
with
subscriptions
defined
in
the
annotations,
and
you
also
have
a
config
map
in
your
argo
rollouts
in
space
which
defines
triggers
and
templates,
and
you
also
have
a
secret
with
the
notification
service
authentication
info
and
then
the
rollout
controller
is
constantly
watching
the
rollouts
for
change
in
state
and
when
the
rollout
state
matches
one
of
its
trigger
subscriptions,
it
sends
a
notification
to
the
notification
service
configured
in
the
triggers
template
and
it
uses
the
notification
engine
to
do
so.
B
So
on
the
right
side.
Over
here
I
have
a
graphical
interface
called
argo
dashboard,
and
it
lets
me
see
all
the
different
rollouts
that
are
running
in
the
cluster.
So
I
have
this
one
rollout
called
rollout
canary,
and
so
here
is
the
manifest
for
that,
and
I
have
a
couple
of
subscriptions
defined
in
my
annotations,
so
I
am
subscribed
to
this
inbuilt
notification
called
on
rollout
step
completed
and
that
will
send
a
message
to
this
slack
channel
called
argo
project
deployment
notifications.
B
I'm
also
subscribed
to
this
custom
notification
that
we
went
over
in
the
documentation
example
called
on
purple,
and
this
also
sends
a
slack
message
here,
and
here
is
the
config
map
I
have
I
have.
This
is
the
exact
same
thing
as
the
example
as
well,
but
I
have
a
slack
token
configured.
I
have
a
trigger
for
on
purple
here
and
I
also
have
the
template.
B
Okay.
So
for
this
example,
my
rollout
is
currently
running
an
image
called
blue
and
for
demo
purposes.
This
means
that
all
the
traffic
going
to
this
rola
is
blue
and
these
steps
here
I
need
to
go
through
all
or
the
rollout
needs
to
go
through
all
these
canary
steps
before
it
can
complete
the
traffic
switch.
B
So
I'm
going
to
change
the
image
of
the
rollout
to
green,
and
you
can
see
that
it's
starting
to
go
through
these
steps
here
and
if
I
look
at
slack,
I
see
a
slack
notification
that
tells
me
roll
out
canary
step.
One
out
of
eight
has
been
completed
so
I'm
going
to
and
you
can
see
on
the
left
that
some
of
the
bubbles
have
changed
to
green.
B
Okay,
now
I
am
now
that
this
seems
to
be
done.
I'm
going
to
change
the
image
to
purple.
B
B
Okay,
that's
it
for
the
demo.
I
know
these
examples
are
much
simpler
than
you
would
actually
do
in
real
life
if
you
were
making
your
own
custom
triggers
and
custom
notifications.
But
hopefully
this
gives
you
a
good
idea
of
how
to
start
using
notifications
and
subscriptions
and
configure
it
for
your
own
purposes.
C
A
Job
very
clear
thanks
karina
any
questions
for
karina,
keep
in
mind.
We
that,
if
you're
asking
about
how
to
use
the
notification
alex,
might
be
covering
that
or
should
be
covering
that
in
his
next
presentation.
But
any
questions
about
rollout
notifications.
A
Great
yeah,
it's
it
will.
It
works
exactly
the
same
way
as
argos
cd
notifications.
That
was
one
of
the
design
goals.
When
we're
doing
this.
With
that
that
you
have
the
same
experience
for
adding
notification,
support
for
the
various
projects
and
so
I'll,
let
alex
take
it
now
to
actually
explain
the
engine,
and
you
know
how
you
might
use
this
in
your
own
projects
or
with
other
custom
resources
or
native
kinds
and
kubernetes.
C
C
C
I
will
go
through
some
of
the
features
it
provides
and
one
more
demo
for
today
and
before
I
jump
into
details
yeah
I
want
to
cover
why
we
think
it
is
important-
and
here
is
here-
is
why
so,
basically,
as
jason
mentioned
notification
engine
powers,
notifications
for
argo,
cd
and
rollouts,
so
basically
it's
generic
and
it's
not
just
generic,
and
it's
not
just
generic
within
the
argo
ecosystem.
C
Here
is
you
know,
list
of
logos
from
the
maybe
most
prominent
services,
so
in
particular,
we
have
integration
with
slack,
microsoft,
teams,
good
old
emails
and
telegram,
and
even
some
non-text
messaging
services
like
grafana
and
github.
Basically,
a
notification.
It's
it's
not
necessarily
just
a
text
message:
you
can
create
text
in
grafana,
dashboard
or
you
can
update,
commit
status
in
git
and
we
have
a
list
of
services
that
people
want
to
integrate
to.
C
For
example,
in
the
future
we
plan
to
integrate
with
jira
servicenow
and
all
kind
of
you
know.
Devops
related
integrations
that
you
can
imagine,
and
even
today
engine
supports
generic
webhook
driven
notifications.
So
basically
you
can
use
webhooks
and
you
can
configure
an
http
call
to
any
service
that
you
can
imagine
all
right.
So
here
is
a
list
of
notification
services
and
the
next
important
feature
of
the
engine
is
that
it's
configuration
driven
and
let
me
I
will
try
to
explain
what
exactly
we
mean
by
that.
C
So
basically,
it's
not
enough
to
just
integrate
an
engine
into
a
crg
controller.
The
next
step
is
you
really
want
to
make
it?
You
know
you
want
to
customize
it
and
make
it
aware
of
triggers
that
make
sense
for
for
the
kubernetes
resource,
and
the
good
part
is
that
there
is
no
need
to
code
to
achieve
it.
Instead,
you
can
leverage
configuration-
and
here
I'm
going
to
repeat
what
karina
demonstrated.
C
So
engine
introduces
concept
of
trigger
and
template,
and
both
of
these
things
can
be
created
using
camel
and
I'm
going
to
quickly
repeat
what
it
means
so
trigger
is
a
simple
function
that
returns
true
or
false,
and
the
input
is
your
resource
and
every
time
when
trigger
flips
from
false
to
true
engine
will
send
a
notification
and
that
expression
can
be
pretty
complex.
In
the
example
that
I'm
going
to
demonstrate,
you
will
see
iterations
over
list
and
you
can
even
enhance
it
and
add
your
custom
functions.
C
Okay,
so
and
once
trigger
decides
that
it's
time
to
send
the
notification
it
uses,
template
and
template
is
nothing
but
another
function
and
template
is
also
stateless
as
an
input.
It
takes
your
resource
and
it
produces
basically
a
bunch
of
text
fields
using
call
link
templating,
and
that
example
is
the
simplest
one.
C
It
just
includes
a
text
of
a
message
and
that
message
will
be
used
to
send
notification
to
slack
and
streams
email,
but
you
also
can
take
advantage
of
advanced
features
of
your
notification
service
and
basically
you
have
an
ability
to
define
service,
specific
fields.
Here,
for
example,
you
can
define
slack
attachments
or
ms
team
actions,
or
you
know,
and
the
list
kind
of
is
very
long,
and
this
way
you
can
create
kind
of
rich
notifications
for
a
particular
service,
okay
and
hopefully
that
all
makes
sense.
C
So,
basically,
you
can
leverage
configuration
in
any
project
and
you
can
make
your
integration
very
custom
for
for
the
notification,
sorry
for
kubernetes
source
and
and
finally,
what
we
see
is
another
value
of
the
project.
Is
that
basically
it's
very
friendly
to
your
end
users
and
have
to
step
back
again
and
just
explain
what
do
we
mean
by
end
users,
so
in
real
life?
Basically,
every
kubernetes
controller
has
two
person,
two
kind
of
persons
who
you
know
work
with
it
administrators
and
end
users.
C
So
administrators
are
typically
a
platform
team
that
work
on
you
know
for
organization
and
run
kubernetes
clusters
and
install
addons
into
that
cluster.
That
makes
the
cluster
useful
and
the
example
is,
you
know,
argor
allows
it's,
you
know
usually
maintained
by
a
decentralized
team
and
that
team
can
go
ahead
and
work
on
creating
the
triggers
and
notifications
that
make
sense
for
the
whole
organization
and
then
the
next
kind
of
you
know
engineers
are
developers
who
create
instances
of
of
rollout
or
in
this
particular
example.
C
You
know
configuration
you,
don't
want
to
force
each
and
every
developer
developer
in
your
work,
to
learn
yet
another
tool
and
configuration
syntaxes,
and
basically
that's
why,
in
notification
engine
project,
we
decided
to
simplify
experience
of
end
users
and
we
give
them
a
very
simple
way
to
just
leverage,
pre-configured
triggers
and
templates
and
to
you
know,
leverage
means
they
can
just
subscribe
to
existing
trigger,
and
this
is
how
subscription
looks
like
and
yeah
frankly,
karina
covered.
It
already
very
well.
C
So
this
particular
example
shows
that
shows
an
annotation
that
subscribe
that
creates
a
subscription
for
arg
application
and
sends
messages
to
two
slide
channels.
Every
time
when
up
sync
is
successful,
that's
it.
I
think
enough
of
demonstration
explanations
and
I'm
going
to
do
one
more
demo
and
I
yeah
that
demonstration
is,
you
know,
because
engine
is
a
library,
so
basically
the
best
way
to
describe
to
demonstrate
a
library
is
to
use
it.
C
We
can
show
how
you
can
get
really
well.
You
know
very
high
quality
notification
support
in
a
project
like
sort
manager.
C
Okay,
so
I
already
completed
some
of
the
steps,
but
let
me
go
for
them
very
quick,
so,
basically,
to
run
the
demonstration,
you
would
have
to
clone
a
notification
engine
repository
which
contains
an
example
that
integrates
with
search
manager.
Next,
we're
going
to
you
know,
just
change
directory
into
the
clone
repository
and
next,
let
me
start,
you
know,
executing
the
steps
next
we're
going
to
apply
a
configuration
that
is
specific
to
short
manager.
C
C
Yeah,
so
this
is
the
yaml
file
that
I
that
contains
a
config
map,
and
it
has
a
trigger
and
and
template
so
and
trigger,
is
a
little
bit
more
complex
than
something
I
should
we
showed
recently.
So
basically,
it
checks
every
certificate
and
then
iterate
through
certificate
conditions
and
search
for
condition.
That
is
ready,
and
you
know
status
is
true
and
that's
enough
to
say
that
your
certificate
is
is
ready,
and
yet
next
part
is
pretty
simple.
I
think
I
should
not
repeat
it
yet.
C
So
it's
just
going
to
send
a
simple
notification
with
a
message
about
that
includes
trigger
name.
Next,
we
need
to
sorry
integrate.
We
need
to
create
selecting,
we
need
to
configure
integration
with
a
real
flag
service
and
I'm
not
going
to
explain
how
exactly
you
can
get
slack
token,
but
long
story
short.
Is
you
need
to
create
slack
application
and
eventually
use
the
slack
user
interface
to
create
a
token
and
then?
C
So
here's
my
sword
in
in
the
cluster
and
it's
just
it's
a
certificate
of
our
demo
rvcd
environment.
But
the
main
point
is
that
certificate
was
successfully
provisioned
and
it
has
condition
ready
and
status
is
true,
so
that
means
controller
should
have
noticed
it
and
it
should
have
sent
a
notification
and
let
me
switch
to
our
demo
slack
and
it
happened
so
like
basically,
one
minute
ago,
we
received
a
notification
about
certificate,
so
that
means
it's
working,
that's
great
and
yeah.
C
C
But
here
is
the
small
readme
file
that
explains
how
you
can
create
this
particular
controller,
and
I
want
to
jump
straight
into
the
code
and
show
you
that,
basically,
it's
just
one
file
main.go
and
it
consists
of
100
lines
of
golem
code,
which
is
not
so
much
for
goldlink
and
if
you're
familiar
with,
you
know,
kubernetes,
and
you
know
how
to
create
controllers.
You
will
recognize
a
lot
of
that
code
because
it's
a
boilerplate
required
to
you
know
just
to
create
kubernetes
client
get
the
current
namespace
from
cubeconfig.
C
C
Basically,
I
want
to
make
my
search
available
under
the
name
until
under
the
variable
named
sort
and
okay
and
then
the
final
next
three
lines
is
basically,
I
need
to
specify
group
version
and
the
kind
of
my
resource,
and
that's
it
pretty
much.
This
is
the
only
code
that
you
need
to
understand
and
the
rest
of
it
is
kubernetes
that
I
hope
you
already
know
all
right
and
yeah.
C
So
that's
pretty
much
it.
That
concludes
the
demonstration
and
there
is
not
much
to
explain
about
this
particular
controller,
which
is
good.
That
was
the
goal
of
the
project
and
yeah.
Before
I
finish
my
demonstration,
I
want
to
make
sure
you
have
some
materials
when
it
ends.
So
basically
this
is,
but
you
know
a
bunch
of
links
that
can
help
you
to
get
started,
a
link
to
the
project
repository
this
presentation,
which
I
will
share
in
in
the
zoom
chat.
C
And,
finally,
you
know
the
demonstration
which
includes
instructions
about
how
to
build
the
project
and
how
to
how
to
use
it.
So
let
me
put
link
into
chat
and
I'm
done.
A
Awesome,
thank
you,
alexa's,
a
really
great
presentation,
any
any
questions
that
people
have
for
the
notification
engine
for
alex.
A
All
right
yeah,
so,
as
you
can
see,
the
the
engine
is
it
was
was
designed.
We
took
a
lot
of
effort
to
make
sure
that
this
was
generic,
because
we
knew
that
we
would
want
to
apply
this
across
all
the
argo
projects.
So
we
and
that
made
us
realize
that
it
would
be
useful
for
any
type
of
project
that
wanted
to
add
notification
support.
A
So
we
encourage
you
to
try
it
out
in
case
you
are
writing
controllers
and
you
want
things
like
slack
notifications,
and
this
will
be
a
pretty
easy
way
to
get
that
that
type
of
support.
C
I
feel
like
it's
important.
Basically
it
takes
time
to
launch
this
this
kind
of
project,
because
we
do
need
to
attract
more.
You
know
maintainers
of
other
projects,
and
we,
I
think
we
committed
to
continue
visago
and
argo
workflows
is
next
in
the
queue
to
get
integration
with
notifications
and
I'm
you
know,
the
desire
is,
I
think,
is
to
take
this
short
manager
example
to
next
level
and
try
to
convert
it
into
real
project
and
why
it's
important
is
as
soon
as
we
get
more
people
interested
in
it
most
likely.
C
A
All
right,
so
actually
we
reached
the
end
of
our
agenda
for
today.
At
this
point,
we
usually
let
open
it
up
for
people
to
raise
any
of
their
own
issues
or
any
topics
that
they
want
to
bring
up.
A
You're,
always
free
to
add
things
to
the
agenda,
bring
it
up
right
now
or
throughout
the
coming
weeks.
You
can
always
edit
the
or
edit
the
google
doc
and
propose
agenda
topics.
So
if
there's
no
further
topics
that
will
will
reach
the
end
of
this
month's
meeting.