coder / coder/terraform-provider-coderd
feat: Coderd Crossplane Provider
- Dominant language
- Go
- Stars
- 29
- Forks
- 13
- Avg merge
- 1d 20h
- Merged PRs (30d)
- 20
Description
## Summary
It would be great to have a [Crossplane](https://www.crossplane.io/) provider that wraps this Terraform provider, so that Coder resources can be managed declaratively from within Kubernetes.
## Motivation
Today, managing Coder infrastructure (templates, template versions, users, groups, organizations, etc.) requires running Terraform as a separate step in the toolchain. For teams that already run their platform on Kubernetes and use GitOps (e.g. Flux/ArgoCD), this means context-switching between tools and reconciliation models.
A Crossplane provider would allow Coder and its data plane to be defined entirely as Kubernetes custom resources, continuously reconciled by Crossplane — no separate `terraform apply` pipeline required. This makes it possible to manage Coder the same way as the rest of the platform, all from a single control plane.
## Proposed approach
Crossplane has first-class tooling for generating providers directly from existing Terraform providers:
- **[Upjet](https://github.com/crossplane/upjet)** — Crossplane's code-generation framework that builds a native Crossplane provider from a Terraform provider's schema, mapping each Terraform resource to a Crossplane Managed Resource (CRD).
Because this repo is already a maintained Terraform provider with a well-defined schema, generating an Upjet-based Crossplane provider should be relatively straightforward and largely automated — the heavy lifting (CRD generation, controller scaffolding, Terraform invocation under the hood) is handled by Upjet. The main work tends to be:
1. Scaffolding the Upjet provider repo against this provider.
2. Configuring resource grouping / external-name conventions.
3. Handling provider configuration & credentials (Coder URL + token) via a `ProviderConfig`.
4. CI for regenerating when the underlying Terraform provider updates.
## Benefits
- Complete, declarative management of Coder **and** the data plane directly from Kubernetes.
- Native GitOps support without bolting Terraform into the pipeline.
- Single reconciliation model and toolchain for platform teams already on Crossplane.
Contributor guide
No contributing guide indexed for this repository
Assessment
This issue has not been assessed yet.