You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The adapter will be an HTTP server and/or Kafka consumer running in a pod inside a k8s cluster, configured in noobaa as "bucketNotifications" connection (either as HTTP notifications, or Kafka notifications)
5
-
It will distribute the notifications received from NooBaa to individual triggers, according to the configuration specified by OBCSource custom resources.
5
+
It will distribute the notifications received from NooBaa to individual triggers, according to the configuration specified by ObjectBucketSource custom resources.
6
6
The notifications to individual triggers will be sent as cloudevents via HTTP or Kafka
7
7
It will be implemented in go, using k8s client libraries, the cloudevents k8s libraries, aws s3 client library, https://github.com/IBM/sarama, and the operator sdk (https://sdk.operatorframework.io)
Copy file name to clipboardExpand all lines: README.md
+11-11Lines changed: 11 additions & 11 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,10 +1,10 @@
1
-
# MCG Adapter
1
+
# ObjectBucket Notifications Adapter
2
2
3
3
A Kubernetes operator that receives S3 bucket notifications from NooBaa (Multicloud Object Gateway) and dispatches them as CloudEvents to configured sink endpoints.
4
4
5
5
## Description
6
6
7
-
The MCG Adapter runs inside a Kubernetes cluster, registered as a `bucketNotifications` connection in NooBaa. It can receive notifications via HTTP (default) or by consuming from a Kafka topic. It watches `ObjectBucketSource` custom resources to determine which S3 events from which buckets should be forwarded to which endpoints. When NooBaa delivers a notification, the adapter matches the event against all configured sources and dispatches CloudEvents via HTTP or Kafka to the matching sinks.
7
+
The ObjectBucket Notifications Adapter runs inside a Kubernetes cluster, registered as a `bucketNotifications` connection in NooBaa. It can receive notifications via HTTP (default) or by consuming from a Kafka topic. It watches `ObjectBucketSource` custom resources to determine which S3 events from which buckets should be forwarded to which endpoints. When NooBaa delivers a notification, the adapter matches the event against all configured sources and dispatches CloudEvents via HTTP or Kafka to the matching sinks.
8
8
9
9
## Custom Resource: ObjectBucketSource
10
10
@@ -50,8 +50,8 @@ The adapter is configured via environment variables:
50
50
51
51
| Variable | Default | Description |
52
52
|---|---|---|
53
-
| `ADAPTER_ID` | `mcg-adapter` | Identifier used in the S3 bucket notification configuration |
54
-
| `ADAPTER_TOPIC` | `mcg-adapter-connection/connect.json` | NooBaa connection secret reference used as TopicArn in put-bucket-notification calls |
53
+
| `ADAPTER_ID` | `objectbucket-notifications-adapter` | Identifier used in the S3 bucket notification configuration |
54
+
| `ADAPTER_TOPIC` | `objectbucket-notifications-adapter-connection/connect.json` | NooBaa connection secret reference used as TopicArn in put-bucket-notification calls |
55
55
| `ADAPTER_PORT` | `8888` | Port the notification HTTP server listens on (HTTP mode only) |
56
56
| `NOTIFICATIONS_MODE` | `http` | `http` or `kafka` — selects how the adapter receives NooBaa notifications |
57
57
| `KAFKA_BROKERS` | _(none)_ | Comma-separated list of Kafka broker addresses. Required for Kafka sinks and when `NOTIFICATIONS_MODE=kafka`. |
@@ -66,10 +66,10 @@ Before the adapter can receive notifications via HTTP, register it as an HTTP co
@@ -105,23 +105,23 @@ As an alternative to HTTP, the adapter can consume NooBaa notifications from a K
105
105
106
106
Summary of the one-time setup:
107
107
108
-
1. Create a `KafkaTopic` (e.g. `mcg-adapter-notifications`) and `KafkaUser` resources in Strimzi
108
+
1. Create a `KafkaTopic` (e.g. `objectbucket-notifications-adapter-notifications`) and `KafkaUser` resources in Strimzi
109
109
2. Create a NooBaa connection secret with `notification_protocol: kafka` pointing to the Kafka bootstrap and topic
110
110
3. Patch the NooBaa CR to register the Kafka connection
111
111
4. Create a Kubernetes Secret in the adapter's namespace with the adapter's Kafka credentials (see `kafka-secret-format.md`)
112
112
113
113
### Deploy
114
114
115
115
```sh
116
-
make docker-build docker-push IMG=<some-registry>/mcg-adapter:tag
116
+
make docker-build docker-push IMG=<some-registry>/objectbucket-notifications-adapter:tag
117
117
make install
118
-
make deploy IMG=<some-registry>/mcg-adapter:tag
118
+
make deploy IMG=<some-registry>/objectbucket-notifications-adapter:tag
119
119
```
120
120
121
121
To deploy in Kafka notifications mode (using default values from the PLAN):
122
122
123
123
```sh
124
-
make deploy-kafka IMG=<some-registry>/mcg-adapter:tag
124
+
make deploy-kafka IMG=<some-registry>/objectbucket-notifications-adapter:tag
125
125
```
126
126
127
127
The `deploy-kafka` target uses the kustomize overlay in `config/kafka/` which sets `NOTIFICATIONS_MODE=kafka` along with default Kafka broker, topic, and secret values. Edit `config/kafka/kafka_env_patch.yaml` to customize these for your cluster.
0 commit comments