Deployah Configuration
CLI tool that makes Kubernetes deployments effortless—no Helm or K8s expertise required
| Type | object |
|---|---|
| File match |
deployah.yaml
deployah.yml
.deployah.yaml
.deployah.yml
|
| Schema URL | https://catalog.lintel.tools/schemas/schemastore/deployah-configuration/latest.json |
| Source | https://deployah.dev/schemas/v1-alpha.1/manifest.json |
Versions
Validate with Lintel
npx @lintel/lintel check
Type:
object
Deployah configuration file, used to configure the deployment process.
Properties
apiVersion
string
required
Schema version, e.g. v1-alpha.1, v1-beta.2, v1-rc.1, v1
pattern=^v[0-9]+(-(alpha|beta|rc)\.[0-9]+)?$
project
string
required
The project name used to identify deployments and prefix Kubernetes resources. Must be a valid DNS-1123 subdomain containing only lowercase alphanumeric characters or '-'. Must start and end with an alphanumeric character.
minLength=3maxLength=64pattern=^[a-z0-9]+(?:-[a-z0-9]+)*$
components
object
required
The components configuration, defining deployable units in the project.
environments
object[]
List of environment definitions. If not specified or empty, Deployah will fall back to hardcoded conventions such as config.yaml and .env.
Examples
{
"apiVersion": "v1-beta.2",
"project": "demo-project",
"environments": [
{
"name": "production",
"envFile": ".env.production",
"configFile": "config.production.yaml"
},
{
"name": "staging",
"envFile": ".env.staging",
"configFile": "config.staging.yaml"
}
],
"components": {
"web": {
"role": "service",
"kind": "stateless",
"image": "nginx:latest",
"port": 8080,
"ingress": {
"host": "example.com",
"tls": true
}
},
"api": {
"role": "service",
"kind": "stateless",
"image": "api:latest",
"port": 8080,
"autoscaling": {
"enabled": true,
"minReplicas": 2,
"maxReplicas": 5,
"metrics": [
{
"type": "cpu",
"target": 75
},
{
"type": "memory",
"target": 80
}
]
},
"resources": {
"cpu": "100m",
"memory": "256Mi"
}
}
}
}