Skip to content

Commit 224b12a

Browse files
stefanprodanhiddeco
authored andcommitted
Refactor notifiers to use Event API v1beta1
Signed-off-by: Hidde Beydals <hello@hidde.co>
1 parent afdb3a2 commit 224b12a

48 files changed

Lines changed: 215 additions & 219 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

controllers/event_handling_test.go

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -21,9 +21,9 @@ import (
2121
"sigs.k8s.io/controller-runtime/pkg/client"
2222
logf "sigs.k8s.io/controller-runtime/pkg/log"
2323

24+
eventv1 "github.com/fluxcd/pkg/apis/event/v1beta1"
2425
"github.com/fluxcd/pkg/apis/meta"
2526
"github.com/fluxcd/pkg/runtime/conditions"
26-
"github.com/fluxcd/pkg/runtime/events"
2727

2828
notifyv1 "github.com/fluxcd/notification-controller/api/v1beta1"
2929
"github.com/fluxcd/notification-controller/internal/server"
@@ -154,7 +154,7 @@ func TestEventHandler(t *testing.T) {
154154
return conditions.IsReady(&obj)
155155
}, 30*time.Second, time.Second).Should(BeTrue())
156156

157-
event := events.Event{
157+
event := eventv1.Event{
158158
InvolvedObject: corev1.ObjectReference{
159159
Kind: "Bucket",
160160
Name: "hyacinth",
@@ -194,49 +194,49 @@ func TestEventHandler(t *testing.T) {
194194

195195
tests := []struct {
196196
name string
197-
modifyEventFunc func(e events.Event) events.Event
197+
modifyEventFunc func(e eventv1.Event) eventv1.Event
198198
forwarded bool
199199
}{
200200
{
201201
name: "forwards when source is a match",
202-
modifyEventFunc: func(e events.Event) events.Event { return e },
202+
modifyEventFunc: func(e eventv1.Event) eventv1.Event { return e },
203203
forwarded: true,
204204
},
205205
{
206206
name: "drops event when source Kind does not match",
207-
modifyEventFunc: func(e events.Event) events.Event {
207+
modifyEventFunc: func(e eventv1.Event) eventv1.Event {
208208
e.InvolvedObject.Kind = "GitRepository"
209209
return e
210210
},
211211
forwarded: false,
212212
},
213213
{
214214
name: "drops event when source name does not match",
215-
modifyEventFunc: func(e events.Event) events.Event {
215+
modifyEventFunc: func(e eventv1.Event) eventv1.Event {
216216
e.InvolvedObject.Name = "slop"
217217
return e
218218
},
219219
forwarded: false,
220220
},
221221
{
222222
name: "drops event when source namespace does not match",
223-
modifyEventFunc: func(e events.Event) events.Event {
223+
modifyEventFunc: func(e eventv1.Event) eventv1.Event {
224224
e.InvolvedObject.Namespace = "all-buckets"
225225
return e
226226
},
227227
forwarded: false,
228228
},
229229
{
230230
name: "drops event that is matched by exclusion",
231-
modifyEventFunc: func(e events.Event) events.Event {
231+
modifyEventFunc: func(e eventv1.Event) eventv1.Event {
232232
e.Message = "this is excluded"
233233
return e
234234
},
235235
forwarded: false,
236236
},
237237
{
238238
name: "forwards events when name wildcard is used",
239-
modifyEventFunc: func(e events.Event) events.Event {
239+
modifyEventFunc: func(e eventv1.Event) eventv1.Event {
240240
e.InvolvedObject.Kind = "Kustomization"
241241
e.InvolvedObject.Name = "test"
242242
e.InvolvedObject.Namespace = namespace
@@ -247,7 +247,7 @@ func TestEventHandler(t *testing.T) {
247247
},
248248
{
249249
name: "forwards events when the label matches",
250-
modifyEventFunc: func(e events.Event) events.Event {
250+
modifyEventFunc: func(e eventv1.Event) eventv1.Event {
251251
e.InvolvedObject.Kind = "GitRepository"
252252
e.InvolvedObject.Name = "podinfo"
253253
e.InvolvedObject.APIVersion = "source.toolkit.fluxcd.io/v1beta1"
@@ -259,7 +259,7 @@ func TestEventHandler(t *testing.T) {
259259
},
260260
{
261261
name: "drops events when the labels don't match",
262-
modifyEventFunc: func(e events.Event) events.Event {
262+
modifyEventFunc: func(e eventv1.Event) eventv1.Event {
263263
e.InvolvedObject.Kind = "GitRepository"
264264
e.InvolvedObject.Name = "podinfo-two"
265265
e.InvolvedObject.APIVersion = "source.toolkit.fluxcd.io/v1beta1"
@@ -271,7 +271,7 @@ func TestEventHandler(t *testing.T) {
271271
},
272272
{
273273
name: "drops events for cross-namespace sources",
274-
modifyEventFunc: func(e events.Event) events.Event {
274+
modifyEventFunc: func(e eventv1.Event) eventv1.Event {
275275
e.InvolvedObject.Kind = "Kustomization"
276276
e.InvolvedObject.Name = "test"
277277
e.InvolvedObject.Namespace = "test"

go.mod

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ require (
1010
github.com/Azure/azure-event-hubs-go/v3 v3.3.20
1111
github.com/containrrr/shoutrrr v0.6.1
1212
github.com/fluxcd/notification-controller/api v0.28.0
13+
github.com/fluxcd/pkg/apis/event v0.2.0
1314
github.com/fluxcd/pkg/apis/meta v0.18.0
1415
github.com/fluxcd/pkg/masktoken v0.2.0
1516
github.com/fluxcd/pkg/runtime v0.24.0
@@ -79,7 +80,6 @@ require (
7980
github.com/exponent-io/jsonpath v0.0.0-20210407135951-1de76d718b3f // indirect
8081
github.com/fatih/color v1.13.0 // indirect
8182
github.com/fluxcd/pkg/apis/acl v0.1.0 // indirect
82-
github.com/fluxcd/pkg/apis/event v0.2.0 // indirect
8383
github.com/fsnotify/fsnotify v1.6.0 // indirect
8484
github.com/go-errors/errors v1.4.2 // indirect
8585
github.com/go-logr/zapr v1.2.3 // indirect

internal/notifier/alertmanager.go

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ import (
2323
"net/url"
2424
"strings"
2525

26-
"github.com/fluxcd/pkg/runtime/events"
26+
eventv1 "github.com/fluxcd/pkg/apis/event/v1beta1"
2727
)
2828

2929
type Alertmanager struct {
@@ -51,9 +51,9 @@ func NewAlertmanager(hookURL string, proxyURL string, certPool *x509.CertPool) (
5151
}, nil
5252
}
5353

54-
func (s *Alertmanager) Post(ctx context.Context, event events.Event) error {
55-
// Skip any update events
56-
if isCommitStatus(event.Metadata, "update") {
54+
func (s *Alertmanager) Post(ctx context.Context, event eventv1.Event) error {
55+
// Skip Git commit status update event.
56+
if event.HasMetadata(eventv1.MetaCommitStatusKey, eventv1.MetaCommitStatusUpdateValue) {
5757
return nil
5858
}
5959

internal/notifier/alertmanager_test.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ import (
2626
"net/http/httptest"
2727
"testing"
2828

29-
"github.com/fluxcd/pkg/runtime/events"
29+
eventv1 "github.com/fluxcd/pkg/apis/event/v1beta1"
3030
"github.com/stretchr/testify/require"
3131

3232
fuzz "github.com/AdaLogics/go-fuzz-headers"
@@ -72,7 +72,7 @@ func Fuzz_AlertManager(f *testing.F) {
7272
return
7373
}
7474

75-
event := events.Event{}
75+
event := eventv1.Event{}
7676

7777
// Try to fuzz the event object, but if it fails (not enough seed),
7878
// ignore it, as other inputs are also being used in this test.

internal/notifier/azure_devops.go

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -24,10 +24,11 @@ import (
2424
"fmt"
2525
"strings"
2626

27-
"github.com/fluxcd/pkg/runtime/events"
28-
2927
"github.com/microsoft/azure-devops-go-api/azuredevops/v6"
3028
"github.com/microsoft/azure-devops-go-api/azuredevops/v6/git"
29+
30+
eventv1 "github.com/fluxcd/pkg/apis/event/v1beta1"
31+
"github.com/fluxcd/pkg/apis/meta"
3132
)
3233

3334
const genre string = "fluxcd"
@@ -77,13 +78,13 @@ func NewAzureDevOps(addr string, token string, certPool *x509.CertPool) (*AzureD
7778
}
7879

7980
// Post Azure DevOps commit status
80-
func (a AzureDevOps) Post(ctx context.Context, event events.Event) error {
81+
func (a AzureDevOps) Post(ctx context.Context, event eventv1.Event) error {
8182
// Skip progressing events
82-
if event.Reason == "Progressing" {
83+
if event.HasReason(meta.ProgressingReason) {
8384
return nil
8485
}
8586

86-
revString, ok := event.Metadata["revision"]
87+
revString, ok := event.Metadata[eventv1.MetaRevisionKey]
8788
if !ok {
8889
return errors.New("missing revision metadata")
8990
}
@@ -135,9 +136,9 @@ func (a AzureDevOps) Post(ctx context.Context, event events.Event) error {
135136

136137
func toAzureDevOpsState(severity string) (git.GitStatusState, error) {
137138
switch severity {
138-
case events.EventSeverityInfo:
139+
case eventv1.EventSeverityInfo:
139140
return git.GitStatusStateValues.Succeeded, nil
140-
case events.EventSeverityError:
141+
case eventv1.EventSeverityError:
141142
return git.GitStatusStateValues.Error, nil
142143
default:
143144
return "", errors.New("can't convert to azure devops state")

internal/notifier/azure_devops_test.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ import (
2626
"strings"
2727
"testing"
2828

29-
"github.com/fluxcd/pkg/runtime/events"
29+
eventv1 "github.com/fluxcd/pkg/apis/event/v1beta1"
3030
"github.com/microsoft/azure-devops-go-api/azuredevops/v6/git"
3131
"github.com/stretchr/testify/assert"
3232

@@ -100,7 +100,7 @@ func Fuzz_AzureDevOps(f *testing.F) {
100100
return
101101
}
102102

103-
event := events.Event{}
103+
event := eventv1.Event{}
104104

105105
// Try to fuzz the event object, but if it fails (not enough seed),
106106
// ignore it, as other inputs are also being used in this test.

internal/notifier/azure_eventhub.go

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ import (
2020

2121
"github.com/Azure/azure-amqp-common-go/v3/auth"
2222
eventhub "github.com/Azure/azure-event-hubs-go/v3"
23-
"github.com/fluxcd/pkg/runtime/events"
23+
eventv1 "github.com/fluxcd/pkg/apis/event/v1beta1"
2424
)
2525

2626
// AzureEventHub holds the eventhub client
@@ -52,9 +52,9 @@ func NewAzureEventHub(endpointURL, token, eventHubNamespace string) (*AzureEvent
5252
}
5353

5454
// Post all notification-controller messages to EventHub
55-
func (e *AzureEventHub) Post(ctx context.Context, event events.Event) error {
56-
// Skip any update events
57-
if isCommitStatus(event.Metadata, "update") {
55+
func (e *AzureEventHub) Post(ctx context.Context, event eventv1.Event) error {
56+
// Skip Git commit status update event.
57+
if event.HasMetadata(eventv1.MetaCommitStatusKey, eventv1.MetaCommitStatusUpdateValue) {
5858
return nil
5959
}
6060

internal/notifier/bitbucket.go

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -26,8 +26,10 @@ import (
2626
"net/http"
2727
"strings"
2828

29-
"github.com/fluxcd/pkg/runtime/events"
3029
"github.com/ktrysmt/go-bitbucket"
30+
31+
eventv1 "github.com/fluxcd/pkg/apis/event/v1beta1"
32+
"github.com/fluxcd/pkg/apis/meta"
3133
)
3234

3335
// Bitbucket is a Bitbucket Server notifier.
@@ -81,13 +83,13 @@ func NewBitbucket(addr string, token string, certPool *x509.CertPool) (*Bitbucke
8183
}
8284

8385
// Post Bitbucket commit status
84-
func (b Bitbucket) Post(ctx context.Context, event events.Event) error {
86+
func (b Bitbucket) Post(ctx context.Context, event eventv1.Event) error {
8587
// Skip progressing events
86-
if event.Reason == "Progressing" {
88+
if event.HasReason(meta.ProgressingReason) {
8789
return nil
8890
}
8991

90-
revString, ok := event.Metadata["revision"]
92+
revString, ok := event.Metadata[eventv1.MetaRevisionKey]
9193
if !ok {
9294
return errors.New("missing revision metadata")
9395
}
@@ -155,9 +157,9 @@ func duplicateBitbucketStatus(statuses interface{}, status *bitbucket.CommitStat
155157

156158
func toBitbucketState(severity string) (string, error) {
157159
switch severity {
158-
case events.EventSeverityInfo:
160+
case eventv1.EventSeverityInfo:
159161
return "SUCCESSFUL", nil
160-
case events.EventSeverityError:
162+
case eventv1.EventSeverityError:
161163
return "FAILED", nil
162164
default:
163165
return "", errors.New("can't convert to bitbucket state")

internal/notifier/bitbucket_test.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ import (
2727
"testing"
2828

2929
fuzz "github.com/AdaLogics/go-fuzz-headers"
30-
"github.com/fluxcd/pkg/runtime/events"
30+
eventv1 "github.com/fluxcd/pkg/apis/event/v1beta1"
3131
"github.com/stretchr/testify/assert"
3232
)
3333

@@ -77,7 +77,7 @@ func Fuzz_Bitbucket(f *testing.F) {
7777
// Ensure the call does not go to bitbucket and fuzzes the response.
7878
bitbucket.Client.SetApiBaseURL(*apiUrl)
7979

80-
event := events.Event{}
80+
event := eventv1.Event{}
8181

8282
// Try to fuzz the event object, but if it fails (not enough seed),
8383
// ignore it, as other inputs are also being used in this test.

internal/notifier/client_test.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ import (
2525
"net/http/httptest"
2626
"testing"
2727

28-
"github.com/fluxcd/pkg/runtime/events"
28+
eventv1 "github.com/fluxcd/pkg/apis/event/v1beta1"
2929
corev1 "k8s.io/api/core/v1"
3030
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
3131

@@ -69,8 +69,8 @@ func Test_postSelfSignedCert(t *testing.T) {
6969
require.NoError(t, err)
7070
}
7171

72-
func testEvent() events.Event {
73-
return events.Event{
72+
func testEvent() eventv1.Event {
73+
return eventv1.Event{
7474
InvolvedObject: corev1.ObjectReference{
7575
Kind: "GitRepository",
7676
Namespace: "gitops-system",

0 commit comments

Comments
 (0)