Skip to content

Create provisioner protocol definition #10

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

Closed
kylecarbs opened this issue Jan 6, 2022 · 0 comments · Fixed by #12
Closed

Create provisioner protocol definition #10

kylecarbs opened this issue Jan 6, 2022 · 0 comments · Fixed by #12
Assignees
Labels
api Area: HTTP API

Comments

@kylecarbs
Copy link
Member

kylecarbs commented Jan 6, 2022

A provisioner performs lifecycle actions for an Automator (Terraform, Pulumi, etc.). An external daemon will execute a provisioner binary. The daemon and provisioner will communicate using gRPC over stdin/stdout.

Terraform's provider system displays prior art on this architecture.

Package structure:

└── provisioner
    ├── provisioner.go
    ├── provisioner_test.go
    └── terraform
        ├── terraform.go
        └── terraform_test.go

The terraform provisioner would be bundled into its own CLI, executed by provisionerd (once that exists).

@kylecarbs kylecarbs self-assigned this Jan 6, 2022
kylecarbs added a commit that referenced this issue Jan 7, 2022
Creates a provisioner abstraction that takes prior art from the Terraform plugin system. It's safe to assume this code will change a lot when it becomes integrated with provisionerd.

Closes #10.
kylecarbs added a commit that referenced this issue Jan 8, 2022
* feat: Create provisioner abstraction

Creates a provisioner abstraction that takes prior art from the Terraform plugin system. It's safe to assume this code will change a lot when it becomes integrated with provisionerd.

Closes #10.

* Ignore generated files in diff view

* Check for unstaged file changes

* Install protoc-gen-go

* Use proper drpc plugin version

* Fix serve closed pipe

* Install sqlc with curl for speed

* Fix install command

* Format CI action

* Add linguist-generated and closed pipe test

* Cleanup code from comments

* Add dRPC comment

* Add Terraform installer for cross-platform

* Build provisioner tests on Linux only
@tjcran tjcran modified the milestones: action picker UI to submit action and display output [internal], CLI Provisioner [internal], Workspaces V2 Black Triangle Jan 13, 2022
@greyscaled greyscaled added this to the Black Triangle milestone May 2, 2022
@misskniss misskniss added the api Area: HTTP API label Jun 14, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
api Area: HTTP API
Projects
None yet
Development

Successfully merging a pull request may close this issue.

4 participants