►
From YouTube: State of Operator Ecosystem: Framework, SDK and Best Practices Guil Barros & Jason Dobies (Red Hat)
Description
State of Operator Ecosystem: Framework, SDK and Best Practices
Speakers: Guil Barros & Jason Dobies (Red Hat)
https://operatorhub.io
https://github.com/operator-framework/getting-started
The OpenShift Commons Gathering was held on Jan 29th, 2020 in London, UK, and featured guest speakers from local customers and users. The OpenShift Commons Gatherings brought together 300+ experts from all over the world to discuss container technologies, best practices for cloud native application developers and the open source software projects that underpin the OpenShift/Kubernetes ecosystem.
https://commons.openshift.org/gatherings/London_2020.html
A
A
Don't
know
I
make
things
go,
I,
guess!
Well,
they
make
things,
go
I,
just
poke
them
every
so
often
I
apologize.
If
you
notice
me
fading,
like
10
minutes
into
this,
it's
7
o'clock
in
the
morning
for
me
and
I
feel
like
I,
haven't
slept
because
I
didn't,
but
so
two
fun
things
about
me.
This
is
my
day
job
on
my
off
time.
I
fly,
airplanes
and
I,
don't
wear
level
your
Matt
microphones
because
they
get
stuck
in
my
beard
and
it's
a
terrible
experience
for
everybody.
You.
B
Know
so
I
mentioned
that's
a
V
and
they're
like
yeah.
That's
totally
a
thing
that
happens
like
it's
very
happy.
You
want
to
take
the
hand
mic
how's,
that
for
an
intro,
so
my
name
is
Jason
Dobies
I'm,
a
developer
advocate
at
Red
Hat.
If
you've
never
heard
the
role,
it
basically
means
I,
do
cool
with
OpenShift
and
then
run
around
the
world
telling
people
about
it
to
get
them
excited
for
it.
I
already
see
smiles
based
on
that
description.
So
that's
a
good
start.
B
As
for
two
interesting
things
about
me,
this
is
very
difficult
because
he
just
told
me
this
literally
as
he
was
walking
out.
So
that's
my
day
job.
My
night
job
is
I'm
an
adjunct,
professor
teaching,
software
engineering
and
I
guess,
as
you
guys
heard
this
morning,
I
can
now
put
author
on
my
resume
and
I'm
trying
to
keep
this
very
professional
air.
But
if
you
see
me
upstairs
kind
of
cradling
a
book
like
a
baby,
don't
be
surprised.
It's
my
first
book,
I'm
very
excited
about
it
and
you.
A
We'll
get
there
we'll
get
there
all
right.
Looking
behind
me,
okay,
so
we're
gonna
talk
about
sort
of
we've
learned
over
the
last
two
to
three
years:
two
and
a
half
years
with
operators
right
like
what
what
our
best
practice
is.
What's
worked.
Well,
what
hasn't?
What
our
operators
really
is?
Sort
of
the
best
practices
on
creating
well-behaved
operators
that
work
well
at
scale
and
I?
Think
I
don't
like
reading
slides
because
I
think
it's
it's
lazy
of
me.
But
this
is
a
slide.
I'll
read!
A
So
every
application
on
any
platform
is
going
to
be
installed,
configured
managed
and
upgraded
over
time
right,
so
you're,
gonna,
performance-tuned
it
you're,
gonna,
add
content,
remove
content
change
users
there's
going
to
be
fixes
patches
security
vulnerabilities!
You
are
going
to
make
changes
to
applications,
whether
you
want
to
or
not
and
I
think
that
these
are
sort
of
basic
functions
right.
It's
it's
things
that
we
can
automate
hopefully
easily.
A
A
Think
it's
where
operators
really
shine
right
when
we're
talking
about
resizing
and
upgrading
we're
really
talking
about
careful
orchestration,
not
just
scale
right,
it's
scale
its
mess
with
quorum,
its
add
things
to
load
balancers,
it's
in
both
directions
for
reconfiguration,
we're
talking
about
which
users
have
permissions
to
tweak
which
tuneable
x'
right,
which
tunable
czar
actually
really
safe
for
to
be
tweaked
and
which
ones
aren't
complex
things
about
backing
up
databases
right.
Do
you
need
to
quiesce
this
first?
Do
you
need
to
stop
a
service?
Do
you
need
to?
A
B
Let's
talk
about
what
actually
is
an
operator
they've
been
mentioned
in
most
of
the
talks
already
today,
which
is
cool
as
kind
of
a
lead-up
to
ours
to
get
interest
and
I
know
post-lunch
everyone's
just
kind
of
fading
into
a
food
coma.
So
hopefully
at
least
the
the
relevancy
of
the
topic
will
kind
of
per
people
up.
Let's
start
at
the
fundamentals.
At
the
end
of
the
day,
it's
a
pod.
It's
a
running
pod.
Inside
of
your
open
shift
cluster.
B
We
talked
about
them
like
they're,
magical
you've,
got
all
these
great
properties
and
that's
not
to
trivialize
it,
but
when
you're
visualizing
and
trying
to
understand
all
of
the
moving
parts,
the
first
thing
to
realize
is
at
the
end
of
the
day,
it's
just
a
running
application.
Now,
not
every
pod
is
an
operator.
So
where
does
the
special
sauce
come
in?
It
comes
down
to
the
fact
that
you
are
pod
or
your
operator
has
all
of
this
very
domain-specific
knowledge
about
what
your
application
does.
B
It's
able
to
do
things
that
you
would
typically
require
a
human
to
do
that
could
take
minutes
or
hours
for
them
to
respond
to.
Instead,
we
have
this
pod
with
this
logic
running
inside
of
openshift
managed
by
all
of
the
open
stiff
constructs,
so
that
pod
will
stay
alive.
If,
for
some
reason
it
crashes
mico
doesn't
crash,
but
it's
like
your
code,
crashes
OpenShift
will
bring
it
back.
So
you
gain
all
of
the
benefits
of
application
management
through
openshift.
But
it's
got
this
extra
ability
of
this
pod
to
manage
your
application.
B
So
I
said
it's
just
a
pod,
but
at
the
end
of
the
day
it's
got
to
be
more
than
just
that.
So
it's
really
a
paradigm
of
how
you
use
your
application.
Now
we
heavily
leveraged
a
built-in
construct
to
openshift
and
kubernetes
called
custom,
resource
definitions
or
CR
DS.
For
short,
the
idea
here
is
everything
is
a
resource
and
openshift.
We
have
deployments,
we
have
routes,
we
have
pods
and
these
are
our
things.
These
are
our
tangible
resources
that
we're
dealing
with
what
about
if
I
wanted
to
define
my
own.
B
Let's
say:
I
wanted
to
make
J's
awesome
database
as
a
resource
and
that
database
is
going
to
need
things
like
routes
and
secrets
and
config
maps,
and
it's
going
to
need
multiple,
pods
and
deployments.
I
don't
want
to
have
my
users
go
through
all
of
that
process
and
hand
them
hundreds
of
lines
of
Yama
and
say
edit.
These
17
lines
in
particular
or
manually,
create
these
and
then
once
that's
done,
then
you
got
to
deploy
these
resources.
I
want
to
give
my
users
the
ability
to
say
what
do
I
want
this
awesome
database.
B
So
that's
the
object
I'm
going
to
create
or
that's
the
resource
so
I'm
going
to
create
so
the
custom
resource
definition,
the
CR
D.
This
is
the
definition
of
that
type
and
it's
going
to
include
things
like
saying
what
users
can
specify.
So
these
are
the
variables
that,
when
you're
creating
this
awesome
database,
you
can
go
and
fill
in
these
values
and
then
the
operator
is
going
to
take
care
of
putting
them
where
necessary.
B
So
we
have
our
custom
resource
definition.
Many
people
call
that
the
API
that
the
users
are
going
to
use
to
interact
with
our
operator
I
always
want
to
pose
a
number
I
see
someone
taking
a
picture
of
a
slide
find
me
later,
and
some
of
that
picture
was
I
talking
about
operators.
So
we
have
our
customer
resource
definition.
That's
what
our
users
work
with
what
happens
on
the
server
well,
the
operator.
In
addition
to
being
a
pod,
it's
a
kubernetes
controller.
B
It
gets
hooked
into
OpenShift
to
respond
to
events
specifically
events
about
these
custom
resources
and
this
triggers
off
this
reconciliation
loop.
So
something
has
changed
in
my
resource.
It's
been
created,
it's
been
deleted,
we've
had
a
configuration
change.
The
operator
gets
notified,
hey
one
of
these
resources
that
you're
responsible
for
has
had
an
event
figure
out.
What
to
do.
The
operator
then
takes
over
goes
through
this
reconciliation
process
to
take
the
desired
outcome
from
the
user,
so
what
they
specified
in
the
custom
resource
and
make
the
actual
state
match
that.
A
All
right,
so,
let's
get
into
some
of
the
details
on
what
makes
a
good
serve
a
well
structured
operator
right
like
what's
what's
worked,
I
teased
in
the
beginning
with
the
this
talk
is
about
what
we've
learned.
So,
let's,
let's
get
there
a
little
bit
of
an
eye
chart
here,
you
guys
have
access
to
these
slides
afterwards.
I'll
have
access
to
the
recording
at
some
point
as
well
afterwards,
so
we're
not
going
to
read
through
all
of
these.
The
main
one
for
me
is
an
operator
should
do
one
thing.
A
B
Remember
an
operator
effectively
relates
back
to
a
controller
if
you're
not
too
familiar
with
the
internals
of
OpenShift
controller
is
just
basically
sounds,
but
what
it
sounds
like.
It
controls
some
particular
facet
of
a
custom
resource.
So
you
really
shouldn't
doubled
it.
You
shouldn't
have
some
uber
controller
that
handles
all
of
your
custom
resources.
One
of
the
talks
earlier
I
forget,
who
mentioned
it
about
doing
one
thing
very
well.
Micro
services
should
do
one
thing
and
do
that
one
thing
very
well.
Similar
pattern
applies
here.
B
You
should
have
one
controller
that
understands
how
to
do
that.
Custom
resource
definition
and
that's
it
and
that's
going
to
give
us
the
ability
to
set
up
dependency
management
where
my
operator
can
rely
on
multiple
other
custom
resource
definitions
and
then
that
dependency
management
is
going
to
get
resolved.
For
us.
We'll
talk
about
that
in
a
few
slides,
you're.
A
Gonna
see
this
repeated
with
operators,
it's
like
focus
on
one
one
thing
at
a
time,
don't
add
a
necessary
complexity
and
part
of
not
adding
a
necessary
complexity
is
use.
An
SDK
right
like
well
have
that
all
that
scaffolding
has
already
been
created
for
you
in
an
SDK
and
we're
talking
about
the
operators,
decay
and
the
operator
framework
a
little
lady
a
little
later,
I'm
gonna
cheat
and
do
one
more
here,
because
I
just
noticed
that
this
is
a
little
bit
of
a
pet
peeve
of
mine.
A
A
There
are
really
poor
messages
about
status
and
think
about
it.
Think
about
your
users
right,
so
your
user
may
not
know
your
application
well
enough
to
debug
the
operator
for
you.
So
you
want
to
facilitate
that
as
much
as
you
can.
You
want
to
make
it
so
that
if
something
goes
wrong,
you
make
the
clearest
possible
error
message,
and
we
just
saw
this
early
on.
There
was
a
we
were
trying
something
and
it
failed,
and
there
was
an
error
message
and
it's
like
a
hex
dump
right
and
it's
like.
A
B
I
come
from
a
developer
background
and
I
can
tell
you
in
my
entire
experience.
We
developers
are
historically
bad
at
thinking
about
upgrades
we
like
to
just
kind
of
trash
the
system
and
rebuild
I'm.
Seeing
a
lot
of
just
horrified
looks
and
then
that
one
guy
in
the
back
is
crying
thinking
about
upgrades
and
that's
cool
I
see
you
back
there.
They
it's
very
important
that
your
operator
is
not
going
to
do
it
right
on
the
first
try
again
mine
will,
but
yours
all
will
have
some
issues.
You
need
to
push
out
upgrades.
B
Right
in
the
picture
status
information
somebody
I'll
get
hex
codes.
You
should
be
able
to
support
this
process
and
again
we
keep
alluding
to
OLM
or
this
lifecycle
manager.
But
it's
going
to
understand
that
hey
a
new
operator
release
has
been
pushed
out.
How
do
I
get
this
into
my
cluster
and
how
do
I?
Let
the
operator
take
over
keeping
my
application
upgraded
and
up
to
date
and.
A
It
I
think
when
we're
talking
about
upgrading
and
up-to-date
I
think
thinking
back
to
the
keep
it
simple
right.
I
don't
want
to
upgrade
from
eight
versions
ago
to
the
current
version.
At
one
step,
we,
the
operator
framework,
provides
tooling
to
help.
You
do
upgrades
right
it
there's
a
subscription
model
that
we're
gonna
talk
about
later
upgrade
from
the
previous
version.
Have
the
previous
version
of
the
Opera
to
upgrade
from
the
previous
version
of
that,
like
don't,
don't
make
your
life
harder,
keep
it
simple,
so
the
other
one
that
we
highlighted
is
another
one.
A
From
my
experience,
testing
operators
is
I,
don't
know
anything
about
your
app,
your
user,
who
is
going
to
operate
a
hub
that
IO
the
the
operator
marketplace.
That
is
just
trying
this
out
to
decide.
If
they're
gonna,
give
you
money
or
not,
probably
doesn't
know
very
much
about
your
app
either
so
make
it
so
that
the
defaults
default
configurations
work
right.
They
don't
have
to
be
wonderfully
tuned
for
any
situation,
but
they
should
work
right.
They
should
work
on
a
reasonable
test.
Infrastructure.
I,
don't
expect
the
default
situation
to
be.
A
There
are
90
CPUs
available
that
that's
not
gonna
happen.
So,
if
it'll,
if
it'll,
deploy
and
come
up
without
user
input,
you'll
have
happy
users
that'll
turn
into
buying
users.
So
how
do
we
do
this
I'm?
Guessing
you
guys,
memorize,
the
previous
two
slides
as
part
of
the
QA,
we're
gonna
turn
it
around
and
we're
gonna
quiz
you
on
all
of
the
slides
for
the
day
and
those
two
are
big
ones
coming
up.
So
we
talked
about
the
operator
framework.
A
B
This
lead-in
to
yeah,
okay,
so
the
operator
framework-
you
may
have
heard
this
term
before,
but
it
is
a
series
of
three
projects
related
to
it's.
Gonna,
see
writing
operators,
but
it's
ultimately
everything
writing
operators
installing
them
updating
them.
So
we'll
start
at
the
top
here
operator.
Sdk
writing
an
operator
is
not
gonna
lie
kind
of
tedious.
All
the
stuff
I
mentioned
before
writing
the
custom
resource
definition,
which
is
a
couple
hundred
lines
of
llamó.
Writing
the
kubernetes
controller.
Writing
all
of
the
hooks
to
tie
it
in
all
of
the
handling
logic
and
so
on.
B
Basically,
drops
you
right
there
and
says:
okay
here
enter
your
code,
we're
gonna,
see
in
a
few
slides,
there's
some
other
options
as
well
in
additions
to
do
and
go
code,
but
back
to
the
SDK.
It
has
some
testing
some
linting
type
constructs
in
there.
So
everything
around
building
your
operators
is
made
much
more
simple
through
using
an
SDK
instead
of
handcrafting.
All
these
parts
now
operator
lifecycle,
manager,
OLM.
The
easiest
way
to
think
of
this
is
what
yum
is
to
rpms
are
suppose.
B
Dnf
is
the
way
that
one
example
to
use
now
so
I
would
say:
yum
install
Emacs.
Instead
in
the
operator
world,
I'm
gonna
say
o
LM
I
want
you
to
subscribe
me
to
the
Couchbase
operator
or
I.
Want
you
to
subscribe,
the
entire
cluster
to
this
SCD
operator
or
some
type
of
machine
operator.
That's
running
your
nodes
and
it
handles
all.
Those
upgrades
like
I
said
earlier,
where
you
should
be
able
to
upgrade
your
operators.
B
You
can
trigger
OLM
to
say
alright
automatically
when
you
see
a
new
operator
and
the
channel
roll
it
out
to
the
system's
or
wait
for
manual
user
interventions.
So
we
can
review
what's
going
to
happen,
so
all
M
handles
not
to
reuse
the
word,
but
the
lifecycle
of
your
operators,
the
cataloging,
the
installation,
the
upgrades
and
so
forth,
and
then
the
last
piece
operator
metering.
This
is
all
cool,
but
is
anybody
actually
using
it?
B
A
I
think
one
of
the
okay
I
think
well
to
me,
the
beautiful
the
beauty
of
OLM
is
sort
of
the
suppression
model
right.
The
idea
that
you've
subscribed
to
this
operator
and
you're
saying
just
keep
it
up
to
date.
On
my
cluster.
Of
course
you
can
turn
that
off,
but
the
idea
of
operators
is
they're
going
to
be
able
to
seamlessly
upgrade
from
one
version
to
the
other
without
breaking
or
if
they
do
break
with
good
error
codes.
Remember
that
so
it's
the
idea
of
a
subscription
is
really
the
beauty
here
for
me.
A
So
let's
look
at
the
sort
of
ten
thousand
foot
view
of
how
this
works
or
three
three
thousand
kilometer
view
of
how
this
works
so
we're
thinking
about
personalities,
right,
there's,
a
developer,
there's
the
admin
and
there's
there's
a
maybe
a
user
I've
done
this
talk
in
a
couple
of
different
countries
now
and
I.
Think
in
the
u.s.
A
B
A
A
Kate
is
the
developer,
so
Kate's
gonna
use
the
operators
decay
right,
which
already
has
all
of
this
framework.
So
what
kate
is
gonna
focus
on
is
moving
that
logic.
That's
in
her
head
about
how
to
lifecycle
this
application
and
have
that
to
the
scaffolding
and
then
poof
out.
The
other
end
comes
a
kubernetes
operator,
so
I'm
gonna
intersperse
these
with
little
tidbits
about
operators,
so
that
was
Kate
back
there.
A
We've
sort
of
come
up
with
this
idea
of
the
operator
maturity
model
right
so
that
we
can
put
operators
into
buckets
depending
on
how
advanced
they
are,
and
it's
also
a
good
way
for
you
to
sort
of
tell
your
customers
or
for
your
internal
or
external
customers.
You
know
what
your
operators
can
do,
based
off
of
sort
of
a
simple
concept
right
phase,
one
and
phase
two
are
the
obvious:
I
can
install
this
application
and
I
can
do
seamless,
upgrades
patches,
etc.
A
Phase
three:
is
you
can
do
act,
real
life
cycle
right
like
handle
failure,
recovery
back
up
that
kind
of
stuff
face
for
deep
insights
alerts,
a
handle,
log,
processing
and
and
the
super
cool
phase.
Five
autopilot
is,
is
really
about
scaling
and
healing,
and
you
know
scheduling
tuning
for
three
o'clock
in
the
morning
on
a
Sunday,
Saturday
Sunday.
A
A
A
Ansible
does
provide
the
full
breadth
of
capability,
but
you
don't
have
quite
as
much
flexibility
as
and
go
I
think
the
the
benefit
of
ansible
is
you've.
Maybe
already
got
in-house
developers
who
know
how
to
handle
ansible
or
you've
already
got
some
playbooks.
So
you
can,
you
know,
sort
of
hit
the
ground
running
the
the
golang
idea.
Is
you
really
have
more
rich
control?
Logic
of
handling
what
what
you're,
seeing
what
the
alerts
are
and
things
like
that
different
capabilities
so.
B
This
could
be
very
quick,
then
I
mentioned
earlier.
The
SDK
will
generate
a
project
scaffold
for
you,
which
is
great,
especially
if
you're
a
go
developer,
but
I
had
partners
in
particular,
who
came
to
me
and
said:
hey.
We
already
have
invested
in
ansible
or
we've
invested
in
helm,
and
we
don't
want
to
maintain
two
installers
and
I
got
a
minute,
can't
blame
them.
So
the
sdk
has
the
ability
to
generate
these
scaffold
projects
for
ansible
helm
and
go
the
helm.
One
in
particular
can
be
based
down
to
a
single
line.
B
So
it's
this
sdk
command.
Where
you
hand
it
in
an
archive
of
the
helm,
charts
and
out
pops
the
operator,
and
it
ties
everything
up
is
necessary.
You
can
obviously
still
customize
beyond
that.
Ansible
is
very
similar.
It'll
either
generate
you
a
blank
word
playbook
or
you
can
point
it
to
an
existing
playbook
in
series
of
roles
and
say:
hey
I
want
you
to
generate
not
that
uses
this
existing
stuff.
So
the
important
point
off
of
this
slide
is:
if
you
already
have
these
technologies
in
play,
you
don't
have
to
abandon
them.
B
A
If
that
wasn't
shortened
right
so
William
will
take
the
the
operator
that
Kate
developed
they'll,
add
some
metadata,
that's
specific
to
his
environment,
to
his
clusters
package
it
all
up
and
then
make
them
available
in
OLM
locally
right.
So
then
the
user
can
see
in
in
github
in
his
I'm
sorry,
not
in
github
in
operator
hub
which
operators
are
available
for
his
clusters,
yep
in
the
catalog,
so
I
promised
we
were
going
to
intersperse
these.
So
this
is
my
Mike
continuation
on
harping
on
subscription
and
updates
right.
So
your
operator
should
do.
A
One
thing
well
is
manage
that
app.
It
should
be
able
to
update
from
the
previous
version,
so
just
n
minus
1
to
N,
keep
it
simple
and
because
of
the
subscription
its
it
should
just.
The
expectation
is
that
it's
just
going
to
do
that
right.
It's
just
you're
gonna
subscribe
to
this
operator
and
allow
it
to
update
itself
linearly
and
each
of
those
operators,
preferably
should
be
related
to
a
specific
version
of
your
app
right.
The
operator
itself
isn't
your
app
you're.
C
A
Do
this,
don't
you
can
do
this
by
having
you
know,
create
versions
in
your
CRT
and
say:
oh,
if
I've
configured
it
to
install
this
version,
install
this
version?
Don't
do
that
you're,
making
your
life
harder,
you're,
making
your
operator
more
complicated,
it's
not
necessary!
Just
have
one
Operator
deploy
one
version
and
be
able
to
upgrade
from
just
the
previous
version.
Keep
it
simple
so.
A
A
You've
seen
this
before
as
well
today,
operator
hub.
That
IO
has
is
the
community
version
showing
all
of
the
the
different
operators
that
we
have
over
there
available
and
if
you
click
through
there's
details
on
the
operator
there's
how
to
deploy
them
on
your
cluster
or
subscribe
to
them
rather,
but
we
also
want
it
to
highlight
in
operator
hub,
spread
the
maturity
level,
four
and
material
level,
five
operators
right
so
material
before
was
it
can
do
metrics,
alerting
log
processing,
workload,
analysis
and
the
level
5.
A
The
autopilot
you
know
has
the
the
fund
scaling
vertical
horizontal
scaling,
config
tuning
from
its
tuning,
really
the
the
more
advanced
stuff
out
there
there's
a
couple
more
that
are
coming
with
level
5,
and
usually
we
find
that
operators
sort
of
progressed,
s--
right
you,
you
first
create
an
operator,
that's
a
level
one
to,
and
then
your
next
version
is
a
little
better
than
the
next
person
a
little
better.
So
a
lot
of
these
guys
have
been
with
us
for
a
while
and
slowly
improving
their
operators,
we're
adding
more
functionality
to
them.
A
C
A
B
We're
not
going
home
I,
you
know,
I
want
to
say
like
this
was
intentional.
This
was
a
back
up.
My
cluster
decided
to
never
mind
okay,
so
in
this
demo,
going
through
the
steps
of
deploying
the
Couchbase
operator
and
I
really
like
this
example
as
you'll
see
over
the
course
of
the
demo,
it's
only
a
couple
more
minutes,
but
this
first
couple
steps
you
should
be
doing
up
here:
I
just
created
a
secret.
All
the
secret
is
gonna.
Do
is
feed
into
the
creation
of
the
cache
based
cluster.
B
It's
just
some
user
credentials
that
you'll
see
later
when
we
login,
so
we
had
up
to
operator
hub.
We
saw
briefly
up
there.
It
was
listening
all
of
the
possible
operators,
which
is
basically
the
screen
shot.
We
saw
chose
to
install
the
Couchbase
operator
and
it
gave
us
the
option
of
a
number
of
channels.
So
channels
are
up
to
the
end
users
to
decide
and
certainly
take
that
back
up
to
the
developer
team
to
decide.
You
can
typically
think
of
things
like
stable
and
stable
beta
nightly.
However,
you
want
to
choose
them.
B
The
other
thing
that
was
on
that
screen
is
did
I
want
to
install
my
operator
in
a
particular
project
namespace
or
cluster
wide.
Typically,
you
only
need
operators
at
a
project
named
space,
so
things
like
a
database
I'm
just
going
to
install
this
for
my
particular
project.
The
more
cluster
wide
operations
are
things
related
to
something
like
networking
or
machine
management.
Okay,
perfect!
That's!
Where
I
want
you
and
hit
play
so
once
we're
inside
the
operator
itself,
it's
showing
us
a
list
of
all
of
the
custom
resource.
B
In
this
case
it
gave
us
the
option
of
a
Couchbase
cluster.
Now
this
is
a
custom
resource
defined
by
the
operator.
You
won't
see
anywhere
in
openshift
or
in
kubernetes
a
resource
named
Couchbase
cluster.
This
is
provided
by
the
operator.
It
gets
installed
in
the
system
and
then
you
can
interact
with
OpenShift
as
if
it
was
a
native
resource.
If
I
had
the
command
line
up
and
a
few
any
of
you
are
command-line
users,
you
used
to
OC,
get
pods
or
OC
get
deployments,
you
could
say
OC
get
Couchbase
clusters.
B
It'll
show
you
all
of
the
counterspace
clusters.
Now
at
this
point,
it's
just
bringing
up
a
normal
Yambol
definition,
a
little
hard
to
read
by
the
time
I
hand
these
off
to
Diane
to
send
out
afterward
I
do
have
a
video
over
this
on
YouTube,
which
would
be
a
little
bit
easier,
but
you
can
edit
the
animal
like
normal
and
that's
gonna
be
resources,
and
this
is
good.
Keep
this
one
going
hold.
B
So
no
some
problem,
so
all
of
our
settings
that
we
entered
or
I
should
say
left
of
the
defaults,
the
number
of
nodes
in
the
cluster
to
create
all
the
other
database
stuff.
That's
well
beyond
my
expertise.
All
of
those
values
get
used
by
the
operator
to
deploy
the
necessary
pieces,
the
top
and
the
bottom.
The
light
green
icons
are
services
that
middle
one,
you
can
see
is
the
first
of
the
three
pods
that
are
gonna
get
deployed
by
the
cluster,
and
you
could
see
them
slowly.
B
Starting
up
this
is
the
operator
taking
care
of
my
desired
request
of
give
me
a
cluster
of
three
nodes
and
slowly
starting
to
fulfill
that
there
can
be
any
number
of
reasons
why
they're
doing
it
serially
be
a
good
operator.
Citizen
means
understanding
that,
just
because
you're
running
inside
the
cluster-
and
you
have
easy
access
to
the
api's
doesn't
mean
you
should
slam
them
with
a
whole
bunch
of
requests.
So
it's
a
lot
simpler
for
an
operator
to
deploy
a
couple
hundred
items
than
it
would
be
for
me
using
a
number
of
different
llamo
files.
B
So
it's
important
for
the
operator
to
be
cognizant
of
the
fact
that
yes,
there's
other
work
loads
going
on,
so
don't
hug
everything
to
yourself.
So
we're
still
inside
of
the
view
for
this
particular
resource.
This
example
resource
for
the
demo
again
a
little
bit
hard
to
read,
but
you
can
make
out
some
UI
widgets
on
there.
These
are
the
configuration
options
for
this
particular
resource,
so
these
are
values
I
can
set
in
the
ammo
and
in
the
next
example,
I
actually
go
into
the
amyl
and
edit
something.
B
But
again
you
saw
some
rocker
switches
in
there
for
boolean
z',
it's
possible
to
indicate
some
metadata
for
lists
or
enumerations
and
OpenShift
will
take
that
metadata
and
render
it
into
a
UI
for
users.
So
now
what
I
did
in
this
case
was
enable
the
web
UI
console
into
Couchbase
and
you'll,
see
me
log
into
that
in
a
second
and
pull
it
up
so
editing
this
resource
again,
I
didn't
have
to
say,
create
me
a
service
I
will
create
a
route
shortly.
Is
it
plain.
B
Should
edit
this
and
keep
it
going
there?
Yes,
so
we've
we've
configured
the
resource
to
have
the
web
UI
exposed.
We've
created
a
route
to
it
and
I'm
just
simply
logging
you,
when
you
use
this
in
the
next
part,
but
this
is
what
the
Couchbase
UI
looks
like.
So
for
the
last
piece,
you're
gonna
see
me
go
into
the
Couchbase
resource
itself,
I'm
gonna,
edit,
the
animal
and
all
I'm
doing
is
saying
instead
of
three
nodes,
I
want
four
nodes
again
I'm,
not
creating
any
new
deployments.
B
I'm,
not
manually,
saying
I
want
to
create
a
new
pod.
All
I've
said
is
for
this
particular
cluster
I
want
you
to
have
four
resources
instead
of
three.
What
I
highlighted
on
there
again
little
tricky
to
read:
was
the
status
output
so
within
that
resources
also
contain
information
on
information
reported
back
from
the
operator,
so
that
was
a
list
of
the
nodes
in
it.
It
could
be
other
status
information
about
the
cluster
itself,
probably
a
good
place
to
stop
it.
B
So
the
operator-
and
this
is
where
the
operator
part
really
comes
into
play
instead
of
just
saying
instead
of
three
nodes-
I
want
four
nodes:
it's
not
that
simple
in
a
Couchbase
cluster,
there's
other
databases,
things
that
have
to
happen
with
this.
Ui
is
showing
at
the
very
top.
You
could
see
some
red,
it's
saying
one
new
node
has
been
found,
but
we
need
to
trigger
rebalancing,
hey.
B
A
A
C
B
Sure
so
I
see
everybody
taking
pictures
of
this
slide
again
they'll
be
available.
What
you're
seeing
up
here
is
links
to
a
number
of
things,
the
special
interest
group,
a
lot
of
the
github
repositories
and
then,
as
the
hand,
wanted
me
to
mention
earlier.
The
book
signing
upstairs
of
three
o'clock
is
specifically
about
kubernetes
operators,
everything
from
understanding
concepts
to
writing
them
using
the
SDK
for
go
ansible
and
helm,
and
then
some
philosophies
around
best
practices
and
things
like
that.
Okay
question.
B
Do
you
mean,
by
policy
perspective
from
a
security
perspective?
Okay,
so
heart,
okay,
good,
great
question,
so
an
operator
is
the
running
pod.
It's
your
custom
resource
definition.
What
I
kind
of
skimmed
over
is
that
there's
a
series
of
auerbach
settings
that
you
also
need
to
specify
to
give
the
operators
permission
to
do
things
on
the
cluster
now
operator.
Installations,
as
of
now
require
cluster
admin
access.
Because
of
that
exact
reason,
I
can
install
the
operator
and
correctly
scope
it.
B
B
That
stuff
is
all
again
generated
by
the
SDK.
So
creating
a
new
operator
I
would
run
the
SDK
to
make
the
new
project.
It
spits
out
some
default
settings
for
the
authentication
or
fee
security,
which
are
extremely
permissive
because
it
doesn't
know
any
better.
One
of
your
steps
is
the
operator
writer
is
absolutely
to
go
in
there
and
then
start
taking
out
permissions
that
it
shouldn't
have.
But
again
it
ultimately
comes
down
to
the
cluster.
B
D
B
B
At
the
end
of
the
day,
there's
always
gonna
be,
if
you
want
to
call
that
manual
sure,
but
you're
always
gonna
want
a
human
looking
at
security.
Things
like
that
now
that
said,
I
need
the
operators
coming
off
of
operator
hub
dot.
Io,
like
Gil
mentioned
I'm,
actually
was
on
that
team,
two
of
reviewing
them.
So
that
is
something
we
look
at
it's
Paul
Christensen
in
here
so
sitting
upstairs
waiting
for
people
is
a
guy
responsible
for
certification
of
operators.
They
absolutely
look
at
that.
B
So
if
you
get
an
operator
from
Red
Hat,
you
could
be
sure
that
his
team
has
taken
a
look
at
those
permissions
than
understands.
It's
not
breaking
things.
One
last
point
that
I
know
day
I
wanted
me
to
mention
everything
we've
mentioned
up
here
is
the
existing
operators
and
which
available
and
operator
hub
that
IO
more
customer-centric
audience.
If
there's
anything
missing
that
you
would
like
added
specifically,
we
need
support
for
such-and-such
a
partner
or
such-and-such
a
business.
I
mentioned
Paul
Christensen,
there's
another
guy
upstairs
named
Michael.
B
Wait
if
you've
never
met
him
before
he's
just
I
was
gonna,
say
six
six,
but
I.
Don't
it's
not
like
5,000
centimeters,
whatever
the
conversion
is
super
tall,
super
tall,
dude,
just
look
up
and
that's
Mike
wait
find
those
guys-
and
there
be
more
than
happy
to
hear
about
the
kind
of
use
cases
you're
looking
for
to
either
be
able
to
tell
you
yeah.
We
already
have
operators
that
do
that.
We
have
partnerships
that
handle
it
or
no,
but
I'm
gonna
go
hunt,
someone
down
and
I
think
this
would
be
a
great
addition.