# 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