@@ -26,7 +26,6 @@ import (
2626 networkingv1 "k8s.io/api/networking/v1"
2727 metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
2828 "k8s.io/apimachinery/pkg/runtime"
29- "k8s.io/apimachinery/pkg/types"
3029 ctrl "sigs.k8s.io/controller-runtime"
3130 "sigs.k8s.io/controller-runtime/pkg/builder"
3231 "sigs.k8s.io/controller-runtime/pkg/client"
@@ -37,7 +36,6 @@ import (
3736 "github.com/apache/apisix-ingress-controller/api/v1alpha1"
3837 "github.com/apache/apisix-ingress-controller/internal/controller/indexer"
3938 "github.com/apache/apisix-ingress-controller/internal/provider"
40- "github.com/apache/apisix-ingress-controller/internal/utils"
4139)
4240
4341// IngressClassReconciler reconciles a IngressClass object.
@@ -98,7 +96,7 @@ func (r *IngressClassReconciler) Reconcile(ctx context.Context, req ctrl.Request
9896 // Create a translate context
9997 tctx := provider .NewDefaultTranslateContext (ctx )
10098
101- if err := r . processInfrastructure (tctx , ingressClass ); err != nil {
99+ if err := ProcessIngressClassParameters (tctx , r . Client , r . Log , ingressClass , ingressClass ); err != nil {
102100 r .Log .Error (err , "failed to process infrastructure for ingressclass" , "ingressclass" , ingressClass .GetName ())
103101 return ctrl.Result {}, err
104102 }
@@ -175,75 +173,3 @@ func (r *IngressClassReconciler) listIngressClassesForSecret(ctx context.Context
175173
176174 return distinctRequests (requests )
177175}
178-
179- func (r * IngressClassReconciler ) processInfrastructure (tctx * provider.TranslateContext , ingressClass * networkingv1.IngressClass ) error {
180- if ingressClass .Spec .Parameters == nil {
181- return nil
182- }
183-
184- if ingressClass .Spec .Parameters .APIGroup == nil ||
185- * ingressClass .Spec .Parameters .APIGroup != v1alpha1 .GroupVersion .Group ||
186- ingressClass .Spec .Parameters .Kind != KindGatewayProxy {
187- return nil
188- }
189-
190- namespace := ingressClass .Namespace
191- if ingressClass .Spec .Parameters .Namespace != nil {
192- namespace = * ingressClass .Spec .Parameters .Namespace
193- }
194- // Check for annotation override
195- if annotationNamespace , exists := ingressClass .Annotations [parametersNamespaceAnnotation ]; exists && annotationNamespace != "" {
196- namespace = annotationNamespace
197- }
198-
199- gatewayProxy := new (v1alpha1.GatewayProxy )
200- if err := r .Get (context .Background (), client.ObjectKey {
201- Namespace : namespace ,
202- Name : ingressClass .Spec .Parameters .Name ,
203- }, gatewayProxy ); err != nil {
204- return fmt .Errorf ("failed to get gateway proxy: %w" , err )
205- }
206-
207- rk := utils .NamespacedNameKind (ingressClass )
208-
209- tctx .GatewayProxies [rk ] = * gatewayProxy
210- tctx .ResourceParentRefs [rk ] = append (tctx .ResourceParentRefs [rk ], rk )
211-
212- // Load secrets if needed
213- if gatewayProxy .Spec .Provider != nil && gatewayProxy .Spec .Provider .ControlPlane != nil {
214- auth := gatewayProxy .Spec .Provider .ControlPlane .Auth
215- if auth .Type == v1alpha1 .AuthTypeAdminKey && auth .AdminKey != nil && auth .AdminKey .ValueFrom != nil {
216- if auth .AdminKey .ValueFrom .SecretKeyRef != nil {
217- secretRef := auth .AdminKey .ValueFrom .SecretKeyRef
218- secret := & corev1.Secret {}
219- if err := r .Get (context .Background (), client.ObjectKey {
220- Namespace : namespace ,
221- Name : secretRef .Name ,
222- }, secret ); err != nil {
223- r .Log .Error (err , "failed to get secret for gateway proxy" , "namespace" , namespace , "name" , secretRef .Name )
224- return err
225- }
226- tctx .Secrets [client.ObjectKey {
227- Namespace : namespace ,
228- Name : secretRef .Name ,
229- }] = secret
230- }
231- }
232- }
233-
234- if service := gatewayProxy .Spec .Provider .ControlPlane .Service ; service != nil {
235- if err := addProviderEndpointsToTranslateContext (tctx , r .Client , types.NamespacedName {
236- Namespace : gatewayProxy .GetNamespace (),
237- Name : service .Name ,
238- }); err != nil {
239- return err
240- }
241- }
242-
243- _ , ok := tctx .GatewayProxies [rk ]
244- if ! ok {
245- return fmt .Errorf ("no gateway proxy found for ingress class" )
246- }
247-
248- return nil
249- }
0 commit comments