KPD closed beta Sign inRequest access

8. Export the picture, design document and Terraform

A PNG of the pipeline, the detailed design (LLD) document, and Terraform with permission advice.

Part 8 of 10 in the Hello World tutorial · Follow this part in the guided wizard · Printable version

Everything you take out of KPD is on the Export menu. Each export is downloaded by your browser and also saved in the project's exports/ folder, so it stays with the design.

A picture of the pipeline (PNG)

  1. Choose Export → Export PNG (or Ctrl/⌘+Shift+E, or the green Export PNG button top right). Include legend in PNG is ticked by default.
Export → Export PNG
Export → Export PNG
  1. Your browser downloads store-orders.png: the pipeline at twice screen resolution, captioned with its cluster, with a legend that explains only the colours and lines it uses. The background is transparent, so it sits well on a slide or in a document.
The exported PNG (shown here on white).
The exported PNG (shown here on white).

The detailed design document (LLD)

  1. Choose Export → Export to Detailed Design Template.
Export → Export to Detailed Design Template
Export → Export to Detailed Design Template
  1. KPD writes the whole project as a low-level design in Markdown, hello-world-coffee-detailed-design.md, with the diagrams as PNG files beside it in exports/. Open it in any Markdown editor, or import it into Google Docs or Word (see Detailed design document).
The start of the document: title, version history and a contents list that follows a typical client LLD.
The start of the document: title, version history and a contents list that follows a typical client LLD.

Everything KPD knows is written for you: the topic catalogue, schema field tables, the Flink SQL, role bindings, tags and metadata. Anything it can't know is marked ✏️ Author with a starting point to replace with your own words. Look at section 6: the data product definitions came from the catalogue metadata you entered in Part 5, and the owner and contact from the domain map.

Section 6.1, Customer order history: owner, steward, custodian and contact are already filled in.
Section 6.1, Customer order history: owner, steward, custodian and contact are already filled in.
Section 7.3 lists every dead letter topic with what feeds it and its replay strategy.
Section 7.3 lists every dead letter topic with what feeds it and its replay strategy.
Export it again at the endSection 13 (decisions, assumptions, dependencies and actions) is empty until you add them in Part 9. Export once more after Part 9 to fill it.

Terraform

  1. Choose Export → Terraform…
Export → Terraform…
Export → Terraform…
  1. The Terraform page has three sections. 1. Checks: one pipeline included, no validation errors. 2. Permission advice: what the running assets seem to need that their bindings don't cover. 3. Output: the TODOs and the files.
The Terraform page. Note the line at the top: no keys or secrets are ever written.
The Terraform page. Note the line at the top: no keys or secrets are ever written.
  1. Tick both suggestions: sa-hwc-flink needs DeveloperWrite on each of the two sys dead letter topics. Click Add 2 ticked bindings to service accounts. (The connector's account needs nothing more: Terraform creates the raw topics before the connector starts, so the connector only writes to them, which Part 6 already allows.)
Nothing is added unless you tick it.
Nothing is added unless you tick it.
  1. The section now says Every running asset's service account has bindings that cover what it reads and writes.
Access covered.
Access covered.
  1. Under 3. Output, click any file to preview it. pipeline-store-orders.tf has the topics (with prevent_destroy, so a topic's data can't be deleted by accident), schemas with their contract rules, tags, metadata, the connector and the Flink statements.
Previewing pipeline-store-orders.tf.
Previewing pipeline-store-orders.tf.
  1. The three TODOs: two say the hwc-prod cluster has no Environment ID or Cluster ID. That's right: fill them in on the cluster (Part 3) once the cluster exists, and they disappear. The third asks for the connector's database.user: the connector needs it, but a design doesn't hold it, so it is a Terraform variable you set for each environment.
  2. Click Download .zip to take the Terraform away, or Write to exports/terraform/ to keep it with the project.
Download .zip or Write to exports/terraform/.
Download .zip or Write to exports/terraform/.

Back in the explorer, sa-hwc-flink now has seven bindings: the five you added in Part 6 and the two from the advice. Click it to see them; you can change or remove them like any other.

The added bindings are ordinary bindings on the account.
The added bindings are ordinary bindings on the account.
A starting point, not a deploymentThe Terraform is for your team to review, check in and run from CI (terraform init, terraform plan). KPD never connects to Confluent Cloud. See Terraform.

Next: 9. Notes, decisions, actions, groups and shading.