►
Description
Introduction to the Java Operator SDK and demonstration of how to use it!
https://github.com/java-operator-sdk/java-operator-sdk
with Jesus Rodriguez and Christophe Laprun (Red Hat)
A
B
Well,
hello,
everybody
and
welcome
to
another
openshift
commons
briefing
and
as
we
do
on
wednesdays,
we
like
to
talk
about
operators
and
I'm
hoping
you're
joining
us
from
the
previous
live
stream
on
olm.
So
it's
a
good
segue
into
another
aspect
of
our
operator
framework
community
we've
got
jesus
rodriguez
and
christoph
lacroon
from
the
java
operator
group
and
they're
going
to
give
us
an
update
on
java
operators
and
all
things
around
that,
so
I'm
going
to
let
them
introduce
themselves.
You
can
ask
questions
in
the
chat.
B
We'll
have
a
bit
of
a
live
q
a
at
the
end,
and
I
hear
there's
a
really
skookum
demo
coming
so
looking
forward
to
that
as
well.
So
please
do
ask
your
questions
in
the
chat
and
we'll
rock
and
roll
now,
so
jesus
take
it
away.
A
Hi
folks,
I'm
christophe
lapran,
I'm
a
principal
software
engineer
working
in
middleware
or
application
services,
as
it's
called
now,
and
I
focus
on
right
now
focus
on
general
operator
sdk,
which
we'll
discuss
today.
C
Awesome,
okay,
so
the
as
you
saw
this
last
week
with
rashmi
and
varsha,
the
operator
sdk
from
operator
framework
works
closely
with
qbuilder.
The
two
projects
were
effectively
written
to
makes
to
simplify
writing
operators.
C
C
Sdk
also
uses
controller,
runtime
and
controller
tools
upstream
to
kind
of
base.
A
lot
of
its
pri
operators
on
and
the
the
important
part
too,
is
the
extensible
cli.
So
we
have
the
plugins
which
rashmi
covered
last
during
the
last
presentation
and
in
these
plugins
we
are
scaffolding
out
a
variety
of
different
projects
and
operators.
So
today
we
offer
ansible
helm
and
go
and,
as
you'll
see
we're
starting
to
look
at
and
scaffolding
out,
java.
C
C
And
as
workloads
start
to
move
to
the
cloud,
it's
natural
that
they
want
to
also
move
the
operational
knowledge
to
the
cloud
as
well
and
in
these
operators,
if
you've
already
got
a
lot
of
your
expertise
in
writing
your
applications
in
java,
you
tend
to
want
to
write
the
operators
in
java
today.
Typically,
when
you
go
cloud
native,
the
first
thing
you
have
to
think
of
is
like.
Oh,
we
probably
have
to
write
something
and
go
which
is
a
fine
language,
but
it's
kind
of
out
of
most
people's
comfort
zone.
C
This
is
precisely
the
reason
why
the
sdk
went
after
using
ansible
and
helm,
because
we
had
folks
that
were
had
expertise
in
ansible
and
written
their
installation
enanciable.
So
this
allowed
them
to
reuse
a
lot
of
that
and
create
an
operator
in
ansible,
so
it's
natural
that
we
can
also
try
to
enable
folks
with
java,
also
the
devops
philosophy.
You
know
it's
typically
the
folks
that
are
writing
the
applications,
which
in
this
case
would
be
java,
wouldn't
also
have
to
maintain
and
do
the
operational
part
portion
of
this.
C
A
Yeah
yeah,
I
just
wanted,
add
to
what
jesus
was
saying
so
far,
the
the
big
questions,
because
it's
been
possible
to
write
operators
in
pretty
much
any
language
right.
A
As
long
as
you
can
have
a
loop
that
can
watch
events
from
the
cube,
the
kubernetes
server,
you
can
write
an
operator
in
any
language
and
even
though
java
so
far
has
been
used
in
lots
of
applications
and
is
typically
quite
performant
and
the
performance
characteristics
so
far.
We
are
more
targeted
at
server
applications
and
that
came
with
several
optimizations
that
were
not
really
suited
for
cloud
workloads
and
that's
why
red
hat
looked
at
improving
that
that
specific
aspect
with
focus.
A
So
in
the
cloud
environment,
where
your
applications
are
running
in
containers
that
can
be
shut
down
pretty
much
at
any
time.
That's
an
handicap
that
you
don't
want
to
have,
so
you
need
fast
startup
and
you
need
also
to
be
able
to
share
the
space
and
the
memory
with
other
applications
on
your
cluster
right.
A
So
another
aspect
was
also
to
to
work
on
on
the
memory
side
of
things
so
that
you
can
have
a
java
application
that
doesn't
take
that
much
memory
either
and
the
result
of
that
work
is
is
quarkus,
which
is
which
comes
with
a
pretty
neat
tagline,
which
is
supersonic
sub
button.
With
java,
it's
meant
to
be
developer
friendly,
as
we
will
see
in
the
demo
and
it's
supposed
to
be
optimized
for
cloud
workloads,
even
though
it
can
work
in
in
what
we
call
jvm
mode,
which
is
basically
traditional
java.
A
It
still
has
premier
a
lot
of
optimizations
for
that
mode,
where
a
lot
of
the
work
is
deported
is
done
at
build
time,
as
opposed
to
runtime.
For
many
traditional
java
frameworks,
and
the
big
I
mean,
one
of
the
big
innovations
in
caucus
is
making
it
easy
to
to
compile
your
application
natively,
because,
because
oracle
came
up
with
a
project
called
railground
vm
in
a
in
a
couple
of
years
back,
but
it's
been
quite
difficult
for
people
to
use
it
effectively
for
non-experts
and
quark
is
make.
That
makes
that
a
lot
easier
to
come.
A
Natively
compile
your
applications,
and
it
comes
with
the
best
upgrades
of
libraries
and
standards,
and
one
aspect
also
of
caucus
is
that
people
are
able
to
write
extensions
for
it
so
that
you
can
plug
your
extension
into
the
framework
and
and
make
it
support
negative
and
do
whatever
your
extension
is
trying
to
bring
to
the
to
the
caucus
world
make
that
work.
Do
that
work
sorry
at
real
time,
as
opposed
to
to
to
run
time
next
slide,
please.
A
So
if
we
were
to-
maybe
I
don't
know
if
you
can
see
very
well,
because
the
image
is
quite
small,
at
least
on
my
screen,
but
it's
it's
a
sum
up
of
a
summary
of
what
caucus
brings
to
the
table
in
green.
You
can
see
it's
basically
showing
the
the
space
that's
taken
in
memory
for
a
quackiest
application,
as
opposed
to
a
traditional
java
application
and
that's
a
typical
rest
applications
or
a
resting
point,
and
the
second
one
is
the
rest,
plus
crowd
credit
being
create.
A
Read
update
and
delete,
so
it's
basically
accessing
a
database.
I
mean
doing
basic
database
applications,
so
those
are
typical
application
workloads
that
you
could
have
on
the
cloud
and
basically
in
in
the
gray,
the
gray
color
shows
what
it
would
be
for
a
typical
java
application.
A
So
you
can
see
it
takes
a
lot
of
memory
and
it's
pretty
slow
to
start
and
in
the
blue.
Color
shows
the
quarkus
version,
but
running
in
java
virtual
machine
mode.
So
the
what,
when
I
called
the
jvm
mod
earlier
and
in
green,
is
the
same
application
but
compiled
natively.
A
So
you
can
already
guess
the
advantages
of
of
running
quakers
and
in
native
mode
in
containers
and
when
it
comes
to
operators,
obviously
that
that
neatly
ties
I
mean
catches
up
with
go
operators
in
terms
of
efficiency,
even
though
you
can
probably
still
write,
go
applications
that
are
slightly
smaller
than
java
than
caucus
applications
caucus
is
competitive
and
it
has
the
advantages
of
of
obviously
being
known
to
java
enterprise
developers,
so
they
don't
have
to.
As
jesus
was
saying,
they
don't
have
to
learn
a
new
language
language
next
slide,
please.
A
So
far,
one
point
that
was
preventing
or
at
least
making
things
harder
for
people
to
write.
Operators
in
java
was
the
lack
of
the
equivalent
of
controller
runtime
that
go
provides
for
for
developers,
and
the
aim
of
the
java
operator
sdk
is
to
provide
that
equivalent
of
controller
runtime,
but
for
java
developers.
A
Feature
parity,
but
rather
to
something
that
is
familiar,
I
mean
that
uses
java
idioms
so
that
it
would
be
familiar
to
java
developers
and
the
end
goal
is
to
simplify
writing
operators
and
controllers
in
java.
Obviously,
it
relies
on
the
fabricate
kubernetes
client
that
redder
developed
a
while
ago
already
and
provides
the
integrations
for
different
java
frameworks
in
particular
spring
boots.
A
It
provides
a
spring
good
starter
and
what
we
discussed
today
in
greater
details,
calculus
extension,
and
that
makes
things
even
easier
and
just
recently
on
the
operator
framework
team,
has
developed
a
plugin
for
the
operator,
sdk
cli,
that
the
laws
as
jesus
was
saying
to
to
scaffold
on
java
operator
projects
using
your
operator,
sdk
plugin,.
C
Before
you
go
on
to
the
next
one,
one
comment
I
wanted
to
add
is
you
know,
like
you
mentioned
earlier,
that
you
can
write
today,
operators
in
java,
just
using
straight
fabricate
client,
but
the
aim
of
like
java
operator
sdk,
just
like
control
of
runtime,
is
to
kind
of
hide,
or
at
least
abstract,
some
of
the
concepts
away,
so
that
you
don't
have
to
know
all
of
the
raw
kubernetes
and
try
to
make
it
easier
to
write
and
do
your
controllers
so
that
it
makes
it
easier
to
enter
the
the
space
early
on
when
operators
first
came
out.
C
You
know
the
first
thing
everyone
thought
is
like.
If
you're
writing
an
operator,
you're
going
to
be
a
kubernetes
expert,
we
found
that
not
all
operator
developers
are
kubernetes
experts,
often
the
reason
they're
writing
operators
is
because
sometimes
the
business
says
hey.
We
need
to
go
cloud
native.
You
need
to
learn
to
write
an
operator
and
a
lot
of
the
users
of
that
we
found
were
in
that
base
of
I've
got
to
write
an
operator.
I
don't
know,
go
I
I
know
java
or
I
know
ansible.
C
A
A
A
A
C
A
C
One
more:
this
is
right
before
the
demo,
so
to
tie
things
up
together.
As
christoph
mentioned
earlier,
there
was
the
java
operators
plugin
for
the
operator
sdk.
So
in
the
operator
framework
side,
like
I
mentioned
earlier,
we
had
go
ansible
and
helm,
and
we've
had
requests
for
hey
I'd
like
to
write
operators
in
java.
C
We
traditionally
with
the
other
three,
were
basing
things
on
controller
runtime,
and
we
started
to
look
at
possibly
creating
a
java
version
of
controller
runtime
and
that's
when
we
found
the
java
operator
sdk
and
that
made
it
easier
to
get
to
this
point
to
write
a
plugin
to
allow
the
scaffolding
of
the
java
plug
operator.
So
one
of
the
reasons
we
did
this,
it's
also
helps
to
integrate
with
the
operator
framework
sdk
and
queue
builder,
so
you've
got
a
set
of
users
that
are
familiar
with
that
technology
already.
C
That
will
want
to
also
possibly
have
users
that
use
data
together.
We
are
looking
and
we
offer
olm
and
scorecard
integration.
So
olm
is
the
operator
lifecycle
manager
which
comes
with
openshift,
and
it's
also
open
source
that
you
can
install
in
a
bare
metal
coming
in
a
bare
kubernetes
cluster
that
offers
the
life
cycle
of
an
operator.
C
So
if
you've
generated
and
scaffolded
out
a
go
operator,
it
uses
the
same
api
to
create
a
java
one
and
what
we're
writing
out
instead
of
starting
from
scratch
and
going
through
and
figuring
out
all
of
the
things
that
we
needed
for
java.
C
B
Not
yet
give
it
a
second
try
again
if,
while
we're
doing
this,
if
anyone
has
any
questions,
please
just
ask
them
in
the
chat
wherever
you
are
in
youtube
or
in
twitch
and
relay
them
in
here,
but
try
the
share
screen
again
button,
because
you
made,
if
you
have
two
terminals
set
up,
it
may
be
giving.
B
A
A
Big
undertaking
right,
but
not
really,
I
mean
we'll
see
so
I'm
gonna
use
the
the
operator
sdk
cli,
to
scaffold
my
my
code,
so
maybe
maybe
a
little
bit.
Let's
talk
a
little
bit
about
the
use
case,
I'm
trying
to
solve
so
I
mean.
Obviously
we
won't
get
into
all
the
nitty-gritty
details
of
creating
a
production,
radio
operators
here,
but
the
idea
is
that
as
a
developer,
I
want
to
write
an
operator
that
will
take
my
the
I
mean
an.
A
I
have
a
document
image
of
of
an
application
I
want
to
put
on
my
kubernetes
cluster
and
I
want
that
application
to
be
accessible
outside
of
the
cluster.
So
typically,
if
I
want
to
do
that
with
kubernetes,
I
have
to
create
a
deployment,
create
a
service
and
I'm
playing
kubernetes.
I
have
to
write
an
ingress
or
a
root
if
I'm
targeting
openshift.
A
A
It
will
be
hard
coded
to
be
ada
in
this
case,
because
that's
quite
I
mean
that
could
get
tricky
quickly,
but
yes,
so
my
operator
basically
wants
to.
A
So
I
I'll
try
to
do
that
now
and
the
I
will
scaffold
my
my
operator
using
the
operator
sdk
init
command,
which
starts
the
scaffolding
process,
and
I
tell
it
to
use
the
caucus
plugin
and
I
specify
a
domain
name
and
a
project
name.
So
the
domain
name
will
be
used
for
things
like
package
name
in
java,
but
also
for
the
the
group
name
for
the
crd
and
things
like
that.
The
custom
resource
definition
and
things
like
that.
A
Okay,
so
if
we
look
at
what
got
generated,
we
have
a
typical
maven
project
with
a
pom
file
that
adds
all
the
the
needed
information
to
get
started.
We
also
have
a
make
file
a
git
ignore
a
resource
file
for
application
properties
for
quarkx
and
no
no
classes
as
of
now.
So,
if
I
start
my
dev
mode,
my
calculus
date
mode.
A
A
Unfortunately,
in
this
case,
but
yeah,
the
focus
is
starting
now
and
you
can
see
that
it
listens
for
on
port
5005
so
that
I
can
attach
a
debugger
if
I
need
to,
and
hopefully
it
should
get
going.
C
While
that's
well,
that's
loading.
One
thing
I
wanted
to
make
a
comment
about.
I
know
you
mentioned
makefile
and
most
folks
that
are
familiar
with
java,
noticed
the
palm.xml
and
wondered
probably
wondered
why
there's
a
file
the
reason
there's
a
makefile
is
the
main
cli
for
the
operator
sdk
for
like
go
and
ansible.
We
have
a
make
file
that
we
have
so
that
you
can
do
make
build
for
make
bundle.
C
A
B
A
Is
that,
typically,
you
will
create
an
operator
instance
and
then
created
a
resource
controllers
that
implement
a
given
interface
and
you
implement
those
methods
and
then
the
sdk
does
its
magic
and
the
operator
is
wired
up.
But
in
our
case
we
don't
have
any
resource
controller
now
because
we
haven't
created
any.
So
that's
what
we'll
do
now
using
steal
the
operator
sdk
cli
and
this
time,
if
you
notice,
I
keep
the
the
quarkus
dev
mode
still
running
and
the
the
command
I'm
using
for
the
operators.
Sdkcli
is
create
api.
A
This
time
and
I
need
to
specify
two
additional
parameters.
I
need
to
give
a
kind
for
my
custom
resource
because,
basically
creating
an
api
in
operator.
Sdk
parliaments
is
the
kind
of
creating
a
custom
resource
because
that's
basically
what
they
are
as
far
as
kubernetes
is
concerned,
so
I
give
it
a
kind
which
will
map
to
a
class
name
and
in
java
and
a
version
that's
used
for
versioning
my
api.
A
No
because
I'm
stupid
and
I
didn't
switch
to
the
directory-
I
created
again.
So
let's
do
that
again
and
now
it
should
work.
Yeah
see
it
created
an
exposed,
app
class.
A
While
I
was
looking
at
my
class.
So
let's
look
at
the
class
a
little
bit.
This
exposed
app
class
is
in
the
package
that
we
defined
using
the
and
it
extends
the
custom
resource
class.
That's
found
in
the
fabricate
client
and
if
you
know
java,
it's
parameterized
by
two
additional
classes
which
map
to
the
spec
and
the
status
class
for
the
for
the
custom
resource.
A
Basically,
the
each
other
operator.
Sdk
is
opinionated
in
that
way
and
try
to
make
sure
that
we
follow
best
practice.
The
best
kubernetes
practices,
where
it's
it's
a
good
practice
to
for
your
custom
resource
to
separate
the
desired
state
which
is.
A
Between
the
desired
state,
which
is
represented
by
the
spec
side
of
the
custom
resource
and
the
current
state,
which
is
the
status,
so
if
we
look
at
those
classes
right
now,
they
are
empty
because
even
though
the
operator
sdk
cli
does
a
lot
of
things
for
you,
it
can't
read
your
mind
yet
so
maybe
there'll
be
a
feature
for
2.0.
I
don't
know.
C
A
A
So
you
can
see
that
first,
that's
actually
the
yeah
caucus
detected
that
there
are
there
have
been
changes
to
some
classes,
so
it
restarted
the
app
and
then
our
extension,
which
is
owned
by
the
operator
sdk
processor.
A
A
You
need
to
register
them
properly,
so
that
right,
vm
knows
that
you
intend
to
do
stuff
with
them
at
runtime
and
the
caucus
extension
knows
that
respect
the
customer
resource
and
service
class
have
some
reflection
aspects.
I
mean
access
are
access
to
their
reflection
in
the
code,
so
it
automatically
register
them
for
you
so
that
when
you
natively
compile
your
operator,
you
don't
run
into
issues
at
runtime
where
the
native
binary
cannot
do
the
operations.
You
want.
A
Which
is
not
doing
anything
at
the
moment
and
we
we're
gonna,
look
into
it
a
little
bit
later
and
it
associates
your
controller
with
your
custom
resource,
which
is
automatically
mx
dash
that
I
can
dot
io
and
register
with
the
group
one
version
and
alpha
and
which
are
the
the
information
we
passed.
The
verified
kcli.
A
A
A
We
can
tell
caucus,
there's
a
there's,
an
a
property
that
we
can
change
in
application
property
to
tell
the
java
operator
sdk
extension
to
automatically
apply
crds
to
the
cluster
during
development.
Obviously,
don't
want
to
do
that
in
production,
but
anyway,
that
mode
should
apply
only
during
when
you're
running
in
dev
mode.
A
A
The
crd
for
you
and
applied
it
to
the
cluster
right
there
you
can
see
it
got
up,
it
got
applied
and
now
my
operator
properly
started
it's
raining,
but
nothing
happens
because,
obviously
the
controller
doesn't
do
anything.
A
So,
let's
change
that,
let's
look
at
the
controller,
naturally
a
little
bit
more,
so
your
controller
class
has
two
things
that
well
I
mean
several
things,
but
first
thing
is
that
it
needs
to
to
be
annotated
with
the
controller
annotation,
because
that's
where
we
can
configure
several
aspects,
we
can
configure
aspects
using
either
the
annotation
or
the
the
application.properties
file,
and
it
also
needs
to
implement
the
resource
controller
interface,
which
is
parameterized
with
your
custom
resource
class,
and
what
that
gives
you
is
that
you
need
then,
to
implement
two
methods,
really
one
method
which
is
the
create
or
update
resource.
A
A
A
A
A
A
Doubled
a
lot
of
time
so
now
maybe
let's
open
the
field,
I
don't
know
the
defaults,
but
what
I
get
the
questions
that
you
can
answer.
C
One
comment
I
would
make
is
that,
as
you
can
see,
it
is
pretty
simple
to
create
the
you
know
the
basic
boilerplate
stuff
of
the
operator
and
then
now,
like
kristoff,
said
earlier,
you
can
focus
on
the
business
logic
of
your
operator
and
not
have
to
worry
so
much
for.
Oh,
you
know
how
do
I
get
my
reconcile
function
to
get
called?
What
do
I
need
to
do
here
now?
C
C
So,
as
you
saw,
was
kristoff's
demo,
and
there
are
quite
a
few
samples
in
the
java
operator,
sdk
project
and
available
to
look
at
as
well
as
the
quarkus
extension
and
the
operator
framework.
Sdk
has
non-java
ones
that
you
could
look
at
as
well
quickly
because
we're
running
out
of
time,
the
roadmap
for
these
projects
and
the
plugins
is
effectively.
You
know
adding
better
testing
support.
C
One
of
the
common
questions
we
get
on
the
operator
framework
side
is
now
that
they've
learned
to
scaffold
and
create
their
projects.
How
do
they
test
them?
They
there's
both
unit
tests
and
integration
tests
that
they
want
to
focus
on,
and
that's
clearly
going
to
be
one
of
the
big
questions
that
they're
going
to
ask
when
they
create
their
java
operators
as
well.
C
We
are
looking
into
those
types
of
testing
for
the
java
stuff
as
well
find
see
what
would
be
the
best
thing
better
dependent
resource
support.
There's
usually
your
primary,
but
then
there
are
things
that
you
have
to
monitor
and
and
effectively
watch
while
your
operator
is
running
again,
integration
with
olm,
so
olm
is
one
of
the
key
features
in
openshift
for
managing
operators.
C
So
we
want
to
be
able
to
allow
your
operator
to
be
run
and
managed
by
olm
as
easy
as
possible,
so
that
you
don't
have
to
worry
about
all
the
details
about
the
java
operator
plugins
that
we've
showed
the
scaffolding
out
the
initialize
and
create
api
as
rashmi
and
varsha
mentioned
last
week,
the
phase
two
plugins,
which
allows
out
of
tree
executable
plugins.
C
So
today
the
java
operators,
plugins,
is
compiled
into
operator
sdk
phase
two
will
actually
allow
you
to
create
your
own
binary
and
put
it
into
the
path
and
have
operator
sdk,
discover
it
and
run
it.
This
will
give
the
project
the
ability
to
have
its
own
releases
and
we
could
ultimately
migrate
it
to
a
full-on
java
application.
Today
it's
written
and
go.
C
C
C
Lastly,
your
requirements,
the
things
that
you
want
to
see
in
these
projects,
we
would
welcome
your
input,
there's
a
variety
of
projects
that
you
can
contribute
to
and
offer
support
and-
or
you
know,
as
simple
as
creating
an
issue
open
an
issue
to
at
least
show
your
interest
of
what
feature
that's
missing,
or
you
would
like
to
see
so
that
we
can
prioritize
it.
C
And
lastly,
I
think
diane
put
this
in
the
chat.
There
are
a
few
projects
java
operator,
sdk
orcas
extension,
the
plugin
and
then
we've
got
qbuilder
and
operator
sdk
themselves.
C
We
meet
every
thursday
4
p.m;
utc
that's
11
a.m.
I
think
eastern
and
there's
the
zoom
link,
there's
also
a
discord
chat.
I
forgot
there's
also
a
kubernetes.
B
B
I'll
grab
those
and
add
them
in
in
the
video
edited
this.
So
that's
great
too
so
yeah,
I
didn't
know
you
guys
had
a
discord
server.
So
that's
great,
actually
and
there's
al
there's
a
couple
of
questions
in
the
chat
too
as
well
and
there's
there's
always
the
conversation
we
have
about
quarkus
versus
spring
boot
and
you
know
java
stuff,
and
we
did
talk
at
the
very
beginning
about
the
value
proposition
for
using
quarkus
and
the
quarkus
extension
instead
of
just
a
standalone
java
library.
B
But
I'm
wondering
if,
if
you
could
just
address
that
again
in
the
in
this
q,
a
there's
a
question
here
in
the
channel-
take
a
look.
C
C
You
know
spring
boot
or
some
of
the
other
frameworks
that
an
operator
would
look
like
trying
not
to
just
pick
one,
because
I
know
like
with
go
when
we
scaffold
it
out.
It's
pretty.
The
only
thing
we
worry
about
is
controller,
runtime
and
you're,
pretty
much
a
free-for-all
for
what
you
want
to
use,
there's
always
that
balance
of
being
opinionated,
but
also
giving
you
the
flexibility
so.
A
A
A
The
question
then
becomes:
how
familiar
are
you
with
that
language
and
are
you
being
productive
with
that
language?
For
your
the
use
case,
you're
trying
to
solve
in
in
this
situation?
Why
use
quark
is
well
corpus
says
I
mean,
maybe
I
didn't
do
a
good
job
of
demoing
everything,
but-
and
actually
I
didn't
demo
all
of
that
I
wanted
to,
but
basically
with
quarkx,
you
have
that
fast
feedback
loop.
When
you
do
something
you
run
the
dev
mode
and
you
write
your
code
and
then
focus
tells
you.
A
Oh
your
code
doesn't
compile,
or
in
that
case,
for
the
extension
it
tells
you
or
you
didn't,
deploy
your
crd.
So
I
can't
do
anything
or
you
don't
have
a
resource
controller
implemented,
so
your
operator
doesn't
do
anything.
Obviously,
if
you're
familiar
with
the
framework,
you
don't
need
that
help,
but
for
developers
who
might
not
be
that's
still
useful.
A
Another
aspect
also
that
I
quickly
mentioned
the
caucus
extension
I
mean
caucus.
If
you
use
java
corkus
is
the
I
mean,
obviously
I'm
biased,
but
in
my
opinion,
it's
the
best
framework
java
framework
to
use.
If
you
aim
to
compile
your
app
natively
at
some
point,
because
it
makes
the
native
compilation
quite
a
breeze
compared
to
similar
java
projects
that
are
out
there.
But
not.
A
If
you
don't
use
the
extension,
you
would
need
to
know
that
and
know
how
to
register
those
classes
yourself,
which
is
not
trivial
things
to
do
so,
though,
that's
one
thing,
the
the
second
thing
is
that
it
looks
at
your
code.
It
automatically
updates
your
crd
for
you
when
needed
applies
it.
If
you
want
to
to
the
cluster,
so
you
don't
need
to
do
that
and
we
are
looking
at
other
features.
B
You
really
answered
that
I
think
and
john's
who's
the
person
who's
asked
this
is,
he
is
also
a
fan
of
quarkus,
so
it's
not
a
it's,
not
a
quarkus
versus
spring
boot
conversation,
it's
just
more
about
what
the
benefits
of
the
web
framework
worth,
and
I
think
you
articulated
that.
A
B
And
being
opinionated
is
not
a
bad
thing,
it
doesn't
make
you
and
you
may
have
a
bias,
but
working
this
closely
and
working
on
all
these
plugins
and
everything
and
making
them
really
speed
up
our
java
application
development
processes
and
making
up
these
services
available
is
really
a
huge
contribution.
So
thank
you
christoph
and
jesus
for
all
of
the
work
that
you've
been
doing
and
the
community
has
been
doing,
and
I
really
highly
encourage
people
to
try
the
projects
just
like
it
says
there
on
the
slide
in
front
of
you.
B
Take
a
look
at
them.
Give
us
your
feedback
come
to
one
of
the
community
meetings.
Let
us
know
what's
missing
and
help
us
figure
out.
What's
next
to
do,
I'm
really
looking
forward
to
some
of
the
phase.
B
2
work,
that's
being
done
for
java,
so
we'll
have
you
back
when
we
get
to
that
point
and
do
some
more
demoing,
but
if
you're
using
this
java
operator
in
the
sdk
in
production
or
if
there
and
you
have
a
story
or
some
lessons
learned
reach
out,
let
us
know
we
always
want
to
hear
from
you
and
get
your
feedback.
B
B
That's
one
of
my
favorite
things,
even
better
throw
in
a
pa
pull
request
and
make
something
happen,
that's
even
more
fun,
but
I'm
sure
you
can
find
your
peers
in
these
community
meetings
in
these
different
servers
and
especially
I'll
add
in
the
slack
kubernetes
channels
as
well
for
this
in
in
the
chat
afterwards.
B
But
this
is
really
your
opportunity
to
get
involved,
give
feedback
and
help
drive
the
project
so
first
off
great
demo,
and
I
will
share
the
slide
deck
and
get
you
guys
back
here
in
not
too
distant
future
for
the
next
upgrade.
So
all
these
slides
and
the
previous
operator
sdk
talk
will
be
available
shortly
as
a
blog
post
on
openshift.com
or
cloud
redhat,
dot,
com,
slash
blog
or
one
of
the
many
places
where
we
put
our
blog
these
days,
and
it
will
everything
all
the
urls
resolve
to
the
same
place.
B
So
I
I'll
keep
track
of
that
as
well.
So,
thank
you
again
for
everything.
You've,
you've
done
and
you
shared
with
us
today
and
give
us
your
feedback.
That's
the
key
takeaway!
I'm
back
come
back
and
join
us
yeah.
So
thanks
again
christoph
thank.