UNPKG

@soft-stech/argo-rollouts

Version:
789 lines (788 loc) 93.2 kB
import { z } from "zod"; import { iObjectMetaSchema } from "@soft-stech/apimachinery/apis/meta/v1/ObjectMeta.schema"; export const IClusterAnalysisTemplateSchema = z.object({ "apiVersion": z.literal("argoproj.io/v1alpha1"), "kind": z.literal("ClusterAnalysisTemplate"), "metadata": iObjectMetaSchema.optional(), "spec": z.object({ "args": z.array(z.object({ "name": z.string(), "value": z.string().optional(), "valueFrom": z.object({ "fieldRef": z.object({ "fieldPath": z.string() }).optional(), "secretKeyRef": z.object({ "key": z.string(), "name": z.string() }).optional() }).optional() })).optional(), "dryRun": z.array(z.object({ "metricName": z.string() })).optional(), "measurementRetention": z.array(z.object({ /** * * @format int32 */ "limit": z.number(), "metricName": z.string() })).optional(), "metrics": z.array(z.object({ "consecutiveErrorLimit": z.union([z.number(), z.string()]).optional(), "count": z.union([z.number(), z.string()]).optional(), "failureCondition": z.string().optional(), "failureLimit": z.union([z.number(), z.string()]).optional(), "inconclusiveLimit": z.union([z.number(), z.string()]).optional(), "initialDelay": z.string().optional(), "interval": z.string().optional(), "name": z.string(), "provider": z.object({ "cloudWatch": z.object({ "interval": z.string().optional(), "metricDataQueries": z.array(z.object({ "expression": z.string().optional(), "id": z.string().optional(), "label": z.string().optional(), "metricStat": z.object({ "metric": z.object({ "dimensions": z.array(z.object({ "name": z.string().optional(), "value": z.string().optional() })).optional(), "metricName": z.string().optional(), "namespace": z.string().optional() }).optional(), "period": z.union([z.number(), z.string()]).optional(), "stat": z.string().optional(), "unit": z.string().optional() }).optional(), "period": z.union([z.number(), z.string()]).optional(), "returnData": z.boolean().optional() })) }).optional(), "datadog": z.object({ "apiVersion": z.string().optional(), "interval": z.string().optional(), "query": z.string() }).optional(), "graphite": z.object({ "address": z.string().optional(), "query": z.string().optional() }).optional(), "influxdb": z.object({ "profile": z.string().optional(), "query": z.string().optional() }).optional(), "job": z.object({ "metadata": z.object({ "annotations": z.record(z.string()).optional(), "labels": z.record(z.string()).optional() }).optional(), "spec": z.object({ /** * * @format int64 */ "activeDeadlineSeconds": z.number().optional(), /** * * @format int32 */ "backoffLimit": z.number().optional(), "completionMode": z.string().optional(), /** * * @format int32 */ "completions": z.number().optional(), "manualSelector": z.boolean().optional(), /** * * @format int32 */ "parallelism": z.number().optional(), "podFailurePolicy": z.object({ "rules": z.array(z.object({ "action": z.string(), "onExitCodes": z.object({ "containerName": z.string().optional(), "operator": z.string(), "values": z.array(z.number()) }).optional(), "onPodConditions": z.array(z.object({ "status": z.string(), "type": z.string() })) })) }).optional(), "selector": z.object({ "matchExpressions": z.array(z.object({ "key": z.string(), "operator": z.string(), "values": z.array(z.string()).optional() })).optional(), "matchLabels": z.record(z.string()).optional() }).optional(), "suspend": z.boolean().optional(), "template": z.object({ "metadata": z.object({ "annotations": z.record(z.string()).optional(), "labels": z.record(z.string()).optional() }).optional(), "spec": z.object({ /** * * @format int64 */ "activeDeadlineSeconds": z.number().optional(), "affinity": z.object({ "nodeAffinity": z.object({ "preferredDuringSchedulingIgnoredDuringExecution": z.array(z.object({ "preference": z.object({ "matchExpressions": z.array(z.object({ "key": z.string(), "operator": z.string(), "values": z.array(z.string()).optional() })).optional(), "matchFields": z.array(z.object({ "key": z.string(), "operator": z.string(), "values": z.array(z.string()).optional() })).optional() }), /** * * @format int32 */ "weight": z.number() })).optional(), "requiredDuringSchedulingIgnoredDuringExecution": z.object({ "nodeSelectorTerms": z.array(z.object({ "matchExpressions": z.array(z.object({ "key": z.string(), "operator": z.string(), "values": z.array(z.string()).optional() })).optional(), "matchFields": z.array(z.object({ "key": z.string(), "operator": z.string(), "values": z.array(z.string()).optional() })).optional() })) }).optional() }).optional(), "podAffinity": z.object({ "preferredDuringSchedulingIgnoredDuringExecution": z.array(z.object({ "podAffinityTerm": z.object({ "labelSelector": z.object({ "matchExpressions": z.array(z.object({ "key": z.string(), "operator": z.string(), "values": z.array(z.string()).optional() })).optional(), "matchLabels": z.record(z.string()).optional() }).optional(), "namespaceSelector": z.object({ "matchExpressions": z.array(z.object({ "key": z.string(), "operator": z.string(), "values": z.array(z.string()).optional() })).optional(), "matchLabels": z.record(z.string()).optional() }).optional(), "namespaces": z.array(z.string()).optional(), "topologyKey": z.string() }), /** * * @format int32 */ "weight": z.number() })).optional(), "requiredDuringSchedulingIgnoredDuringExecution": z.array(z.object({ "labelSelector": z.object({ "matchExpressions": z.array(z.object({ "key": z.string(), "operator": z.string(), "values": z.array(z.string()).optional() })).optional(), "matchLabels": z.record(z.string()).optional() }).optional(), "namespaceSelector": z.object({ "matchExpressions": z.array(z.object({ "key": z.string(), "operator": z.string(), "values": z.array(z.string()).optional() })).optional(), "matchLabels": z.record(z.string()).optional() }).optional(), "namespaces": z.array(z.string()).optional(), "topologyKey": z.string() })).optional() }).optional(), "podAntiAffinity": z.object({ "preferredDuringSchedulingIgnoredDuringExecution": z.array(z.object({ "podAffinityTerm": z.object({ "labelSelector": z.object({ "matchExpressions": z.array(z.object({ "key": z.string(), "operator": z.string(), "values": z.array(z.string()).optional() })).optional(), "matchLabels": z.record(z.string()).optional() }).optional(), "namespaceSelector": z.object({ "matchExpressions": z.array(z.object({ "key": z.string(), "operator": z.string(), "values": z.array(z.string()).optional() })).optional(), "matchLabels": z.record(z.string()).optional() }).optional(), "namespaces": z.array(z.string()).optional(), "topologyKey": z.string() }), /** * * @format int32 */ "weight": z.number() })).optional(), "requiredDuringSchedulingIgnoredDuringExecution": z.array(z.object({ "labelSelector": z.object({ "matchExpressions": z.array(z.object({ "key": z.string(), "operator": z.string(), "values": z.array(z.string()).optional() })).optional(), "matchLabels": z.record(z.string()).optional() }).optional(), "namespaceSelector": z.object({ "matchExpressions": z.array(z.object({ "key": z.string(), "operator": z.string(), "values": z.array(z.string()).optional() })).optional(), "matchLabels": z.record(z.string()).optional() }).optional(), "namespaces": z.array(z.string()).optional(), "topologyKey": z.string() })).optional() }).optional() }).optional(), "automountServiceAccountToken": z.boolean().optional(), "containers": z.array(z.object({ "args": z.array(z.string()).optional(), "command": z.array(z.string()).optional(), "env": z.array(z.object({ "name": z.string(), "value": z.string().optional(), "valueFrom": z.object({ "configMapKeyRef": z.object({ "key": z.string(), "name": z.string().optional(), "optional": z.boolean().optional() }).optional(), "fieldRef": z.object({ "apiVersion": z.string().optional(), "fieldPath": z.string() }).optional(), "resourceFieldRef": z.object({ "containerName": z.string().optional(), /** * * @schema union([z.number(), z.string().regex(/^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$/)]).optional() */ "divisor": z.union([z.number(), z.string().regex(/^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$/)]).optional(), "resource": z.string() }).optional(), "secretKeyRef": z.object({ "key": z.string(), "name": z.string().optional(), "optional": z.boolean().optional() }).optional() }).optional() })).optional(), "envFrom": z.array(z.object({ "configMapRef": z.object({ "name": z.string().optional(), "optional": z.boolean().optional() }).optional(), "prefix": z.string().optional(), "secretRef": z.object({ "name": z.string().optional(), "optional": z.boolean().optional() }).optional() })).optional(), "image": z.string().optional(), "imagePullPolicy": z.string().optional(), "lifecycle": z.object({ "postStart": z.object({ "exec": z.object({ "command": z.array(z.string()).optional() }).optional(), "httpGet": z.object({ "host": z.string().optional(), "httpHeaders": z.array(z.object({ "name": z.string(), "value": z.string() })).optional(), "path": z.string().optional(), "port": z.union([z.number(), z.string()]), "scheme": z.string().optional() }).optional(), "tcpSocket": z.object({ "host": z.string().optional(), "port": z.union([z.number(), z.string()]) }).optional() }).optional(), "preStop": z.object({ "exec": z.object({ "command": z.array(z.string()).optional() }).optional(), "httpGet": z.object({ "host": z.string().optional(), "httpHeaders": z.array(z.object({ "name": z.string(), "value": z.string() })).optional(), "path": z.string().optional(), "port": z.union([z.number(), z.string()]), "scheme": z.string().optional() }).optional(), "tcpSocket": z.object({ "host": z.string().optional(), "port": z.union([z.number(), z.string()]) }).optional() }).optional() }).optional(), "livenessProbe": z.object({ "exec": z.object({ "command": z.array(z.string()).optional() }).optional(), /** * * @format int32 */ "failureThreshold": z.number().optional(), "grpc": z.object({ /** * * @format int32 */ "port": z.number(), "service": z.string().optional() }).optional(), "httpGet": z.object({ "host": z.string().optional(), "httpHeaders": z.array(z.object({ "name": z.string(), "value": z.string() })).optional(), "path": z.string().optional(), "port": z.union([z.number(), z.string()]), "scheme": z.string().optional() }).optional(), /** * * @format int32 */ "initialDelaySeconds": z.number().optional(), /** * * @format int32 */ "periodSeconds": z.number().optional(), /** * * @format int32 */ "successThreshold": z.number().optional(), "tcpSocket": z.object({ "host": z.string().optional(), "port": z.union([z.number(), z.string()]) }).optional(), /** * * @format int64 */ "terminationGracePeriodSeconds": z.number().optional(), /** * * @format int32 */ "timeoutSeconds": z.number().optional() }).optional(), "name": z.string(), "ports": z.array(z.object({ /** * * @format int32 */ "containerPort": z.number(), "hostIP": z.string().optional(), /** * * @format int32 */ "hostPort": z.number().optional(), "name": z.string().optional(), /** * * @default "TCP" */ "protocol": z.string().optional().default("TCP") })).optional(), "readinessProbe": z.object({ "exec": z.object({ "command": z.array(z.string()).optional() }).optional(), /** * * @format int32 */ "failureThreshold": z.number().optional(), "grpc": z.object({ /** * * @format int32 */ "port": z.number(), "service": z.string().optional() }).optional(), "httpGet": z.object({ "host": z.string().optional(), "httpHeaders": z.array(z.object({ "name": z.string(), "value": z.string() })).optional(), "path": z.string().optional(), "port": z.union([z.number(), z.string()]), "scheme": z.string().optional() }).optional(), /** * * @format int32 */ "initialDelaySeconds": z.number().optional(), /** * * @format int32 */ "periodSeconds": z.number().optional(), /** * * @format int32 */ "successThreshold": z.number().optional(), "tcpSocket": z.object({ "host": z.string().optional(), "port": z.union([z.number(), z.string()]) }).optional(), /** * * @format int64 */ "terminationGracePeriodSeconds": z.number().optional(), /** * * @format int32 */ "timeoutSeconds": z.number().optional() }).optional(), "resources": z.object({ "limits": z.any().optional(), "requests": z.any().optional() }).optional(), "securityContext": z.object({ "allowPrivilegeEscalation": z.boolean().optional(), "capabilities": z.object({ "add": z.array(z.string()).optional(), "drop": z.array(z.string()).optional() }).optional(), "privileged": z.boolean().optional(), "procMount": z.string().optional(), "readOnlyRootFilesystem": z.boolean().optional(), /** * * @format int64 */ "runAsGroup": z.number().optional(), "runAsNonRoot": z.boolean().optional(), /** * * @format int64 */ "runAsUser": z.number().optional(), "seLinuxOptions": z.object({ "level": z.string().optional(), "role": z.string().optional(), "type": z.string().optional(), "user": z.string().optional() }).optional(), "seccompProfile": z.object({ "localhostProfile": z.string().optional(), "type": z.string() }).optional(), "windowsOptions": z.object({ "gmsaCredentialSpec": z.string().optional(), "gmsaCredentialSpecName": z.string().optional(), "hostProcess": z.boolean().optional(), "runAsUserName": z.string().optional() }).optional() }).optional(), "startupProbe": z.object({ "exec": z.object({ "command": z.array(z.string()).optional() }).optional(), /** * * @format int32 */ "failureThreshold": z.number().optional(), "grpc": z.object({ /** * * @format int32 */ "port": z.number(), "service": z.string().optional() }).optional(), "httpGet": z.object({ "host": z.string().optional(), "httpHeaders": z.array(z.object({ "name": z.string(), "value": z.string() })).optional(), "path": z.string().optional(), "port": z.union([z.number(), z.string()]), "scheme": z.string().optional() }).optional(), /** * * @format int32 */ "initialDelaySeconds": z.number().optional(), /** * * @format int32 */ "periodSeconds": z.number().optional(), /** * * @format int32 */ "successThreshold": z.number().optional(), "tcpSocket": z.object({ "host": z.string().optional(), "port": z.union([z.number(), z.string()]) }).optional(), /** * * @format int64 */ "terminationGracePeriodSeconds": z.number().optional(), /** * * @format int32 */ "timeoutSeconds": z.number().optional() }).optional(), "stdin": z.boolean().optional(), "stdinOnce": z.boolean().optional(), "terminationMessagePath": z.string().optional(), "terminationMessagePolicy": z.string().optional(), "tty": z.boolean().optional(), "volumeDevices": z.array(z.object({ "devicePath": z.string(), "name": z.string() })).optional(), "volumeMounts": z.array(z.object({ "mountPath": z.string(), "mountPropagation": z.string().optional(), "name": z.string(), "readOnly": z.boolean().optional(), "subPath": z.string().optional(), "subPathExpr": z.string().optional() })).optional(), "workingDir": z.string().optional() })), "dnsConfig": z.object({ "nameservers": z.array(z.string()).optional(), "options": z.array(z.object({ "name": z.string().optional(), "value": z.string().optional() })).optional(), "searches": z.array(z.string()).optional() }).optional(), "dnsPolicy": z.string().optional(), "enableServiceLinks": z.boolean().optional(), "ephemeralContainers": z.array(z.object({ "args": z.array(z.string()).optional(), "command": z.array(z.string()).optional(), "env": z.array(z.object({ "name": z.string(), "value": z.string().optional(), "valueFrom": z.object({ "configMapKeyRef": z.object({ "key": z.string(), "name": z.string().optional(), "optional": z.boolean().optional() }).optional(), "fieldRef": z.object({ "apiVersion": z.string().optional(), "fieldPath": z.string() }).optional(), "resourceFieldRef": z.object({ "containerName": z.string().optional(), /** * * @schema union([z.number(), z.string().regex(/^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$/)]).optional() */ "divisor": z.union([z.number(), z.string().regex(/^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$/)]).optional(), "resource": z.string() }).optional(), "secretKeyRef": z.object({ "key": z.string(), "name": z.string().optional(), "optional": z.boolean().optional() }).optional() }).optional() })).optional(), "envFrom": z.array(z.object({ "configMapRef": z.object({ "name": z.string().optional(), "optional": z.boolean().optional() }).optional(), "prefix": z.string().optional(), "secretRef": z.object({ "name": z.string().optional(), "optional": z.boolean().optional() }).optional() })).optional(), "image": z.string().optional(), "imagePullPolicy": z.string().optional(), "lifecycle": z.object({ "postStart": z.object({ "exec": z.object({ "command": z.array(z.string()).optional() }).optional(), "httpGet": z.object({ "host": z.string().optional(), "httpHeaders": z.array(z.object({ "name": z.string(), "value": z.string() })).optional(), "path": z.string().optional(), "port": z.union([z.number(), z.string()]), "scheme": z.string().optional() }).optional(), "tcpSocket": z.object({ "host": z.string().optional(), "port": z.union([z.number(), z.string()]) }).optional() }).optional(), "preStop": z.object({ "exec": z.object({ "command": z.array(z.string()).optional() }).optional(), "httpGet": z.object({ "host": z.string().optional(), "httpHeaders": z.array(z.object({ "name": z.string(), "value": z.string() })).optional(), "path": z.string().optional(), "port": z.union([z.number(), z.string()]), "scheme": z.string().optional() }).optional(), "tcpSocket": z.object({ "host": z.string().optional(), "port": z.union([z.number(), z.string()]) }).optional() }).optional() }).optional(), "livenessProbe": z.object({ "exec": z.object({ "command": z.array(z.string()).optional() }).optional(), /** * * @format int32 */ "failureThreshold": z.number().optional(), "grpc": z.object({ /** * * @format int32 */ "port": z.number(), "service": z.string().optional() }).optional(), "httpGet": z.object({ "host": z.string().optional(), "httpHeaders": z.array(z.object({ "name": z.string(), "value": z.string() })).optional(), "path": z.string().optional(), "port": z.union([z.number(), z.string()]), "scheme": z.string().optional() }).optional(), /** * * @format int32 */ "initialDelaySeconds": z.number().optional(), /** * * @format int32 */ "periodSeconds": z.number().optional(), /** * * @format int32 */ "successThreshold": z.number().optional(), "tcpSocket": z.object({ "host": z.string().optional(), "port": z.union([z.number(), z.string()]) }).optional(), /** * * @format int64 */ "terminationGracePeriodSeconds": z.number().optional(), /** * * @format int32 */ "timeoutSeconds": z.number().optional() }).optional(), "name": z.string(), "ports": z.array(z.object({ /** * * @format int32 */ "containerPort": z.number(), "hostIP": z.string().optional(), /** * * @format int32 */ "hostPort": z.number().optional(), "name": z.string().optional(), /** * * @default "TCP" */ "protocol": z.string().optional().default("TCP") })).optional(), "readinessProbe": z.object({ "exec": z.object({ "command": z.array(z.string()).optional() }).optional(), /**