conversion

package
v1.0.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jan 28, 2026 License: MIT Imports: 18 Imported by: 0

Documentation

Overview

Package conversion is responsible for the process of converting AGIC resources to AGC resources.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func Convert

Convert receives the collection of AGIC resources and produces a set of AGC resources. It updates the status of the input resources as it goes.

Types

type AnnotationHandler

AnnotationHandler processes a single ingress annotation and updates the Gateway API resource graph. It receives the resource graph, gateway context, HTTP route context, ingress context, and annotation context. Returns an error if the annotation value is invalid or conversion fails.

type BackendGroup

type BackendGroup struct {
	// contains filtered or unexported fields
}

BackendGroup represents a collection of services targeted by an IngressRuleGroup

func NewBackendGroup

func NewBackendGroup(routeCtx *HTTPRouteContext) BackendGroup

func (BackendGroup) Apply

func (bg BackendGroup) Apply(fn func(service ServiceDetails) error) error

type GatewayContext

type GatewayContext struct {
	*gatewayapi_v1.Gateway
	HTTPListener     *gatewayapi_v1.Listener
	HTTPSListeners   map[ListenerKey]HTTPSListener
	HasHTTPSRedirect bool
	// contains filtered or unexported fields
}

func NewGatewayContext

func NewGatewayContext(gateway *gatewayapi_v1.Gateway) *GatewayContext

func (*GatewayContext) EnsureHTTPListener

func (g *GatewayContext) EnsureHTTPListener() gatewayapi_v1.SectionName

func (*GatewayContext) EnsureHTTPSListener

func (g *GatewayContext) EnsureHTTPSListener(graph *resources.AGCResourceGraph, hostname string, secretNN types.NamespacedName) gatewayapi_v1.SectionName

func (*GatewayContext) RegisterIssue

func (g *GatewayContext) RegisterIssue(issue resources.Issue)

type HTTPRouteContext

type HTTPRouteContext struct {
	*gatewayapi_v1.HTTPRoute
	// contains filtered or unexported fields
}

func NewHTTPRouteContext

func NewHTTPRouteContext(route *gatewayapi_v1.HTTPRoute) *HTTPRouteContext

func (*HTTPRouteContext) EnsureHTTPSListener

func (h *HTTPRouteContext) EnsureHTTPSListener(graph *resources.AGCResourceGraph, gatewayCtx GatewayContext, hostname string, secretName string, secretNamespace string)

func (HTTPRouteContext) GetParentHTTPSListenerNames

func (h HTTPRouteContext) GetParentHTTPSListenerNames(gatewayCtx GatewayContext) []gatewayapi_v1.SectionName

type HTTPSListener

type HTTPSListener struct {
	Secrets sets.Set[types.NamespacedName]
	*gatewayapi_v1.Listener
}

func (*HTTPSListener) AddSecret

func (hl *HTTPSListener) AddSecret(secretNN types.NamespacedName)

type ListenerKey

type ListenerKey struct {
	Hostname string
	Port     int32
}

type Options

type Options struct {
	BYOResourceID    string
	ManagedSubnetID  string
	GatewayNamespace string
	GatewayWAFID     string
	Provider         Provider
}

type Provider

type Provider interface {
	// GetAnnotationHandlers returns a map of annotation keys to their corresponding handler functions.
	// The keys are the full annotation names (e.g., "appgw.ingress.kubernetes.io/ssl-redirect").
	GetAnnotationHandlers() map[string]AnnotationHandler
}

Provider defines the interface for source systems that can be migrated from (e.g. AGIC).

type ServiceDetails

type ServiceDetails struct {
	NamespacedName types.NamespacedName
	Port           *int32
}

Directories

Path Synopsis
providers
nginx
Package nginx provides annotation handlers for migrating NGINX Ingress Controller ingress resources to Gateway API resources for Azure Application Gateway for Containers.
Package nginx provides annotation handlers for migrating NGINX Ingress Controller ingress resources to Gateway API resources for Azure Application Gateway for Containers.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL