Documentation ¶
Index ¶
- type PortMap
- type ServiceFWD
- func (svcFwd *ServiceFWD) AddServicePod(pfo *fwdport.PortForwardOpts)
- func (svcFwd *ServiceFWD) GetPodsForService() []v1.Pod
- func (svcFwd *ServiceFWD) ListServicePodNames() []string
- func (svcFwd *ServiceFWD) LoopPodsToForward(pods []v1.Pod, includePodNameInHost bool)
- func (svcFwd *ServiceFWD) RemoveServicePod(servicePodName string)
- func (svcFwd *ServiceFWD) String() string
- func (svcFwd *ServiceFWD) SyncPodForwards(force bool)
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type PortMap ¶
* add port map @url https://github.com/txn2/kubefwd/issues/121
type ServiceFWD ¶
type ServiceFWD struct { ClientSet kubernetes.Clientset ListOptions metav1.ListOptions Hostfile *fwdport.HostFileWithLock ClientConfig restclient.Config RESTClient restclient.RESTClient // Context is a unique key (string) in kubectl config representing // a user/cluster combination. Kubefwd uses context as the // cluster name when forwarding to more than one cluster. Context string // Namespace is the current Kubernetes Namespace to locate services // and the pods that back them for port-forwarding Namespace string // ClusterN is the ordinal index of the cluster (from configuration) // cluster 0 is considered local while > 0 is remote ClusterN int // NamespaceN is the ordinal index of the namespace from the // perspective of the user. Namespace 0 is considered local // while > 0 is an external namespace NamespaceN int // FwdInc the forward increment for ip FwdInc *int // Domain is specified by the user and used in place of .local Domain string PodLabelSelector string // The label selector to query for matching pods. NamespaceServiceLock *sync.Mutex // Svc *v1.Service // Reference to the k8s service. // Headless service will forward all of the pods, // while normally only a single pod is forwarded. Headless bool LastSyncedAt time.Time // When was the set of pods last synced PortMap *[]PortMap // port map array. // Use debouncer for listing pods so we don't hammer the k8s when a bunch of changes happen at once SyncDebouncer func(f func()) // A mapping of all the pods currently being forwarded. // key = podName PortForwards map[string]*fwdport.PortForwardOpts DoneChannel chan struct{} // After shutdown is complete, this channel will be closed ServiceConfigPath string }
ServiceFWD Single service to forward, with a reference to all the pods being forwarded for it
func (*ServiceFWD) AddServicePod ¶
func (svcFwd *ServiceFWD) AddServicePod(pfo *fwdport.PortForwardOpts)
AddServicePod
func (*ServiceFWD) GetPodsForService ¶
func (svcFwd *ServiceFWD) GetPodsForService() []v1.Pod
GetPodsForService queries k8s and returns all pods backing this service which are eligible for port-forwarding; exclude some pods which are in final/failure state.
func (*ServiceFWD) ListServicePodNames ¶
func (svcFwd *ServiceFWD) ListServicePodNames() []string
ListServicePodNames
func (*ServiceFWD) LoopPodsToForward ¶
func (svcFwd *ServiceFWD) LoopPodsToForward(pods []v1.Pod, includePodNameInHost bool)
LoopPodsToForward starts the port-forwarding for each pod in the given list
func (*ServiceFWD) RemoveServicePod ¶
func (svcFwd *ServiceFWD) RemoveServicePod(servicePodName string)
func (*ServiceFWD) String ¶
func (svcFwd *ServiceFWD) String() string
String representation of a ServiceFWD returns a unique name in the form SERVICE_NAME.NAMESPACE.CONTEXT
func (*ServiceFWD) SyncPodForwards ¶
func (svcFwd *ServiceFWD) SyncPodForwards(force bool)
SyncPodForwards selects one or all pods behind a service, and invokes the forwarding setup for that or those pod(s). It will remove pods in-mem that are no longer returned by k8s, should these not be correctly deleted.