Featured image for a blog article titled Kuma 2.8 release with MeshExternalService, MeshPassthrough and more....

We’re excited to announce the release of Kuma 2.8, featuring new and exciting capabilities such as MeshExternalService, MeshPassthrough policy, along with numerous improvements and groundwork for future developments.

Notable features

  • A new MeshExternalService resource that overcomes existing limitations with the ExternalService resource.
  • A new MeshPassthrough policy that allows exposing external endpoints for rich clients through the mesh and support for wildcard domains.
  • HostnameGenerator provides a way to generate custom domains for your MeshExternalServices.

Feel free to check our release notes for the full list of changes.

HostnameGenerator

It’s a brand new resource HostnameGenerator that enables you to generate custom domain for your MeshExternalService. By default Kuma is generating a domain for your ExternalService by adding suffix .mesh to the name of your ExternalService. With this release, you now have control over the domain.

Let’s take a look at this example:

apiVersion: kuma.io/v1alpha1
kind: HostnameGenerator
metadata:
  name: example
  namespace: kuma-system
  labels:
    kuma.io/mesh: default
spec:
  selector:
    meshExternalService:
      matchLabels:
        kuma.io/origin: zone
  template: ".svc.meshext.local"

and now let’s create a MeshExternalService

apiVersion: kuma.io/v1alpha1
kind: MeshExternalService
metadata:
  name: mes-http
  namespace: kuma-system
  labels:
    kuma.io/mesh: default
spec:
  match:
    type: HostnameGenerator
    port: 80
    protocol: http
  endpoints:
  - address: httpbin.org
    port: 80

In a new tab in the GUI, you can now see the generated domain address for MeshExternalServices.

MeshExternalService view with a custom domain provided by the HostnameGenerator

MeshExternalService

The ExternalService resource had some shortcomings, leading us to develop a more powerful MeshExternalService resource. This new resource enables you to add external endpoints to your mesh and overcome the limitations (should we name them? I feel like here we’re just repeating what was said in the previous paragraph) of the ExternalService. MeshExternalService is currently in the alpha phase and will eventually replace ExternalService.

MeshExternalService tab view

Additionally, you can see status information about the hostname and address of the MeshExternalService.

MeshExternalService status

MeshPassthrough

Some of the issues with ExternalService didn’t align with the new design of MeshExternalService. As a result, we’ve introduced a new policy called MeshPassthrough. This policy facilitates communication with external endpoints for rich clients and offers the flexibility to enable or disable passthrough mode for individual sidecars. Learn more about passthrough mode.

Upgrading

We strongly suggest upgrading to Kuma 2.8.0. Upgrading is easy through kumactl or Helm.

Be sure to carefully read the upgrade Guide and the version specific upgrade notes before upgrading Kuma.

Join the community!

Join us on our community channels, including official Slack chat, to learn more about Kuma. The community channels are useful for getting up and running with Kuma, as well as for learning how to contribute to and discuss the project roadmap. Kuma is a CNCF Sandbox project: neutral, open and inclusive.

The community call is hosted on the second Wednesday of every Month at 8:30am PDT. And don’t forget to follow Kuma on Twitter and star it on GitHub!

Get Community Updates

Sign up for our Kuma community newsletter to get the most recent updates and product announcements.