Created
May 7, 2023 19:20
-
-
Save dmwyatt/6da4d7d258d06f946248bb3a0655785d to your computer and use it in GitHub Desktop.
A start at a render.yaml json schema
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{ | |
"$schema": "http://json-schema.org/draft-07/schema#", | |
"type": "object", | |
"properties": { | |
"services": { | |
"type": "array", | |
"items": { | |
"type": "object", | |
"properties": { | |
"type": {"type": "string"}, | |
"name": {"type": "string"}, | |
"env": {"type": "string"}, | |
"repo": {"type": "string"}, | |
"region": {"type": "string"}, | |
"plan": {"type": "string"}, | |
"branch": {"type": "string"}, | |
"rootDir": {"type": "string"}, | |
"dockerCommand": {"type": "string"}, | |
"numInstances": {"type": "integer"}, | |
"healthCheckPath": {"type": "string"}, | |
"envVars": { | |
"type": "array", | |
"items": { | |
"type": "object", | |
"properties": { | |
"key": {"type": "string"}, | |
"fromService": { | |
"type": "object", | |
"properties": { | |
"type": {"type": "string"}, | |
"name": {"type": "string"}, | |
"property": {"type": "string"} | |
}, | |
"required": ["type", "name", "property"] | |
}, | |
"fromGroup": {"type": "string"}, | |
"generateValue": {"type": "boolean"}, | |
"sync": {"type": "boolean"}, | |
"value": {"type": "string"} | |
}, | |
"required": ["key"] | |
} | |
}, | |
"disk": { | |
"type": "object", | |
"properties": { | |
"name": {"type": "string"}, | |
"mountPath": {"type": "string"}, | |
"sizeGB": {"type": "integer"} | |
}, | |
"required": ["name", "mountPath"] | |
}, | |
"scaling": { | |
"type": "object", | |
"properties": { | |
"minInstances": {"type": "integer"}, | |
"maxInstances": {"type": "integer"}, | |
"targetMemoryPercent": {"type": "integer"}, | |
"targetCPUPercent": {"type": "integer"} | |
}, | |
"required": ["minInstances", "maxInstances"] | |
}, | |
"buildCommand": {"type": "string"}, | |
"startCommand": {"type": "string"}, | |
"domains": { | |
"type": "array", | |
"items": {"type": "string"} | |
}, | |
"autoDeploy": {"type": "boolean"}, | |
"schedule": {"type": "string"}, | |
"dockerfilePath": {"type": "string"}, | |
"dockerContext": {"type": "string"}, | |
"staticPublishPath": {"type": "string"}, | |
"pullRequestPreviewsEnabled": {"type": "boolean"}, | |
"buildFilter": { | |
"type": "object", | |
"properties": { | |
"paths": { | |
"type": "array", | |
"items": {"type": "string"} | |
}, | |
"ignoredPaths": { | |
"type": "array", | |
"items": {"type": "string"} | |
} | |
}, | |
"required": ["paths", "ignoredPaths"] | |
}, | |
"headers": { | |
"type": "array", | |
"items": { | |
"type": "object", | |
"properties": { | |
"path": {"type": "string"}, | |
"name": {"type": "string"}, | |
"value": {"type": "string"} | |
}, | |
"required": ["path", "name", "value"] | |
} | |
}, | |
"routes": { | |
"type": "array", | |
"items": { | |
"type": "object", | |
"properties": { | |
"type": {"type": "string"}, | |
"source": {"type": "string"}, | |
"destination": {"type": "string"} | |
}, | |
"required": ["type", "source", "destination"] | |
} | |
}, | |
"ipAllowList": { | |
"type": "array", | |
"items": { | |
"type": "object", | |
"properties": { | |
"source": {"type": "string"}, | |
"description": {"type": "string"} | |
}, | |
"required": ["source", "description"] | |
} | |
}, | |
"maxmemoryPolicy": {"type": "string"} | |
}, | |
"required": ["type", "name", "env"] | |
} | |
}, | |
"databases": { | |
"type": "array", | |
"items": { | |
"type": "object", | |
"properties": { | |
"name": {"type": "string"}, | |
"databaseName": {"type": "string"}, | |
"user": {"type": "string"}, | |
"ipAllowList": { | |
"type": "array", | |
"items": { | |
"type": "object", | |
"properties": { | |
"source": {"type": "string"}, | |
"description": {"type": "string"} | |
}, | |
"required": ["source", "description"] | |
} | |
} | |
}, | |
"required": ["name", "databaseName"] | |
} | |
}, | |
"envVarGroups": { | |
"type": "array", | |
"items": { | |
"type": "object", | |
"properties": { | |
"name": {"type": "string"}, | |
"envVars": { | |
"type": "array", | |
"items": { | |
"type": "object", | |
"properties": { | |
"key": {"type": "string"}, | |
"value": {"type": "string"}, | |
"generateValue": {"type": "boolean"}, | |
"sync": {"type": "boolean"} | |
}, | |
"required": ["key"] | |
} | |
} | |
}, | |
"required": ["name", "envVars"] | |
} | |
} | |
}, | |
"required": ["services", "databases", "envVarGroups"] | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment