remove wal type and distinguish source between nakadi and sqs
This commit is contained in:
parent
2726492fd3
commit
7a84c0852c
|
|
@ -499,7 +499,6 @@ spec:
|
|||
enum:
|
||||
- "nakadi"
|
||||
- "sqs"
|
||||
- "wal"
|
||||
teamId:
|
||||
type: string
|
||||
tls:
|
||||
|
|
|
|||
|
|
@ -189,3 +189,19 @@ spec:
|
|||
# operator: In
|
||||
# values:
|
||||
# - enabled
|
||||
|
||||
# Enables change data capture streams for defined database tables
|
||||
# streams:
|
||||
# - type: nakadi
|
||||
# batchSize: 100
|
||||
# database: foo
|
||||
# tables:
|
||||
# ta: event_type_a
|
||||
# tb: event_type_b
|
||||
# - type: sqs
|
||||
# database: foo
|
||||
# tables:
|
||||
# ta: ""
|
||||
# tb: ""
|
||||
# sqsArn: arn:aws:sqs:eu-central-1:111122223333
|
||||
# queueName: foo-queue
|
||||
|
|
|
|||
|
|
@ -495,7 +495,6 @@ spec:
|
|||
enum:
|
||||
- "nakadi"
|
||||
- "sqs"
|
||||
- "wal"
|
||||
teamId:
|
||||
type: string
|
||||
tls:
|
||||
|
|
|
|||
|
|
@ -701,9 +701,6 @@ var PostgresCRDResourceValidation = apiextv1.CustomResourceValidation{
|
|||
{
|
||||
Raw: []byte(`"sqs"`),
|
||||
},
|
||||
{
|
||||
Raw: []byte(`"wal"`),
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
|
|
|
|||
|
|
@ -69,7 +69,7 @@ type EventStreamSource struct {
|
|||
// EventStreamTable defines the name and ID column to be used for streaming
|
||||
type EventStreamTable struct {
|
||||
Name string `json:"name"`
|
||||
IDColumn string `json:"idColumn,omitempty" defaults:"id"`
|
||||
IDColumn string `json:"idColumn,omitempty"`
|
||||
}
|
||||
|
||||
// Connection to be used for allowing the FES operator to connect to a database
|
||||
|
|
|
|||
|
|
@ -131,15 +131,26 @@ func (c *Cluster) generateFabricEventStream() *zalandov1alpha1.FabricEventStream
|
|||
}
|
||||
|
||||
func (c *Cluster) getEventStreamSource(stream acidv1.Stream, table, eventType string) zalandov1alpha1.EventStreamSource {
|
||||
streamFilter := stream.Filter[table]
|
||||
_, schema := getTableSchema(table)
|
||||
return zalandov1alpha1.EventStreamSource{
|
||||
Type: constants.EventStreamSourcePGType,
|
||||
Schema: schema,
|
||||
EventStreamTable: getOutboxTable(table, eventType),
|
||||
Filter: streamFilter,
|
||||
Connection: c.getStreamConnection(stream.Database, constants.EventStreamSourceSlotPrefix+constants.UserRoleNameSuffix),
|
||||
switch stream.StreamType {
|
||||
case "nakadi":
|
||||
streamFilter := stream.Filter[table]
|
||||
return zalandov1alpha1.EventStreamSource{
|
||||
Type: constants.EventStreamSourcePGType,
|
||||
Schema: schema,
|
||||
EventStreamTable: getOutboxTable(table, eventType),
|
||||
Filter: streamFilter,
|
||||
Connection: c.getStreamConnection(stream.Database, constants.EventStreamSourceSlotPrefix+constants.UserRoleNameSuffix),
|
||||
}
|
||||
case "sqs":
|
||||
return zalandov1alpha1.EventStreamSource{
|
||||
Type: constants.EventStreamSourcePGType,
|
||||
EventStreamTable: getSqsTable(table),
|
||||
Connection: c.getStreamConnection(stream.Database, constants.EventStreamSourceSlotPrefix+constants.UserRoleNameSuffix),
|
||||
}
|
||||
}
|
||||
|
||||
return zalandov1alpha1.EventStreamSource{}
|
||||
}
|
||||
|
||||
func getEventStreamFlow(stream acidv1.Stream) zalandov1alpha1.EventStreamFlow {
|
||||
|
|
@ -195,6 +206,12 @@ func getOutboxTable(tableName, eventType string) zalandov1alpha1.EventStreamTabl
|
|||
}
|
||||
}
|
||||
|
||||
func getSqsTable(tableName string) zalandov1alpha1.EventStreamTable {
|
||||
return zalandov1alpha1.EventStreamTable{
|
||||
Name: outboxTableNameTemplate.Format("table", tableName),
|
||||
}
|
||||
}
|
||||
|
||||
func (c *Cluster) getStreamConnection(database, user string) zalandov1alpha1.Connection {
|
||||
return zalandov1alpha1.Connection{
|
||||
Url: fmt.Sprintf("jdbc:postgresql://%s.%s/%s?user=%s&ssl=true&sslmode=require", c.Name, c.Namespace, database, user),
|
||||
|
|
|
|||
|
|
@ -55,18 +55,13 @@ var (
|
|||
BatchSize: uint32(100),
|
||||
},
|
||||
{
|
||||
StreamType: "wal",
|
||||
StreamType: "sqs",
|
||||
Database: "foo",
|
||||
Tables: map[string]string{
|
||||
"bar": "stream_type_a",
|
||||
},
|
||||
BatchSize: uint32(100),
|
||||
},
|
||||
{
|
||||
StreamType: "sqs",
|
||||
Database: "foo",
|
||||
SqsArn: "arn:aws:sqs:eu-central-1:111122223333",
|
||||
QueueName: "foo-queue",
|
||||
SqsArn: "arn:aws:sqs:eu-central-1:111122223333",
|
||||
QueueName: "foo-queue",
|
||||
},
|
||||
},
|
||||
Users: map[string]acidv1.UserFlags{
|
||||
|
|
|
|||
Loading…
Reference in New Issue