tailscale-expose-service

Expose Kubernetes LoadBalancer services to a Tailnet via Tailscale Operator.

Updated Aug 23, 2026
One-click install
npx skills add https://github.com/HugoAlmeidaMoreira/zeus-agent --skill tailscale-expose-service
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: tailscale-expose-service
Source: https://github.com/HugoAlmeidaMoreira/zeus-agent/tree/main/skills/devops/tailscale-expose-service
Command: npx skills add https://github.com/HugoAlmeidaMoreira/zeus-agent --skill tailscale-expose-service

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

Exposes internal Kubernetes services to a Tailnet without public Ingress by leveraging the Tailscale Operator LoadBalancer integration.

Core Features & Use Cases

  • Expose a Kubernetes Service as a Tailnet-accessible endpoint via loadBalancerClass: tailscale.
  • GitOps deployment steps to apply the service manifest and reconcile with Flux or similar tooling.
  • Post-exposure guidance to switch app configuration to Tailnet DNS and remove local port-forwarding scripts for local development.

Quick Start

Configure a Kubernetes Service with type LoadBalancer and loadBalancerClass: tailscale to expose your app on the Tailnet.

Frequently Asked Questions about tailscale-expose-service

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I expose internal Kubernetes services to a Tailnet without public ingress?

You can expose Kubernetes services to a Tailnet by configuring a Service with type LoadBalancer and setting loadBalancerClass to tailscale, leveraging the Tailscale Operator to provide private access.

What is the loadBalancerClass tailscale used for in Kubernetes?

The loadBalancerClass tailscale instructs the Tailscale Operator to expose a Kubernetes LoadBalancer Service directly on your Tailnet, bypassing the need for public ingress or external loadbalancer configuration.

Can I use the Tailscale Operator LoadBalancer integration for staging databases and caches?

Yes, the Tailscale Operator LoadBalancer integration is applicable for exposing Kubernetes services like databases, caches, and APIs across development and staging environments to your Tailnet.

How do I deploy a Tailscale LoadBalancer Service using GitOps?

To deploy using GitOps, apply the Service manifest with loadBalancerClass tailscale and reconcile the changes with Flux or similar tooling to expose the service on your Tailnet.

What should I update after exposing a Kubernetes service to Tailnet?

After exposing the service, update your application configuration to use the Tailnet DNS endpoint and remove any local port-forwarding scripts previously used for development access.

Does exposing a Kubernetes service via Tailscale require a public Ingress controller?

No, exposing internal Kubernetes services via the Tailscale Operator LoadBalancer integration does not require a public Ingress, as the service becomes accessible directly through the private Tailnet.