TE
TechEcho
Home24h TopNewestBestAskShowJobs
GitHubTwitter
Home

TechEcho

A tech news platform built with Next.js, providing global tech news and discussions.

GitHubTwitter

Home

HomeNewestBestAskShowJobs

Resources

HackerNews APIOriginal HackerNewsNext.js

© 2025 TechEcho. All rights reserved.

Show HN: OpenAPI to Terraform Provider Code Generation

10 pointsby ThomasRooneyover 1 year ago

2 comments

rjst01over 1 year ago
This sounds pretty cool, but I&#x27;d love to know a bit more about how you handle the impedance mismatch between OpenAPI and an IaaC provider. So far I&#x27;ve only dabbled in making small changes to existing providers but to my somewhat uninformed eyes it seems like a &quot;draw the rest of the owl&quot; situation.<p>Writing some terraform providers is very likely in our not-to-distant future, so I created an account and imported our spec. It failed validation and wouldn&#x27;t let me proceed, and the errors provided weren&#x27;t helpful. When I have a bit more time I&#x27;ll throw it at another OpenAPI validator to try to work out where the problems are, but we&#x27;re using this spec for code generation for several clients already and haven&#x27;t had any issues. It&#x27;s dynamically generated from our backend.<p>One more thing, I noticed you have logos for stripe, twilio and plaid on your site, above a &quot;Learn how SDKs help&quot; button, which 404&#x27;s. If those are your customers that&#x27;s pretty cool, but otherwise using other companies&#x27; logos is a bit shady.
评论 #37821157 未加载
ThomasRooneyover 1 year ago
Hey HN, after a fair few months of iteration, we&#x27;re excited to share our latest offering in Speakeasy: auto-generation of Terraform providers using OpenAPI specifications.<p>The Problem: Building a Terraform Provider to expose an API via Infrastructure As Code (e.g. HCL, Pulumi, CDK) is expensive, error-prone, and highly repetitive.<p>However, if you don&#x27;t have a mature terraform provider many products will not even be considered by mature organisations with a mandate to automate-all-the-things.<p>Our Solution:<p>1. Deep Integration with OpenAPI: Just point Speakeasy to your OpenAPI spec. Every change, every tweak, every evolution of your API is monitored, and we adapt in real-time.<p>2. Automated Terraform Provider Generation: Instead of manually coding a Terraform provider, Speakeasy synthesizes one for you, ensuring it remains in sync with your API&#x27;s latest version.<p>3. Smart Schema Semantics: Based on CRUD operations, Speakeasy can smartly deduce and apply Terraform schema attributes like Computed, Optional, and Force Replace.<p>4. Continuous GitHub PRs: With each OpenAPI spec alteration, PRs are raised automatically against your Terraform provider repository, ensuring seamless and continuous integration.<p>Why Speakeasy for Terraform?<p>While several tools play around the fringes, none offer 100% automation via code synthesis. We&#x27;ve built and extensively tested our Terraform Provider Generation engine from OpenAPI, and have been in production with real customers for the last 6 months.<p>* It is possible to generate an OpenAPI specification for almost any server side framework (even things like ProtoBuf via REST Gateways) entirely automatically.<p>* Once your OpenAPI specification is automatically generated from your codebase, Speakeasy enables subsequent integration artifacts, like SDKs and Terraform Providers, to be automatically maintained with close-to-zero engineering effort.<p>* Once an API is exposed via a Terraform Provider, it becomes usable by the entire IaC ecosystem like Terraform, CDK, and Pulumi through the use of bridging tools.<p>* Speakeasy will also generate documentation, usage examples, support&#x2F;guide you through the launch, and upgrade the provider automatically as the ecosystem matures.<p>Dive Deeper:<p>- Explore our product: <a href="https:&#x2F;&#x2F;www.speakeasyapi.dev" rel="nofollow noreferrer">https:&#x2F;&#x2F;www.speakeasyapi.dev</a><p>- Explore our CLI: <a href="https:&#x2F;&#x2F;github.com&#x2F;speakeasy-api&#x2F;speakeasy">https:&#x2F;&#x2F;github.com&#x2F;speakeasy-api&#x2F;speakeasy</a><p>- Explore our largest yet terraform provider: <a href="https:&#x2F;&#x2F;github.com&#x2F;airbytehq&#x2F;terraform-provider-airbyte">https:&#x2F;&#x2F;github.com&#x2F;airbytehq&#x2F;terraform-provider-airbyte</a><p>- Explore exposing a terraform provider via Pulumi: <a href="https:&#x2F;&#x2F;www.speakeasyapi.dev&#x2F;post&#x2F;pulumi-terraform-provider" rel="nofollow noreferrer">https:&#x2F;&#x2F;www.speakeasyapi.dev&#x2F;post&#x2F;pulumi-terraform-provider</a><p>- Explore a toy example: <a href="https:&#x2F;&#x2F;github.com&#x2F;speakeasy-sdks&#x2F;terraform-provider-hashicups">https:&#x2F;&#x2F;github.com&#x2F;speakeasy-sdks&#x2F;terraform-provider-hashicu...</a><p>A massive thanks to our early adopters and the vibrant Terraform community for guiding our journey.<p>HN, we’re eager for your insights. Whether it’s rigorous feedback, burning queries, or just wanting to geek out over Terraform and APIs, hit us up!