AivenKafkaArgs
AivenKafkaArgs = AivenKafkaJsonArgs | AivenKafkaDefinitionArgsInput arguments for AivenKafka; typed-definition and JSON-file modes are mutually exclusive.
Remarks
Map keys determine child Pulumi logical identity. Renaming a key changes that child's logical name; changing topicName or username while retaining its key does not. Typed and JSON modes cannot be mixed.
Example
CODE
const topics = defineAivenKafkaTopics({
orders: { create: { topicName: 'company.orders.v1', partitions: 6, replication: 3 } },
});
const users = defineAivenKafkaUsers({
producer: { create: { username: 'svc-orders-producer' } },
});
const definition = defineAivenKafkaDefinition({
topics,
users,
acls: {
write: { create: { permission: 'write', topic: topics.orders, username: users.producer } },
publicRead: { create: { permission: 'read', topic: { literal: 'public-*' }, username: users.producer } },
},
});
const kafka = new AivenKafka({
identity: 'orders',
service: { project: 'platform', serviceName: 'kafka-main' },
definition,
});CODE
const kafka = new AivenKafka({
identity: 'platformEvents',
service: { project: 'platform', serviceName: 'kafka-main' },
topicsFilePath: 'config/kafka-topics.json',
usersFilePath: 'config/kafka-users.json',
aclsFilePath: 'config/kafka-acls.json',
});
// config/kafka-topics.json:
// { "events": { "create": { "topicName": "events", "partitions": 3, "replication": 3 } } }