Merge pull request #113443 from yangjunmyfm192085/namespace-contextual-logging
namespace controller: use contextual logging
This commit is contained in:
@@ -17,11 +17,13 @@ limitations under the License.
|
||||
package services
|
||||
|
||||
import (
|
||||
"context"
|
||||
"os"
|
||||
"testing"
|
||||
|
||||
etcd3testing "k8s.io/apiserver/pkg/storage/etcd3/testing"
|
||||
"k8s.io/apiserver/pkg/storage/storagebackend"
|
||||
"k8s.io/klog/v2/ktesting"
|
||||
"k8s.io/kubernetes/test/e2e/framework"
|
||||
|
||||
"k8s.io/klog/v2"
|
||||
@@ -55,6 +57,7 @@ func (es *e2eServices) run(t *testing.T) error {
|
||||
|
||||
// start starts the tests embedded services or returns an error.
|
||||
func (es *e2eServices) start(t *testing.T) error {
|
||||
_, ctx := ktesting.NewTestContext(t)
|
||||
klog.Info("Starting e2e services...")
|
||||
err := es.startEtcd(t)
|
||||
if err != nil {
|
||||
@@ -64,7 +67,7 @@ func (es *e2eServices) start(t *testing.T) error {
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
err = es.startNamespaceController()
|
||||
err = es.startNamespaceController(ctx)
|
||||
if err != nil {
|
||||
return nil
|
||||
}
|
||||
@@ -124,10 +127,10 @@ func (es *e2eServices) startAPIServer(etcdStorage *storagebackend.Config) error
|
||||
}
|
||||
|
||||
// startNamespaceController starts the embedded namespace controller or returns an error.
|
||||
func (es *e2eServices) startNamespaceController() error {
|
||||
klog.Info("Starting namespace controller")
|
||||
func (es *e2eServices) startNamespaceController(ctx context.Context) error {
|
||||
klog.FromContext(ctx).Info("Starting namespace controller")
|
||||
es.nsController = NewNamespaceController(framework.TestContext.Host)
|
||||
return es.nsController.Start()
|
||||
return es.nsController.Start(ctx)
|
||||
}
|
||||
|
||||
// getServicesHealthCheckURLs returns the health check urls for the internal services.
|
||||
|
@@ -17,6 +17,7 @@ limitations under the License.
|
||||
package services
|
||||
|
||||
import (
|
||||
"context"
|
||||
"time"
|
||||
|
||||
v1 "k8s.io/api/core/v1"
|
||||
@@ -49,7 +50,7 @@ func NewNamespaceController(host string) *NamespaceController {
|
||||
}
|
||||
|
||||
// Start starts the namespace controller.
|
||||
func (n *NamespaceController) Start() error {
|
||||
func (n *NamespaceController) Start(ctx context.Context) error {
|
||||
config := restclient.AddUserAgent(&restclient.Config{
|
||||
Host: n.host,
|
||||
BearerToken: framework.TestContext.BearerToken,
|
||||
@@ -72,7 +73,9 @@ func (n *NamespaceController) Start() error {
|
||||
}
|
||||
discoverResourcesFn := client.Discovery().ServerPreferredNamespacedResources
|
||||
informerFactory := informers.NewSharedInformerFactory(client, ncResyncPeriod)
|
||||
|
||||
nc := namespacecontroller.NewNamespaceController(
|
||||
ctx,
|
||||
client,
|
||||
metadataClient,
|
||||
discoverResourcesFn,
|
||||
@@ -80,7 +83,7 @@ func (n *NamespaceController) Start() error {
|
||||
ncResyncPeriod, v1.FinalizerKubernetes,
|
||||
)
|
||||
informerFactory.Start(n.stopCh)
|
||||
go nc.Run(ncConcurrency, n.stopCh)
|
||||
go nc.Run(ctx, ncConcurrency)
|
||||
return nil
|
||||
}
|
||||
|
||||
|
@@ -35,6 +35,7 @@ import (
|
||||
clientset "k8s.io/client-go/kubernetes"
|
||||
"k8s.io/client-go/metadata"
|
||||
restclient "k8s.io/client-go/rest"
|
||||
"k8s.io/klog/v2/ktesting"
|
||||
kubeapiservertesting "k8s.io/kubernetes/cmd/kube-apiserver/app/testing"
|
||||
"k8s.io/kubernetes/pkg/controller/namespace"
|
||||
"k8s.io/kubernetes/test/integration/etcd"
|
||||
@@ -55,10 +56,12 @@ func TestNamespaceCondition(t *testing.T) {
|
||||
}
|
||||
|
||||
// Start informer and controllers
|
||||
stopCh := make(chan struct{})
|
||||
defer close(stopCh)
|
||||
informers.Start(stopCh)
|
||||
go nsController.Run(5, stopCh)
|
||||
_, ctx := ktesting.NewTestContext(t)
|
||||
ctx, cancel := context.WithCancel(ctx)
|
||||
defer cancel()
|
||||
|
||||
informers.Start(ctx.Done())
|
||||
go nsController.Run(ctx, 5)
|
||||
|
||||
data := etcd.GetEtcdStorageDataForNamespace(nsName)
|
||||
podJSON, err := jsonToUnstructured(data[corev1.SchemeGroupVersion.WithResource("pods")].Stub, "v1", "Pod")
|
||||
@@ -124,9 +127,10 @@ func TestNamespaceLabels(t *testing.T) {
|
||||
|
||||
// Even though nscontroller isn't used in this test, its creation is already
|
||||
// spawning some goroutines. So we need to run it to ensure they won't leak.
|
||||
stopCh := make(chan struct{})
|
||||
close(stopCh)
|
||||
go nsController.Run(5, stopCh)
|
||||
_, ctx := ktesting.NewTestContext(t)
|
||||
ctx, cancel := context.WithCancel(ctx)
|
||||
defer cancel()
|
||||
go nsController.Run(ctx, 5)
|
||||
|
||||
nsName := "test-namespace-labels-generated"
|
||||
// Create a new namespace w/ no name
|
||||
@@ -192,8 +196,9 @@ func namespaceLifecycleSetup(t *testing.T) (kubeapiservertesting.TearDownFunc, *
|
||||
}
|
||||
|
||||
discoverResourcesFn := clientSet.Discovery().ServerPreferredNamespacedResources
|
||||
|
||||
_, ctx := ktesting.NewTestContext(t)
|
||||
controller := namespace.NewNamespaceController(
|
||||
ctx,
|
||||
clientSet,
|
||||
metadataClient,
|
||||
discoverResourcesFn,
|
||||
|
Reference in New Issue
Block a user