Documentation
¶
Overview ¶
Copyright © 2022 NAME HERE <EMAIL ADDRESS>
Copyright © 2022 NAME HERE <EMAIL ADDRESS>
Copyright © 2022 NAME HERE <EMAIL ADDRESS>
Copyright © 2022 NAME HERE <EMAIL ADDRESS>
Copyright © 2022 NAME HERE <EMAIL ADDRESS>
Copyright © 2022 NAME HERE <EMAIL ADDRESS>
Copyright © 2022 NAME HERE <EMAIL ADDRESS>
Copyright © 2022 NAME HERE <EMAIL ADDRESS>
Copyright © 2022 NAME HERE <EMAIL ADDRESS>
Copyright © 2022 NAME HERE <EMAIL ADDRESS>
Copyright © 2022 NAME HERE <EMAIL ADDRESS>
Copyright © 2023 NAME HERE <EMAIL ADDRESS>
Copyright © 2022 NAME HERE <EMAIL ADDRESS>
Copyright © 2022 NAME HERE <EMAIL ADDRESS>
Copyright © 2022 NAME HERE <EMAIL ADDRESS>
Copyright © 2022 NAME HERE <EMAIL ADDRESS>
Copyright © 2022 NAME HERE <EMAIL ADDRESS>
Copyright © 2022 NAME HERE <EMAIL ADDRESS>
Copyright © 2022 NAME HERE <EMAIL ADDRESS>
Index ¶
- Constants
- func ConvertPort(namespace, name string, port *corev1.ServicePort) corev1.ServicePort
- func Execute()
- func GetClassName(ing *netv1.Ingress) (string, bool)
- func PortName(namespace, name string, port *corev1.ServicePort) string
- type IngressController
- type IngressControllerRun
- func (i *IngressControllerRun) CreateOrUpdateHostIngress(guestClass string) error
- func (i *IngressControllerRun) GenerateHostIngress() error
- func (i *IngressControllerRun) GenerateHostIngressMetadata()
- func (i *IngressControllerRun) HandleFinalizer() (deleted bool, err error)
- func (i *IngressControllerRun) RemovePaths()
- func (i *IngressControllerRun) UpsertPaths() (oldClass string)
- type ServiceController
- type ServiceControllerRun
- func (s *ServiceControllerRun) CreateOrUpdateHostLB() error
- func (s *ServiceControllerRun) GenerateHostLB()
- func (s *ServiceControllerRun) HandleFinalizer() (deleted bool, err error)
- func (s *ServiceControllerRun) RemovePorts()
- func (s *ServiceControllerRun) SetLBIngress() error
- func (s *ServiceControllerRun) UpsertPorts()
Constants ¶
const ( IngressClassNameAnnotation = "kubernetes.io/ingress.class" GuestClassLabel = "kink.meln5674.github.com/guest-ingress-class" ServiceFinalizer = "kink.meln5674.github.com/lb-manager-svc" IngressFinalizer = "kink.meln5674.github.com/lb-manager-ingress" )
const ( ClusterConfigEnv = "KINKCONFIG" ClusterNameEnv = "KINK_CLUSTER_NAME" )
Variables ¶
This section is empty.
Functions ¶
func ConvertPort ¶ added in v0.2.0
func ConvertPort(namespace, name string, port *corev1.ServicePort) corev1.ServicePort
func Execute ¶
func Execute()
Execute adds all child commands to the root command and sets flags appropriately. This is called by main.main(). It only needs to happen once to the rootCmd.
func PortName ¶ added in v0.2.0
func PortName(namespace, name string, port *corev1.ServicePort) string
PortName produces a predictable port name from a guest service. This is done in a way that can be matched in the helm chart, allowing us to create static ingresses for guest NodePort services without knowing their assigned nodeports ahead of time, and without imposing further name length restrictions. This works by taking a 32-bit checksum of the "namespace/name/portname" of the port, then formatting as hex, padding to a max of 8 characters with a prefix
Types ¶
type IngressController ¶ added in v0.2.0
type IngressController struct {
Host client.Client
Guest client.Client
Log logr.Logger
Targets map[string]*netv1.Ingress
// namespace - name -> class
IngressClasses map[string]map[string]string
// class -> namespace -> name -> unit
ClassIngresses map[string]map[string]map[string]struct{}
// namespace -> name -> host -> paths
IngressPaths map[string]map[string]map[string][]netv1.HTTPIngressPath
}
type IngressControllerRun ¶ added in v0.2.0
type IngressControllerRun struct {
*IngressController
Ingress *netv1.Ingress
GuestClass string
MappedClass *cfg.LoadBalancerIngressClassMapping
Log logr.Logger
Ctx context.Context
}
func (*IngressControllerRun) CreateOrUpdateHostIngress ¶ added in v0.2.0
func (i *IngressControllerRun) CreateOrUpdateHostIngress(guestClass string) error
func (*IngressControllerRun) GenerateHostIngress ¶ added in v0.2.0
func (i *IngressControllerRun) GenerateHostIngress() error
func (*IngressControllerRun) GenerateHostIngressMetadata ¶ added in v0.2.0
func (i *IngressControllerRun) GenerateHostIngressMetadata()
func (*IngressControllerRun) HandleFinalizer ¶ added in v0.2.0
func (i *IngressControllerRun) HandleFinalizer() (deleted bool, err error)
func (*IngressControllerRun) RemovePaths ¶ added in v0.2.0
func (i *IngressControllerRun) RemovePaths()
func (*IngressControllerRun) UpsertPaths ¶ added in v0.2.0
func (i *IngressControllerRun) UpsertPaths() (oldClass string)
type ServiceController ¶ added in v0.2.0
type ServiceController struct {
Host client.Client
Guest client.Client
Log logr.Logger
NodePorts map[int32]corev1.ServicePort
ServiceNodePorts map[string]map[string][]int32
LBSvc *corev1.Service
}
func (*ServiceController) SetHostLBMetadata ¶ added in v0.2.0
func (s *ServiceController) SetHostLBMetadata()
type ServiceControllerRun ¶ added in v0.2.0
type ServiceControllerRun struct {
*ServiceController
Log logr.Logger
Svc *corev1.Service
Ctx context.Context
}
func (*ServiceControllerRun) CreateOrUpdateHostLB ¶ added in v0.2.0
func (s *ServiceControllerRun) CreateOrUpdateHostLB() error
func (*ServiceControllerRun) GenerateHostLB ¶ added in v0.2.0
func (s *ServiceControllerRun) GenerateHostLB()
func (*ServiceControllerRun) HandleFinalizer ¶ added in v0.2.0
func (s *ServiceControllerRun) HandleFinalizer() (deleted bool, err error)
func (*ServiceControllerRun) RemovePorts ¶ added in v0.2.0
func (s *ServiceControllerRun) RemovePorts()
func (*ServiceControllerRun) SetLBIngress ¶ added in v0.2.0
func (s *ServiceControllerRun) SetLBIngress() error
func (*ServiceControllerRun) UpsertPorts ¶ added in v0.2.0
func (s *ServiceControllerRun) UpsertPorts()