Official Terraform Plugin

There are a few Buildkite Terraform providers out there in varying levels of maintenance:

They seem to be pretty much feature complete (at least as far as configuring pipelines), but buggy and lacking in documentation. Any chance of adopting and maintaining one of them as a formal part of the Buildkite product?

We’ve been talking about this internally, and we’d love to do it, but at the minute we don’t have the bandwidth. Would happily work with any maintainers that sprung up though!

I think one of the big hurdles for maintainers is testing. The links I listed include a bunch of acceptance tests that need to talk to a real buildkite server. Moreover, I had to fix a bug this weekend because a new field in the api wasn’t known to the provider.

Have you considered running a buildkite service (or mock service) that community members can test against?

If there were a community supported provider that was clearly ahead of the rest, it would be nice to know that api changes from y’all wouldn’t break it.

(Admittedly, I know almost nothing about Go; it seems to be the ideal would be for the provider to not break if it receives an unknown key)

(My apologies…this got a lot more stream-of-consciousness than I intended)

There is also

Ideally, I think a terraform provider would use our GraphQL API. It’s symmetrical, so you can get back out what you put in, which will solve a lot of the problems. It should be easier to mock for testing too.

I recall someone point one out, I’ll look for it.

Of the three mentioned on this thread, the yougroupteam/terraform-buildkite project is working the best for us so far.

My concern here is that the GraphQL API tokens don’t have granular permissions at this point. Granted, from a security perspective, read_pipelines and write_pipelines are already pretty powerful permissions, but it’s still nice to have granular permissions when possible.

Agreed, although this is something that will be solved in future.

Just FYI COzero is dead, having been name changed, company changed (to EnergyLink) and finally placed into administration + liquidation.

Consider it unsupported.

Eep! Thanks for the heads up.