Skip to content

Commit 358f93a

Browse files
committed
Support structured logging: broadcaster & eventRecorder
1 parent ac362bb commit 358f93a

File tree

4 files changed

+30
-31
lines changed

4 files changed

+30
-31
lines changed

controller/controller.go

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -606,12 +606,13 @@ func (ctrl *ProvisionController) HasRun() bool {
606606
// NewProvisionController creates a new provision controller using
607607
// the given configuration parameters and with private (non-shared) informers.
608608
func NewProvisionController(
609-
logger klog.Logger,
609+
ctx context.Context,
610610
client kubernetes.Interface,
611611
provisionerName string,
612612
provisioner Provisioner,
613613
options ...func(*ProvisionController) error,
614614
) *ProvisionController {
615+
logger := klog.FromContext(ctx)
615616
id, err := os.Hostname()
616617
if err != nil {
617618
logger.Error(err, "Error getting hostname")
@@ -621,13 +622,11 @@ func NewProvisionController(
621622
id = id + "_" + string(uuid.NewUUID())
622623
component := provisionerName + "_" + id
623624

624-
// TODO: Once the following PR is merged, change to use StartLogging and StartRecordingToSinkWithContext
625-
// https://github.com/kubernetes/kubernetes/pull/120729
626625
v1.AddToScheme(scheme.Scheme)
627-
broadcaster := record.NewBroadcaster()
626+
broadcaster := record.NewBroadcaster(record.WithContext(ctx))
628627
broadcaster.StartStructuredLogging(0)
629628
broadcaster.StartRecordingToSink(&corev1.EventSinkImpl{Interface: client.CoreV1().Events(v1.NamespaceAll)})
630-
eventRecorder := broadcaster.NewRecorder(scheme.Scheme, v1.EventSource{Component: component})
629+
eventRecorder := broadcaster.NewRecorder(scheme.Scheme, v1.EventSource{Component: component}).WithLogger(logger)
631630

632631
controller := &ProvisionController{
633632
client: client,

controller/controller_test.go

Lines changed: 24 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -802,11 +802,11 @@ func TestController(t *testing.T) {
802802
if test.addFinalizer {
803803
provisionerOptions = append(provisionerOptions, AddFinalizer(true))
804804
}
805-
logger, _ := ktesting.NewTestContext(t)
805+
_, ctx := ktesting.NewTestContext(t)
806806
if test.additionalProvisionerNames == nil {
807-
ctrl = newTestProvisionController(logger, client, test.provisionerName, test.provisioner, provisionerOptions...)
807+
ctrl = newTestProvisionController(ctx, client, test.provisionerName, test.provisioner, provisionerOptions...)
808808
} else {
809-
ctrl = newTestProvisionControllerWithAdditionalNames(logger, client, test.provisionerName, test.provisioner, test.additionalProvisionerNames, provisionerOptions...)
809+
ctrl = newTestProvisionControllerWithAdditionalNames(ctx, client, test.provisionerName, test.provisioner, test.additionalProvisionerNames, provisionerOptions...)
810810
}
811811
for _, claim := range test.claimsInProgress {
812812
ctrl.claimsInProgress.Store(string(claim.UID), claim)
@@ -957,10 +957,10 @@ func TestTopologyParams(t *testing.T) {
957957
}
958958
for _, test := range tests {
959959
t.Run(test.name, func(t *testing.T) {
960-
logger, _ := ktesting.NewTestContext(t)
960+
_, ctx := ktesting.NewTestContext(t)
961961
client := fake.NewSimpleClientset(test.objs...)
962962
provisioner := newTestProvisioner()
963-
ctrl := newTestProvisionController(logger, client, "foo.bar/baz" /* provisionerName */, provisioner)
963+
ctrl := newTestProvisionController(ctx, client, "foo.bar/baz" /* provisionerName */, provisioner)
964964
// Run forever...
965965
go ctrl.Run(context.Background())
966966

@@ -1114,12 +1114,12 @@ func TestShouldProvision(t *testing.T) {
11141114
t.Run(test.name, func(t *testing.T) {
11151115
client := fake.NewSimpleClientset(test.claim)
11161116

1117-
logger, _ := ktesting.NewTestContext(t)
1117+
_, ctx := ktesting.NewTestContext(t)
11181118
var ctrl testProvisionController
11191119
if test.additionalProvisionerNames == nil {
1120-
ctrl = newTestProvisionController(logger, client, test.provisionerName, test.provisioner)
1120+
ctrl = newTestProvisionController(ctx, client, test.provisionerName, test.provisioner)
11211121
} else {
1122-
ctrl = newTestProvisionControllerWithAdditionalNames(logger, client, test.provisionerName, test.provisioner, test.additionalProvisionerNames)
1122+
ctrl = newTestProvisionControllerWithAdditionalNames(ctx, client, test.provisionerName, test.provisioner, test.additionalProvisionerNames)
11231123
}
11241124

11251125
if test.class != nil {
@@ -1195,10 +1195,10 @@ func TestShouldDelete(t *testing.T) {
11951195
}
11961196
for _, test := range tests {
11971197
t.Run(test.name, func(t *testing.T) {
1198-
logger, _ := ktesting.NewTestContext(t)
1198+
_, ctx := ktesting.NewTestContext(t)
11991199
client := fake.NewSimpleClientset()
12001200
provisioner := newTestProvisioner()
1201-
ctrl := newTestProvisionController(logger, client, test.provisionerName, provisioner)
1201+
ctrl := newTestProvisionController(ctx, client, test.provisionerName, provisioner)
12021202
test.volume.ObjectMeta.DeletionTimestamp = test.deletionTimestamp
12031203

12041204
should := ctrl.shouldDelete(context.Background(), test.volume)
@@ -1285,10 +1285,10 @@ func TestIsProvisionerForVolume(t *testing.T) {
12851285
}
12861286
for _, test := range tests {
12871287
t.Run(test.name, func(t *testing.T) {
1288-
logger, _ := ktesting.NewTestContext(t)
1288+
_, ctx := ktesting.NewTestContext(t)
12891289
client := fake.NewSimpleClientset()
12901290
provisioner := newTestProvisioner()
1291-
ctrl := newTestProvisionController(logger, client, test.provisionerName, provisioner)
1291+
ctrl := newTestProvisionController(ctx, client, test.provisionerName, provisioner)
12921292
should := ctrl.isProvisionerForVolume(context.Background(), test.volume)
12931293
if test.expectedShould != should {
12941294
t.Errorf("expected should delete %v but got %v\n", test.expectedShould, should)
@@ -1343,12 +1343,12 @@ func TestShouldDeleteWithFinalizer(t *testing.T) {
13431343
}
13441344
for _, test := range tests {
13451345
t.Run(test.name, func(t *testing.T) {
1346-
logger, _ := ktesting.NewTestContext(t)
1346+
_, ctx := ktesting.NewTestContext(t)
13471347
client := fake.NewSimpleClientset()
13481348
provisioner := newTestProvisioner()
13491349
provisionerOptions := make([]func(*ProvisionController) error, 0)
13501350
provisionerOptions = append(provisionerOptions, AddFinalizer(true))
1351-
ctrl := newTestProvisionController(logger, client, test.provisionerName, provisioner, provisionerOptions...)
1351+
ctrl := newTestProvisionController(ctx, client, test.provisionerName, provisioner, provisionerOptions...)
13521352
test.volume.ObjectMeta.DeletionTimestamp = test.deletionTimestamp
13531353

13541354
should := ctrl.shouldDelete(context.Background(), test.volume)
@@ -1539,9 +1539,9 @@ func TestCanProvision(t *testing.T) {
15391539
}
15401540
for _, test := range tests {
15411541
t.Run(test.name, func(t *testing.T) {
1542-
logger, _ := ktesting.NewTestContext(t)
1542+
_, ctx := ktesting.NewTestContext(t)
15431543
client := fake.NewSimpleClientset(test.claim)
1544-
ctrl := newTestProvisionController(logger, client, provisionerName, test.provisioner)
1544+
ctrl := newTestProvisionController(ctx, client, provisionerName, test.provisioner)
15451545

15461546
can := ctrl.canProvision(context.Background(), test.claim)
15471547
if !reflect.DeepEqual(test.expectedCan, can) {
@@ -1581,10 +1581,10 @@ func TestControllerSharedInformers(t *testing.T) {
15811581

15821582
for _, test := range tests {
15831583
t.Run(test.name, func(t *testing.T) {
1584-
logger, _ := ktesting.NewTestContext(t)
1584+
_, ctx := ktesting.NewTestContext(t)
15851585
client := fake.NewSimpleClientset(test.objs...)
15861586

1587-
ctrl, informersFactory := newTestProvisionControllerSharedInformers(logger, client, test.provisionerName,
1587+
ctrl, informersFactory := newTestProvisionControllerSharedInformers(ctx, client, test.provisionerName,
15881588
newTestProvisioner(), sharedResyncPeriod)
15891589
stopCh := make(chan struct{})
15901590
defer close(stopCh)
@@ -1665,7 +1665,7 @@ func getCounts(t *testing.T, vec *prometheus.CounterVec, cts *counts, success bo
16651665
}
16661666

16671667
func newTestProvisionController(
1668-
logger klog.Logger,
1668+
ctx context.Context,
16691669
client kubernetes.Interface,
16701670
provisionerName string,
16711671
provisioner Provisioner,
@@ -1684,7 +1684,7 @@ func newTestProvisionController(
16841684
provisionerOptions = append(provisionerOptions, options...)
16851685
}
16861686
ctrl := NewProvisionController(
1687-
logger,
1687+
ctx,
16881688
client,
16891689
provisionerName,
16901690
provisioner,
@@ -1696,7 +1696,7 @@ func newTestProvisionController(
16961696
}
16971697

16981698
func newTestProvisionControllerWithAdditionalNames(
1699-
logger klog.Logger,
1699+
ctx context.Context,
17001700
client kubernetes.Interface,
17011701
provisionerName string,
17021702
provisioner Provisioner,
@@ -1717,7 +1717,7 @@ func newTestProvisionControllerWithAdditionalNames(
17171717
provisionerOptions = append(provisionerOptions, options...)
17181718
}
17191719
ctrl := NewProvisionController(
1720-
logger,
1720+
ctx,
17211721
client,
17221722
provisionerName,
17231723
provisioner,
@@ -1729,7 +1729,7 @@ func newTestProvisionControllerWithAdditionalNames(
17291729
}
17301730

17311731
func newTestProvisionControllerSharedInformers(
1732-
klog klog.Logger,
1732+
ctx context.Context,
17331733
client kubernetes.Interface,
17341734
provisionerName string,
17351735
provisioner Provisioner,
@@ -1744,7 +1744,7 @@ func newTestProvisionControllerSharedInformers(
17441744
}()
17451745

17461746
ctrl := NewProvisionController(
1747-
klog,
1747+
ctx,
17481748
client,
17491749
provisionerName,
17501750
provisioner,

examples/hostpath-provisioner/hostpath-provisioner.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -137,7 +137,7 @@ func main() {
137137

138138
// Start the provision controller which will dynamically provision hostPath
139139
// PVs
140-
pc := controller.NewProvisionController(logger, clientset, provisionerName, hostPathProvisioner)
140+
pc := controller.NewProvisionController(ctx, clientset, provisionerName, hostPathProvisioner)
141141

142142
// Never stops.
143143
pc.Run(context.Background())

hack/verify-logcheck.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,4 +34,4 @@ trap 'rm -rf "${SIG_STORAGE_LIB_EXTERNAL_PROVISIONER_TEMP}"' EXIT
3434
echo "Installing logcheck to temp dir: sigs.k8s.io/logtools/logcheck@v${LOGCHECK_VERSION}"
3535
GOBIN="${SIG_STORAGE_LIB_EXTERNAL_PROVISIONER_TEMP}" go install "sigs.k8s.io/logtools/logcheck@v${LOGCHECK_VERSION}"
3636
echo "Verifing logcheck: ${SIG_STORAGE_LIB_EXTERNAL_PROVISIONER_TEMP}/logcheck -check-contextual ${SIG_STORAGE_LIB_EXTERNAL_PROVISIONER_ROOT}/..."
37-
"${SIG_STORAGE_LIB_EXTERNAL_PROVISIONER_TEMP}/logcheck" -check-contextual "${SIG_STORAGE_LIB_EXTERNAL_PROVISIONER_ROOT}/..."
37+
"${SIG_STORAGE_LIB_EXTERNAL_PROVISIONER_TEMP}/logcheck" -check-contextual -check-with-helpers "${SIG_STORAGE_LIB_EXTERNAL_PROVISIONER_ROOT}/..."

0 commit comments

Comments
 (0)