Pulumi Architecture: Difference between revisions
Line 8: | Line 8: | ||
[[File:Pulumi_Architecture.png|1267px]] | [[File:Pulumi_Architecture.png|1267px]] | ||
==Resource Provider== | ==Resource Provider== | ||
A resource provider consists of a [[#Resource_Plugin|resource plugin]] and an [[#SDK|SDK]]. Example of resource providers: AWS resource provider, [[Managing_Datadog_with_Pulumi#Datadog_Resource_Provider|Datadog resource provider]]. <font color=darkkhaki>The providers are generated according to the API schema create by Terraform.</font> | A resource provider consists of a [[#Resource_Plugin|resource plugin]] and an [[#SDK|SDK]]. Example of resource providers: AWS resource provider, [[Managing_Datadog_with_Pulumi#Datadog_Resource_Provider|Datadog resource provider]]. <font color=darkkhaki>The providers are generated according to the API schema create by Terraform. That is what in some platform infrastructure logs it'll show "terraform provider", when in fact it's Pulumi.</font> | ||
===Resource Plugin=== | ===Resource Plugin=== | ||
===SDK=== | ===SDK=== |
Revision as of 19:41, 14 January 2022
External
Internal
Overview
Architecture
Resource Provider
A resource provider consists of a resource plugin and an SDK. Example of resource providers: AWS resource provider, Datadog resource provider. The providers are generated according to the API schema create by Terraform. That is what in some platform infrastructure logs it'll show "terraform provider", when in fact it's Pulumi.
Resource Plugin
SDK
Published as a package available from Pulumi registry and/or (?) from the language specify registry like PyPI.
State Management
TO PROCESS: https://www.pulumi.com/docs/intro/concepts/state/
State can be interacted with via both CLI and programming model.
What Happens when Code is Applied to Platform?
The pulumi up
command evaluates the program and determines resource updates to make. Part of the update process, pulumi will run the preview step of the update, which computes the minimally disruptive change to achieve the desired state described by the program.
- Where is the code executed?
- Where does stdout/stderr go?
- Reconcile with Deploying a Project