New Release of Service Mesh Hub v0.2

In May we launched the Service Mesh Hub to make it easy to install and operate service meshes. Thank you to everyone who has tried the Hub and provided feedback — we’ve been busy adding new features and making improvements.

We’ve deployed the latest release of Service Mesh Hub (0.2), so you can check it out here. This release contains several usability enhancements for service mesh extensions, focused on a few areas:

  • A refresh of the mesh extension details page, with support for markdown descriptions, GitHub statistics, and more clear mesh compatibility information.
  • Providing a powerful, simple workflow for installing and customizing service mesh extensions, including support for installing an extension on multiple meshes.
  • Easier navigation throughout the application, and a new section — Demos.

Extension Details

See it in action.

We’ve redesigned the extension details view to provide more information up front about repo, including GitHub stars and watchers if applicable.

We now support installing the same extension on multiple meshes, and show the set of meshes that are compatible with the extension, as well as the installation state on each, at the top.

We’ve also dedicated more space to extension descriptions, and allow application developers to provide a markdown description with rich formatting. And at the bottom of the page, we’ve updated how the overall set of requirements for the extension are presented to the user.

Extension Installation

The Service Mesh Hub tries to balance the needs of developers — who require customizing the installation based on the mesh and environment — with the needs of users, looking for a simpler experience for managing how the application is deployed.

In the initial release, we allowed developers to define  that can be used to render helm charts or apply kustomize layers. An application may support multiple different sets of parameters, based on how the user may wish to use it. These sets of customizations are bundled by the service mesh hub into a . A user selects a version and flavor when installing an extension onto a mesh, and the Hub knows how to customize the installation. In the initial release, we didn’t surface parameters to the user, so we relied on default values defined in the spec.

In this release, the Service Mesh Hub now surfaces  to the user, so the extension can be further customized based on the environment or user preference. If a parameter is required, it is presented to the user immediately; optional parameters and custom helm overrides are still accessible to users if they open the advanced options. Applications can define default parameter values to preserve a true one-click installation experience.

As before, the user needs to select an installation namespace for an extension. Now, users can either select an existing namespace (with certain namespaces blacklisted via config), or they can type the name of a new namespace and it will be created during installation. Once an application has been installed, the namespace and configuration parameters can be viewed and updated.

For a deeper look at how application developers can organize their configuration options using flavors and parameters, check out https://github.com/solo-io/service-mesh-hub/blob/master/api/v1/registry.proto or stay tuned for an upcoming tech blog post.

Improved Navigation and Demos

The Service Mesh Hub dashboard now uses breadcrumbs and filters to better support workflows for a particular mesh.

Clicking “Install an Extension” now brings up the extensions catalog pre-filtered by mesh, with a breadcrumb.

The filter can be toggled on and off for any mesh. When filtering by mesh, the breadcrumb carries over to the extension details view.

The Service Mesh Hub now also supports a new type of application: demos. This is particularly useful for testing out service mesh features. Anyone can distribute new demos by uploading their spec (including basic info and a reference to a helm chart or installation manifest) to https://github.com/solo-io/service-mesh-hub/tree/master/demos/v1.

Deploying the Service Mesh Hub

If you haven’t tried Service Mesh Hub yet, you can view the read only site here or install it into your Kubernetes cluster with this command:

kubectl apply -f https://raw.githubusercontent.com/solo-io/service-mesh-hub/master/install/service-mesh-hub.yaml

This will install the hub into the sm-marketplace namespace. Once the pods are running, open the Hub by port forwarding:

kubectl port-forward -n sm-marketplace deploy/smm-apiserver 8080

Now the hub is accessible via your browser at localhost:8080

Upgrading the Service Mesh Hub

This release made a breaking change to the API. The underlying application state CRD that the Hub uses to manage installations will need to be updated after upgrading. If you’d like us to help with this, please file an issue here: https://github.com/solo-io/service-mesh-hub.

There’s more to come so join our slack community to start a discussion or give us feedback. Service Mesh Hub is free to try, if you are interested in support, please contact us.