Documentation
¶
Index ¶
- func GetDNSSpecInput[T client.Object](ctx context.Context, r *common.SourceReconciler[T], gatewayObj client.Object, ...) (*common.DNSSpecInput, error)
- func MapGatewayNamesToRequest(gatewayNames []string, defaultNamespace string) []reconcile.Request
- func MapObjectKeysToRequests(keys []client.ObjectKey) []reconcile.Request
- type APIVersion
- type ObjectToGatewaysState
- func (s *ObjectToGatewaysState) AddIngress(ingressKey, gatewayKey client.ObjectKey)
- func (s *ObjectToGatewaysState) AddService(serviceKey, gatewayKey client.ObjectKey)
- func (s *ObjectToGatewaysState) GetGatewaysForIngress(ingressKey client.ObjectKey) []client.ObjectKey
- func (s *ObjectToGatewaysState) GetGatewaysForService(serviceKey client.ObjectKey) []client.ObjectKey
- func (s *ObjectToGatewaysState) RemoveGateway(gatewayKey client.ObjectKey)
- func (s *ObjectToGatewaysState) RemoveGatewayFromIngressMappings(gatewayKey client.ObjectKey)
- func (s *ObjectToGatewaysState) RemoveGatewayFromServiceMappings(gatewayKey client.ObjectKey)
- func (s *ObjectToGatewaysState) RemoveIngress(ingressKey client.ObjectKey)
- func (s *ObjectToGatewaysState) RemoveService(serviceKey client.ObjectKey)
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func GetDNSSpecInput ¶
func GetDNSSpecInput[T client.Object](ctx context.Context, r *common.SourceReconciler[T], gatewayObj client.Object, state *ObjectToGatewaysState) (*common.DNSSpecInput, error)
GetDNSSpecInput constructs a DNSSpecInput from the given Istio Gateway resource.
func MapGatewayNamesToRequest ¶
MapGatewayNamesToRequest maps the given gateway names to reconcile.Request using the default namespace if not specified.
Types ¶
type APIVersion ¶
type APIVersion string
APIVersion represents the Istio API version.
const ( // V1Alpha3 represents Istio v1alpha3. V1Alpha3 APIVersion = "v1alpha3" // V1Beta1 represents Istio v1beta1. V1Beta1 APIVersion = "v1beta1" // V1 represents Istio v1. V1 APIVersion = "v1" )
func DetermineAPIVersion ¶
func DetermineAPIVersion(dc discovery.DiscoveryInterface) (*APIVersion, error)
DetermineAPIVersion determines the Istio API version supported by the API server. It prefers API versions in the following order: v1, v1beta1, v1alpha3. It returns nil if no relevant CRDs are found.
type ObjectToGatewaysState ¶
type ObjectToGatewaysState struct {
// contains filtered or unexported fields
}
ObjectToGatewaysState is a state that maps Ingress and Service objects to the Istio Gateways that reference them.
func NewObjectToGatewaysState ¶
func NewObjectToGatewaysState() *ObjectToGatewaysState
NewObjectToGatewaysState creates a new ObjectToGatewaysState.
func (*ObjectToGatewaysState) AddIngress ¶
func (s *ObjectToGatewaysState) AddIngress(ingressKey, gatewayKey client.ObjectKey)
AddIngress adds a mapping from the given Ingress to the given Gateway.
func (*ObjectToGatewaysState) AddService ¶
func (s *ObjectToGatewaysState) AddService(serviceKey, gatewayKey client.ObjectKey)
AddService adds a mapping from the given Service to the given Gateway.
func (*ObjectToGatewaysState) GetGatewaysForIngress ¶
func (s *ObjectToGatewaysState) GetGatewaysForIngress(ingressKey client.ObjectKey) []client.ObjectKey
GetGatewaysForIngress returns the keys of the Gateways that reference the given Ingress.
func (*ObjectToGatewaysState) GetGatewaysForService ¶
func (s *ObjectToGatewaysState) GetGatewaysForService(serviceKey client.ObjectKey) []client.ObjectKey
GetGatewaysForService returns the keys of the Gateways that reference the given Service.
func (*ObjectToGatewaysState) RemoveGateway ¶
func (s *ObjectToGatewaysState) RemoveGateway(gatewayKey client.ObjectKey)
RemoveGateway removes the mapping from the given Gateway to all Ingress and Service objects.
func (*ObjectToGatewaysState) RemoveGatewayFromIngressMappings ¶
func (s *ObjectToGatewaysState) RemoveGatewayFromIngressMappings(gatewayKey client.ObjectKey)
RemoveGatewayFromIngressMappings removes the mapping from the given Gateway to all Ingress objects.
func (*ObjectToGatewaysState) RemoveGatewayFromServiceMappings ¶
func (s *ObjectToGatewaysState) RemoveGatewayFromServiceMappings(gatewayKey client.ObjectKey)
RemoveGatewayFromServiceMappings removes the mapping from the given Gateway to all Service objects.
func (*ObjectToGatewaysState) RemoveIngress ¶
func (s *ObjectToGatewaysState) RemoveIngress(ingressKey client.ObjectKey)
RemoveIngress removes the mapping from the given Ingress to all Gateways.
func (*ObjectToGatewaysState) RemoveService ¶
func (s *ObjectToGatewaysState) RemoveService(serviceKey client.ObjectKey)
RemoveService removes the mapping from the given Service to all Gateways.