---
# System prepended metadata

title: Publishing Strategy for Hypershift

---

# Publishing Strategy for Hypershift

```go=
type HostedCluster struct {
	// ...
    Services []ServicePublishingStrategyMapping
}

type NodePool struct {
    // ...
    IgnitionService ServicePublishingStrategy
    
}

type ServicePublishingStrategyMapping struct {
    Service ServiceType
    ServicePublishingStrategy
}

    
type ServicePublishingStrategy
    Type PublishingStrategyType `json:"type"`
    NodePort *NodePortPublishingStrategy `json:"nodePort,omitempty"`
}

type PublishingStrategyType string

var (
    LoadBalancer PublishingStrategyType = "LoadBalancer"
    NodePort PublishingStrategyType = "NodePort"
    Route PublishingStrategyType = "Route"
    )
    
type ServiceType string

var (
    APIServer ServiceType = "APIServer"
    VPN ServiceType = "VPN"
    OAuthServer ServiceType = "OAuthServer"
    )

type NodePortPublishingStrategy struct {
    Host string
    Port int32
}
```

### Requirements from IBM
- Use a nodeport to export Kube APIServer, VPN, OAuth, Ignition
- Be able to use the same NodePort for the life of a cluster
