This is an automated email from the ASF dual-hosted git repository. alinsran pushed a commit to branch v2.0.0 in repository https://gitbox.apache.org/repos/asf/apisix-ingress-controller.git
The following commit(s) were added to refs/heads/v2.0.0 by this push: new cdc6b386 chore: unified logger print (#2456) cdc6b386 is described below commit cdc6b38615a41570bd1a13feff453155a5dc90c5 Author: Ashing Zheng <axing...@gmail.com> AuthorDate: Sat Jul 5 22:21:24 2025 +0800 chore: unified logger print (#2456) Signed-off-by: ashing <axing...@gmail.com> Co-authored-by: Copilot <175728472+copi...@users.noreply.github.com> --- internal/controller/apisixglobalrule_controller.go | 7 +++---- internal/controller/apisixtls_controller.go | 9 ++++---- internal/controller/consumer_controller.go | 2 +- internal/controller/gateway_controller.go | 7 +++---- internal/controller/httproute_controller.go | 2 +- internal/controller/ingress_controller.go | 2 +- internal/controller/ingressclass_controller.go | 3 +-- internal/controller/utils.go | 24 +++++++++++----------- internal/provider/adc/adc.go | 2 +- internal/provider/adc/executor.go | 4 ++-- internal/provider/adc/store.go | 18 ++++++++-------- internal/provider/adc/translator/apisixroute.go | 3 ++- internal/provider/adc/translator/gateway.go | 3 ++- internal/provider/adc/translator/httproute.go | 3 ++- test/e2e/scaffold/adc.go | 2 +- 15 files changed, 45 insertions(+), 46 deletions(-) diff --git a/internal/controller/apisixglobalrule_controller.go b/internal/controller/apisixglobalrule_controller.go index 70ee59d8..fc42b1fb 100644 --- a/internal/controller/apisixglobalrule_controller.go +++ b/internal/controller/apisixglobalrule_controller.go @@ -21,7 +21,6 @@ import ( "context" "fmt" - "github.com/api7/gopkg/pkg/log" "github.com/go-logr/logr" networkingv1 "k8s.io/api/networking/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" @@ -83,19 +82,19 @@ func (r *ApisixGlobalRuleReconciler) Reconcile(ctx context.Context, req ctrl.Req // get the ingress class ingressClass, err := GetIngressClass(tctx, r.Client, r.Log, globalRule.Spec.IngressClassName) if err != nil { - log.Error(err, "failed to get IngressClass") + r.Log.Error(err, "failed to get IngressClass") return ctrl.Result{}, err } // process IngressClass parameters if they reference GatewayProxy if err := ProcessIngressClassParameters(tctx, r.Client, r.Log, &globalRule, ingressClass); err != nil { - log.Error(err, "failed to process IngressClass parameters", "ingressClass", ingressClass.Name) + r.Log.Error(err, "failed to process IngressClass parameters", "ingressClass", ingressClass.Name) return ctrl.Result{}, err } // Sync the global rule to APISIX if err := r.Provider.Update(ctx, tctx, &globalRule); err != nil { - log.Error(err, "failed to sync global rule to provider") + r.Log.Error(err, "failed to sync global rule to provider") // Update status with failure condition r.updateStatus(&globalRule, metav1.Condition{ Type: string(apiv2.ConditionTypeAccepted), diff --git a/internal/controller/apisixtls_controller.go b/internal/controller/apisixtls_controller.go index 020aebcd..5cde26f6 100644 --- a/internal/controller/apisixtls_controller.go +++ b/internal/controller/apisixtls_controller.go @@ -21,7 +21,6 @@ import ( "context" "fmt" - "github.com/api7/gopkg/pkg/log" "github.com/go-logr/logr" corev1 "k8s.io/api/core/v1" networkingv1 "k8s.io/api/networking/v1" @@ -115,7 +114,7 @@ func (r *ApisixTlsReconciler) Reconcile(ctx context.Context, req ctrl.Request) ( // get the ingress class ingressClass, err := GetIngressClass(tctx, r.Client, r.Log, tls.Spec.IngressClassName) if err != nil { - log.Error(err, "failed to get IngressClass") + r.Log.Error(err, "failed to get IngressClass") r.updateStatus(&tls, metav1.Condition{ Type: string(apiv2.ConditionTypeAccepted), Status: metav1.ConditionFalse, @@ -129,7 +128,7 @@ func (r *ApisixTlsReconciler) Reconcile(ctx context.Context, req ctrl.Request) ( // process IngressClass parameters if they reference GatewayProxy if err := ProcessIngressClassParameters(tctx, r.Client, r.Log, &tls, ingressClass); err != nil { - log.Error(err, "failed to process IngressClass parameters", "ingressClass", ingressClass.Name) + r.Log.Error(err, "failed to process IngressClass parameters", "ingressClass", ingressClass.Name) r.updateStatus(&tls, metav1.Condition{ Type: string(apiv2.ConditionTypeAccepted), Status: metav1.ConditionFalse, @@ -143,7 +142,7 @@ func (r *ApisixTlsReconciler) Reconcile(ctx context.Context, req ctrl.Request) ( // process ApisixTls validation if err := r.processApisixTls(ctx, tctx, &tls); err != nil { - log.Error(err, "failed to process ApisixTls") + r.Log.Error(err, "failed to process ApisixTls") r.updateStatus(&tls, metav1.Condition{ Type: string(apiv2.ConditionTypeAccepted), Status: metav1.ConditionFalse, @@ -156,7 +155,7 @@ func (r *ApisixTlsReconciler) Reconcile(ctx context.Context, req ctrl.Request) ( } if err := r.Provider.Update(ctx, tctx, &tls); err != nil { - log.Error(err, "failed to sync apisix tls to provider") + r.Log.Error(err, "failed to sync apisix tls to provider") // Update status with failure condition r.updateStatus(&tls, metav1.Condition{ Type: string(apiv2.ConditionTypeAccepted), diff --git a/internal/controller/consumer_controller.go b/internal/controller/consumer_controller.go index 0484680c..ef02e42f 100644 --- a/internal/controller/consumer_controller.go +++ b/internal/controller/consumer_controller.go @@ -212,7 +212,7 @@ func (r *ConsumerReconciler) Reconcile(ctx context.Context, req ctrl.Request) (c rk := utils.NamespacedNameKind(consumer) - if err := ProcessGatewayProxy(r.Client, tctx, gateway, rk); err != nil { + if err := ProcessGatewayProxy(r.Client, r.Log, tctx, gateway, rk); err != nil { r.Log.Error(err, "failed to process gateway proxy", "gateway", gateway) statusErr = err } diff --git a/internal/controller/gateway_controller.go b/internal/controller/gateway_controller.go index 31a64824..2ed7bf46 100644 --- a/internal/controller/gateway_controller.go +++ b/internal/controller/gateway_controller.go @@ -23,7 +23,6 @@ import ( "fmt" "reflect" - "github.com/api7/gopkg/pkg/log" "github.com/go-logr/logr" corev1 "k8s.io/api/core/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" @@ -412,7 +411,7 @@ func (r *GatewayReconciler) listReferenceGrantsForGateway(ctx context.Context, o } func (r *GatewayReconciler) processInfrastructure(tctx *provider.TranslateContext, gateway *gatewayv1.Gateway) error { - return ProcessGatewayProxy(r.Client, tctx, gateway, utils.NamespacedNameKind(gateway)) + return ProcessGatewayProxy(r.Client, r.Log, tctx, gateway, utils.NamespacedNameKind(gateway)) } func (r *GatewayReconciler) processListenerConfig(tctx *provider.TranslateContext, gateway *gatewayv1.Gateway) { @@ -432,12 +431,12 @@ func (r *GatewayReconciler) processListenerConfig(tctx *provider.TranslateContex Namespace: ns, Name: string(ref.Name), }, &secret); err != nil { - log.Error(err, "failed to get secret", "namespace", ns, "name", ref.Name) + r.Log.Error(err, "failed to get secret", "namespace", ns, "name", ref.Name) SetGatewayListenerConditionProgrammed(gateway, string(listener.Name), false, err.Error()) SetGatewayListenerConditionResolvedRefs(gateway, string(listener.Name), false, err.Error()) break } - log.Info("Setting secret for listener", "listener", listener.Name, "secret", secret.Name, " namespace", ns) + r.Log.Info("Setting secret for listener", "listener", listener.Name, "secret", secret.Name, " namespace", ns) tctx.Secrets[types.NamespacedName{Namespace: ns, Name: string(ref.Name)}] = &secret } } diff --git a/internal/controller/httproute_controller.go b/internal/controller/httproute_controller.go index ae869761..3a21e6a2 100644 --- a/internal/controller/httproute_controller.go +++ b/internal/controller/httproute_controller.go @@ -178,7 +178,7 @@ func (r *HTTPRouteReconciler) Reconcile(ctx context.Context, req ctrl.Request) ( tctx.RouteParentRefs = hr.Spec.ParentRefs rk := utils.NamespacedNameKind(hr) for _, gateway := range gateways { - if err := ProcessGatewayProxy(r.Client, tctx, gateway.Gateway, rk); err != nil { + if err := ProcessGatewayProxy(r.Client, r.Log, tctx, gateway.Gateway, rk); err != nil { acceptStatus.status = false acceptStatus.msg = err.Error() } diff --git a/internal/controller/ingress_controller.go b/internal/controller/ingress_controller.go index 001a9f9b..d2a55079 100644 --- a/internal/controller/ingress_controller.go +++ b/internal/controller/ingress_controller.go @@ -471,7 +471,7 @@ func (r *IngressReconciler) processTLS(tctx *provider.TranslateContext, ingress Namespace: ingress.Namespace, Name: tls.SecretName, }, &secret); err != nil { - log.Error(err, "failed to get secret", "namespace", ingress.Namespace, "name", tls.SecretName) + r.Log.Error(err, "failed to get secret", "namespace", ingress.Namespace, "name", tls.SecretName) return err } diff --git a/internal/controller/ingressclass_controller.go b/internal/controller/ingressclass_controller.go index f653dbbd..c0e88f2d 100644 --- a/internal/controller/ingressclass_controller.go +++ b/internal/controller/ingressclass_controller.go @@ -21,7 +21,6 @@ import ( "context" "fmt" - "github.com/api7/gopkg/pkg/log" "github.com/go-logr/logr" corev1 "k8s.io/api/core/v1" networkingv1 "k8s.io/api/networking/v1" @@ -217,7 +216,7 @@ func (r *IngressClassReconciler) processInfrastructure(tctx *provider.TranslateC Namespace: namespace, Name: secretRef.Name, }, secret); err != nil { - log.Error(err, "failed to get secret for gateway proxy", "namespace", namespace, "name", secretRef.Name) + r.Log.Error(err, "failed to get secret for gateway proxy", "namespace", namespace, "name", secretRef.Name) return err } tctx.Secrets[client.ObjectKey{ diff --git a/internal/controller/utils.go b/internal/controller/utils.go index 0465f952..81a44843 100644 --- a/internal/controller/utils.go +++ b/internal/controller/utils.go @@ -380,8 +380,11 @@ func ParseRouteParentRefs( listenerName = string(listener.Name) ok, err := routeMatchesListenerAllowedRoutes(ctx, mgrc, route, listener.AllowedRoutes, gateway.Namespace, parentRef.Namespace) if err != nil { - log.Warnf("failed matching listener %s to a route %s for gateway %s: %v", - listener.Name, route.GetName(), gateway.Name, err, + log.Warnw("failed matching listener to a route for gateway", + zap.String("listener", string(listener.Name)), + zap.String("route", route.GetName()), + zap.String("gateway", gateway.Name), + zap.Error(err), ) } if !ok { @@ -895,7 +898,7 @@ func SplitMetaNamespaceKey(key string) (namespace, name string, err error) { return "", "", fmt.Errorf("unexpected key format: %q", key) } -func ProcessGatewayProxy(r client.Client, tctx *provider.TranslateContext, gateway *gatewayv1.Gateway, rk types.NamespacedNameKind) error { +func ProcessGatewayProxy(r client.Client, log logr.Logger, tctx *provider.TranslateContext, gateway *gatewayv1.Gateway, rk types.NamespacedNameKind) error { if gateway == nil { return nil } @@ -914,10 +917,10 @@ func ProcessGatewayProxy(r client.Client, tctx *provider.TranslateContext, gatew Namespace: ns, Name: paramRef.Name, }, gatewayProxy); err != nil { - log.Errorw("failed to get GatewayProxy", zap.String("namespace", ns), zap.String("name", paramRef.Name), zap.Error(err)) + log.Error(err, "failed to get GatewayProxy", "namespace", ns, "name", paramRef.Name) return err } else { - log.Infow("found GatewayProxy for Gateway", zap.String("namespace", gateway.Namespace), zap.String("name", gateway.Name)) + log.Info("found GatewayProxy for Gateway", "namespace", gateway.Namespace, "name", gateway.Name) tctx.GatewayProxies[gatewayKind] = *gatewayProxy tctx.ResourceParentRefs[rk] = append(tctx.ResourceParentRefs[rk], gatewayKind) @@ -941,10 +944,7 @@ func ProcessGatewayProxy(r client.Client, tctx *provider.TranslateContext, gatew return err } - log.Info("found secret for GatewayProxy provider", - "gateway", gateway.Name, - "gatewayproxy", gatewayProxy.Name, - "secret", secretRef.Name) + log.Info("found secret for GatewayProxy provider", "gateway", gateway.Name, "gatewayproxy", gatewayProxy.Name, "secret", secretRef.Name) tctx.Secrets[k8stypes.NamespacedName{ Namespace: ns, @@ -1415,12 +1415,12 @@ func distinctRequests(requests []reconcile.Request) []reconcile.Request { } func addProviderEndpointsToTranslateContext(tctx *provider.TranslateContext, c client.Client, serviceNN k8stypes.NamespacedName) error { - log.Debugf("to process provider endpints by provider.service: %s", serviceNN) + log.Debugw("to process provider endpoints by provider.service", zap.Any("service", serviceNN)) var ( service corev1.Service ) if err := c.Get(tctx, serviceNN, &service); err != nil { - log.Error(err, "failed to get service from GatewayProxy provider", "key", serviceNN) + log.Errorw("failed to get service from GatewayProxy provider", zap.Error(err), zap.Any("key", serviceNN)) return err } tctx.Services[serviceNN] = &service @@ -1434,7 +1434,7 @@ func addProviderEndpointsToTranslateContext(tctx *provider.TranslateContext, c c client.MatchingLabels{ discoveryv1.LabelServiceName: serviceNN.Name, }); err != nil { - log.Error(err, "failed to get endpoints for GatewayProxy provider", "endpoints", serviceNN) + log.Errorw("failed to get endpoints for GatewayProxy provider", zap.Error(err), zap.Any("endpoints", serviceNN)) return err } tctx.EndpointSlices[serviceNN] = esList.Items diff --git a/internal/provider/adc/adc.go b/internal/provider/adc/adc.go index d3eb3f47..a25a39e8 100644 --- a/internal/provider/adc/adc.go +++ b/internal/provider/adc/adc.go @@ -409,7 +409,7 @@ func prepareSyncFile(resources any) (string, func(), error) { return "", nil, err } - log.Debugf("generated adc file, filename: %s, json: %s\n", tmpFile.Name(), string(data)) + log.Debugw("generated adc file", zap.String("filename", tmpFile.Name()), zap.String("json", string(data))) return tmpFile.Name(), cleanup, nil } diff --git a/internal/provider/adc/executor.go b/internal/provider/adc/executor.go index 857ef14d..77414be7 100644 --- a/internal/provider/adc/executor.go +++ b/internal/provider/adc/executor.go @@ -98,7 +98,7 @@ func (e *DefaultADCExecutor) runForSingleServer(ctx context.Context, serverAddr, cmd.Stderr = &stderr cmd.Env = append(os.Environ(), env...) - log.Debug("running adc command", + log.Debugw("running adc command", zap.String("command", strings.Join(cmd.Args, " ")), zap.Strings("env", env), ) @@ -153,7 +153,7 @@ func (e *DefaultADCExecutor) buildCmdError(runErr error, stdout, stderr []byte) func (e *DefaultADCExecutor) handleOutput(output []byte) (*adctypes.SyncResult, error) { var result adctypes.SyncResult - log.Debugf("adc output: %s", string(output)) + log.Debugw("adc output", zap.String("output", string(output))) if lines := bytes.Split(output, []byte{'\n'}); len(lines) > 0 { output = lines[len(lines)-1] } diff --git a/internal/provider/adc/store.go b/internal/provider/adc/store.go index d5626c93..458a68a2 100644 --- a/internal/provider/adc/store.go +++ b/internal/provider/adc/store.go @@ -56,7 +56,7 @@ func (s *Store) Insert(name string, resourceTypes []string, resources adctypes.R s.cacheMap[name] = db targetCache = s.cacheMap[name] } - log.Debugf("Inserting resources into cache for %s", name) + log.Debugw("Inserting resources into cache for", zap.String("name", name)) selector := &cache.KindLabelSelector{ Kind: Labels[label.LabelKind], Name: Labels[label.LabelName], @@ -163,41 +163,41 @@ func (s *Store) Delete(name string, resourceTypes []string, Labels map[string]st case adctypes.TypeService: services, err := targetCache.ListServices(selector) if err != nil { - log.Errorf("failed to list services: %v", err) + log.Errorw("failed to list services", zap.Error(err)) } for _, service := range services { if err := targetCache.DeleteService(service); err != nil { - log.Errorf("failed to delete service %s: %v", service.ID, err) + log.Errorw("failed to delete service", zap.Error(err), zap.String("service", service.ID)) } } case adctypes.TypeSSL: ssls, err := targetCache.ListSSL(selector) if err != nil { - log.Errorf("failed to list ssl: %v", err) + log.Errorw("failed to list ssl", zap.Error(err)) } for _, ssl := range ssls { if err := targetCache.DeleteSSL(ssl); err != nil { - log.Errorf("failed to delete ssl %s: %v", ssl.ID, err) + log.Errorw("failed to delete ssl", zap.Error(err), zap.String("ssl", ssl.ID)) } } case adctypes.TypeConsumer: consumers, err := targetCache.ListConsumers(selector) if err != nil { - log.Errorf("failed to list consumers: %v", err) + log.Errorw("failed to list consumers", zap.Error(err)) } for _, consumer := range consumers { if err := targetCache.DeleteConsumer(consumer); err != nil { - log.Errorf("failed to delete consumer %s: %v", consumer.Username, err) + log.Errorw("failed to delete consumer", zap.Error(err), zap.String("consumer", consumer.Username)) } } case adctypes.TypeGlobalRule: globalRules, err := targetCache.ListGlobalRules(selector) if err != nil { - log.Errorf("failed to list global rules: %v", err) + log.Errorw("failed to list global rules", zap.Error(err)) } for _, globalRule := range globalRules { if err := targetCache.DeleteGlobalRule(globalRule); err != nil { - log.Errorf("failed to delete global rule %s: %v", globalRule.ID, err) + log.Errorw("failed to delete global rule", zap.Error(err), zap.String("global rule", globalRule.ID)) } } case adctypes.TypePluginMetadata: diff --git a/internal/provider/adc/translator/apisixroute.go b/internal/provider/adc/translator/apisixroute.go index c622202e..3cf1a68c 100644 --- a/internal/provider/adc/translator/apisixroute.go +++ b/internal/provider/adc/translator/apisixroute.go @@ -25,6 +25,7 @@ import ( "github.com/api7/gopkg/pkg/log" "github.com/pkg/errors" + "go.uber.org/zap" v1 "k8s.io/api/core/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/types" @@ -233,7 +234,7 @@ func (t *Translator) buildUpstream(tctx *provider.TranslateContext, service *adc } au, ok := tctx.Upstreams[upsNN] if !ok { - log.Debugf("failed to retrieve ApisixUpstream from tctx, ApisixUpstream: %s", upsNN) + log.Debugw("failed to retrieve ApisixUpstream from tctx", zap.Any("ApisixUpstream", upsNN)) continue } upstream, err := t.translateApisixUpstream(tctx, au) diff --git a/internal/provider/adc/translator/gateway.go b/internal/provider/adc/translator/gateway.go index 8a287d57..acfdf80b 100644 --- a/internal/provider/adc/translator/gateway.go +++ b/internal/provider/adc/translator/gateway.go @@ -96,11 +96,12 @@ func (t *Translator) translateSecret(tctx *provider.TranslateContext, listener g continue } if secret.Data == nil { - log.Error("secret data is nil", "secret", secret) + log.Errorw("secret data is nil", zap.Any("secret", secret)) return nil, fmt.Errorf("no secret data found for %s/%s", ns, name) } cert, key, err := extractKeyPair(secret, true) if err != nil { + log.Errorw("failed to extract key pair", zap.Error(err), zap.Any("secret", secret)) return nil, err } sslObj.Certificates = append(sslObj.Certificates, adctypes.Certificate{ diff --git a/internal/provider/adc/translator/httproute.go b/internal/provider/adc/translator/httproute.go index c53c1cc9..8506bc8d 100644 --- a/internal/provider/adc/translator/httproute.go +++ b/internal/provider/adc/translator/httproute.go @@ -274,7 +274,8 @@ func (t *Translator) fillHTTPRoutePolicies(routes []*adctypes.Route, policies [] for _, data := range policy.Spec.Vars { var v []adctypes.StringOrSlice if err := json.Unmarshal(data.Raw, &v); err != nil { - log.Errorf("failed to unmarshal spec.Vars item to []StringOrSlice, data: %s", string(data.Raw)) // todo: update status + log.Errorw("failed to unmarshal spec.Vars item to []StringOrSlice", zap.Error(err), zap.String("data", string(data.Raw))) + // todo: update status continue } route.Vars = append(route.Vars, v) diff --git a/test/e2e/scaffold/adc.go b/test/e2e/scaffold/adc.go index ef075689..12bd229e 100644 --- a/test/e2e/scaffold/adc.go +++ b/test/e2e/scaffold/adc.go @@ -143,7 +143,7 @@ func (a *adcDataplaneResource) dumpResources(ctx context.Context) (*translator.T cmd.Env = append(cmd.Env, os.Environ()...) cmd.Env = append(cmd.Env, adcEnv...) - log.Debug("running adc command", zap.String("command", cmd.String()), zap.Strings("env", adcEnv)) + log.Debugw("running adc command", zap.String("command", cmd.String()), zap.Strings("env", adcEnv)) if err := cmd.Run(); err != nil { stderrStr := stderr.String()