Oh i see, ignore me i'm a dumb guy
# aws
g
Oh i see, ignore me i'm a dumb guy
s
Not dumb! Inputs and Outputs are a little tricky at first! There's some string helper methods in the
pulumi
namespace that can help for stuff like IAM policies. What language are you using?
g
Typescript
i got it sorted
i can only imagine the pain of supporting several languages in pulumi
now to decide how to share data with circleci, that's going to be fun 😄
s
g
thanks for the link, actually it's an inversion of that, i want executions of pulumi to update my circleci projects with environment variables & so on
i'm thinking for now the best thing to do is to create a role with credentials & an SSM or aws secrets secret arn & copy those into circleci by hand, it's only 3 bits of data so it's manageable. From there a CCI job can pull the secret/parameter & hydrate the build environment
s
This should also be helpful with your earlier issue: https://www.pulumi.com/docs/concepts/inputs-outputs/#converting-outputs-to-json
If you're using the Pulumi Cloud backend, you could use webhooks to do stuff after an execution completes. If not, try the Automation API - it lets you embed Pulumi in other programs.
g
yeah actually i was meaning to ask someone about that; it seems that the automation api still requires the pulumi binary to be available right?
i presume that has to do with executing go code?
s
I... don't know. It might, but if it does, I'm guessing it will be installed when you
npm i
, just like the provider binary is installed when you
npm i @pulumi/aws
.
g
right, ofcourse go gets compiled to a binary doesn't it
s
The multi-language support in Pulumi is possible because providers are binaries with gRPC interfaces. The SDKs just proxy gRPC calls to a known binary, more or less.
g
yeah neat use of layering hey