Created
March 13, 2024 16:11
-
-
Save AngelOnFira/7108c0cec5e1d57ad2ddc051718c2521 to your computer and use it in GitHub Desktop.
This file contains hidden or 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#", | |
| "title": "Namespace", | |
| "type": "object", | |
| "required": [ | |
| "cluster" | |
| ], | |
| "properties": { | |
| "better_uptime": { | |
| "default": null, | |
| "anyOf": [ | |
| { | |
| "$ref": "#/definitions/BetterUptime" | |
| }, | |
| { | |
| "type": "null" | |
| } | |
| ] | |
| }, | |
| "bolt": { | |
| "default": { | |
| "confirm_commands": false | |
| }, | |
| "allOf": [ | |
| { | |
| "$ref": "#/definitions/Bolt" | |
| } | |
| ] | |
| }, | |
| "captcha": { | |
| "default": { | |
| "hcaptcha": null, | |
| "turnstile": null | |
| }, | |
| "allOf": [ | |
| { | |
| "$ref": "#/definitions/Captcha" | |
| } | |
| ] | |
| }, | |
| "clickhouse": { | |
| "default": { | |
| "kubernetes": {} | |
| }, | |
| "allOf": [ | |
| { | |
| "$ref": "#/definitions/ClickHouse" | |
| } | |
| ] | |
| }, | |
| "cluster": { | |
| "$ref": "#/definitions/Cluster" | |
| }, | |
| "cockroachdb": { | |
| "default": { | |
| "kubernetes": {} | |
| }, | |
| "allOf": [ | |
| { | |
| "$ref": "#/definitions/CockroachDB" | |
| } | |
| ] | |
| }, | |
| "dns": { | |
| "anyOf": [ | |
| { | |
| "$ref": "#/definitions/Dns" | |
| }, | |
| { | |
| "type": "null" | |
| } | |
| ] | |
| }, | |
| "docker": { | |
| "default": { | |
| "authenticate_all_docker_hub_pulls": false, | |
| "repository": "ghcr.io/rivet-gg/" | |
| }, | |
| "allOf": [ | |
| { | |
| "$ref": "#/definitions/Docker" | |
| } | |
| ] | |
| }, | |
| "email": { | |
| "anyOf": [ | |
| { | |
| "$ref": "#/definitions/Email" | |
| }, | |
| { | |
| "type": "null" | |
| } | |
| ] | |
| }, | |
| "fly": { | |
| "anyOf": [ | |
| { | |
| "$ref": "#/definitions/Fly" | |
| }, | |
| { | |
| "type": "null" | |
| } | |
| ] | |
| }, | |
| "kubernetes": { | |
| "default": { | |
| "health_checks": null, | |
| "k3d": {} | |
| }, | |
| "allOf": [ | |
| { | |
| "$ref": "#/definitions/Kubernetes" | |
| } | |
| ] | |
| }, | |
| "nomad": { | |
| "default": { | |
| "health_checks": null | |
| }, | |
| "allOf": [ | |
| { | |
| "$ref": "#/definitions/Nomad" | |
| } | |
| ] | |
| }, | |
| "pools": { | |
| "default": [], | |
| "type": "array", | |
| "items": { | |
| "$ref": "#/definitions/Pool" | |
| } | |
| }, | |
| "redis": { | |
| "default": { | |
| "kubernetes": {}, | |
| "replicas": 0 | |
| }, | |
| "allOf": [ | |
| { | |
| "$ref": "#/definitions/Redis" | |
| } | |
| ] | |
| }, | |
| "regions": { | |
| "default": { | |
| "lnd-atl": { | |
| "id": "54c60ee9-ae31-4a3f-b5ff-06aa5639310f", | |
| "netnum": 0, | |
| "primary": true, | |
| "provider": "linode", | |
| "provider_region": "us-southeast" | |
| }, | |
| "lnd-dca": { | |
| "id": "732757b5-51dd-464f-a673-6ae40502c832", | |
| "netnum": 7, | |
| "primary": false, | |
| "provider": "linode", | |
| "provider_region": "us-iad" | |
| }, | |
| "lnd-dfw": { | |
| "id": "06e30e05-cd47-4cc7-adeb-8cb4a1a189b7", | |
| "netnum": 8, | |
| "primary": false, | |
| "provider": "linode", | |
| "provider_region": "us-central" | |
| }, | |
| "lnd-ewr": { | |
| "id": "ed6dac28-c16d-4c03-8daa-98adfbae4758", | |
| "netnum": 9, | |
| "primary": false, | |
| "provider": "linode", | |
| "provider_region": "us-east" | |
| }, | |
| "lnd-fra": { | |
| "id": "37aeb24a-12f6-45ea-ba7e-d2589588d7db", | |
| "netnum": 2, | |
| "primary": false, | |
| "provider": "linode", | |
| "provider_region": "eu-central" | |
| }, | |
| "lnd-lon": { | |
| "id": "161e738d-f7ed-4d43-af64-7731e39835ef", | |
| "netnum": 10, | |
| "primary": false, | |
| "provider": "linode", | |
| "provider_region": "eu-west" | |
| }, | |
| "lnd-mba": { | |
| "id": "a699aff0-9d2d-4cad-bef4-b929a78d430e", | |
| "netnum": 5, | |
| "primary": false, | |
| "provider": "linode", | |
| "provider_region": "ap-west" | |
| }, | |
| "lnd-sfo": { | |
| "id": "19f1b737-0ff1-4676-a834-1af8c4e9890f", | |
| "netnum": 1, | |
| "primary": false, | |
| "provider": "linode", | |
| "provider_region": "us-west" | |
| }, | |
| "lnd-sgp": { | |
| "id": "4baddf3d-3a70-4139-aed7-21e06a74b9f4", | |
| "netnum": 11, | |
| "primary": false, | |
| "provider": "linode", | |
| "provider_region": "ap-south" | |
| }, | |
| "lnd-syd": { | |
| "id": "6041893e-7a35-4ab7-a31d-9fd4d6f9dee2", | |
| "netnum": 3, | |
| "primary": false, | |
| "provider": "linode", | |
| "provider_region": "ap-southeast" | |
| }, | |
| "lnd-tok": { | |
| "id": "1f34955f-c0a5-472f-b1c6-1912698141eb", | |
| "netnum": 4, | |
| "primary": false, | |
| "provider": "linode", | |
| "provider_region": "ap-northeast" | |
| }, | |
| "lnd-tor": { | |
| "id": "33eaba37-0f06-4dc0-959a-2267481e63df", | |
| "netnum": 6, | |
| "primary": false, | |
| "provider": "linode", | |
| "provider_region": "ca-central" | |
| } | |
| }, | |
| "type": "object", | |
| "additionalProperties": { | |
| "$ref": "#/definitions/Region" | |
| } | |
| }, | |
| "rivet": { | |
| "default": { | |
| "access": { | |
| "private": {} | |
| }, | |
| "api": { | |
| "error_verbose": false, | |
| "hub_origin": null, | |
| "hub_origin_regex": null | |
| }, | |
| "billing": null, | |
| "cdn": { | |
| "cache_size_gb": 10 | |
| }, | |
| "dynamic_servers": { | |
| "build_delivery_method": "traffic_server" | |
| }, | |
| "login": { | |
| "enable_admin": true | |
| }, | |
| "profanity": { | |
| "filter_disable": false | |
| }, | |
| "telemetry": { | |
| "disable": false | |
| }, | |
| "test": null, | |
| "upload": { | |
| "nsfw_error_verbose": false | |
| } | |
| }, | |
| "allOf": [ | |
| { | |
| "$ref": "#/definitions/Rivet" | |
| } | |
| ] | |
| }, | |
| "rust": { | |
| "default": { | |
| "build_opt": "debug", | |
| "sccache": null | |
| }, | |
| "allOf": [ | |
| { | |
| "$ref": "#/definitions/Rust" | |
| } | |
| ] | |
| }, | |
| "s3": { | |
| "default": { | |
| "aws": null, | |
| "backblaze": null, | |
| "backfill": null, | |
| "cors": { | |
| "allowed_origins": null | |
| }, | |
| "minio": { | |
| "default": true | |
| } | |
| }, | |
| "allOf": [ | |
| { | |
| "$ref": "#/definitions/S3" | |
| } | |
| ] | |
| }, | |
| "secrets": { | |
| "default": { | |
| "1password": null, | |
| "path": null | |
| }, | |
| "allOf": [ | |
| { | |
| "$ref": "#/definitions/Secrets" | |
| } | |
| ] | |
| }, | |
| "services": { | |
| "default": {}, | |
| "type": "object", | |
| "additionalProperties": { | |
| "$ref": "#/definitions/Service" | |
| } | |
| }, | |
| "terraform": { | |
| "default": { | |
| "backend": { | |
| "local": {} | |
| } | |
| }, | |
| "allOf": [ | |
| { | |
| "$ref": "#/definitions/Terraform" | |
| } | |
| ] | |
| }, | |
| "traefik": { | |
| "default": { | |
| "access_logs": false, | |
| "log_level": "ERROR" | |
| }, | |
| "allOf": [ | |
| { | |
| "$ref": "#/definitions/Traefik" | |
| } | |
| ] | |
| } | |
| }, | |
| "additionalProperties": false, | |
| "definitions": { | |
| "Api": { | |
| "type": "object", | |
| "properties": { | |
| "error_verbose": { | |
| "default": false, | |
| "type": "boolean" | |
| }, | |
| "hub_origin": { | |
| "description": "The origin used to build URLs for the hub in the API server.", | |
| "default": null, | |
| "type": [ | |
| "string", | |
| "null" | |
| ] | |
| }, | |
| "hub_origin_regex": { | |
| "description": "Regexp used to validate requests from the hub.", | |
| "type": [ | |
| "string", | |
| "null" | |
| ] | |
| } | |
| }, | |
| "additionalProperties": false | |
| }, | |
| "BetterUptime": { | |
| "type": "object", | |
| "required": [ | |
| "company_name", | |
| "company_subdomain", | |
| "company_url" | |
| ], | |
| "properties": { | |
| "company_name": { | |
| "description": "The name of your company. This will be displayed on your status page in the top left. This is required by Better Uptime.", | |
| "type": "string" | |
| }, | |
| "company_subdomain": { | |
| "description": "The subdomain is the part of the public URL of your status page uses.\n\nEg. <company_subdomain>.betteruptime.com.\n\nIt needs to be unique across all of Better Uptime. This is required by Better Uptime.", | |
| "type": "string" | |
| }, | |
| "company_url": { | |
| "description": "The URL of your company. This will be used on the status page to link to your company's website. This is required by Better Uptime.", | |
| "type": "string" | |
| } | |
| }, | |
| "additionalProperties": false | |
| }, | |
| "Bolt": { | |
| "type": "object", | |
| "properties": { | |
| "confirm_commands": { | |
| "default": false, | |
| "type": "boolean" | |
| } | |
| }, | |
| "additionalProperties": false | |
| }, | |
| "Captcha": { | |
| "type": "object", | |
| "properties": { | |
| "hcaptcha": { | |
| "default": null, | |
| "anyOf": [ | |
| { | |
| "$ref": "#/definitions/Hcaptcha" | |
| }, | |
| { | |
| "type": "null" | |
| } | |
| ] | |
| }, | |
| "turnstile": { | |
| "default": null, | |
| "anyOf": [ | |
| { | |
| "$ref": "#/definitions/Turnstile" | |
| }, | |
| { | |
| "type": "null" | |
| } | |
| ] | |
| } | |
| }, | |
| "additionalProperties": false | |
| }, | |
| "Cdn": { | |
| "type": "object", | |
| "required": [ | |
| "cache_size_gb" | |
| ], | |
| "properties": { | |
| "cache_size_gb": { | |
| "type": "integer", | |
| "format": "uint", | |
| "minimum": 0.0 | |
| } | |
| }, | |
| "additionalProperties": false | |
| }, | |
| "ClickHouse": { | |
| "type": "object", | |
| "oneOf": [ | |
| { | |
| "type": "object", | |
| "required": [ | |
| "kubernetes" | |
| ], | |
| "properties": { | |
| "kubernetes": { | |
| "type": "object" | |
| } | |
| }, | |
| "additionalProperties": false | |
| }, | |
| { | |
| "type": "object", | |
| "required": [ | |
| "managed" | |
| ], | |
| "properties": { | |
| "managed": { | |
| "type": "object", | |
| "required": [ | |
| "tier" | |
| ], | |
| "properties": { | |
| "tier": { | |
| "$ref": "#/definitions/ClickHouseManagedTier" | |
| } | |
| } | |
| } | |
| }, | |
| "additionalProperties": false | |
| } | |
| ], | |
| "additionalProperties": false | |
| }, | |
| "ClickHouseManagedTier": { | |
| "oneOf": [ | |
| { | |
| "type": "object", | |
| "required": [ | |
| "development" | |
| ], | |
| "properties": { | |
| "development": { | |
| "type": "object", | |
| "additionalProperties": false | |
| } | |
| }, | |
| "additionalProperties": false | |
| }, | |
| { | |
| "type": "object", | |
| "required": [ | |
| "production" | |
| ], | |
| "properties": { | |
| "production": { | |
| "type": "object", | |
| "required": [ | |
| "max_total_memory_gb", | |
| "min_total_memory_gb" | |
| ], | |
| "properties": { | |
| "max_total_memory_gb": { | |
| "type": "integer", | |
| "format": "uint", | |
| "minimum": 0.0 | |
| }, | |
| "min_total_memory_gb": { | |
| "type": "integer", | |
| "format": "uint", | |
| "minimum": 0.0 | |
| } | |
| }, | |
| "additionalProperties": false | |
| } | |
| }, | |
| "additionalProperties": false | |
| } | |
| ] | |
| }, | |
| "CloudflareAccess": { | |
| "type": "object", | |
| "required": [ | |
| "groups", | |
| "services" | |
| ], | |
| "properties": { | |
| "groups": { | |
| "$ref": "#/definitions/CloudflareAccessGroups" | |
| }, | |
| "services": { | |
| "$ref": "#/definitions/CloudflareAccessServices" | |
| } | |
| }, | |
| "additionalProperties": false | |
| }, | |
| "CloudflareAccessGroups": { | |
| "type": "object", | |
| "required": [ | |
| "engineering" | |
| ], | |
| "properties": { | |
| "engineering": { | |
| "type": "string" | |
| } | |
| }, | |
| "additionalProperties": false | |
| }, | |
| "CloudflareAccessServices": { | |
| "type": "object", | |
| "required": [ | |
| "grafana" | |
| ], | |
| "properties": { | |
| "grafana": { | |
| "type": "string" | |
| } | |
| }, | |
| "additionalProperties": false | |
| }, | |
| "Cluster": { | |
| "type": "object", | |
| "oneOf": [ | |
| { | |
| "type": "object", | |
| "required": [ | |
| "single_node" | |
| ], | |
| "properties": { | |
| "single_node": { | |
| "type": "object", | |
| "required": [ | |
| "public_ip" | |
| ], | |
| "properties": { | |
| "api_http_port": { | |
| "description": "Port to expose API HTTP interface. Exposed on public IP.", | |
| "default": 80, | |
| "type": "integer", | |
| "format": "uint16", | |
| "minimum": 0.0 | |
| }, | |
| "api_https_port": { | |
| "description": "Port to expose API HTTPS interface. Exposed on public IP.", | |
| "default": 443, | |
| "type": [ | |
| "integer", | |
| "null" | |
| ], | |
| "format": "uint16", | |
| "minimum": 0.0 | |
| }, | |
| "limit_resources": { | |
| "description": "Enable restricting the resources for Kubernetes services.\n\nDisabled by default since this doesn't play well with development machines.", | |
| "default": false, | |
| "type": "boolean" | |
| }, | |
| "minio_port": { | |
| "description": "Port to expose Minio on. Exposed to localhost. Not used if DNS is enabled.", | |
| "default": 9000, | |
| "type": "integer", | |
| "format": "uint16", | |
| "minimum": 0.0 | |
| }, | |
| "public_ip": { | |
| "type": "string" | |
| }, | |
| "tunnel_port": { | |
| "description": "Port to expose the tunnel on. Exposed to localhost.", | |
| "default": 5000, | |
| "type": "integer", | |
| "format": "uint16", | |
| "minimum": 0.0 | |
| } | |
| }, | |
| "additionalProperties": false | |
| } | |
| }, | |
| "additionalProperties": false | |
| }, | |
| { | |
| "type": "object", | |
| "required": [ | |
| "distributed" | |
| ], | |
| "properties": { | |
| "distributed": { | |
| "type": "object", | |
| "additionalProperties": false | |
| } | |
| }, | |
| "additionalProperties": false | |
| } | |
| ], | |
| "required": [ | |
| "id" | |
| ], | |
| "properties": { | |
| "id": { | |
| "description": "Unique identifier for this cluster.\n\nShould not be changed.", | |
| "type": "string", | |
| "format": "uuid" | |
| } | |
| }, | |
| "additionalProperties": false | |
| }, | |
| "CockroachDB": { | |
| "type": "object", | |
| "oneOf": [ | |
| { | |
| "type": "object", | |
| "required": [ | |
| "kubernetes" | |
| ], | |
| "properties": { | |
| "kubernetes": { | |
| "type": "object" | |
| } | |
| }, | |
| "additionalProperties": false | |
| }, | |
| { | |
| "type": "object", | |
| "required": [ | |
| "managed" | |
| ], | |
| "properties": { | |
| "managed": { | |
| "type": "object", | |
| "required": [ | |
| "request_unit_limit", | |
| "spend_limit", | |
| "storage_limit" | |
| ], | |
| "properties": { | |
| "request_unit_limit": { | |
| "description": "CRDB Request Units. https://www.cockroachlabs.com/docs/cockroachcloud/architecture#request-unit-ru", | |
| "type": "integer", | |
| "format": "uint32", | |
| "minimum": 0.0 | |
| }, | |
| "spend_limit": { | |
| "description": "USD cents.", | |
| "type": "integer", | |
| "format": "uint32", | |
| "minimum": 0.0 | |
| }, | |
| "storage_limit": { | |
| "description": "Storage limit in MiB.", | |
| "type": "integer", | |
| "format": "uint32", | |
| "minimum": 0.0 | |
| } | |
| } | |
| } | |
| }, | |
| "additionalProperties": false | |
| } | |
| ], | |
| "additionalProperties": false | |
| }, | |
| "Dns": { | |
| "type": "object", | |
| "oneOf": [ | |
| { | |
| "type": "object", | |
| "required": [ | |
| "cloudflare" | |
| ], | |
| "properties": { | |
| "cloudflare": { | |
| "type": "object", | |
| "required": [ | |
| "account_id" | |
| ], | |
| "properties": { | |
| "access": { | |
| "anyOf": [ | |
| { | |
| "$ref": "#/definitions/CloudflareAccess" | |
| }, | |
| { | |
| "type": "null" | |
| } | |
| ] | |
| }, | |
| "account_id": { | |
| "type": "string" | |
| } | |
| }, | |
| "additionalProperties": false | |
| } | |
| }, | |
| "additionalProperties": false | |
| } | |
| ], | |
| "required": [ | |
| "domain" | |
| ], | |
| "properties": { | |
| "deprecated_subdomains": { | |
| "description": "If we should enable endpoints like `matchmaker.api.rivet.gg/v1`, which were replaced with `api.rivet.gg/matchmaker`.", | |
| "default": false, | |
| "type": "boolean" | |
| }, | |
| "domain": { | |
| "$ref": "#/definitions/DnsDomains" | |
| } | |
| }, | |
| "additionalProperties": false | |
| }, | |
| "DnsDomains": { | |
| "type": "object", | |
| "required": [ | |
| "cdn", | |
| "job", | |
| "main" | |
| ], | |
| "properties": { | |
| "cdn": { | |
| "description": "Will create DNS records for: - **.{domain.cdn}\n\nCannot be the same as `domain.main` or `domain.job`.", | |
| "type": "string" | |
| }, | |
| "job": { | |
| "description": "Will create DNS records for: - *.lobby.{region}.{domain.job}\n\nCan be the identical to `domain.main`.", | |
| "type": "string" | |
| }, | |
| "main": { | |
| "description": "Will create DNS records for: - api.{domain.main}", | |
| "type": "string" | |
| } | |
| }, | |
| "additionalProperties": false | |
| }, | |
| "Docker": { | |
| "type": "object", | |
| "required": [ | |
| "authenticate_all_docker_hub_pulls" | |
| ], | |
| "properties": { | |
| "authenticate_all_docker_hub_pulls": { | |
| "description": "Provides authentication for Docker when pulling public images.\n\nThis is useful to prevent hitting rate limits when pulling Docker images.\n\nSee [here](https://docs.docker.com/docker-hub/download-rate-limit) for more information on Docker Hub's rate limits.", | |
| "type": "boolean" | |
| }, | |
| "repository": { | |
| "description": "Docker repository to upload builds to. Must end in a slash.", | |
| "default": "ghcr.io/rivet-gg/", | |
| "type": "string" | |
| } | |
| }, | |
| "additionalProperties": false | |
| }, | |
| "DynamicServers": { | |
| "type": "object", | |
| "properties": { | |
| "build_delivery_method": { | |
| "default": "traffic_server", | |
| "allOf": [ | |
| { | |
| "$ref": "#/definitions/DynamicServersBuildDeliveryMethod" | |
| } | |
| ] | |
| } | |
| }, | |
| "additionalProperties": false | |
| }, | |
| "DynamicServersBuildDeliveryMethod": { | |
| "type": "string", | |
| "enum": [ | |
| "traffic_server", | |
| "s3_direct" | |
| ] | |
| }, | |
| "Email": { | |
| "type": "object", | |
| "oneOf": [ | |
| { | |
| "type": "object", | |
| "required": [ | |
| "sendgrid" | |
| ], | |
| "properties": { | |
| "sendgrid": { | |
| "type": "object", | |
| "additionalProperties": false | |
| } | |
| }, | |
| "additionalProperties": false | |
| } | |
| ], | |
| "additionalProperties": false | |
| }, | |
| "Fly": { | |
| "type": "object", | |
| "required": [ | |
| "organization_id", | |
| "region" | |
| ], | |
| "properties": { | |
| "organization_id": { | |
| "type": "string" | |
| }, | |
| "region": { | |
| "type": "string" | |
| } | |
| }, | |
| "additionalProperties": false | |
| }, | |
| "Hcaptcha": { | |
| "type": "object", | |
| "required": [ | |
| "site_key_fallback" | |
| ], | |
| "properties": { | |
| "site_key_fallback": { | |
| "type": "string" | |
| } | |
| }, | |
| "additionalProperties": false | |
| }, | |
| "Kubernetes": { | |
| "type": "object", | |
| "oneOf": [ | |
| { | |
| "type": "object", | |
| "required": [ | |
| "k3d" | |
| ], | |
| "properties": { | |
| "k3d": { | |
| "type": "object" | |
| } | |
| }, | |
| "additionalProperties": false | |
| }, | |
| { | |
| "type": "object", | |
| "required": [ | |
| "aws_eks" | |
| ], | |
| "properties": { | |
| "aws_eks": { | |
| "type": "object" | |
| } | |
| }, | |
| "additionalProperties": false | |
| } | |
| ], | |
| "properties": { | |
| "health_checks": { | |
| "default": null, | |
| "type": [ | |
| "boolean", | |
| "null" | |
| ] | |
| } | |
| }, | |
| "additionalProperties": false | |
| }, | |
| "Nomad": { | |
| "type": "object", | |
| "properties": { | |
| "health_checks": { | |
| "type": [ | |
| "boolean", | |
| "null" | |
| ] | |
| } | |
| }, | |
| "additionalProperties": false | |
| }, | |
| "Pool": { | |
| "type": "object", | |
| "required": [ | |
| "count", | |
| "pool", | |
| "region", | |
| "size", | |
| "version" | |
| ], | |
| "properties": { | |
| "count": { | |
| "type": "integer", | |
| "format": "uint", | |
| "minimum": 0.0 | |
| }, | |
| "pool": { | |
| "type": "string" | |
| }, | |
| "region": { | |
| "type": "string" | |
| }, | |
| "size": { | |
| "type": "string" | |
| }, | |
| "version": { | |
| "type": "string" | |
| }, | |
| "volumes": { | |
| "default": {}, | |
| "type": "object", | |
| "additionalProperties": { | |
| "$ref": "#/definitions/Volume" | |
| } | |
| } | |
| }, | |
| "additionalProperties": false | |
| }, | |
| "Profanity": { | |
| "type": "object", | |
| "required": [ | |
| "filter_disable" | |
| ], | |
| "properties": { | |
| "filter_disable": { | |
| "type": "boolean" | |
| } | |
| }, | |
| "additionalProperties": false | |
| }, | |
| "Redis": { | |
| "type": "object", | |
| "oneOf": [ | |
| { | |
| "type": "object", | |
| "required": [ | |
| "kubernetes" | |
| ], | |
| "properties": { | |
| "kubernetes": { | |
| "type": "object" | |
| } | |
| }, | |
| "additionalProperties": false | |
| }, | |
| { | |
| "type": "object", | |
| "required": [ | |
| "aws" | |
| ], | |
| "properties": { | |
| "aws": { | |
| "type": "object" | |
| } | |
| }, | |
| "additionalProperties": false | |
| }, | |
| { | |
| "type": "object", | |
| "required": [ | |
| "aiven" | |
| ], | |
| "properties": { | |
| "aiven": { | |
| "type": "object", | |
| "required": [ | |
| "cloud", | |
| "plan_ephemeral", | |
| "plan_persistent", | |
| "project" | |
| ], | |
| "properties": { | |
| "cloud": { | |
| "type": "string" | |
| }, | |
| "plan_ephemeral": { | |
| "type": "string" | |
| }, | |
| "plan_persistent": { | |
| "type": "string" | |
| }, | |
| "project": { | |
| "type": "string" | |
| } | |
| } | |
| } | |
| }, | |
| "additionalProperties": false | |
| } | |
| ], | |
| "properties": { | |
| "replicas": { | |
| "default": 0, | |
| "type": "integer", | |
| "format": "uint", | |
| "minimum": 0.0 | |
| } | |
| }, | |
| "additionalProperties": false | |
| }, | |
| "Region": { | |
| "type": "object", | |
| "required": [ | |
| "id", | |
| "netnum", | |
| "provider", | |
| "provider_region" | |
| ], | |
| "properties": { | |
| "id": { | |
| "type": "string" | |
| }, | |
| "netnum": { | |
| "type": "integer", | |
| "format": "uint", | |
| "minimum": 0.0 | |
| }, | |
| "primary": { | |
| "default": false, | |
| "type": "boolean" | |
| }, | |
| "provider": { | |
| "type": "string" | |
| }, | |
| "provider_region": { | |
| "type": "string" | |
| } | |
| }, | |
| "additionalProperties": false | |
| }, | |
| "Rivet": { | |
| "type": "object", | |
| "properties": { | |
| "access": { | |
| "default": { | |
| "private": {} | |
| }, | |
| "allOf": [ | |
| { | |
| "$ref": "#/definitions/RivetAccess" | |
| } | |
| ] | |
| }, | |
| "api": { | |
| "default": { | |
| "error_verbose": false, | |
| "hub_origin": null, | |
| "hub_origin_regex": null | |
| }, | |
| "allOf": [ | |
| { | |
| "$ref": "#/definitions/Api" | |
| } | |
| ] | |
| }, | |
| "billing": { | |
| "default": null, | |
| "anyOf": [ | |
| { | |
| "$ref": "#/definitions/RivetBilling" | |
| }, | |
| { | |
| "type": "null" | |
| } | |
| ] | |
| }, | |
| "cdn": { | |
| "default": { | |
| "cache_size_gb": 10 | |
| }, | |
| "allOf": [ | |
| { | |
| "$ref": "#/definitions/Cdn" | |
| } | |
| ] | |
| }, | |
| "dynamic_servers": { | |
| "default": { | |
| "build_delivery_method": "traffic_server" | |
| }, | |
| "allOf": [ | |
| { | |
| "$ref": "#/definitions/DynamicServers" | |
| } | |
| ] | |
| }, | |
| "login": { | |
| "default": { | |
| "enable_admin": true | |
| }, | |
| "allOf": [ | |
| { | |
| "$ref": "#/definitions/RivetLogin" | |
| } | |
| ] | |
| }, | |
| "profanity": { | |
| "default": { | |
| "filter_disable": false | |
| }, | |
| "allOf": [ | |
| { | |
| "$ref": "#/definitions/Profanity" | |
| } | |
| ] | |
| }, | |
| "telemetry": { | |
| "default": { | |
| "disable": false | |
| }, | |
| "allOf": [ | |
| { | |
| "$ref": "#/definitions/Telemetry" | |
| } | |
| ] | |
| }, | |
| "test": { | |
| "default": null, | |
| "anyOf": [ | |
| { | |
| "$ref": "#/definitions/RivetTest" | |
| }, | |
| { | |
| "type": "null" | |
| } | |
| ] | |
| }, | |
| "upload": { | |
| "default": { | |
| "nsfw_error_verbose": false | |
| }, | |
| "allOf": [ | |
| { | |
| "$ref": "#/definitions/Upload" | |
| } | |
| ] | |
| } | |
| }, | |
| "additionalProperties": false | |
| }, | |
| "RivetAccess": { | |
| "oneOf": [ | |
| { | |
| "type": "object", | |
| "required": [ | |
| "private" | |
| ], | |
| "properties": { | |
| "private": { | |
| "type": "object", | |
| "additionalProperties": false | |
| } | |
| }, | |
| "additionalProperties": false | |
| }, | |
| { | |
| "type": "object", | |
| "required": [ | |
| "public" | |
| ], | |
| "properties": { | |
| "public": { | |
| "type": "object", | |
| "additionalProperties": false | |
| } | |
| }, | |
| "additionalProperties": false | |
| } | |
| ] | |
| }, | |
| "RivetBilling": { | |
| "type": "object", | |
| "required": [ | |
| "dynamic_servers_capacity_price_id" | |
| ], | |
| "properties": { | |
| "dynamic_servers_capacity_price_id": { | |
| "type": "string" | |
| } | |
| }, | |
| "additionalProperties": false | |
| }, | |
| "RivetLogin": { | |
| "type": "object", | |
| "required": [ | |
| "enable_admin" | |
| ], | |
| "properties": { | |
| "enable_admin": { | |
| "type": "boolean" | |
| } | |
| }, | |
| "additionalProperties": false | |
| }, | |
| "RivetTest": { | |
| "type": "object", | |
| "additionalProperties": false | |
| }, | |
| "Rust": { | |
| "type": "object", | |
| "properties": { | |
| "build_opt": { | |
| "default": "debug", | |
| "allOf": [ | |
| { | |
| "$ref": "#/definitions/RustBuildOpt" | |
| } | |
| ] | |
| }, | |
| "sccache": { | |
| "description": "Enables using sccache to speed up Docker builds since we cannot use a shared Docker file.\n\nDoes not support `bolt check`. This will cause `bolt up` to error on single node installations if sccache is not installed.", | |
| "default": null, | |
| "anyOf": [ | |
| { | |
| "$ref": "#/definitions/RustSccache" | |
| }, | |
| { | |
| "type": "null" | |
| } | |
| ] | |
| } | |
| }, | |
| "additionalProperties": false | |
| }, | |
| "RustBuildOpt": { | |
| "type": "string", | |
| "enum": [ | |
| "release", | |
| "debug" | |
| ] | |
| }, | |
| "RustSccache": { | |
| "type": "object", | |
| "required": [ | |
| "bucket", | |
| "endpoint", | |
| "region" | |
| ], | |
| "properties": { | |
| "bucket": { | |
| "type": "string" | |
| }, | |
| "endpoint": { | |
| "type": "string" | |
| }, | |
| "region": { | |
| "type": "string" | |
| } | |
| }, | |
| "additionalProperties": false | |
| }, | |
| "S3": { | |
| "type": "object", | |
| "properties": { | |
| "aws": { | |
| "anyOf": [ | |
| { | |
| "$ref": "#/definitions/S3Provider" | |
| }, | |
| { | |
| "type": "null" | |
| } | |
| ] | |
| }, | |
| "backblaze": { | |
| "anyOf": [ | |
| { | |
| "$ref": "#/definitions/S3Provider" | |
| }, | |
| { | |
| "type": "null" | |
| } | |
| ] | |
| }, | |
| "backfill": { | |
| "description": "Used to migrate data from an old S3 provider to the new one.", | |
| "type": [ | |
| "string", | |
| "null" | |
| ] | |
| }, | |
| "cors": { | |
| "default": { | |
| "allowed_origins": null | |
| }, | |
| "allOf": [ | |
| { | |
| "$ref": "#/definitions/S3Cors" | |
| } | |
| ] | |
| }, | |
| "minio": { | |
| "anyOf": [ | |
| { | |
| "$ref": "#/definitions/S3Provider" | |
| }, | |
| { | |
| "type": "null" | |
| } | |
| ] | |
| } | |
| }, | |
| "additionalProperties": false | |
| }, | |
| "S3Cors": { | |
| "type": "object", | |
| "properties": { | |
| "allowed_origins": { | |
| "type": [ | |
| "array", | |
| "null" | |
| ], | |
| "items": { | |
| "type": "string" | |
| } | |
| } | |
| }, | |
| "additionalProperties": false | |
| }, | |
| "S3Provider": { | |
| "type": "object", | |
| "properties": { | |
| "default": { | |
| "default": false, | |
| "type": "boolean" | |
| } | |
| }, | |
| "additionalProperties": false | |
| }, | |
| "Secrets": { | |
| "type": "object", | |
| "properties": { | |
| "1password": { | |
| "anyOf": [ | |
| { | |
| "$ref": "#/definitions/_1Password" | |
| }, | |
| { | |
| "type": "null" | |
| } | |
| ] | |
| }, | |
| "path": { | |
| "type": [ | |
| "string", | |
| "null" | |
| ] | |
| } | |
| }, | |
| "additionalProperties": false | |
| }, | |
| "Service": { | |
| "type": "object", | |
| "required": [ | |
| "count", | |
| "resources" | |
| ], | |
| "properties": { | |
| "count": { | |
| "type": "integer", | |
| "format": "uint", | |
| "minimum": 0.0 | |
| }, | |
| "resources": { | |
| "$ref": "#/definitions/ServiceResources" | |
| } | |
| }, | |
| "additionalProperties": false | |
| }, | |
| "ServiceResources": { | |
| "type": "object", | |
| "required": [ | |
| "cpu", | |
| "memory" | |
| ], | |
| "properties": { | |
| "cpu": { | |
| "type": "integer", | |
| "format": "uint", | |
| "minimum": 0.0 | |
| }, | |
| "memory": { | |
| "type": "integer", | |
| "format": "uint", | |
| "minimum": 0.0 | |
| } | |
| }, | |
| "additionalProperties": false | |
| }, | |
| "Telemetry": { | |
| "type": "object", | |
| "properties": { | |
| "disable": { | |
| "description": "Disables sending telemetry to Rivet.", | |
| "default": false, | |
| "type": "boolean" | |
| } | |
| }, | |
| "additionalProperties": false | |
| }, | |
| "Terraform": { | |
| "type": "object", | |
| "properties": { | |
| "backend": { | |
| "default": { | |
| "local": {} | |
| }, | |
| "allOf": [ | |
| { | |
| "$ref": "#/definitions/TerraformBackend" | |
| } | |
| ] | |
| } | |
| }, | |
| "additionalProperties": false | |
| }, | |
| "TerraformBackend": { | |
| "oneOf": [ | |
| { | |
| "type": "object", | |
| "required": [ | |
| "local" | |
| ], | |
| "properties": { | |
| "local": { | |
| "type": "object", | |
| "additionalProperties": false | |
| } | |
| }, | |
| "additionalProperties": false | |
| }, | |
| { | |
| "type": "object", | |
| "required": [ | |
| "postgres" | |
| ], | |
| "properties": { | |
| "postgres": { | |
| "type": "object", | |
| "additionalProperties": false | |
| } | |
| }, | |
| "additionalProperties": false | |
| } | |
| ] | |
| }, | |
| "Traefik": { | |
| "type": "object", | |
| "required": [ | |
| "access_logs", | |
| "log_level" | |
| ], | |
| "properties": { | |
| "access_logs": { | |
| "type": "boolean" | |
| }, | |
| "log_level": { | |
| "type": "string" | |
| } | |
| }, | |
| "additionalProperties": false | |
| }, | |
| "Turnstile": { | |
| "type": "object", | |
| "required": [ | |
| "site_key_cdn", | |
| "site_key_main" | |
| ], | |
| "properties": { | |
| "site_key_cdn": { | |
| "type": "string" | |
| }, | |
| "site_key_main": { | |
| "type": "string" | |
| } | |
| }, | |
| "additionalProperties": false | |
| }, | |
| "Upload": { | |
| "type": "object", | |
| "required": [ | |
| "nsfw_error_verbose" | |
| ], | |
| "properties": { | |
| "nsfw_error_verbose": { | |
| "type": "boolean" | |
| } | |
| }, | |
| "additionalProperties": false | |
| }, | |
| "Volume": { | |
| "type": "object", | |
| "required": [ | |
| "size" | |
| ], | |
| "properties": { | |
| "size": { | |
| "type": "integer", | |
| "format": "uint", | |
| "minimum": 0.0 | |
| } | |
| }, | |
| "additionalProperties": false | |
| }, | |
| "_1Password": { | |
| "type": "object", | |
| "required": [ | |
| "namespace_path", | |
| "secrets_path" | |
| ], | |
| "properties": { | |
| "namespace_path": { | |
| "type": "string" | |
| }, | |
| "secrets_path": { | |
| "type": "string" | |
| } | |
| }, | |
| "additionalProperties": false | |
| } | |
| } | |
| } |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment