UNPKG

@soft-stech/argo-rollouts

Version:
871 lines (870 loc) 114 kB
import { z } from "zod"; import { iObjectMetaSchema } from "@soft-stech/apimachinery/apis/meta/v1/ObjectMeta.schema"; export const IAnalysisRunSchema = z.object({ apiVersion: z.literal("argoproj.io/v1alpha1"), kind: z.literal("AnalysisRun"), 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.int32(), 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(), z.string()).optional(), labels: z.record(z.string(), z.string()).optional() }) .optional(), spec: z.object({ activeDeadlineSeconds: z.number().optional(), /** * * @format int32 */ backoffLimit: z.int32().optional(), completionMode: z.string().optional(), /** * * @format int32 */ completions: z.int32().optional(), manualSelector: z.boolean().optional(), /** * * @format int32 */ parallelism: z.int32().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(), z.string()).optional() }) .optional(), suspend: z.boolean().optional(), template: z.object({ metadata: z .object({ annotations: z.record(z.string(), z.string()).optional(), labels: z.record(z.string(), z.string()).optional() }) .optional(), spec: z .object({ 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.int32() })) .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(), 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(), z.string()) .optional() }) .optional(), namespaces: z .array(z.string()) .optional(), topologyKey: z.string() }), /** * * @format int32 */ weight: z.int32() })) .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(), 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(), 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(), 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(), z.string()) .optional() }) .optional(), namespaces: z .array(z.string()) .optional(), topologyKey: z.string() }), /** * * @format int32 */ weight: z.int32() })) .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(), 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(), 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.int32().optional(), grpc: z .object({ /** * * @format int32 */ port: z.int32(), 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.int32().optional(), /** * * @format int32 */ periodSeconds: z.int32().optional(), /** * * @format int32 */ successThreshold: z.int32().optional(), tcpSocket: z .object({ host: z.string().optional(), port: z.union([z.number(), z.string()]) }) .optional(), terminationGracePeriodSeconds: z .number() .optional(), /** * * @format int32 */ timeoutSeconds: z.int32().optional() }) .optional(), name: z.string(), ports: z .array(z.object({ /** * * @format int32 */ containerPort: z.int32(), hostIP: z.string().optional(), /** * * @format int32 */ hostPort: z.int32().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.int32().optional(), grpc: z .object({ /** * * @format int32 */ port: z.int32(), 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.int32().optional(), /** * * @format int32 */ periodSeconds: z.int32().optional(), /** * * @format int32 */ successThreshold: z.int32().optional(), tcpSocket: z .object({ host: z.string().optional(), port: z.union([z.number(), z.string()]) }) .optional(), terminationGracePeriodSeconds: z .number() .optional(), /** * * @format int32 */ timeoutSeconds: z.int32().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(), runAsGroup: z.number().optional(), runAsNonRoot: z.boolean().optional(), 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.int32().optional(), grpc: z .object({ /** * * @format int32 */ port: z.int32(), 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.int32().optional(), /** * * @format int32 */ periodSeconds: z.int32().optional(), /** * * @format int32 */ successThreshold: z.int32().optional(), tcpSocket: z .object({ host: z.string().optional(), port: z.union([z.number(), z.string()]) }) .optional(), terminationGracePeriodSeconds: z .number() .optional(), /** * * @format int32 */ timeoutSeconds: z.int32().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() })