› Put the acme stack on production: web and api from sdcr.io/acme,
the site in ./site, Postgres, Kafka for events, an assets bucket,
and upload media/launch.mp4 to a video library.
● create-service {name: "web", type: "docker", image: "sdcr.io/acme/web", tag: "1.4.0"}
↳ {"slug": "01a0cd50-7fc0-7909-a756-9b9bd4d31177", "name": "web", "status": "pending", …}
● create-service {name: "api", type: "docker", image: "sdcr.io/acme/api", tag: "2.1.0"}
↳ {"slug": "01a0cd50-8699-7388-a4a2-3ba9cd9547b5", "name": "api", "status": "pending", …}
● deploy-static-site {name: "website", files: [index.html, styles.css, app.js]}
↳ {"display_name": "website", "file_count": 3, "bytes_used": 48213, …}
● create-service {name: "db", type: "postgres", storage_gb: 20, mode: "standalone"}
↳ {"slug": "01a0cd50-944b-714d-989a-c3dac8bc794b", "name": "db", "status": "pending", …}
● create-service {name: "events", type: "kafka", storage_gb: 10, mode: "standalone"}
↳ {"slug": "01a0cd50-9b24-7a01-bc0b-cbb2e0c8fb91", "name": "events", "status": "pending", …}
● create-service {name: "assets", type: "s3_bucket"}
↳ {"slug": "01a0cd50-a1fd-7090-b484-7298ef77ee91", "name": "assets", …}
● deploy-service {service: "web"}
↳ {"slug": "01a0cd50-a8d6-78d7-9675-f6f9eb7ab879", "status": "pending", …}
● deploy-service {service: "api"}
↳ {"slug": "01a0cd50-afaf-7e1a-a870-d10bc4d5b05e", "status": "pending", …}
● deploy-service {service: "db"}
↳ {"slug": "01a0cd50-b688-7e20-ac58-1864ede064f5", "status": "pending", …}
● deploy-service {service: "events"}
↳ {"slug": "01a0cd50-bd61-7636-9c4a-6ef19a48b58b", "status": "pending", …}
● upload-video {library: "videos", path: "/srv/acme/media/launch.mp4", title: "Launch"}
↳ {"slug": "01a0cd50-c43a-74a0-82cf-cb405c06d861", "status": "ready",
"embed_url": "https://videos-k7m2qx9-p4t8z-hls.video.simplifyd.app/e/01a0cd50-c43a-…", …}
All seven are in production. web, api, db and events are deploying,
website is published with its 3 files, assets is ready for uploads,
and Launch is encoded — the embed_url above plays it.
› ▌
$ cat main.tf
provider "simplifyd" {
env = "production"
}
resource "simplifyd_service" "web" {
name = "web"
type = "docker"
docker = { image = "sdcr.io/acme/web", tag = "1.4.0" }
}
resource "simplifyd_service" "api" {
name = "api"
type = "docker"
docker = { image = "sdcr.io/acme/api", tag = "2.1.0" }
}
resource "simplifyd_service" "website" {
name = "website"
type = "static_site"
}
resource "simplifyd_service" "db" {
name = "db"
type = "postgres"
postgres = { storage_gb = 20, mode = "standalone" }
}
resource "simplifyd_service" "events" {
name = "events"
type = "kafka"
kafka = { storage_gb = 10, mode = "standalone" }
}
resource "simplifyd_service" "assets" {
name = "assets"
type = "s3_bucket"
}
resource "simplifyd_service" "videos" {
name = "videos"
type = "video"
}
$ terraform apply -auto-approve
Terraform will perform the following actions:
# simplifyd_service.api will be created
# simplifyd_service.assets will be created
# simplifyd_service.db will be created
# simplifyd_service.events will be created
# simplifyd_service.videos will be created
# simplifyd_service.web will be created
# simplifyd_service.website will be created
Plan: 7 to add, 0 to change, 0 to destroy.
simplifyd_service.web: Creating...
simplifyd_service.api: Creating...
simplifyd_service.website: Creating...
simplifyd_service.db: Creating...
simplifyd_service.events: Creating...
simplifyd_service.assets: Creating...
simplifyd_service.videos: Creating...
simplifyd_service.assets: Creation complete after 2s [id=01a0cd50-cb13-7593-9c97-3b10b4ed0f03]
simplifyd_service.website: Creation complete after 2s [id=01a0cd50-d1ec-7044-870b-11429ed1d2c0]
simplifyd_service.videos: Creation complete after 3s [id=01a0cd50-d8c5-7033-9dda-231e4b0ab2f5]
simplifyd_service.web: Still creating... [10s elapsed]
simplifyd_service.api: Still creating... [10s elapsed]
simplifyd_service.db: Still creating... [10s elapsed]
simplifyd_service.events: Still creating... [10s elapsed]
simplifyd_service.api: Creation complete after 14s [id=01a0cd50-df9e-70c3-9f3d-02eace482afb]
simplifyd_service.web: Creation complete after 15s [id=01a0cd50-e677-75f0-a307-0789a9000c5d]
simplifyd_service.db: Still creating... [20s elapsed]
simplifyd_service.events: Still creating... [20s elapsed]
simplifyd_service.db: Creation complete after 26s [id=01a0cd50-7fc0-7909-a756-9b9bd4d31178]
simplifyd_service.events: Creation complete after 31s [id=01a0cd50-8699-7388-a4a2-3ba9cd9547b6]
Apply complete! Resources: 7 added, 0 changed, 0 destroyed.
$ ▌