Releases: deployah-dev/deployah
Release list
v0.8.0
Highlights
Tasks
Declare migrations, smoke checks, and backfills under tasks: next to components. from copies image, env, and profiles from a component. "on": preDeploy and "on": postDeploy run around deploy; "on": manual is CLI-only. deployah run starts any task, including a hook you want to retry.
apiVersion: v1-alpha.5
project: shop
components:
api:
image: ghcr.io/acme/shop:1.2.3
env:
DATABASE_URL: ${DATABASE_URL}
tasks:
migrate:
from: api
"on": preDeploy
command: ["migrate", "up"]
smoke:
from: api
"on": postDeploy
command: ["curl", "-f", "http://api/health"]
backfill:
from: api
"on": manual
command: ["backfill"]Quote "on" in YAML 1.1 so it is not read as a boolean.
Scheduled tasks
"on": schedule creates a Kubernetes CronJob in the release. deployah deploy applies it and does not start a Job on that deploy. deployah run still creates a one-shot Job.
tasks:
cleanup:
from: api
"on": schedule
schedule: "0 3 * * *"
command: ["cleanup"]Init wizard
deployah init is interactive and must run from a terminal. It writes deployah.yaml and a platform file. --dry-run prints the spec without saving it.
App manifests move to v1-alpha.5; platform profiles stay platform/v1-alpha.3.
What's Changed
Features
- add tasks for run-to-completion work by @atkrad in #83
- make init a tty-only wizard by @atkrad in #89
- add scheduled tasks as CronJobs by @atkrad in #104
Bug Fixes
Full Changelog: v0.7.0...v0.8.0
v0.7.0
Highlights
Stateful workloads
Use kind: stateful for stable network identity (ordinal hostnames, headless DNS) and optional per-pod volumes. Stateless components can take a shared PVC too. Grow disks later with deployah deploy --resize-volumes.
components:
cache:
kind: stateful
image: redis:7-alpine
port: 6379
resourcePreset: nano
environments: [dev]
replicas: 1
persistence:
size: 20Gi
mountPath: /dataWorkers and metrics
role: worker runs long-lived processes with no Service port, Ingress, or ready probe. Enable Prometheus scraping with metrics (ServiceMonitor for services, PodMonitor for workers). Profiles supply metrics.monitorLabels.
components:
api:
image: ghcr.io/acme/api:1.0.0
port: 8080
environments: [production]
profiles: [observability]
metrics: true
worker:
role: worker
image: ghcr.io/acme/worker:1.0.0
environments: [production]
profiles: [observability]
metrics:
port: 9090
path: /metrics# deployah.platform.yaml
apiVersion: platform/v1-alpha.3
profiles:
observability:
metrics:
monitorLabels:
release: prometheusApp manifests move to v1-alpha.4; platform profiles use platform/v1-alpha.3.
What's Changed
Features
- add kind: stateful workload support by @atkrad in #70
- add worker role and prometheus metrics by @atkrad in #75
Full Changelog: v0.6.0...v0.7.0
v0.6.0
Highlights
CI now runs OSV-Scanner on dependencies and on the linux/amd64 release image, with findings uploaded to Code Scanning. The README also gains an examples/nginx starter and demo GIFs so you can see a local deploy without reading the full docs first.
What's Changed
Features
Documentation
Full Changelog: v0.5.0...v0.6.0
v0.5.0
Highlights
You can now add custom manifests and CRDs under .deployah/ so extras join the Helm release without hand-editing charts. Manifests use a post-renderer; CRDs apply first with --crds create|create-replace.
What's Changed
Features
Full Changelog: v0.4.0...v0.5.0