►
From YouTube: Multi-team Kubernetes ingress with Contour
Description
We take a look at how you can use Contour to deliver multi-team ingress.
* https://blog.heptio.com/improving-the-multi-team-kubernetes-ingress-experience-with-heptio-contour-0-6-55ae0c0cadef
* https://github.com/heptio/contour/blob/master/docs/ingressroute.md
A
Okay,
so
we've
taken
a
look
at
hep,
do
contour
0.6
and
the
introduction
of
this
new
custom
resource
called
ingress
route.
Now
on
that,
video
actually
talked
about
how
this
might
help
development
teams
and
multi
teams,
and
since
then
the
help
do
folks
alex
brand
alexander
brand
is
actually
written
a
blog
on
exactly
how
to
do
that.
So
I
wanted
to
take
five
minutes,
because
that
was
definitely
the
most
feedback.
I
got
on
that
last
video.
What
does
this
multi
team
thing
that
you're
talking
about
and
how
can
kind
of
contour
0.6
actually
helped
that?
A
So,
if
you
want
to
go,
take
a
look,
there's
a
hep
D,
a
blog
on
kind
of
multi
team
kubernetes.
But
really
the
idea
is
around
creating
a
route,
a
route
fqdn
and
being
able
to
delegate
paths
out
to
different
ingress
route
resources,
and
they
can
be
based
in
different
namespaces.
Now
why
this
helps
is
obviously,
as
development
teams
are
working
on
their
different
applications
and
services.
They're,
probably
namespace,
because
that
gives
you
a
boundary
of
role
based
access
control.
A
So
it's
nice
to
have
a
central
point
to
create
the
ingress
that
the
route
ingress,
so
if
I
have
dub-dub-dub
locky
comm
I
could
create
that
in
a
route
they've
got
that
route
in
a
different
name
space
and
then
delegate
slash
blog
and
slash
engineering
to
different
ingress
routes
and
different
round
name
spaces
which
exactly
what
we're
going
to
do
now.
The
only
other
thing
is
like
well.
Why
would
you
want
to
do
this
so
currently
with
ingress
right?
A
Obviously,
it's
kind
of
an
Operations
engineering
to
develop
a
kind
of
role
there,
somebody's
probably
responsible
for
setting
up
the
ingress,
publishing
the
DNS
records
and
typically
you're
not
going
to
want
to
publish
a
new
fqdn
for
every
service.
You
might
just
want
to
pass
route
off
a
main
fqdn
right.
The
ingress
resource
in
kubernetes
doesn't
actually
allow
you
to
do
that.
A
So,
if
I
have
in
this
example
that
I'm
going
to
show
a
marketing
an
engine
and
an
engineering
team
declare
the
same
fqdn
or
the
same
virtual
host
in
their
config,
then
the
ingress
controller
gets
confused.
So
we
I'm
going
to
go
through
the
examples
you
can
take.
A
look
at
this
blog
here,
but
let's
keep
it
kind
of
short
and
we'll
go
from
there.
A
So
here
I
have
a
1.12
cluster
I
think
it's
cubic
a
little
bit
nodes,
so
I
have
an
ACS
engine
cluster
here
running
kubernetes,
1.12
and
after
to
get
NS,
we
have
the
hep
do
contour
and
how
about
cube
cuddle
get
pods
right.
So
if
you
follow
on
from
that,
previous
video,
all
I've
done
is
actually
install
contour
and
set
up
a
DNS
record
and
pointed
it
to
it.
You
can
see
that
in
the
last
video,
but
we're
gonna
go
from
there
and
then,
where
we're
going
to
go
from
here.
A
Okay,
so
I'm
gonna,
open
up
vs
code,
I've
created
just
a
couple
of
demos
here:
okay,
so
what
do
we
have
here?
We
have
this
root
ingress
resource,
so
this
is
an
ingress
route.
I'm
gonna
put
it
in
the
namespace
called
routes.
I'm
gonna
define
the
fqdn
dub-dub-dub
contour,
Daisy
dope,
gates,
demo,
dot,
IO
and
then
I'm
gonna
delegate.
A
Now
this
is
the
interesting
bit
that
is
different
from
a
default
ingress
resource
I'm,
going
to
delegate
the
name
blog
to
the
namespace
marketing
and
match
this
path,
I'm
going
to
delegate
engineering
to
the
namespace
engineering
and
match
this
path.
So,
first
of
all,
I'm
going
to
do
a
cube,
cuddle,
create
NS
called
routes
and
then
I'm
going
to.
A
We
could
kind
of
watch
the
logs
on
the
ingress
controller.
But
that's
okay,
we'll
just
trust
it.
It's
going
to
work,
create
minus
F
right
so
so
now
for
the
cube
code
will
get
ingress
route
in
the
namespace
routes
right.
So
the
nice
thing
about
the
English
route
is
this
status
field
as
well,
and
we're
going
to
take
a
look
at
what
that
is,
but
now
we've
defined
this
route
virtual
host
and
the
first
router
slash
blog
and
obviously
we've
delegated
that
out,
but
we
haven't
actually
created
the
delegation
resource
at
the
moment.
A
So
that's
fine!
Let's
go
and
take
a
look
at
the
marketing
ingress,
so
the
marketing
ingress
here
is
an
ingress
route
and
I'm
going
to
place
that
in
the
marketing
namespace
I
don't
have
the
namespace
here.
I'll.
Do
it
when
I
do
a
create
and
I'm
going
to
match
blog
and
I'm
going
to
match
this
HTTP
echo
service?
A
So
the
important
thing
here
is
I'm
matching
this
name
against
this
name
in
this
namespace
right
and
obviously,
when
I
go
to
engineering
I'm
going
to
do
a
very
similar
thing
here,
I'm
going
to
match
the
name,
engineering,
/
engineering
and
push
it
to
the
back
there.
So
this
is
how
this
delegation
works
and
will
actually
practice
breaking
one
as
well.
A
Finally,
I
just
have
a
service
and
a
deployment
I'll
put
in
each
namespace,
the
it's
just
a
hazard,
Corp
HTTP
echo,
which
I
can
echo
back
a
string
has
HTML,
so
it
just
makes
it
nice
and
easy.
So
if
we
hit
the
engineering
one
I'm
going
to
see
engineering,
if
we
hit
the
marketing
one
I'm
going
to
see
marketing,
okay,
so
I'm
going
to
create
and
names
to
namespace
I'm
going
to
create
one
called
engineering
and
I'm
going
to
create
one
called
marketing.
A
A
Like
that,
okay,
so
let's
take
a
look
at
that
cube.
Cuddle,
get
pugs,
we'll
take
a
look
at
what
we
have
in
the
marketing,
so
this
is
representing
I'm
a
service
owner
I.
Have
this
HTTP
echo
service,
but
it's
responsible
for
serving
the
blog
and
we're
gonna
go
over
here
and
do
ingress
route
right.
So
it's
valid
I
will
show
an
often
one
here
and
misconfigured
one
in
a
minute,
so
it's
valid
so
if
slash
blog
should
actually
go
from
the
route.
So,
let's
go
and
test
that
cuz.
A
A
Okay
and
the
other
thing
is
as
a
service
owner
blog,
not
marketing
blog
marketing
owns
blog
and
engineering
owns
as
a
ninja.
You
as
a
service
owner
I,
can
ask
the
route
ingress
owner
to
actually
add
a
delegation
to
my
namespace
and
then
I
can
control
how
I
delegate
all
the
path
routing
in
there,
which
you
know.
Obviously,
if
I
are
back
and
all
these
things
are
incredibly
valuable
in
the
kubernetes
ecosystem.
So
finally,
I
just
want
to
show
you
a
broken
one,
so
we
were
looking
for
the
this
thing
called
engineering.
A
So
let's
just
call
this
engineering
ingress,
foo,
okay,
so
we're
going
to
call
it
foo.
Okay,
so
cube
kettle,
delete
ingress
resource
regress
route,
engineering
in
the
name,
space
engineering,
so
that's
gone
and
now
I'm
actually
gonna
recreate
it
and
it's
called
foo,
okay
and
now
I'm,
actually
gonna
do
a
get
ingress
rap
right.
So
this
is
where
we
kind
of
look
at
the
status
the
status
is
foo
is
orphaned
right,
which
means
I
haven't
actually
delegated
it
from
the
top
piece.
So
this
is
not
part
of
a
delegation
chain.
A
So
therefore,
it's
not
going
to
work
right
if
the
thing
engineering
is
still
the
path
that
we're
routing,
but
it's
not
actually
matching
that
child
ingress
route
and
the
status
is
incredibly
useful
to
say
that
this
isn't
delegated
to
you.
So
you
cannot
do
this
right,
so
let's
go
back
and
delete
and
do
that
sorry
and
I'm
going
to
delete
that
English
rat
called
foo
and
recreate
it
and
then
get
the
status
and
it's
valid
and
we're
back
okay.
A
So
you
know
I
just
want
to
thank
the
the
hep
di
team
and
Alexander
for
putting
together
a
blog
that
made
this
kind
of
more
concrete
for
everybody
and
I
just
wanted
to
take
the
time
to
actually
show
the
value
here
now.
All
I've
done
has
gone
through,
showing
you
how
to
do
delegation
namespace
delegation
using
ingress
route
and
there's
also
sort
of
details
and
the
problems
with
the
Corps
ingress
resource
as
well,
and
why
you
might
actually
want
to
go.
A
Do
this
so
there's
a
nice
little
blog
on
this,
and
there
is
a
subsequent
blog
on
I'm
kind
of
canary
routing,
which
I'll
take
a
look
at
in
the
next
video.
But
if
you
liked
this
video,
please
subscribe
and
like
the
video,
obviously
I'll
make
these
videos,
but
in
return,
if
you
like
them,
please
subscribe
so
I
know
that
people
in
the
content,
I'm
creating,
is
great
fantastic
and
thanks
for
joining
I
hope.
You
learned
something
new
I
know:
I
did
Cheers.