►
From YouTube: Moving from CLIs to control planes with Crossplane
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
How
do
we
manage
infrastructure
and
services
and
applications?
Now?
The
answer
to
the
question
might
seem
simple
and
you
might
say,
hey.
I
have
a
cli
and
I
use
that
cli
to
interact
with
some
api
that
cli
may
be
talking
to
aws,
api
or
azure
api
or
gcp
or
alibaba,
or
maybe
kubernetes,
but
apis
are
only
a
middlemen
between
us
and
the
real
deal
and
that
real
deal
is
a
control
plane
and
you
might
be
thinking.
Hey
control.
A
Plane
is
something
that
only
kubernetes
uses,
but
that's
not
true
when
we
execute
a
cli
like
aws
or
gcloud
or
terraform,
or
whatever
we're
using.
It,
sends
the
information
about
the
desired
state
to
the
api
and
control
plane
on
the
other
side,
picks
that
request
from
an
api
and
does
something
control
plane
is
the
fun
doing
the
actual
work,
and
it's
everywhere.
It's
in
aws
in
gcp
and
azure,
every
cloud
provider
has
a
control
plane
and
then
for
applications
we
have
kubernetes
and
in
the
past
we
had
mesos
and
docker
swarm
and
we
have
nomad.
A
There
are
also
control
planes.
Control
planes
are
essential
because
the
platforms
that
we
communicate
with
through
an
api
cannot
just
do
things
exactly
as
we'll
tell
them.
We
don't
do
that
anymore,
they're
responsible
for
picking
up
information
about
all
the
desired
states
that
we
have
for
all
the
resources
and
making
sure
that
they
are
created
that
they're,
creating
in
specific
orders
that
they're
maintained
that
they're,
always
up
and
running,
and
so
on
and
so
forth.
Control
planes
are
at
the
heart
of
everything
and
they
are
everywhere.
A
They
know
what
to
do
when
to
do
it
and
how
to
do
it,
whatever
that
it
is
and
that
it
that
something
is
happening
constantly,
because
the
role
of
control
plane
is
not
only
to
create
stuff
that
we
tell
them.
Actually,
we
never
even
tell
control
planes
to
create
something
they
tell
them
that
there
is
a
desired
state
of
something
and
then
controlled.
A
Planes
are
making
sure
that
that
something
is
created
and
that
that
something
is
maintained
forever
and
never
or
at
least
until
we
change
the
desired
state
to
be
something
else,
and
that
something
can
be
even
hey.
This
resource
should
not
exist
anymore.
Now.
The
problem
with
control
planes
is
that
there
are
too
many
of
them,
and
most
of
them
are
proprietary,
they're
hidden
and
we
have
no
control
over
them.
We
cannot
modify
them
to
suit
our
specific
needs.
We
cannot
see
how
they
do,
what
they
do
and
so
on
and
so
forth.
A
A
We
need
the
control
plane
that
is
available
to
everybody
and
we
need
a
control
plane
that
will
unify
all
those
control
planes
because
when
you
think
about
it,
hey,
if
I
need
to
deal
with
azure
and
aws,
because
everybody's
multi-cloud
now
and
I
need
to
deal
with
kubernetes
and
potentially
with
many
other
control
planes,
the
job
becomes
a
nightmare,
it
becomes
complicated
and
simply
not
really
effective.
So
we
need
a
control
plane
of
control
planes.
A
We
need
a
universal
control
plane
that
must-
and
I
stress,
must
be
open
source
and
such
control
planes
should
not
only
control
all
the
control
planes,
but
also
suit
our
specific
needs.
What
one
company
needs
or
one
team
needs
is
not
exactly
the
same
as
what
everybody
else
needs,
so
we
need
to
be
able
not
only
to
have
control
plane
of
control
planes
a
universal
control
plane,
but
also
tweak
it
and
make
it
do
the
things
that
we
need
and
not
what
somebody
else
thinks
that
we
need
not
some
vendor.
A
That
is
trying
to
figure
out
what
are
the
needs
that
can
fit
into
everybody's
use
cases.
That's,
frankly,
speaking
impossible.
Crossplane
is
trying
to
do
just
that.
It
is
open
source,
it
is
community
driven
and
it
is
hoping
to
become
a
universal
control
plane
that
can
be
used
to
control
all
control
planes.
A
It
is
a
control
plane
of
cloud
of
whole
cloud
not
of
a
specific
vendor,
and
I
just
realized
that
I
forgot
to
introduce
myself.
My
name
is
victor.
I
work
for
upbound
and
we
are
the
major
contributor
to
the
crossplane
project.
Today
I
will
not
be
able
to
show
you
everything
that
universal
control
can
and
should
do.
Instead,
I
will
focus
on
one
specific
use
case,
one
specific
scenario,
and
that
scenario
will
be
around
databases.
A
How
can
we
manage
infrastructure
and
services
and
whatever
else
we
might
need
related
to
database
servers
and
databases
and
schemas
and
everything
else,
and
I
have
a
couple
of
requirements
I
want
to
fulfill.
To
begin
with,
I
want
to
enable
everyone
to
manage
everything
while
making
it
safe
and
by
removing
the
complexity.
Now
that
might
be
confusing.
You
might
not
understand
what
I
mean
by
that.
So
let
me
explain.
I
believe
that
we
are
all
experts
in
certain
areas,
and
some
of
us
are
experts
in
let's
say,
containers,
kubernetes,
others
in
infrastructure.
A
There
is
a
third
person
or
third
group
an
expert
in
databases.
Somebody
is
very
good
at
writing.
Java
code,
somebody
else
writes
back
in
single
and
so
on
and
so
forth,
but
we
all
want
to
be
also
self-sufficient.
If
I
need
the
database,
I
should
be
able
to
create
a
database.
However,
the
problem
is
that,
if
I'm
not
an
expert
in
databases,
I
might
not
have
all
the
knowledge.
A
I
need
to
create
a
database
server
to
manage
the
server
to
create
databases
inside
of
those
servers
and
to
create
users
and
to
create
permissions
and
to
manage
database
schema
and
all
the
rest
of
the
things
that
we
need
when
managing
in
this
case
databases.
But
the
same
story
applies
to
almost
everything
else,
so
I
need
help
from
somebody.
I
need
help
from
a
database
guru
or
infrastructure
guru
or
a
person
who
really
knows
how
those
things
work,
but
I
do
not
want
that,
help
to
be
based
on
hey.
A
Plane
that
I
was
mentioning
before
and
dump
it
down
for
me
that
service
that
the
interface
should
be
limited
to
what
I
care
about,
like
as
a
person
who
needs
a
database,
but
is
not
an
expert
and
hide
the
complexity
that
is
unavoidable,
but
still
shouldn't
necessarily
be
visible.
To
me.
I,
as
a
developer,
might
want
to
choose
hey.
I
want
my
sequel
or
posgress
database.
A
I
want
it
to
be
small
or
big
and
few
other
things,
but
I
probably
shouldn't
care
about
hundreds
of
other
tiny
little
important,
tweaks
and
details
that
the
expert
cares
about.
But
I
don't,
I
is
a
developer
want
to
be
self-sufficient
and
to
manage
my
own
applications
and
my
own
infrastructure
and
my
own
services,
but
limited
to
the
level
that
matters
to
me
and
that's
where
crossplane
comes
in,
that's
where
the
universal
control
plane
comes
in
and
that's
where
composites
come
in
as
well.
Composites
are
probably
the
most
important
feature
of
cross
plane
composites.
A
Allow
us
to
compose
different
pieces
of
infrastructure
services
and
applications
compose
different
resources
into
a
bundle
that
is
well
defined,
easily
digestible
and
yet
hides
all
the
things
that
potential
users
should
not
care
about.
So
I'm
going
to
do
the
following:
I'm
going
to
pretend
at
some
moments
that
I'm
an
operator
and
some
other
moments
that
I'm
a
developer,
but
the
ultimate
goal
for
me
as
a
developer
is
to
create
database
servers,
databases
inside
of
those
servers,
users
and
permissions,
and
whatever
else
I
might
need.
A
And
finally
I
need
schema
for
that
database
and
there
must
be
something
else.
Yes,
I
need
to
be
able
also
to
safely
connect
to
that
database.
So,
basically,
I
need
a
whole
deal
and
there
is
a
lot
involved
even
in
that
simple
example.
So
here's
what
I'm
going
to
use
I'm
going
to
use
kubernetes
api
because
that's
a
sort
of
universal
api
for
absolutely
everything.
A
It's
not
only
about
applications
anymore.
I
guess
everybody
knows
that
I'm
going
to
use
crossplane
and
especially
crosstalk
composites,
to
create
all
the
infrastructure
and
all
the
services,
and
basically
everything
that
I
mentioned,
and
probably
the
things
that
I
didn't
mention,
except
schema.
I'm
going
to
manage
my
schema
through
schema
hero,
but
that
will
be
transparent
for
me
as
a
user,
and
you
will
see
soon
how
it's
somebody's
else's
job,
to
figure
out
how
to
connect
all
those
things.
How
to
convert
all
that
complexity.
All
that
madness
into
something
simple.
A
That
is
easy
to
digest
for
a
person
that
doesn't
know
all
the
details
about
those
things.
To
summarize,
I'm
going
to
use
kubernetes
api
because
it's
universal
api,
I'm
going
to
use
crossplane
as
a
universal
control
plane
that
can
manage
absolutely
everything
and
I'm
going
to
use
crossplane
composites
to
bundle
database
servers
and
databases
and
users
and
everything
else,
and
I'm
going
to
combine
that
with
schema
hero
that
will
manage
the
last
mile,
the
schema
of
that
database.
A
So
let
me
show
you
a
definition
that
I
will
use
as
a
developer,
not
the
database
expert
to
create
and
manage
my
own
postgres
database,
and
that
definition
is
in
this
case
in
this
file.
Google
postgres
yaml.
Now
there
are
a
couple
of
interesting
things
here
to
begin
with,
it's
extremely
small:
it
is
limited
only
to
the
things
that
I
care
about,
not
all
the
details
that
are
required
for
that
database
to
run
successfully
and
those
details
start
with
sql
claim
that's
the
type
of
the
interface
that
I'm
using
the
type
of
the
resource
definition.
A
It's
a
custom
resource
definition
and
the
interesting
thing
about
it
is
that
this
custom
resource
definition
does
not
come
from
a
vendor.
This
was
not
created
by
somebody
else
from
somebody
by
somebody
outside
my
company.
This
was
created
by
a
person
or
a
team
in
my
company.
It
understands
what
are
the
needs
that
we
have
for
sql
databases,
there
is
a
name
name
can
be
anything.
A
There
is
a
namespace,
that's
a
namespace
inside
of
the
control
plane
cluster,
that's
the
cluster
where
crosspen
is
running,
that's
the
universal
control
plane
and
I
have
a
namespace
called
a
team
over
there.
That's
my
namespace.
I
have
elevated
permissions
in
it
and
I
can
create
my
resources
over
there
id
you
just
unique
identifier
and
then
we're
coming
to
composition.
Selector
this
one
is
important
and
through
the
labels
I
can
fine-tune
what
type
of
the
database
I
want.
A
In
this
specific
case,
I'm
saying
hey,
I
want
the
database
in
guru
and
I
want
it
to
be
posgress.
I
could
have
specified
azure
or
aws
or
on-prem
or
anything
else
whatever
is
supported
by
my
company
and
that
can
be
one
provider
or
10
providers,
and
that
could
be
one
type
of
database
or
20
types
of
databases.
A
In
this
case,
I
want
google
and
I
want
database
type
to
be
postgres.
I
could
have
skipped
specifying
those
labels.
In
that
case
the
provider
would
be
whatever
is
the
default
in
my
company,
and
the
database
type
would
be
whatever
is
default
in
my
company,
but
I
wanted
to
be
explicit.
I
wanted
to
make
sure
that
that
database
will
be
running
in
google
and
it
will
be
postgres,
and
then
there
are
a
couple
of
parameters
like
hey.
I
want
postgres
version
13
and
I
want
it
to
be
small.
A
I
do
not
expect
heavy
load
on
that
database.
I
do
not
expect
to
have
much
data,
so
I'm
choosing
small.
It
could
be
medium,
it
could
be
large.
It
could
be
any
other
value
that
is
agreed
by
me
and
whomever
else
is
managing
this
composition
and
that
somebody
should
understand
the
details.
We're
going
to
go
through
details
later
for
now.
Think
of
this
as
developer
facing
non-expert
facing
interface
that
I
can
use
and
I
will
use
so.
Let
me
create
this
resource
and
see
what
will
happen
so
cube
cattle
apply,
dash
file,
name,
google.
A
What
did
we
say?
Postgres
yaml
right
so
I
created
the
resource,
just
as
I
would
create
any
other
resource
in
a
kubernetes
cluster,
except
that
this
kubernetes
cluster
is
acting
as
the
universal
control
plane
and
it
is
doing
much
more
than
deploying
applications
in
this
case
it
is,
as
you
see,
creating
database
servers
and
databases
and
or
whatsoever.
This
will
take
a
few
moments.
A
I
will
watch
what's
going
on
by
executing
cube
cattle,
get
managed
and
that
should
show
me
which
managed
infrastructure,
cross-plane
resources
are
being
created
which
ones
are
finished
and
so
on
and
so
forth.
Now
this
will
take
a
couple
of
moments,
so
I
will
fast
forward
to
the
end
of
the
process.
I
think
it
takes
like
five
minutes
give
or
take,
and
I
do
not
want
to
bore
you
for
all
that
time.
A
Okay,
I'm
back
and
it's
finished
and
we
can
see
by
the
status
is
that
it's
ready
it's
synced
and
it
is
runnable,
so
my
postgres
is
up
and
running
and
I
can
prove
it
to
you
if
I
go
to
my
google
console.
So
let's
do
that.
So
there
is
my
sequel
here.
It
is
and
there's
the
18
postgres
the
database
is
there
and
it's
up
and
running
and
it
contains
no,
it
doesn't
contain
everything
we
need.
We
are
going
to
get
there
in
a
second
for
now
think
of
this
as
being
fully
operational,
postgres
server.
A
It
still
doesn't
have
the
database,
it
doesn't
have
the
schema
it
doesn't
have.
The
users
doesn't
have
all
the
rest
of
the
things
that
we
need
like.
If
I
go
to
databases
that
are
only
wait
for
it
paid
for
it,
there
is
only
postgres,
which
is
a
system
level
database.
I
would
need
my
own
database
there,
but
we're
going
to
iterate
now
and
see
a
more
complex
example.
A
Even
though
it's
not
going
to
be
more
complex
for
a
user
but
maybe
more
complex
for
a
person
creating
those
compositions
and
deciding
how
all
that
works
together,
I'm
still
a
developer
and
I
will
say:
hey
you
know
what
I
need
also
my
sequel
database.
I,
the
postgres,
is
not
enough.
I
need
two
database
servers.
I
read
my
sequel,
so
how
would
they
do
that?
Well,
the
explanation
is
very
simple.
A
I
can
have
manifest
like
this,
which
is
almost
the
same
as
the
previous
manifest,
except
that
this
time
I'm
saying
hey
database
should
be
my
sequel
and
the
version
is
eight
because
that's
the
latest
version
at
the
time
of
this
recording
of
my
sequel,
postgres
was
13
and
I
still
want
small
database
small
database
server.
Now.
The
new
thing
here
apart
from
saying
mysql
instead
of
postgres,
is
saying
hey.
A
I
would
like
the
connection
to
the
database
to
be
written
in
a
secret
and
that
secret
should
be
this
one,
and
there
are
a
couple
of
other
things
that
will
be
special
this
time
and
you
will
see
how
this
definition
is
still
equally
simple
for
a
developer,
but
does
much
more
from
the
operational
perspective.
So
let
me
create
that
one
as
well.
So
that's
cube.
A
Cattle
apply,
touch
the
spine,
name,
google,
and
this
time
my
sequel
and
then
I
can
watch
the
progress
just
as
before
by
saying
cube,
cattle
get
managed
and
we
should
see
now
two
database
resources
being
active,
one
of
them
created
here
we
are
there's
the
postgres
database
that
one
is
finished.
It's
runnable
and
the
system
is
creating
my
sequel
right
now,
but
it
is
doing
a
bit
more.
You
can
see
here
by
the
resource
this
time
we
are
creating
not
only
database
server
but
also
a
database.
A
For
me
inside
of
that
server
and
a
few
other
things,
I
will
soon
show
you
how
all
this
magic
happen
for
now.
I'm
still
focused
on
the
developer.
Experience
later
on.
We
will
see
the
operational
side
of
all
that,
but
now
I'm
going
to
fast
forward
to
the
end
of
the
process,
because
again
it
will
take
five
minutes
give
or
take
until
google
creates
the
database,
and
I
don't
want
you
to
look
at
me
looking
the
screen
for
such
a
long
time
so
fast
forwarding
to
the
end
of
the
process.
A
A
You
can
see
there,
we
go,
it's
called
dot
dot
and
the
database
is
there
and
we
have
connection
string
as
well,
and
let
me
actually
show
you
the
connection
string
that
might
be
interesting
so
that
you
can
see
how
a
user-
in
this
case
me
a
developer,
can
now
use
the
database
or
find
out
how
to
connect
to
the
database.
A
Here
we
are
cubecattle.namespace,
so
I'm
going
to
my
own
personal
namespace
or
the
namespace
of
the
theme
and
say
getsecrets,
and
we
can
see
that
18
mysql
is
here,
so
I
can
find
out
the
connection
string
and
the
information
how
to
connect
to
the
database
from
here.
And
if
you
don't
believe
me,
we
can
do
this.
Cubecat
namespace,
a
team
get
secret,
a
team,
sql
or
mysql
actually
and
then
output,
yaml
right
and
here
we
are
there's
the
password
there's
the
public
ip
and
that's
the
username.
A
You
probably
know
if
you're
using
kubernetes,
this
is
all
base64
encoded.
I
would
need
to
decode
it,
but
that's
simple
command,
just
pipe
the
output
of
a
field
to
base64.d
okay,
so
I
have
my
sql
server
and
that
server
fulfills
all
the
requirements
of
my
company.
Yet
it
was
very
easy
for
me
to
create
it
and
manage
it.
That
server
has
the
database
that
I
need.
A
I
got
the
connection
string
and
all
that
is
happening
in
an
extremely
simple
way,
while
still
providing
all
the
levels
around
the
security
hardening
and
everything
that
my
company
needs,
even
though
I
didn't
show
you
that
part
yet,
but
I
will
bear
with
me
for
a
few
more
moments.
Actually,
let's
do
it
right
away
right.
Let
me
show
you
how
all
that
happened
now,
I'm
an
operator,
a
database
expert
or
whatever.
I
am
the
person
who
understands
that
stuff-
and
I
have
two
important
definitions.
A
First,
is
the
this
one,
and
this
one
is
the
definition
of
where
is
it?
Let's
go
to
the
top
composite
resource
definition?
This
is
the
custom
resource
definition.
Actually,
this
is
a
composite
resource
definition
which
cross
plane
in
turn.
Converted
into
custom
resource
definition,
that
was
the
one
that
I
as
a
developer
when
I
was
faking
to
be
a
developer
used,
and
this
one
defines
couple
of
important
things.
A
First
of
all,
which
information
will
be
available
through
the
secret
after
the
cluster
is
created
after
the
server
and
the
database
was
recreated
and
a
few
other
things
like
hey.
This
will
be
called
the
this
custom
resource
definition
will
be
called
composite,
sql
or
sql
claim.
If
you
want
to
claim
it
and
that's
what
we
did
because
claims
are
limited
to
namespace,
which
is
a
better
option
almost
always.
But
what
matters
here
is
open.
Api
v3
schema
that
one
defines
all
the
fields
that
I,
as
a
developer,
could
use
before.
A
There
is
the
id,
if
you
remember-
and
there
are
some
parameters
and
inside
of
those
parameters,
there
is
a
version
in
the
size.
So
basically,
this
defines
the
interface
that
everybody
else
in
my
company
can
use
to
manage
databases
and
can
manage
any
type
of
the
database
as
long
as
that
database
is
implemented.
A
So
let
me
show
you
the
second
one,
one
implementation
of
that,
so
I
could
have
implementations
for
azure
for
aws
for
alibaba
for
on-prem,
but
in
this
case
I'm
going
to
show
you
the
one
that
is
for
google,
because
that's
the
one
I
used,
and
here
it
is
right.
Let
me
go
back
to
the
top
and
show
you
all
the
details.
I
will
not
go
into
details,
though,
but
all
the
things
in
a
very
brief
way.
So
where
is
the
top
here?
We
are.
A
We
have
one
composition
that
says
hey
whenever
somebody
wants
to
use
google
postgres,
then
this
should
be
the
definition
of
that
something
and
that
something
contains
crossplane
database,
gcp,
crossplane,
io
version,
and
it
uses
cloud
sql
instance,
and
it
has
certain
values
card
coded
because,
like
imagine
that
everybody
in
our
company
is
running
a
new
assist
one,
if
that
would
be
a
choice,
I
would
expose
it
as
a
parameter.
But
it's
not
in
this
case
instance
type.
A
The
things
that
nobody
cares
about,
except
me,
some
settings
like
availability,
type,
regional
tier
which
tier
to
use
at
least
by
default
and
so
on
and
so
forth.
So
this
is
a
sample
of
the
things
that
I
might
care
about,
but
majority
of
people
in
my
company,
don't
that's
simply
baked
into
every
mysql
or
actually
postgres
instance,
and
are
things
specific
to
postgres,
and
then
we
have
patches.
A
These
are
the
things
that
will
be
overwritten
whenever
somebody
specifies
something
as
a
parameter,
so
the
version
parameter
will
be
passed
as
a
database
version,
because
that's
what
postgres
in
google
cloud
expects.
Similarly,
we
have
the
parameter
size
that
you
already
saw
before,
but
you
saw
it
as
small
or
potentially
medium
or
large,
and
this
is
where
it
gets
transformed.
A
This
is
where
I'm
saying
hey.
If
somebody
says
small
for
postgres
in
google,
small
means
this
and
medium
means
that
people
do
not
know
what
that
means.
People
do
not
care,
they
really
care,
whether
it's
small,
medium
large
or
whatever
we
agreed.
Similarly,
we
have
a
second
implementation
of
that
same
composite
composite
resource
definition,
which
in
this
case,
is
going
to
be
applied,
but
never
specifies
that
that
somebody
wants
google,
but
this
time
my
sequel
instead
of
postgres,
and
then
we
have
similar
dance
like
before.
Okay,
I'm
going
to
use
cloud
sql
instance
from
gcp.
A
As
I
said
before,
this
could
be
aws.
It
could
be
azure.
There
could
be
as
many
implementations
as
somebody
wants,
and
then
there
are
some
specific
parameters
for
mysql
instances
and
what
really
matters
here
that
we
are
overwriting
the
parameters
like
version
just
as
before
and
the
size
just
as
before,
but
this
time
specific
to
my
sql
databases
in
google
and
then
we
are
having.
Where
is
it?
The
second
resource
here
which
says
hey?
A
I
want
to
have
a
provider
config
that
will
take
the
connection
information
from
my
sql
and
reconfigure
itself
and
then
I'm
going
to
use
that
same
config
to
create
the
database
that
newly
created
the
database
server
and
that
database
will
be
called
dot.
Now
this
dot
is
the
same
as
this
one
that
was
created
here
here.
It
is
right
now
this
is
simply
example,
and
normally
compositions
would
be
much
more
extensive.
A
A
Now
the
only
thing
missing
here
is
to
create
a
way
to
manage
database
schemas
and
for
that
I'm
going
to
switch
from
crossplane
to
schema
hero
and
the
reason
why
I
like
combining
those
two
is
because
they're
both
kubernetes
type
of
tools,
so
they
can
easily
speak
to
each
other
and
easily
be
combined
and
live
in
the
same
ecosystem,
and
that's
really
one
of
the
huge
advantages
of
crossplane.
It
can
be
combined
with
the
vast
ecosystem
cloud
native
kubernetes
ecosystem,
while
other
tools
might
have
difficulty
doing
that.
A
So
I'm
going
to
show
you
the
definition
which
is
stored
here
and
it
says:
hey.
There
are
two
things.
First
of
all,
the
database
where
the
schema
should
be
applied
is
called
dot.
That's
the
database
that
was
created
by
crosspen
and
is
currently
managed
by
crossplane
forever
and
ever
no
matter
what
happens-
and
this
is
the
connection
right.
I
basically
have
the
address,
which
consists
of
the
password
in
the
user
and
the
I
and
the
host
which
right
now
is
set
to
some
defaults.
A
I'm
going
to
change
that
soon
and
we
have
a
definition
of
one
table.
Normally,
you
would
have
more
tables
and
more
stuff
here
in
schema,
but
one
should
be
enough
to
demonstrate
which
says:
hey,
create
and
manage
table
called
products,
and
this
is
the
primary
key.
These
are
the
columns
and
so
on
and
so
forth
right.
So
this
is
a
kubernetes
way
of
defining
a
database
schema
and
in
this
case,
using
schema
hero.
A
The
only
thing
with
slightly
probiotic
here
is
that
I
couldn't
combine
it
hundred
percent
with
crossplane,
because
crossplane
creates
kubernetes
secrets
with
the
information
how
to
connect
to
the
database
in
one
way
and
schema
hero,
expects
it
in
a
different
way.
So
I'm
going
to
quickly
retrieve
the
information
from
the
newly
generated
secret
and
modify
this
file,
I'm
going
to
do
that
by
doing
a
bit
of
copy
and
paste
there
we
go,
I'm
retrieving
the
password,
I
retrieved
the
ip,
and
now
I
modified
the
the
definition
you
can
see
here.
It
says
roots.
A
This
is
the
string
of
the
password,
and
this
is
the
ip
of
the
database
server
managed
by
crossplane.
So
all
I
have
to
do
is
cube
cattle,
apply,
file,
name
name
and
then
schema
hero,
db,
yaml
right
and
there
we
go,
it
was
created,
those
kubernetes
resources
were
created
and
now
schema
hero
is
managing
the
scheme
of
the
database
based
on
the
desired
state
defined
in
kubernetes
manifests.
So
here
we
are.
I
have
here
table
plus
I'm
going
to
connect
a
new
database.
Here
we
are
my
sequel:
what
will
be
the
name?
A
The
name
will
be
dot
and
the
host.
I
think
that
this
is
the
host
here
we
are
and
the
password
is
this
one?
Oh
that's
the
wrong
field
here
is
the
password
root.
Is
the
username
and
the
database
is
dot
dot
test
it?
It's
working
here
we
are
one
two
here
we
are
and
you
can
see
here.
A
I
know
it's
small
resolution,
but
I
don't
think
that
I
can
change
the
font
size
in
this
application
and
we
need
to
trust
me
even
though
it's
hard
to
see
that
in
the
table
section
there
is
products
and
products
has
the
fields
id
name
and
price.
So
there
we
are
that's
all
there
is
to
it.
I
showed
you
two
personas
I
as
a
developer.
I
can
do
everything
I
need
to
do.
A
I
can
create
my
infrastructure,
I
can
create
my
services,
I
can
deploy
my
applications
and
I
can
focus
on
things
that
matter
to
me
and
the
reason
why
I
can
focus
on
things
that
matter
to
me
is
because
sres
or
cs
admins
or
devops
people
or
database
people
or
whatever
the
different
expertise
are
created
compositions
that
are
easy
to
digest
and
I
can
focus
on
my
stuff.
They
can
focus
on
providing
services
to
me.
A
Instead
of
responding
to
requests,
I
could
have
went
to
the
other
part
and
said:
hey
dear
john,
create
me
and
give
me
a
database
create
a
database
for
me,
create
database
server
actually
and
then
do
it
here
and
then
create
a
database
for
me
and
I
need
this
scheme
and
when
I
change
the
schema,
I
will
need
to
contact
you
again
and
so
on
and
so
forth.
A
So,
instead
of
me,
depending
on
others,
my
dependent
services
provided
from
others,
which
is
a
huge
difference,
there
is
a
huge,
huge,
huge
difference
between
providing
services
to
others
and
responding
to
requests
from
others.
If
we
do
that,
if
we
provide
services,
the
necessaries
and
operators
and
devops
and
what's
or
not,
can
focus
on
writing
and
defining
and
managing
services
that
are
consumed
by
others
and
those
services
can
be
specialized
and
fulfill.
A
Certain
specific
needs
that
my
organization
needs
that
some
teams,
specific
teams,
need
instead
of
being
generic
and
all
that
was
done
through
a
control
plan
which
I
didn't
have
time
to
go
into
details.
But
you
need
to
trust
me
that
crossplane
is
a
control
plane
from
now
on
is
managing
that
database.
It
is
watching
for
drip
detection,
it
is
doing
reconciliation.
A
It
is
constantly
constantly
monitoring
the
database
and
making
sure
that
it
is
in
the
correct
state,
which
is
a
huge
difference
compared
to
how
we
traditionally
do
things:
hey,
execute
this
cli
command
and
then
something
will
happen
and
if
the
state
changes
the
actual
state
changes
in
the
meantime
then
well,
what
can
you
do?
So,
please
check
out,
abound.
That's
a
company.
I
work
at
check
out
especially
check
out
crossplane.
A
If
you
haven't
used
it
yet
you
will
like
it.
I
promise
you
that,
because
it's
absolutely
amazing,
as
long
as
you're
comfortable
with
kubernetes
and
if
you're
already
using
it,
then
come
to
our
slack
channel
and
ping
me
and
let
me
help
you
and
answer
all
your
questions
and
so
on
and
so
forth.
Thank
you.
So
much
for
watching
see
you
next
time
cheers.