Files
katenary/katenary.json

406 lines
8.9 KiB
JSON
Raw Permalink Normal View History

{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$defs": {
"ConfigMapFiles": {
"items": {
"type": "string"
},
"type": "array"
},
"CronJob": {
"properties": {
"image": {
"type": "string"
},
"command": {
"type": "string"
},
"schedule": {
"type": "string"
},
"rbac": {
"type": "boolean"
}
},
"additionalProperties": false,
"type": "object"
},
"Dependency": {
"properties": {
"values": {
"type": "object"
},
"name": {
"type": "string"
},
"version": {
"type": "string"
},
"repository": {
"type": "string"
},
"alias": {
"type": "string"
}
},
"additionalProperties": false,
"type": "object",
"required": [
"name",
"version",
"repository"
]
},
"EnvFrom": {
"items": {
"type": "string"
},
"type": "array"
},
"ExchangeVolume": {
"properties": {
"name": {
"type": "string"
},
"mountPath": {
"type": "string"
},
"type": {
"type": "string"
},
"init": {
"type": "string"
}
},
"additionalProperties": false,
"type": "object",
"required": [
"name",
"mountPath"
]
},
"ExecAction": {
"properties": {
"command": {
"items": {
"type": "string"
},
"type": "array"
}
},
"additionalProperties": false,
"type": "object"
},
"GRPCAction": {
"properties": {
"port": {
"type": "integer"
},
"service": {
"type": "string"
}
},
"additionalProperties": false,
"type": "object",
"required": [
"port",
"service"
]
},
"HTTPGetAction": {
"properties": {
"path": {
"type": "string"
},
"port": {
"$ref": "#/$defs/IntOrString"
},
"host": {
"type": "string"
},
"scheme": {
"type": "string"
},
"httpHeaders": {
"items": {
"$ref": "#/$defs/HTTPHeader"
},
"type": "array"
}
},
"additionalProperties": false,
"type": "object",
"required": [
"port"
]
},
"HTTPHeader": {
"properties": {
"name": {
"type": "string"
},
"value": {
"type": "string"
}
},
"additionalProperties": false,
"type": "object",
"required": [
"name",
"value"
]
},
"HealthCheck": {
"properties": {
"livenessProbe": {
"$ref": "#/$defs/Probe"
},
"readinessProbe": {
"$ref": "#/$defs/Probe"
}
},
"additionalProperties": false,
"type": "object"
},
"Ingress": {
"properties": {
"port": {
"type": "integer"
},
"annotations": {
"oneOf": [
{
"additionalProperties": {
"type": "string"
},
"type": "object"
},
{
"type": "null"
}
]
},
"hostname": {
"type": "string"
},
"path": {
"type": "string"
},
"class": {
"type": "string"
},
"enabled": {
"type": "boolean"
},
"tls": {
"$ref": "#/$defs/TLS"
}
},
"additionalProperties": false,
"type": "object"
},
"IntOrString": {
"oneOf": [
{
"type": "integer"
},
{
"type": "string"
}
]
},
"MapEnv": {
"additionalProperties": {
"type": "string"
},
"type": "object"
},
"Ports": {
"items": {
"type": "integer"
},
"type": "array"
},
"Probe": {
"properties": {
"exec": {
"$ref": "#/$defs/ExecAction"
},
"httpGet": {
"$ref": "#/$defs/HTTPGetAction"
},
"tcpSocket": {
"$ref": "#/$defs/TCPSocketAction"
},
"grpc": {
"$ref": "#/$defs/GRPCAction"
},
"initialDelaySeconds": {
"type": "integer"
},
"timeoutSeconds": {
"type": "integer"
},
"periodSeconds": {
"type": "integer"
},
"successThreshold": {
"type": "integer"
},
"failureThreshold": {
"type": "integer"
},
"terminationGracePeriodSeconds": {
"type": "integer"
}
},
"additionalProperties": false,
"type": "object"
},
"Secrets": {
"items": {
"type": "string"
},
"type": "array"
},
"Service": {
"properties": {
"main-app": {
"type": "boolean",
"title": "Is this service the main application"
},
"values": {
"items": true,
"type": "array",
"description": "Environment variables to be set in values.yaml with or without a description"
},
"secrets": {
"$ref": "#/$defs/Secrets",
"title": "Secrets",
"description": "Environment variables to be set as secrets"
},
"ports": {
"$ref": "#/$defs/Ports",
"title": "Ports",
"description": "Ports to be exposed in services"
},
"ingress": {
"$ref": "#/$defs/Ingress",
"title": "Ingress",
"description": "Ingress configuration"
},
"health-check": {
"$ref": "#/$defs/HealthCheck",
"title": "Health Check",
"description": "Health check configuration that respects the kubernetes api"
},
"same-pod": {
"type": "string",
"title": "Same Pod",
"description": "Service that should be in the same pod"
},
"description": {
"type": "string",
"title": "Description",
"description": "Description of the service that will be injected in the values.yaml file"
},
"ignore": {
"type": "boolean",
"title": "Ignore",
"description": "Ignore the service in the conversion"
},
"dependencies": {
"items": {
"$ref": "#/$defs/Dependency"
},
"type": "array",
"title": "Dependencies",
"description": "Services that should be injected in the Chart.yaml file"
},
"configmap-files": {
"$ref": "#/$defs/ConfigMapFiles",
"title": "ConfigMap Files",
"description": "Files that should be injected as ConfigMap"
},
"map-env": {
"$ref": "#/$defs/MapEnv",
"title": "Map Env",
"description": "Map environment variables to another value"
},
"cron-job": {
"$ref": "#/$defs/CronJob",
"title": "Cron Job",
"description": "Cron Job configuration"
},
"env-from": {
"$ref": "#/$defs/EnvFrom",
"title": "Env From",
"description": "Inject environment variables from another service"
},
"exchange-volumes": {
"items": {
"$ref": "#/$defs/ExchangeVolume"
},
"type": "array",
"title": "Exchange Volumes",
"description": "Exchange volumes between services"
},
"values-from": {
"$ref": "#/$defs/ValueFrom",
"title": "Values From",
"description": "Inject values from another service (secret or configmap environment variables)"
}
},
"additionalProperties": false,
"type": "object"
},
"StringOrMap": {
"oneOf": [
{
"type": "string"
},
{
"additionalProperties": {
"type": "string"
},
"type": "object"
}
]
},
"TCPSocketAction": {
"properties": {
"port": {
"$ref": "#/$defs/IntOrString"
},
"host": {
"type": "string"
}
},
"additionalProperties": false,
"type": "object",
"required": [
"port"
]
},
"TLS": {
"properties": {
"enabled": {
"type": "boolean"
}
},
"additionalProperties": false,
"type": "object"
},
"ValueFrom": {
"additionalProperties": {
"type": "string"
},
"type": "object"
}
},
"additionalProperties": {
"$ref": "#/$defs/Service"
},
"type": "object"
}