lot more stuff

This commit is contained in:
Morten Olsen
2025-08-04 23:44:14 +02:00
parent daf0ea21bb
commit 757b2fcfac
185 changed files with 115899 additions and 1874 deletions

View File

@@ -0,0 +1,372 @@
{
"properties": {
"spec": {
"description": "Describes a collection of workload instances. See more details at: https://istio.io/docs/reference/config/networking/workload-group.html",
"properties": {
"metadata": {
"description": "Metadata that will be used for all corresponding `WorkloadEntries`.",
"properties": {
"annotations": {
"additionalProperties": {
"type": "string"
},
"maxProperties": 256,
"type": "object"
},
"labels": {
"additionalProperties": {
"type": "string"
},
"maxProperties": 256,
"type": "object"
}
},
"type": "object"
},
"probe": {
"description": "`ReadinessProbe` describes the configuration the user must provide for healthchecking on their workload.",
"oneOf": [
{
"not": {
"anyOf": [
{
"required": [
"httpGet"
]
},
{
"required": [
"tcpSocket"
]
},
{
"required": [
"exec"
]
}
]
}
},
{
"required": [
"httpGet"
]
},
{
"required": [
"tcpSocket"
]
},
{
"required": [
"exec"
]
}
],
"properties": {
"exec": {
"description": "Health is determined by how the command that is executed exited.",
"properties": {
"command": {
"description": "Command to run.",
"items": {
"type": "string",
"minLength": 1
},
"type": "array"
}
},
"required": [
"command"
],
"type": "object"
},
"failureThreshold": {
"description": "Minimum consecutive failures for the probe to be considered failed after having succeeded.",
"format": "int32",
"minimum": 0,
"type": "integer"
},
"httpGet": {
"description": "`httpGet` is performed to a given endpoint and the status/able to connect determines health.",
"properties": {
"host": {
"description": "Host name to connect to, defaults to the pod IP.",
"type": "string"
},
"httpHeaders": {
"description": "Headers the proxy will pass on to make the request.",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string",
"pattern": "^[-_A-Za-z0-9]+$"
},
"value": {
"type": "string"
}
}
},
"type": "array"
},
"path": {
"description": "Path to access on the HTTP server.",
"type": "string"
},
"port": {
"description": "Port on which the endpoint lives.",
"maximum": 4294967295,
"minimum": 0,
"type": "integer",
"x_kubernetes_validations": [
{
"message": "port must be between 1-65535",
"rule": "0 < self && self <= 65535"
}
]
},
"scheme": {
"type": "string",
"x_kubernetes_validations": [
{
"message": "scheme must be one of [HTTP, HTTPS]",
"rule": "self in ['', 'HTTP', 'HTTPS']"
}
]
}
},
"required": [
"port"
],
"type": "object"
},
"initialDelaySeconds": {
"description": "Number of seconds after the container has started before readiness probes are initiated.",
"format": "int32",
"minimum": 0,
"type": "integer"
},
"periodSeconds": {
"description": "How often (in seconds) to perform the probe.",
"format": "int32",
"minimum": 0,
"type": "integer"
},
"successThreshold": {
"description": "Minimum consecutive successes for the probe to be considered successful after having failed.",
"format": "int32",
"minimum": 0,
"type": "integer"
},
"tcpSocket": {
"description": "Health is determined by if the proxy is able to connect.",
"properties": {
"host": {
"type": "string"
},
"port": {
"maximum": 4294967295,
"minimum": 0,
"type": "integer",
"x_kubernetes_validations": [
{
"message": "port must be between 1-65535",
"rule": "0 < self && self <= 65535"
}
]
}
},
"required": [
"port"
],
"type": "object"
},
"timeoutSeconds": {
"description": "Number of seconds after which the probe times out.",
"format": "int32",
"minimum": 0,
"type": "integer"
}
},
"type": "object"
},
"template": {
"description": "Template to be used for the generation of `WorkloadEntry` resources that belong to this `WorkloadGroup`.",
"properties": {
"address": {
"description": "Address associated with the network endpoint without the port.",
"maxLength": 256,
"type": "string",
"x_kubernetes_validations": [
{
"message": "UDS must be an absolute path or abstract socket",
"rule": "self.startsWith('unix://') ? (self.substring(7,8) == '/' || self.substring(7,8) == '@') : true"
},
{
"message": "UDS may not be a dir",
"rule": "self.startsWith('unix://') ? !self.endsWith('/') : true"
}
]
},
"labels": {
"additionalProperties": {
"type": "string"
},
"description": "One or more labels associated with the endpoint.",
"maxProperties": 256,
"type": "object"
},
"locality": {
"description": "The locality associated with the endpoint.",
"maxLength": 2048,
"type": "string"
},
"network": {
"description": "Network enables Istio to group endpoints resident in the same L3 domain/network.",
"maxLength": 2048,
"type": "string"
},
"ports": {
"additionalProperties": {
"type": "integer",
"maximum": 4294967295,
"minimum": 0,
"x-kubernetes-validations": [
{
"rule": "0 < self && self <= 65535",
"message": "port must be between 1-65535"
}
]
},
"description": "Set of ports associated with the endpoint.",
"maxProperties": 128,
"type": "object",
"x_kubernetes_validations": [
{
"message": "port name must be valid",
"rule": "self.all(key, size(key) < 63 && key.matches('^[a-zA-Z0-9](?:[-a-zA-Z0-9]*[a-zA-Z0-9])?$'))"
}
]
},
"serviceAccount": {
"description": "The service account associated with the workload if a sidecar is present in the workload.",
"maxLength": 253,
"type": "string"
},
"weight": {
"description": "The load balancing weight associated with the endpoint.",
"maximum": 4294967295,
"minimum": 0,
"type": "integer"
}
},
"type": "object",
"x_kubernetes_validations": [
{
"message": "UDS may not include ports",
"rule": "(has(self.address) && self.address.startsWith('unix://')) ? !has(self.ports) : true"
}
]
}
},
"required": [
"template"
],
"type": "object"
},
"status": {
"properties": {
"conditions": {
"description": "Current service state of the resource.",
"items": {
"type": "object",
"properties": {
"lastProbeTime": {
"description": "Last time we probed the condition.",
"type": "string",
"format": "date-time"
},
"lastTransitionTime": {
"description": "Last time the condition transitioned from one status to another.",
"type": "string",
"format": "date-time"
},
"message": {
"description": "Human-readable message indicating details about last transition.",
"type": "string"
},
"reason": {
"description": "Unique, one-word, CamelCase reason for the condition's last transition.",
"type": "string"
},
"status": {
"description": "Status is the status of the condition.",
"type": "string"
},
"type": {
"description": "Type is the type of the condition.",
"type": "string"
}
}
},
"type": "array"
},
"observedGeneration": {
"anyOf": [
{
"type": "integer"
},
{
"type": "string"
}
],
"description": "Resource Generation to which the Reconciled Condition refers.",
"x_kubernetes_int_or_string": true
},
"validationMessages": {
"description": "Includes any errors or warnings detected by Istio's analyzers.",
"items": {
"type": "object",
"properties": {
"documentationUrl": {
"description": "A url pointing to the Istio documentation for this specific error type.",
"type": "string"
},
"level": {
"description": "Represents how severe a message is.\n\nValid Options: UNKNOWN, ERROR, WARNING, INFO",
"type": "string",
"enum": [
"UNKNOWN",
"ERROR",
"WARNING",
"INFO"
]
},
"type": {
"type": "object",
"properties": {
"code": {
"description": "A 7 character code matching `^IST[0-9]{4}$` intended to uniquely identify the message type.",
"type": "string"
},
"name": {
"description": "A human-readable name for the message type.",
"type": "string"
}
}
}
}
},
"type": "array"
}
},
"type": "object",
"x_kubernetes_preserve_unknown_fields": true
}
},
"required": [
"spec"
],
"type": "object"
}