✦ Sample Prompt
Migrate every IaC repo from Apache Kafka resources (Strimzi, MSK, Confluent) to
Redpanda equivalents.

For each repository:
1. Terraform, replace these resources with Redpanda equivalents:
   - `aws_msk_cluster` / `aws_msk_configuration` → `redpanda_cluster` (using the
     `redpanda-data/redpanda` provider)
   - `confluent_kafka_cluster` / `confluent_kafka_topic` → `redpanda_topic`
   - `strimzi_*` → managed via Redpanda Kubernetes operator manifests
2. Helm, replace Strimzi/Confluent chart values with Redpanda chart values:
   - `strimzi.cluster.*` → `redpanda.clusterName`, `redpanda.statefulset.*`
   - SASL/PLAIN listeners → `auth.sasl.enabled: true` with the equivalent mechanism
3. Translate ACLs to the Redpanda authorization model. If a mapping is not
   unambiguous, default to deny-and-flag rather than guess.
4. Preserve all topic names, partition counts, replication factors, and retention
   settings exactly.
5. Update `required_providers` in `versions.tf` to add the Redpanda provider.
6. Do not delete the old Kafka resources from the same PR; leave them and emit a
   follow-up issue tracking decommissioning after data replication completes.

Note in the PR body the manual steps (cluster bootstrap, data replication,
producer/consumer cutover) that cannot be automated.

The Problem

Replacing Kafka with Redpanda at the infrastructure layer means walking every IaC repo and replacing Strimzi CRDs, MSK resources, or Confluent operators with the Redpanda equivalents. The API surface is mostly compatible at the protocol level but very different at the IaC layer: different Helm charts, different CRDs, different Terraform providers.

Doing this manually is risky because the migration touches networking, ACLs, and authentication, small mistakes mean topics that look fine but reject producer credentials at runtime.

What Tidra Does

  1. Identifies Strimzi/MSK/Confluent resources in Terraform and Helm across IaC repos
  2. Generates the Redpanda equivalent (Cluster CRD, Redpanda Helm chart values, Terraform provider blocks) following the mapping in the prompt
  3. Translates ACL definitions to the Redpanda authorization model
  4. Preserves topic, partition, and retention settings exactly
  5. Opens one PR per repo and a tracking issue listing manual steps (cluster bootstrap, data replication) that Tidra cannot automate

Before & After

diff
helm/values.yaml
@@ -1,7 +1,7 @@
- strimzi:
- cluster:
- name: events
- replicas: 3
- listeners:
- plain: {}
+ redpanda:
+ clusterName: events
+ statefulset:
+ replicas: 3
+ auth:
+ sasl:
+ enabled: true

Customization Tips

  • Resource mapping: Provide an explicit mapping of source resource type → Redpanda target so Tidra does not invent fields.
  • ACL translation: ACL semantics differ slightly; supply a mapping or accept the conservative default (deny-by-default).
  • Data migration: IaC migration is one half of the work; data replication and producer/consumer cutover happen out-of-band.

Ready to run this across your repos?

Connect your Git provider and Tidra opens pull requests in every repo that needs them.