Skip to main content

Enabling Workload Service Proxying Feature

You first need to enable the workload service proxying feature on the cluster you want to expose Services from. If you are creating a new cluster, you can enable the feature by checking the checkbox in the “Cluster Features” section: Enable Workload Service Proxying For an existing cluster, simply check the checkbox in the features section of the cluster overview page. If you are using cluster templates, you can enable the feature by adding the following to the cluster template YAML:
You will notice that the “Exposed Services” section will appear on the left menu for the cluster the feature is enabled on.

Exposing a Kubernetes Service

Let’s install a simple Nginx deployment and service to expose it. Create the following nginx.yaml file:
Apply it to the cluster:
Note the following annotations on the cluster:
To expose a service, only the omni-kube-service-exposer.sidero.dev/port annotation is required. Its value must be a port that is unused on the nodes, such as by other exposed Services. The annotation omni-kube-service-exposer.sidero.dev/label can be set to a human-friendly name to be displayed on the Omni Web left menu. If not set, the default name of <service-name>.<service-namespace> will be used. The annotation omni-kube-service-exposer.sidero.dev/prefix can be set to use a user-defined prefix instead of a randomly-generated alphanumeric string as a prefix in the URL. The annotation omni-kube-service-exposer.sidero.dev/icon can be set to render an icon for this service on the Omni Web left menu. If set, valid values are:
  • Either a base64-encoded SVG
  • Or a base64-encoded GZIP of an SVG
To encode an SVG file icon.svg to be used for the annotation, you can use the following command:

Accessing the Exposed Service

You will notice that the Service you annotated will appear under the “Exposed Services” section in Omni Web, on the left menu when the cluster is selected. Clicking it will open the exposed service in Omni. Exposed services The URL will either contain a randomly-generated alphanumeric prefix, or the user-defined prefix if the omni-kube-service-exposer.sidero.dev/prefix annotation was set.
This feature only works with HTTP services. Raw TCP or UDP are not supported.
The services are only accessible to users authenticated to Omni and that have at leastReaderlevel access to the cluster containing the Service.

Examples

Some common examples include running cluster services such as monitoring that require Omni access.

Grafana

Grafana is a popular dashboarding tool that can be installed as a helm chart and exposed with the following values.yaml.
You can then install the grafana chart with:

Kubernetes Dashboard

The Kubernetes dashboard can be deployed via helm into a cluster and exposed with the workload proxy using the following values.yaml.
You can then install the kubernetes dashboard chart with:

Troubleshooting

You can get more info and troubleshoot the exposed services by running the following command:
You will get an output like:
Inspect the output to get information about the status of your exposed service.