https://github.com/josh/terraform-provider-ceph
Terraform Ceph provider
https://github.com/josh/terraform-provider-ceph
ceph terraform terraform-provider
Last synced: 6 months ago
JSON representation
Terraform Ceph provider
- Host: GitHub
- URL: https://github.com/josh/terraform-provider-ceph
- Owner: josh
- License: mit
- Created: 2025-09-30T00:40:18.000Z (10 months ago)
- Default Branch: main
- Last Pushed: 2026-01-15T22:36:37.000Z (6 months ago)
- Last Synced: 2026-01-15T22:44:10.550Z (6 months ago)
- Topics: ceph, terraform, terraform-provider
- Language: Go
- Homepage:
- Size: 541 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
- Agents: AGENTS.md
Awesome Lists containing this project
README
# terraform-provider-ceph
A Terraform provider for managing Ceph clusters via the Ceph Dashboard REST API (Ceph RESTful API), covering authentication, configuration, placement rules, and RGW users/buckets. The provider communicates with the manager's REST HTTP endpoint, so Terraform does not require direct access to the Ceph cluster.
## Examples
### Configure the provider
```terraform
provider "ceph" {
endpoint = "https://ceph.example.com"
token = var.ceph_token
}
```
### Create a dashboard user with S3 credentials
```terraform
resource "ceph_rgw_user" "dashboard" {
user_id = "dashboard"
display_name = "Ceph Dashboard"
system = true
}
resource "ceph_rgw_s3_key" "dashboard" {
user_id = ceph_rgw_user.dashboard.user_id
}
```
### Manage a global Ceph configuration value
```terraform
resource "ceph_config" "global" {
section = "global"
config = {
# Write objects to 3 replicas
osd_pool_default_size = 3
# Allow writing two copies in a degraded state
osd_pool_default_min_size = 2
}
}
```
### Create an admin auth key with full access
```terraform
resource "ceph_auth" "client_admin" {
entity = "client.admin"
caps = {
"mds" = "allow *"
"mgr" = "allow *"
"mon" = "allow *"
"osd" = "allow *"
}
}
```