mirror of
https://github.com/kubenetworks/kubevpn.git
synced 2025-12-24 11:51:13 +08:00
refactor: divide log to session and backend (#487)
* refactor: divide log to session and backend
This commit is contained in:
@@ -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",
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user