# KubernetesServiceExtensions Methods

- Package: [Aspire.Hosting.Kubernetes](/reference/api/csharp/aspire.hosting.kubernetes.md)
- Type: [KubernetesServiceExtensions](/reference/api/csharp/aspire.hosting.kubernetes/kubernetesserviceextensions.md)
- Kind: `Methods`
- Members: `1`

Provides extension methods for customizing Kubernetes service resources.

## PublishAsKubernetesService(IResourceBuilder<T>, Action<KubernetesResource>)

- Name: `PublishAsKubernetesService(IResourceBuilder<T>, Action<KubernetesResource>)`
- Modifiers: `extension`
- Returns: `IResourceBuilder<T>`
- Source: [GitHub](https://github.com/microsoft/aspire/blob/5bd693ae1897dee5e2ce71c2cc08879c1c7eff51/src/Aspire.Hosting.Kubernetes/KubernetesServiceExtensions.cs#L37-L47)

Publishes the specified resource as a Kubernetes service.

```csharp
public static class KubernetesServiceExtensions
{
    public static IResourceBuilder<T> PublishAsKubernetesService<T>(
        this IResourceBuilder<T> builder,
        Action<KubernetesResource> configure)
    {
        // ...
    }
}
```

## Parameters

- `builder` (`IResourceBuilder<T>`)
  The resource builder.
- `configure` (`Action<KubernetesResource>`)
  The configuration action for the Kubernetes service.

## Returns

`IResourceBuilder<T>` -- The updated resource builder.

## Remarks

This method checks if the application is in publish mode. If it is, it adds a customization annotation that will be applied by the infrastructure when generating the Kubernetes service.

```csharp
builder.AddContainer("redis", "redis:alpine").PublishAsKubernetesService((service) =>
{
    service.Name = "redis";
});
```

## ATS metadata

### ATS export

- Available to Polyglot AppHosts through the Aspire Type System.
