Files

697 lines
18 KiB
JSON

{
"required": [
"apiVersion",
"kind",
"metadata",
"spec"
],
"additionalProperties": false,
"definitions": {
"InstallationInfrastructure": {
"additionalProperties": false,
"properties": {
"enabled": {
"type": "boolean"
},
"status": {
"additionalProperties": {
"type": "string"
},
"type": "object"
}
},
"type": "object"
},
"InstallationIngester": {
"additionalProperties": false,
"properties": {
"spec": {
"$ref": "#/definitions/V1Alpha1MoldingSpec"
},
"status": {
"$ref": "#/definitions/InstallationIngesterStatus"
}
},
"type": "object"
},
"InstallationIngesterStatus": {
"additionalProperties": false,
"properties": {
"addresses": {
"$ref": "#/definitions/InstallationIngesterStatusAddresses"
},
"config": {
"$ref": "#/definitions/V1Alpha1TypeConfig",
"description": "Configuration for the molding"
},
"env": {
"description": "Environment variables for the molding",
"additionalProperties": {
"type": "string"
},
"type": "object"
},
"extras": {
"description": "Extra information about the molding",
"additionalProperties": {
"type": "string"
},
"type": "object"
}
},
"type": "object"
},
"InstallationIngesterStatusAddresses": {
"additionalProperties": false,
"properties": {
"otlp": {
"items": {
"type": "string"
},
"type": [
"array",
"null"
]
}
},
"type": "object"
},
"InstallationMetaStore": {
"additionalProperties": false,
"properties": {
"kind": {
"$ref": "#/definitions/InstallationMetaStoreKind",
"description": "Kind of the meta store to use",
"examples": [
"postgres",
"sqlite"
]
},
"spec": {
"$ref": "#/definitions/V1Alpha1MoldingSpec",
"description": "Specification for the meta store"
},
"status": {
"$ref": "#/definitions/InstallationMetaStoreStatus",
"description": "Status of the meta store"
}
},
"type": "object"
},
"InstallationMetaStoreKind": {
"enum": [
"postgres",
"sqlite"
],
"type": "string"
},
"InstallationMetaStoreStatus": {
"additionalProperties": false,
"properties": {
"addresses": {
"$ref": "#/definitions/InstallationMetaStoreStatusAddresses",
"description": "Addresses of the meta store"
},
"config": {
"$ref": "#/definitions/V1Alpha1TypeConfig",
"description": "Configuration for the molding"
},
"env": {
"description": "Environment variables for the molding",
"additionalProperties": {
"type": "string"
},
"type": "object"
},
"extras": {
"description": "Extra information about the molding",
"additionalProperties": {
"type": "string"
},
"type": "object"
}
},
"type": "object"
},
"InstallationMetaStoreStatusAddresses": {
"additionalProperties": false,
"properties": {
"dsn": {
"description": "DSN addresses",
"items": {
"type": "string"
},
"type": [
"array",
"null"
]
}
},
"type": "object"
},
"InstallationSpec": {
"required": [
"deployment"
],
"additionalProperties": false,
"properties": {
"deployment": {
"$ref": "#/definitions/V1Alpha1TypeDeployment",
"description": "Deployment configuration for the platform"
},
"infrastructure": {
"$ref": "#/definitions/InstallationInfrastructure",
"description": "Infrastructure configuration for generating infrastructure manifests (e.g., Terraform)."
},
"ingester": {
"$ref": "#/definitions/InstallationIngester",
"description": "The configuration for the ingester molding"
},
"metastore": {
"$ref": "#/definitions/InstallationMetaStore",
"description": "The configuration for the meta store molding"
},
"o11y": {
"$ref": "#/definitions/V1Alpha1HanzoO11Y",
"description": "The configuration for the HanzoO11y molding"
},
"patches": {
"description": "Patch operations to apply to generated materials",
"items": {
"$ref": "#/definitions/V1Alpha1PatchEntry"
},
"type": "array"
},
"telemetrykeeper": {
"$ref": "#/definitions/InstallationTelemetryKeeper",
"description": "The configuration for the telemetry keeper molding"
},
"telemetrystore": {
"$ref": "#/definitions/InstallationTelemetryStore",
"description": "The configuration for the telemetry store molding"
}
},
"type": "object"
},
"InstallationTelemetryKeeper": {
"additionalProperties": false,
"properties": {
"kind": {
"$ref": "#/definitions/InstallationTelemetryKeeperKind",
"description": "Kind of the telemetry keeper to use",
"examples": [
"clickhousekeeper"
]
},
"spec": {
"$ref": "#/definitions/V1Alpha1MoldingSpec",
"description": "Specification for the telemetry keeper"
},
"status": {
"$ref": "#/definitions/InstallationTelemetryKeeperStatus",
"description": "Status of the telemetry keeper"
}
},
"type": "object"
},
"InstallationTelemetryKeeperKind": {
"enum": [
"clickhousekeeper"
],
"type": "string"
},
"InstallationTelemetryKeeperStatus": {
"additionalProperties": false,
"properties": {
"addresses": {
"$ref": "#/definitions/InstallationTelemetryKeeperStatusAddresses",
"description": "Addresses of the telemetry keeper"
},
"config": {
"$ref": "#/definitions/V1Alpha1TypeConfig",
"description": "Configuration for the molding"
},
"env": {
"description": "Environment variables for the molding",
"additionalProperties": {
"type": "string"
},
"type": "object"
},
"extras": {
"description": "Extra information about the molding",
"additionalProperties": {
"type": "string"
},
"type": "object"
}
},
"type": "object"
},
"InstallationTelemetryKeeperStatusAddresses": {
"additionalProperties": false,
"properties": {
"client": {
"description": "Client addresses",
"items": {
"type": "string"
},
"type": [
"array",
"null"
]
},
"raft": {
"description": "Raft addresses",
"items": {
"type": "string"
},
"type": [
"array",
"null"
]
}
},
"type": "object"
},
"InstallationTelemetryStore": {
"additionalProperties": false,
"properties": {
"kind": {
"$ref": "#/definitions/InstallationTelemetryStoreKind",
"description": "Kind of the telemetry store to use",
"examples": [
"clickhouse"
]
},
"spec": {
"$ref": "#/definitions/V1Alpha1MoldingSpec",
"description": "Specification for the telemetry store"
},
"status": {
"$ref": "#/definitions/InstallationTelemetryStoreStatus",
"description": "Status of the telemetry store"
}
},
"type": "object"
},
"InstallationTelemetryStoreKind": {
"enum": [
"clickhouse"
],
"type": "string"
},
"InstallationTelemetryStoreStatus": {
"additionalProperties": false,
"properties": {
"addresses": {
"$ref": "#/definitions/InstallationTelemetryStoreStatusAddresses",
"description": "Addresses of the telemetry store"
},
"config": {
"$ref": "#/definitions/V1Alpha1TypeConfig",
"description": "Configuration for the molding"
},
"env": {
"description": "Environment variables for the molding",
"additionalProperties": {
"type": "string"
},
"type": "object"
},
"extras": {
"description": "Extra information about the molding",
"additionalProperties": {
"type": "string"
},
"type": "object"
}
},
"type": "object"
},
"InstallationTelemetryStoreStatusAddresses": {
"additionalProperties": false,
"properties": {
"tcp": {
"description": "TCP addresses",
"items": {
"type": "string"
},
"type": [
"array",
"null"
]
}
},
"type": "object"
},
"V1Alpha1Flavor": {
"enum": [
"compose",
"swarm",
"binary",
"kustomize",
"helm",
"blueprint",
"stack",
"template",
"terraform"
],
"type": "string"
},
"V1Alpha1HanzoO11Y": {
"properties": {
"spec": {
"$ref": "#/definitions/V1Alpha1MoldingSpec"
},
"status": {
"$ref": "#/definitions/V1Alpha1HanzoO11YStatus"
}
},
"type": "object"
},
"V1Alpha1HanzoO11YStatus": {
"additionalProperties": false,
"properties": {
"addresses": {
"$ref": "#/definitions/V1Alpha1HanzoO11YStatusAddresses"
},
"config": {
"$ref": "#/definitions/V1Alpha1TypeConfig",
"description": "Configuration for the molding"
},
"env": {
"description": "Environment variables for the molding",
"additionalProperties": {
"type": "string"
},
"type": "object"
},
"extras": {
"description": "Extra information about the molding",
"additionalProperties": {
"type": "string"
},
"type": "object"
}
},
"type": "object"
},
"V1Alpha1HanzoO11YStatusAddresses": {
"properties": {
"apiserver": {
"items": {
"type": "string"
},
"type": [
"array",
"null"
]
},
"opamp": {
"items": {
"type": "string"
},
"type": [
"array",
"null"
]
}
},
"type": "object"
},
"V1Alpha1Kind": {
"enum": [
"Installation"
],
"type": "string"
},
"V1Alpha1Mode": {
"enum": [
"docker",
"systemd",
"kubernetes",
"ec2"
],
"type": "string"
},
"V1Alpha1MoldingSpec": {
"additionalProperties": false,
"properties": {
"cluster": {
"$ref": "#/definitions/V1Alpha1TypeCluster",
"description": "Cluster configuration for the molding"
},
"config": {
"$ref": "#/definitions/V1Alpha1TypeConfig",
"description": "Configuration for the molding"
},
"enabled": {
"description": "Whether the molding is enabled",
"default": true,
"type": [
"null",
"boolean"
]
},
"env": {
"description": "Environment variables for the molding",
"additionalProperties": {
"type": "string"
},
"type": "object"
},
"image": {
"description": "Container image of the molding",
"examples": [
"ghcr.io/hanzoai/o11y:latest"
],
"type": "string"
},
"version": {
"description": "The version of the molding to use",
"examples": [
"latest"
],
"type": "string"
}
},
"type": "object"
},
"V1Alpha1PatchEntry": {
"required": [
"target",
"operations"
],
"additionalProperties": false,
"properties": {
"operations": {
"description": "JSON Patch (RFC 6902) operations to apply. Used by the jsonpatch driver.",
"items": {
"$ref": "#/definitions/V1Alpha1PatchOperation"
},
"minItems": 1,
"type": [
"array",
"null"
]
},
"target": {
"description": "Target output file to patch",
"examples": [
"compose.yaml",
"signoz/deployment.yaml",
"values.yaml",
"telemetrystore/telemtrystore-clickhouse-0-*.yaml"
],
"minLength": 1,
"type": "string"
},
"type": {
"description": "Patch driver type. Defaults to jsonpatch.",
"default": "jsonpatch",
"examples": [
"jsonpatch"
],
"enum": [
"",
"jsonpatch"
],
"type": "string"
}
},
"type": "object"
},
"V1Alpha1PatchOperation": {
"required": [
"op",
"path"
],
"additionalProperties": false,
"properties": {
"from": {
"description": "Source JSON Pointer for move and copy operations",
"examples": [
"/services/clickhouse/old_field"
],
"pattern": "^/",
"type": "string"
},
"op": {
"description": "JSON Patch (RFC 6902) operation type",
"enum": [
"add",
"remove",
"replace",
"move",
"copy",
"test"
],
"type": "string"
},
"path": {
"description": "JSON Pointer (RFC 6901) to the target location",
"examples": [
"/services/clickhouse/mem_limit"
],
"pattern": "^/",
"type": "string"
},
"value": {
"description": "Value for add, replace, or test operations"
}
},
"type": "object"
},
"V1Alpha1Platform": {
"enum": [
"render",
"coolify",
"railway",
"ecs",
"aws",
"gcp",
"azure"
],
"type": "string"
},
"V1Alpha1Status": {
"additionalProperties": false,
"properties": {
"checksum": {
"description": "Checksum of the casting file",
"type": "string"
}
},
"type": "object"
},
"V1Alpha1TypeCluster": {
"additionalProperties": false,
"properties": {
"replicas": {
"description": "Number of replicas for the molding.",
"examples": [
1
],
"minimum": 0,
"type": [
"null",
"integer"
]
},
"shards": {
"description": "Number of shards for the molding",
"examples": [
1
],
"minimum": 1,
"type": [
"null",
"integer"
]
}
},
"type": "object"
},
"V1Alpha1TypeConfig": {
"additionalProperties": false,
"properties": {
"data": {
"description": "Configuration data as key-value pairs.",
"additionalProperties": {
"type": "string"
},
"type": "object"
}
},
"type": "object"
},
"V1Alpha1TypeDeployment": {
"additionalProperties": false,
"properties": {
"flavor": {
"$ref": "#/definitions/V1Alpha1Flavor",
"description": "Flavor of mode for the deployment"
},
"mode": {
"$ref": "#/definitions/V1Alpha1Mode",
"description": "Type of installation method"
},
"platform": {
"$ref": "#/definitions/V1Alpha1Platform",
"description": "Provider where an installation runs on"
}
},
"type": "object"
},
"V1Alpha1TypeMetadata": {
"properties": {
"annotations": {
"description": "Unstructured key-value map for arbitrary metadata",
"additionalProperties": {
"type": "string"
},
"type": "object"
},
"name": {
"description": "The name of this installation",
"examples": [
"o11y-dev"
],
"type": "string"
}
},
"type": "object"
}
},
"properties": {
"apiVersion": {
"description": "API Version of the configuration schema.",
"default": "v1alpha1",
"examples": [
"v1alpha1"
],
"enum": [
"v1alpha1"
],
"type": "string"
},
"kind": {
"$ref": "#/definitions/V1Alpha1Kind",
"description": "Kind of the casting resource."
},
"metadata": {
"$ref": "#/definitions/V1Alpha1TypeMetadata",
"description": "Metadata of the casting configuration"
},
"spec": {
"$ref": "#/definitions/InstallationSpec",
"description": "Installation specification"
},
"status": {
"$ref": "#/definitions/V1Alpha1Status",
"description": "Status of the casting"
}
},
"type": "object"
}