158 lines
3.4 KiB
Plaintext
158 lines
3.4 KiB
Plaintext
|
|
# Services Contracts
|
||
|
|
#
|
||
|
|
# Type definitions for platform service registry.
|
||
|
|
|
||
|
|
{
|
||
|
|
ServiceType = [| 'platform, 'infrastructure, 'utility |],
|
||
|
|
ServiceCategory = [| 'orchestration, 'auth, 'dns, 'git, 'registry, 'api, 'ui, 'monitoring |],
|
||
|
|
DeploymentMode = [| 'binary, 'docker, 'docker_compose, 'kubernetes, 'remote |],
|
||
|
|
RestartPolicy = [| 'no, 'always, 'on_failure, 'unless_stopped |],
|
||
|
|
HealthCheckType = [| 'http, 'tcp, 'command, 'file, 'none |],
|
||
|
|
HttpMethod = [| 'GET, 'POST, 'HEAD |],
|
||
|
|
ServiceStatus = [| 'running, 'stopped, 'failed, 'starting, 'stopping, 'unknown |],
|
||
|
|
HealthStatus = [| 'healthy, 'unhealthy, 'unknown |],
|
||
|
|
ServiceOperationType = [| 'start, 'stop, 'restart, 'reload, 'health_check |],
|
||
|
|
|
||
|
|
ServiceRegistry = {
|
||
|
|
services,
|
||
|
|
},
|
||
|
|
|
||
|
|
ServiceDefinition = {
|
||
|
|
name | String,
|
||
|
|
type | ServiceType,
|
||
|
|
category | ServiceCategory,
|
||
|
|
description | optional | String,
|
||
|
|
required_for,
|
||
|
|
dependencies,
|
||
|
|
conflicts,
|
||
|
|
deployment,
|
||
|
|
health_check,
|
||
|
|
startup,
|
||
|
|
resources | optional,
|
||
|
|
},
|
||
|
|
|
||
|
|
ServiceDeployment = {
|
||
|
|
mode | DeploymentMode,
|
||
|
|
binary | optional,
|
||
|
|
docker | optional,
|
||
|
|
docker_compose | optional,
|
||
|
|
kubernetes | optional,
|
||
|
|
remote | optional,
|
||
|
|
},
|
||
|
|
|
||
|
|
BinaryDeployment = {
|
||
|
|
binary_path | String,
|
||
|
|
args,
|
||
|
|
working_dir | optional | String,
|
||
|
|
env,
|
||
|
|
user | optional | String,
|
||
|
|
group | optional | String,
|
||
|
|
},
|
||
|
|
|
||
|
|
DockerDeployment = {
|
||
|
|
image | String,
|
||
|
|
container_name | String,
|
||
|
|
ports,
|
||
|
|
volumes,
|
||
|
|
environment,
|
||
|
|
command | optional,
|
||
|
|
networks,
|
||
|
|
restart_policy | RestartPolicy,
|
||
|
|
},
|
||
|
|
|
||
|
|
DockerComposeDeployment = {
|
||
|
|
compose_file | String,
|
||
|
|
service_name | String,
|
||
|
|
project_name | optional | String,
|
||
|
|
env_file | optional | String,
|
||
|
|
},
|
||
|
|
|
||
|
|
KubernetesDeployment = {
|
||
|
|
namespace | String,
|
||
|
|
deployment_name | String,
|
||
|
|
kubeconfig | optional | String,
|
||
|
|
manifests_path | optional | String,
|
||
|
|
helm_chart | optional,
|
||
|
|
},
|
||
|
|
|
||
|
|
HelmChart = {
|
||
|
|
chart | String,
|
||
|
|
release_name | String,
|
||
|
|
repo_url | optional | String,
|
||
|
|
version | optional | String,
|
||
|
|
values_file | optional | String,
|
||
|
|
},
|
||
|
|
|
||
|
|
RemoteDeployment = {
|
||
|
|
endpoint | String,
|
||
|
|
tls_enabled | Bool,
|
||
|
|
auth_token_path | optional | String,
|
||
|
|
cert_path | optional | String,
|
||
|
|
},
|
||
|
|
|
||
|
|
HealthCheck = {
|
||
|
|
type | HealthCheckType,
|
||
|
|
http | optional,
|
||
|
|
tcp | optional,
|
||
|
|
command | optional,
|
||
|
|
file | optional,
|
||
|
|
interval | Number,
|
||
|
|
retries | Number,
|
||
|
|
timeout | Number,
|
||
|
|
},
|
||
|
|
|
||
|
|
HttpHealthCheck = {
|
||
|
|
endpoint | String,
|
||
|
|
expected_status | Number,
|
||
|
|
method | HttpMethod,
|
||
|
|
headers,
|
||
|
|
},
|
||
|
|
|
||
|
|
TcpHealthCheck = {
|
||
|
|
host | String,
|
||
|
|
port | Number,
|
||
|
|
},
|
||
|
|
|
||
|
|
CommandHealthCheck = {
|
||
|
|
command | String,
|
||
|
|
expected_exit_code | Number,
|
||
|
|
},
|
||
|
|
|
||
|
|
FileHealthCheck = {
|
||
|
|
path | String,
|
||
|
|
must_exist | Bool,
|
||
|
|
},
|
||
|
|
|
||
|
|
StartupConfig = {
|
||
|
|
auto_start | Bool,
|
||
|
|
start_timeout | Number,
|
||
|
|
start_order | Number,
|
||
|
|
restart_on_failure | Bool,
|
||
|
|
max_restarts | Number,
|
||
|
|
},
|
||
|
|
|
||
|
|
ResourceLimits = {
|
||
|
|
cpu_limit | optional | String,
|
||
|
|
memory_limit | optional | String,
|
||
|
|
disk_limit | optional | String,
|
||
|
|
},
|
||
|
|
|
||
|
|
ServiceState = {
|
||
|
|
name | String,
|
||
|
|
status | ServiceStatus,
|
||
|
|
pid | optional | Number,
|
||
|
|
started_at | optional | String,
|
||
|
|
uptime | optional | Number,
|
||
|
|
health_status | HealthStatus,
|
||
|
|
last_health_check | optional | String,
|
||
|
|
restart_count | Number,
|
||
|
|
},
|
||
|
|
|
||
|
|
ServiceOperation = {
|
||
|
|
service_name | String,
|
||
|
|
operation | ServiceOperationType,
|
||
|
|
force | Bool,
|
||
|
|
timeout | optional | Number,
|
||
|
|
},
|
||
|
|
}
|