egressservices
packageThis package is not in the latest version of its module.
Details
Validgo.mod file
The Go module system was introduced in Go 1.11 and is the official dependency management solution for Go.
Redistributable license
Redistributable licenses place minimal restrictions on how software can be used, modified, and redistributed.
Tagged version
Modules with tagged versions give importers more predictable builds.
Stable version
When a project reaches major version v1 it is considered stable.
- Learn more about best practices
Repository
Links
Documentation¶
Overview¶
Package egressservices contains shared types for exposing tailnet services tocluster workloads.These are split into a separate package for consumption ofnon-Kubernetes shared libraries and binaries. Be mindful of not increasingdependency size for those consumers when adding anything new here.
Index¶
Constants¶
const (// KeyEgressServices is name of the proxy state Secret field that contains the// currently applied egress proxy config.KeyEgressServices = "egress-services"// KeyHEPPings is the number of times an egress service health check endpoint needs to be pinged to ensure that// each currently configured backend is hit. In practice, it depends on the number of ProxyGroup replicas.KeyHEPPings = "hep-pings")
Variables¶
This section is empty.
Functions¶
This section is empty.
Types¶
typeConfig¶
type Config struct {HealthCheckEndpointstring `json:"healthCheckEndpoint"`// TailnetTarget is the target to which cluster traffic for this service// should be proxied.TailnetTargetTailnetTarget `json:"tailnetTarget"`// Ports contains mappings for ports that can be accessed on the tailnet target.PortsPortMaps `json:"ports"`}Config is an egress service configuration.TODO(irbekrm): version this?
typePortMap¶
type PortMap struct {Protocolstring `json:"protocol"`MatchPortuint16 `json:"matchPort"`TargetPortuint16 `json:"targetPort"`}PorMap is a mapping between match port on which proxy receives clustertraffic and target port where traffic received on match port should befowardded to.
typePortMaps¶
type PortMaps map[PortMap]struct{}
func (PortMaps)MarshalJSON¶
func (*PortMaps)UnmarshalJSON¶
typeServiceStatus¶
type ServiceStatus struct {PortsPortMaps `json:"ports"`// TailnetTargetIPs are the tailnet target IPs that were used to// configure these firewall rules. For a TailnetTarget with IP set, this// is the same as IP.TailnetTargetIPs []netip.Addr `json:"tailnetTargetIPs"`TailnetTargetTailnetTarget `json:"tailnetTarget"`}ServiceStatus is the currently configured firewall rules for an egressservice.
typeStatus¶
type Status struct {PodIPv4string `json:"podIPv4"`// All egress service status keyed by service name.Services map[string]*ServiceStatus `json:"services"`}Status represents the currently configured firewall rules for all egressservices for a proxy identified by the PodIP.
typeTailnetTarget¶
type TailnetTarget struct {// IP is the tailnet IP of the target.IPstring `json:"ip"`// FQDN is the full tailnet FQDN of the target.FQDNstring `json:"fqdn"`}TailnetTarget is the tailnet target to which traffic for the egress serviceshould be proxied. Exactly one of IP or FQDN should be set.