refactor: divide log to session and backend (#487)

* refactor: divide log to session and backend
This commit is contained in:
naison
2025-03-23 13:59:10 +08:00
committed by GitHub
parent a5622b9439
commit b46f7a9877
107 changed files with 873 additions and 871 deletions

View File

@@ -3,6 +3,7 @@ package inject
import (
_ "embed"
log "github.com/sirupsen/logrus"
v1 "k8s.io/api/core/v1"
"k8s.io/apimachinery/pkg/api/resource"
"k8s.io/apimachinery/pkg/util/sets"
@@ -38,10 +39,6 @@ func AddMeshContainer(spec *v1.PodTemplateSpec, nodeId string, c util.PodRouteCo
// remove envoy proxy containers if already exist
RemoveContainers(spec)
envoyLogLevel := "info"
if config.Debug {
envoyLogLevel = "debug"
}
spec.Spec.Containers = append(spec.Spec.Containers, v1.Container{
Name: config.ContainerSidecarVPN,
Image: config.Image,
@@ -137,7 +134,7 @@ kubevpn serve -L "tun:/localhost:8422?net=${TunIPv4}&route=${CIDR4}" -F "tcp://$
Command: []string{
"envoy",
"-l",
envoyLogLevel,
util.If(config.Debug, log.DebugLevel, log.InfoLevel).String(),
"--base-id",
"1",
"--service-node",
@@ -172,10 +169,6 @@ func AddEnvoyContainer(spec *v1.PodTemplateSpec, nodeId string, ipv6 bool) {
// remove envoy proxy containers if already exist
RemoveContainers(spec)
envoyLogLevel := "info"
if config.Debug {
envoyLogLevel = "debug"
}
spec.Spec.Containers = append(spec.Spec.Containers, v1.Container{
Name: config.ContainerSidecarVPN,
Image: config.Image,
@@ -205,7 +198,7 @@ kubevpn serve -L "ssh://:2222"`,
Command: []string{
"envoy",
"-l",
envoyLogLevel,
util.If(config.Debug, log.DebugLevel, log.InfoLevel).String(),
"--base-id",
"1",
"--service-node",

View File

@@ -7,7 +7,6 @@ import (
"strings"
"time"
log "github.com/sirupsen/logrus"
v1 "k8s.io/api/core/v1"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/apimachinery/pkg/apis/meta/v1/unstructured"
@@ -23,6 +22,7 @@ import (
"github.com/wencaiwulue/kubevpn/v2/pkg/config"
"github.com/wencaiwulue/kubevpn/v2/pkg/controlplane"
plog "github.com/wencaiwulue/kubevpn/v2/pkg/log"
"github.com/wencaiwulue/kubevpn/v2/pkg/util"
)
@@ -50,7 +50,7 @@ func InjectEnvoySidecar(ctx context.Context, f cmdutil.Factory, clientset *kuber
}
err = addEnvoyConfig(clientset.CoreV1().ConfigMaps(namespace), nodeID, c, headers, port, portmap)
if err != nil {
log.Errorf("Failed to add envoy config: %v", err)
plog.G(ctx).Errorf("Failed to add envoy config: %v", err)
return err
}
@@ -60,7 +60,7 @@ func InjectEnvoySidecar(ctx context.Context, f cmdutil.Factory, clientset *kuber
containerNames.Insert(container.Name)
}
if containerNames.HasAll(config.ContainerSidecarVPN, config.ContainerSidecarEnvoyProxy) {
log.Infof("Workload %s/%s has already been injected with sidecar", namespace, workload)
plog.G(ctx).Infof("Workload %s/%s has already been injected with sidecar", namespace, workload)
return
}
@@ -82,10 +82,10 @@ func InjectEnvoySidecar(ctx context.Context, f cmdutil.Factory, clientset *kuber
}
_, err = helper.Patch(object.Namespace, object.Name, types.JSONPatchType, bytes, &metav1.PatchOptions{})
if err != nil {
log.Errorf("Failed to patch resource: %s %s, err: %v", object.Mapping.Resource.Resource, object.Name, err)
plog.G(ctx).Errorf("Failed to patch resource: %s %s, err: %v", object.Mapping.Resource.Resource, object.Name, err)
return err
}
log.Infof("Patching workload %s", workload)
plog.G(ctx).Infof("Patching workload %s", workload)
err = util.RolloutStatus(ctx, f, namespace, workload, time.Minute*60)
if err != nil {
return err

View File

@@ -9,7 +9,6 @@ import (
"time"
"github.com/pkg/errors"
log "github.com/sirupsen/logrus"
v1 "k8s.io/api/core/v1"
k8serrors "k8s.io/apimachinery/pkg/api/errors"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
@@ -25,6 +24,7 @@ import (
"github.com/wencaiwulue/kubevpn/v2/pkg/config"
"github.com/wencaiwulue/kubevpn/v2/pkg/controlplane"
plog "github.com/wencaiwulue/kubevpn/v2/pkg/log"
"github.com/wencaiwulue/kubevpn/v2/pkg/util"
)
@@ -74,7 +74,7 @@ func InjectVPNAndEnvoySidecar(ctx context.Context, f cmdutil.Factory, clientset
err = addEnvoyConfig(clientset, nodeID, c, headers, ports, portmap)
if err != nil {
log.Errorf("Failed to add envoy config: %v", err)
plog.G(ctx).Errorf("Failed to add envoy config: %v", err)
return err
}
@@ -84,7 +84,7 @@ func InjectVPNAndEnvoySidecar(ctx context.Context, f cmdutil.Factory, clientset
containerNames.Insert(container.Name)
}
if containerNames.HasAll(config.ContainerSidecarVPN, config.ContainerSidecarEnvoyProxy) {
log.Infof("Workload %s/%s has already been injected with sidecar", namespace, workload)
plog.G(ctx).Infof("Workload %s/%s has already been injected with sidecar", namespace, workload)
return nil
}
@@ -106,19 +106,19 @@ func InjectVPNAndEnvoySidecar(ctx context.Context, f cmdutil.Factory, clientset
}
_, err = helper.Patch(object.Namespace, object.Name, types.JSONPatchType, bytes, &metav1.PatchOptions{})
if err != nil {
log.Errorf("Failed to patch resource: %s %s, err: %v", object.Mapping.Resource.Resource, object.Name, err)
plog.G(ctx).Errorf("Failed to patch resource: %s %s, err: %v", object.Mapping.Resource.Resource, object.Name, err)
return err
}
log.Infof("Patching workload %s", workload)
plog.G(ctx).Infof("Patching workload %s", workload)
err = util.RolloutStatus(ctx, f, namespace, workload, time.Minute*60)
return err
}
func UnPatchContainer(factory cmdutil.Factory, mapInterface v12.ConfigMapInterface, object *runtimeresource.Info, isMeFunc func(isFargateMode bool, rule *controlplane.Rule) bool) (bool, error) {
func UnPatchContainer(ctx context.Context, factory cmdutil.Factory, mapInterface v12.ConfigMapInterface, object *runtimeresource.Info, isMeFunc func(isFargateMode bool, rule *controlplane.Rule) bool) (bool, error) {
u := object.Object.(*unstructured.Unstructured)
templateSpec, depth, err := util.GetPodTemplateSpecPath(u)
if err != nil {
log.Errorf("Failed to get template spec path: %v", err)
plog.G(ctx).Errorf("Failed to get template spec path: %v", err)
return false, err
}
@@ -127,15 +127,15 @@ func UnPatchContainer(factory cmdutil.Factory, mapInterface v12.ConfigMapInterfa
var empty, found bool
empty, found, err = removeEnvoyConfig(mapInterface, nodeID, isMeFunc)
if err != nil {
log.Errorf("Failed to remove envoy config: %v", err)
plog.G(ctx).Errorf("Failed to remove envoy config: %v", err)
return false, err
}
if !found {
log.Infof("Not found proxy resource %s", workload)
plog.G(ctx).Infof("Not found proxy resource %s", workload)
return false, nil
}
log.Infof("Leaving workload %s", workload)
plog.G(ctx).Infof("Leaving workload %s", workload)
RemoveContainers(templateSpec)
@@ -143,14 +143,14 @@ func UnPatchContainer(factory cmdutil.Factory, mapInterface v12.ConfigMapInterfa
helper := pkgresource.NewHelper(object.Client, object.Mapping)
// pod without controller
if len(depth) == 0 {
log.Debugf("Workload %s is not under controller management", workload)
plog.G(ctx).Debugf("Workload %s is not under controller management", workload)
pod := &v1.Pod{ObjectMeta: templateSpec.ObjectMeta, Spec: templateSpec.Spec}
CleanupUselessInfo(pod)
err = CreateAfterDeletePod(factory, pod, helper)
err = CreateAfterDeletePod(ctx, factory, pod, helper)
return empty, err
}
log.Debugf("The %s is under controller management", workload)
plog.G(ctx).Debugf("The %s is under controller management", workload)
// resource with controller, like deployment,statefulset
var bytes []byte
bytes, err = json.Marshal([]P{
@@ -161,12 +161,12 @@ func UnPatchContainer(factory cmdutil.Factory, mapInterface v12.ConfigMapInterfa
},
})
if err != nil {
log.Errorf("Failed to generate json patch: %v", err)
plog.G(ctx).Errorf("Failed to generate json patch: %v", err)
return empty, err
}
_, err = helper.Patch(object.Namespace, object.Name, types.JSONPatchType, bytes, &metav1.PatchOptions{})
if err != nil {
log.Errorf("Failed to patch resource: %s %s: %v", object.Mapping.Resource.Resource, object.Name, err)
plog.G(ctx).Errorf("Failed to patch resource: %s %s: %v", object.Mapping.Resource.Resource, object.Name, err)
return empty, err
}
}

View File

@@ -8,7 +8,6 @@ import (
"strings"
"time"
log "github.com/sirupsen/logrus"
"k8s.io/api/core/v1"
"k8s.io/apimachinery/pkg/api/errors"
v12 "k8s.io/apimachinery/pkg/apis/meta/v1"
@@ -21,6 +20,7 @@ import (
"k8s.io/utils/pointer"
"github.com/wencaiwulue/kubevpn/v2/pkg/controlplane"
plog "github.com/wencaiwulue/kubevpn/v2/pkg/log"
util2 "github.com/wencaiwulue/kubevpn/v2/pkg/util"
)
@@ -47,7 +47,7 @@ func InjectVPNSidecar(ctx context.Context, f util.Factory, namespace, workload s
}
err = addEnvoyConfig(clientset.CoreV1().ConfigMaps(namespace), nodeID, c, nil, controlplane.ConvertContainerPort(ports...), portmap)
if err != nil {
log.Errorf("Failed to add envoy config: %v", err)
plog.G(ctx).Errorf("Failed to add envoy config: %v", err)
return err
}
@@ -56,16 +56,16 @@ func InjectVPNSidecar(ctx context.Context, f util.Factory, namespace, workload s
helper := resource.NewHelper(object.Client, object.Mapping)
// pods without controller
if len(path) == 0 {
log.Infof("Workload %s/%s is not controlled by any controller", namespace, workload)
plog.G(ctx).Infof("Workload %s/%s is not controlled by any controller", namespace, workload)
p := &v1.Pod{ObjectMeta: podTempSpec.ObjectMeta, Spec: podTempSpec.Spec}
CleanupUselessInfo(p)
if err = CreateAfterDeletePod(f, p, helper); err != nil {
if err = CreateAfterDeletePod(ctx, f, p, helper); err != nil {
return err
}
} else
// controllers
{
log.Debugf("The %s is under controller management", workload)
plog.G(ctx).Debugf("The %s is under controller management", workload)
p := []P{
{
Op: "replace",
@@ -76,7 +76,7 @@ func InjectVPNSidecar(ctx context.Context, f util.Factory, namespace, workload s
marshal, _ := json.Marshal(append(p))
_, err = helper.Patch(object.Namespace, object.Name, types.JSONPatchType, marshal, &v12.PatchOptions{})
if err != nil {
log.Errorf("Failed to inject proxy container: %v, exiting...", err)
plog.G(ctx).Errorf("Failed to inject proxy container: %v, exiting...", err)
return err
}
}
@@ -84,12 +84,12 @@ func InjectVPNSidecar(ctx context.Context, f util.Factory, namespace, workload s
return err
}
func CreateAfterDeletePod(factory util.Factory, p *v1.Pod, helper *resource.Helper) error {
func CreateAfterDeletePod(ctx context.Context, factory util.Factory, p *v1.Pod, helper *resource.Helper) error {
_, err := helper.DeleteWithOptions(p.Namespace, p.Name, &v12.DeleteOptions{
GracePeriodSeconds: pointer.Int64(0),
})
if err != nil {
log.Errorf("Failed to delete resource: %s %s, ignore, err: %v", p.Namespace, p.Name, err)
plog.G(ctx).Errorf("Failed to delete resource: %s %s, ignore, err: %v", p.Namespace, p.Name, err)
}
err = retry.OnError(wait.Backoff{
Steps: 10,
@@ -116,7 +116,7 @@ func CreateAfterDeletePod(factory util.Factory, p *v1.Pod, helper *resource.Help
if errors.IsAlreadyExists(err) {
return nil
}
log.Errorf("Failed to create resource: %s %s, err: %v", p.Namespace, p.Name, err)
plog.G(ctx).Errorf("Failed to create resource: %s %s, err: %v", p.Namespace, p.Name, err)
return err
}
return nil