Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Author Pulumi Packages in YAML #210

Open
5 tasks
AaronFriel opened this issue May 19, 2022 · 0 comments
Open
5 tasks

Author Pulumi Packages in YAML #210

AaronFriel opened this issue May 19, 2022 · 0 comments
Labels
area/multi-language-components kind/design An engineering design doc, usually part of an Epic language/yaml

Comments

@AaronFriel
Copy link
Member

AaronFriel commented May 19, 2022

It's possible to create component provider packages in every language except YAML.

To design and implement support for component providers in YAML, we may pursue:

  • Supporting running a YAML Program via, or as, a resource plugin

    Perhaps by modifying the pulumi-language-yaml binary to execute in a resource plugin mode as well as the current language plugin mode. This would require changes to pulumi-language-yaml and to the engine.

  • Package schema generation for the YAML Program

    Either by direct generation of schema.json or as a consequence of implementing GetSchema for a YAML component provider.

  • SDK generation in the Pulumi CLI

    A method for generating SDKs without requiring writing Go programs.

Aspirational goals that the design for the above should not preclude:

  • CLI and language plugin support to have a one-command authoring experience to create a package from a YAML program

    To be determined, but ideally there would be an authoring experience as simple as pulumi plugin create --language yaml --dir .. This would require coordination between the engine and the language plugin to support a user experience on par with pulumi convert.

  • Enable combining multiple YAML component resources in one package

    Perhaps by enabling a foo.yaml to define a Foo resource, a bar.yaml to define a Bar resource, etc. Each would be a YAML Program, which when hosted by the YAML resource provider shim, combined into a schema that supports Foo, Bar, ... etc. resources.

@AaronFriel AaronFriel added kind/design An engineering design doc, usually part of an Epic language/yaml labels May 19, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area/multi-language-components kind/design An engineering design doc, usually part of an Epic language/yaml
Projects
None yet
Development

No branches or pull requests

2 participants