package workflows import "time" #Workflow: { @jsonschema(schema="https://json-schema.org/draft/2020-12/schema") @jsonschema(id="https://raw.githubusercontent.com/argoproj/argo-workflows/HEAD/api/jsonschema/schema.json") matchN(1, [ #."io.argoproj.workflow.v1alpha1.ClusterWorkflowTemplate" & {}, #."io.argoproj.workflow.v1alpha1.CronWorkflow" & {}, #."io.argoproj.workflow.v1alpha1.Workflow" & {}, #."io.argoproj.workflow.v1alpha1.WorkflowEventBinding" & {}, #."io.argoproj.workflow.v1alpha1.WorkflowTemplate" & {} ]) #: "eventsource.CreateEventSourceRequest": { "eventSource"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.EventSource" "namespace"?: string } #: "eventsource.EventSourceDeletedResponse": {} #: "eventsource.EventSourceWatchEvent": { "object"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.EventSource" "type"?: string } // structured log entry #: "eventsource.LogEntry": { // optional - the event name (e.g. `example`) "eventName"?: string "eventSourceName"?: string // optional - the event source type (e.g. `webhook`) "eventSourceType"?: string "level"?: string "msg"?: string "namespace"?: string "time"?: #."io.k8s.apimachinery.pkg.apis.meta.v1.Time" } #: "eventsource.UpdateEventSourceRequest": { "eventSource"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.EventSource" "name"?: string "namespace"?: string } // AMQPConsumeConfig holds the configuration to immediately starts delivering queued messages // +k8s:openapi-gen=true #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.AMQPConsumeConfig": { // AutoAck when true, the server will acknowledge deliveries to this consumer prior to writing // the delivery to the network // +optional "autoAck"?: bool // ConsumerTag is the identity of the consumer included in every delivery // +optional "consumerTag"?: string // Exclusive when true, the server will ensure that this is the sole consumer from this queue // +optional "exclusive"?: bool // NoLocal flag is not supported by RabbitMQ // +optional "noLocal"?: bool // NowWait when true, do not wait for the server to confirm the request and // immediately begin deliveries // +optional "noWait"?: bool } // AMQPEventSource refers to an event-source for AMQP stream events #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.AMQPEventSource": { // Auth hosts secret selectors for username and password // +optional "auth"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.BasicAuth" // Backoff holds parameters applied to connection. // +optional "connectionBackoff"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.Backoff" // Consume holds the configuration to immediately starts delivering queued messages // For more information, visit https://pkg.go.dev/github.com/rabbitmq/amqp091-go#Channel.Consume // +optional "consume"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.AMQPConsumeConfig" // ExchangeDeclare holds the configuration for the exchange on the server // For more information, visit // https://pkg.go.dev/github.com/rabbitmq/amqp091-go#Channel.ExchangeDeclare // +optional "exchangeDeclare"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.AMQPExchangeDeclareConfig" // ExchangeName is the exchange name // For more information, visit https://www.rabbitmq.com/tutorials/amqp-concepts.html "exchangeName"?: string // ExchangeType is rabbitmq exchange type "exchangeType"?: string // Filter // +optional "filter"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.EventSourceFilter" // JSONBody specifies that all event body payload coming from this // source will be JSON // +optional "jsonBody"?: bool // Metadata holds the user defined metadata which will passed along the event payload. // +optional "metadata"?: [string]: string // QueueBind holds the configuration that binds an exchange to a queue so that publishings to the // exchange will be routed to the queue when the publishing routing key matches // the binding routing key // For more information, visit https://pkg.go.dev/github.com/rabbitmq/amqp091-go#Channel.QueueBind // +optional "queueBind"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.AMQPQueueBindConfig" // QueueDeclare holds the configuration of a queue to hold messages and deliver to consumers. // Declaring creates a queue if it doesn't already exist, or ensures that an existing queue matches // the same parameters // For more information, visit // https://pkg.go.dev/github.com/rabbitmq/amqp091-go#Channel.QueueDeclare // +optional "queueDeclare"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.AMQPQueueDeclareConfig" // Routing key for bindings "routingKey"?: string // TLS configuration for the amqp client. // +optional "tls"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.TLSConfig" // URL for rabbitmq service "url"?: string // URLSecret is secret reference for rabbitmq service URL "urlSecret"?: #."io.k8s.api.core.v1.SecretKeySelector" } // AMQPExchangeDeclareConfig holds the configuration for the exchange on the server // +k8s:openapi-gen=true #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.AMQPExchangeDeclareConfig": { // AutoDelete removes the exchange when no bindings are active // +optional "autoDelete"?: bool // Durable keeps the exchange also after the server restarts // +optional "durable"?: bool // Internal when true does not accept publishings // +optional "internal"?: bool // NowWait when true does not wait for a confirmation from the server // +optional "noWait"?: bool } // AMQPQueueBindConfig holds the configuration that binds an exchange to a queue // so that publishings to the // exchange will be routed to the queue when the publishing routing key matches // the binding routing key // +k8s:openapi-gen=true #: { "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.AMQPQueueBindConfig": { // NowWait false and the queue could not be bound, the channel will be closed with an error // +optional "noWait"?: bool } } // AMQPQueueDeclareConfig holds the configuration of a queue to hold messages // and deliver to consumers. // Declaring creates a queue if it doesn't already exist, or ensures that an existing queue matches // the same parameters // +k8s:openapi-gen=true #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.AMQPQueueDeclareConfig": { // Arguments of a queue (also known as "x-arguments") used for optional features and plugins // +optional "arguments"?: string // AutoDelete removes the queue when no consumers are active // +optional "autoDelete"?: bool // Durable keeps the queue also after the server restarts // +optional "durable"?: bool // Exclusive sets the queues to be accessible only by the connection that declares them and will be // deleted wgen the connection closes // +optional "exclusive"?: bool // Name of the queue. If empty the server auto-generates a unique name for this queue // +optional "name"?: string // NowWait when true, the queue assumes to be declared on the server // +optional "noWait"?: bool } // AWSLambdaTrigger refers to specification of the trigger to invoke an AWS Lambda function #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.AWSLambdaTrigger": { // AccessKey refers K8s secret containing aws access key // +optional "accessKey"?: #."io.k8s.api.core.v1.SecretKeySelector" // FunctionName refers to the name of the function to invoke. "functionName"?: string // Choose from the following options. // // * RequestResponse (default) - Invoke the function synchronously. Keep // the connection open until the function returns a response or times out. // The API response includes the function response and additional data. // // * Event - Invoke the function asynchronously. Send events that fail multiple // times to the function's dead-letter queue (if it's configured). The API // response only includes a status code. // // * DryRun - Validate parameter values and verify that the user or role // has permission to invoke the function. // +optional "invocationType"?: string // Parameters is the list of key-value extracted from event's payload that are applied to // the trigger resource. // +optional "parameters"?: [...#."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.TriggerParameter"] // Payload is the list of key-value extracted from an event payload to construct // the request payload. "payload"?: [...#."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.TriggerParameter"] // Region is AWS region "region"?: string // RoleARN is the Amazon Resource Name (ARN) of the role to assume. // +optional "roleARN"?: string // SecretKey refers K8s secret containing aws secret key // +optional "secretKey"?: #."io.k8s.api.core.v1.SecretKeySelector" } // Amount represent a numeric amount. #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.Amount": "value"?: string // ArgoWorkflowTrigger is the trigger for the Argo Workflow #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.ArgoWorkflowTrigger": { // Args is the list of arguments to pass to the argo CLI "args"?: [...string] // Operation refers to the type of operation performed on the argo workflow resource. // Default value is Submit. // +optional "operation"?: string // Parameters is the list of parameters to pass to resolved Argo Workflow object "parameters"?: [...#."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.TriggerParameter"] // Source of the K8s resource file(s) "source"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.ArtifactLocation" } // ArtifactLocation describes the source location for an external artifact #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.ArtifactLocation": { // Configmap that stores the artifact "configmap"?: #."io.k8s.api.core.v1.ConfigMapKeySelector" // File artifact is artifact stored in a file "file"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.FileArtifact" // Git repository hosting the artifact "git"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.GitArtifact" // Inline artifact is embedded in sensor spec as a string "inline"?: string // Resource is generic template for K8s resource "resource"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.K8SResource" // S3 compliant artifact "s3"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.S3Artifact" // URL to fetch the artifact from "url"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.URLArtifact" } // AzureEventHubsTrigger refers to specification of the Azure Event Hubs Trigger #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.AzureEventHubsTrigger": { // FQDN refers to the namespace dns of Azure Event Hubs to be used i.e. // .servicebus.windows.net "fqdn"?: string // HubName refers to the Azure Event Hub to send events to "hubName"?: string // Parameters is the list of key-value extracted from event's payload that are applied to // the trigger resource. // +optional "parameters"?: [...#."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.TriggerParameter"] // Payload is the list of key-value extracted from an event payload to construct // the request payload. "payload"?: [...#."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.TriggerParameter"] // SharedAccessKey refers to a K8s secret containing the primary key for the "sharedAccessKey"?: #."io.k8s.api.core.v1.SecretKeySelector" // SharedAccessKeyName refers to the name of the Shared Access Key "sharedAccessKeyName"?: #."io.k8s.api.core.v1.SecretKeySelector" } // AzureEventsHubEventSource describes the event source for azure events hub // More info at https://docs.microsoft.com/en-us/azure/event-hubs/ #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.AzureEventsHubEventSource": { // Filter // +optional "filter"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.EventSourceFilter" // FQDN of the EventHubs namespace you created // More info at https://docs.microsoft.com/en-us/azure/event-hubs/event-hubs-get-connection-string "fqdn"?: string // Event Hub path/name "hubName"?: string // Metadata holds the user defined metadata which will passed along the event payload. // +optional "metadata"?: [string]: string // SharedAccessKey is the generated value of the key. If both this field and // SharedAccessKeyName are not provided // it will try to access via Azure AD with DefaultAzureCredential, FQDN and HubName. // +optional "sharedAccessKey"?: #."io.k8s.api.core.v1.SecretKeySelector" // SharedAccessKeyName is the name you chose for your application's SAS keys. If // both this field and SharedAccessKey are not provided // it will try to access via Azure AD with DefaultAzureCredential, FQDN and HubName. // +optional "sharedAccessKeyName"?: #."io.k8s.api.core.v1.SecretKeySelector" } // AzureQueueStorageEventSource describes the event source for azure queue storage // more info at https://learn.microsoft.com/en-us/azure/storage/queues/ #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.AzureQueueStorageEventSource": { // ConnectionString is the connection string to access Azure Queue Storage. If // this fields is not provided // it will try to access via Azure AD with StorageAccountName. // +optional "connectionString"?: #."io.k8s.api.core.v1.SecretKeySelector" // DecodeMessage specifies if all the messages should be base64 decoded. // If set to true the decoding is done before the evaluation of JSONBody // +optional "decodeMessage"?: bool // DLQ specifies if a dead-letter queue is configured for messages that can't be // processed successfully. // If set to true, messages with invalid payload won't be acknowledged to allow // to forward them farther to the dead-letter queue. // The default value is false. // +optional "dlq"?: bool // Filter // +optional "filter"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.EventSourceFilter" // JSONBody specifies that all event body payload coming from this // source will be JSON // +optional "jsonBody"?: bool // Metadata holds the user defined metadata which will passed along the event payload. // +optional "metadata"?: [string]: string // QueueName is the name of the queue "queueName"?: string // StorageAccountName is the name of the storage account where the queue is. // This field is necessary to // access via Azure AD (managed identity) and it is ignored if ConnectionString is set. // +optional "storageAccountName"?: string // WaitTimeInSeconds is the duration (in seconds) for which the event source // waits between empty results from the queue. // The default value is 3 seconds. // +optional "waitTimeInSeconds"?: int } // AzureServiceBusEventSource describes the event source for azure service bus // More info at https://docs.microsoft.com/en-us/azure/service-bus-messaging/ #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.AzureServiceBusEventSource": { // ConnectionString is the connection string for the Azure Service Bus. If this // fields is not provided // it will try to access via Azure AD with DefaultAzureCredential and FullyQualifiedNamespace. // +optional "connectionString"?: #."io.k8s.api.core.v1.SecretKeySelector" // Filter // +optional "filter"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.EventSourceFilter" // FullyQualifiedNamespace is the Service Bus namespace name (ex: // myservicebus.servicebus.windows.net). This field is necessary to // access via Azure AD (managed identity) and it is ignored if ConnectionString is set. // +optional "fullyQualifiedNamespace"?: string // JSONBody specifies that all event body payload coming from this // source will be JSON // +optional "jsonBody"?: bool // Metadata holds the user defined metadata which will passed along the event payload. // +optional "metadata"?: [string]: string // QueueName is the name of the Azure Service Bus Queue "queueName"?: string // SubscriptionName is the name of the Azure Service Bus Topic Subscription "subscriptionName"?: string // TLS configuration for the service bus client // +optional "tls"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.TLSConfig" // TopicName is the name of the Azure Service Bus Topic "topicName"?: string } #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.AzureServiceBusTrigger": { // ConnectionString is the connection string for the Azure Service Bus "connectionString"?: #."io.k8s.api.core.v1.SecretKeySelector" // Parameters is the list of key-value extracted from event's payload that are applied to // the trigger resource. // +optional "parameters"?: [...#."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.TriggerParameter"] // Payload is the list of key-value extracted from an event payload to construct // the request payload. "payload"?: [...#."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.TriggerParameter"] // QueueName is the name of the Azure Service Bus Queue "queueName"?: string // SubscriptionName is the name of the Azure Service Bus Topic Subscription "subscriptionName"?: string // TLS configuration for the service bus client // +optional "tls"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.TLSConfig" // TopicName is the name of the Azure Service Bus Topic "topicName"?: string } // Backoff for an operation #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.Backoff": { // The initial duration in nanoseconds or strings like "1s", "3m" // +optional "duration"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.Int64OrString" // Duration is multiplied by factor each iteration // +optional "factor"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.Amount" // The amount of jitter applied each iteration // +optional "jitter"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.Amount" // Exit with error after this many steps // +optional "steps"?: int } // BasicAuth contains the reference to K8s secrets that holds the username and password #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.BasicAuth": { // Password refers to the Kubernetes secret that holds the password required for basic auth. "password"?: #."io.k8s.api.core.v1.SecretKeySelector" // Username refers to the Kubernetes secret that holds the username required for basic auth. "username"?: #."io.k8s.api.core.v1.SecretKeySelector" } // BitbucketAuth holds the different auth strategies for connecting to Bitbucket #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.BitbucketAuth": { // Basic is BasicAuth auth strategy. // +optional "basic"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.BitbucketBasicAuth" // OAuthToken refers to the K8s secret that holds the OAuth Bearer token. // +optional "oauthToken"?: #."io.k8s.api.core.v1.SecretKeySelector" } // BitbucketBasicAuth holds the information required to authenticate user via basic auth mechanism #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.BitbucketBasicAuth": { // Password refers to the K8s secret that holds the password. "password"?: #."io.k8s.api.core.v1.SecretKeySelector" // Username refers to the K8s secret that holds the username. "username"?: #."io.k8s.api.core.v1.SecretKeySelector" } // BitbucketEventSource describes the event source for Bitbucket #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.BitbucketEventSource": { // Auth information required to connect to Bitbucket. "auth"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.BitbucketAuth" // DeleteHookOnFinish determines whether to delete the defined Bitbucket hook // once the event source is stopped. // +optional "deleteHookOnFinish"?: bool // Events this webhook is subscribed to. "events"?: [...string] // Filter // +optional "filter"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.EventSourceFilter" // Metadata holds the user defined metadata which will be passed along the event payload. // +optional "metadata"?: [string]: string // DeprecatedOwner is the owner of the repository. // Deprecated: use Repositories instead. Will be unsupported in v1.9 // +optional "owner"?: string // DeprecatedProjectKey is the key of the project to which the repository relates // Deprecated: use Repositories instead. Will be unsupported in v1.9 // +optional "projectKey"?: string // Repositories holds a list of repositories for which integration needs to set up // +optional "repositories"?: [...#."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.BitbucketRepository"] // DeprecatedRepositorySlug is a URL-friendly version of a repository name, // automatically generated by Bitbucket for use in the URL // Deprecated: use Repositories instead. Will be unsupported in v1.9 // +optional "repositorySlug"?: string // Webhook refers to the configuration required to run an http server "webhook"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.WebhookContext" } #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.BitbucketRepository": { // Owner is the owner of the repository "owner"?: string // RepositorySlug is a URL-friendly version of a repository name, automatically // generated by Bitbucket for use in the URL "repositorySlug"?: string } // BitbucketServerEventSource refers to event-source related to Bitbucket Server events #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.BitbucketServerEventSource": { // AccessToken is reference to K8s secret which holds the bitbucket api access information. // +optional "accessToken"?: #."io.k8s.api.core.v1.SecretKeySelector" // BitbucketServerBaseURL is the base URL for API requests to a custom endpoint. "bitbucketserverBaseURL"?: string // CheckInterval is a duration in which to wait before checking that the // webhooks exist, e.g. 1s, 30m, 2h... (defaults to 1m) // +optional "checkInterval"?: string // DeleteHookOnFinish determines whether to delete the Bitbucket Server hook for // the project once the event source is stopped. // +optional "deleteHookOnFinish"?: bool // Events are bitbucket event to listen to. // Refer https://confluence.atlassian.com/bitbucketserver/event-payload-938025882.html // +optional "events"?: [...string] // Filter // +optional "filter"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.EventSourceFilter" // Metadata holds the user defined metadata which will passed along the event payload. // +optional "metadata"?: [string]: string // OneEventPerChange controls whether to process each change in a // repo:refs_changed webhook event as a separate io.argoproj.workflow.v1alpha1. // This setting is useful when multiple tags are // pushed simultaneously for the same commit, and each tag needs to // independently trigger an action, such as a distinct workflow in Argo // Workflows. When enabled, the // BitbucketServerEventSource publishes an individual BitbucketServerEventData // for each change, ensuring independent processing of each tag or reference // update in a // single webhook event. // +optional "oneEventPerChange"?: bool // DeprecatedProjectKey is the key of project for which integration needs to set up. // Deprecated: use Repositories instead. Will be unsupported in v1.8. // +optional "projectKey"?: string // Projects holds a list of projects for which integration needs to set up, this // will add the webhook to all repositories in the project. // +optional "projects"?: [...string] // Repositories holds a list of repositories for which integration needs to set up. // +optional "repositories"?: [...#."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.BitbucketServerRepository"] // DeprecatedRepositorySlug is the slug of the repository for which integration needs to set up. // Deprecated: use Repositories instead. Will be unsupported in v1.8. // +optional "repositorySlug"?: string // SkipBranchRefsChangedOnOpenPR bypasses the event repo:refs_changed for // branches whenever there's an associated open pull request. // This helps in optimizing the event handling process by avoiding unnecessary // triggers for branch reference changes that are already part of a pull // request under review. // +optional "skipBranchRefsChangedOnOpenPR"?: bool // TLS configuration for the bitbucketserver client. // +optional "tls"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.TLSConfig" // Webhook holds configuration to run a http server. "webhook"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.WebhookContext" // WebhookSecret is reference to K8s secret which holds the bitbucket webhook // secret (for HMAC validation). // +optional "webhookSecret"?: #."io.k8s.api.core.v1.SecretKeySelector" } #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.BitbucketServerRepository": { // ProjectKey is the key of project for which integration needs to set up. "projectKey"?: string // RepositorySlug is the slug of the repository for which integration needs to set up. "repositorySlug"?: string } // CalendarEventSource describes a time based dependency. One of the fields // (schedule, interval, or recurrence) must be passed. // Schedule takes precedence over interval; interval takes precedence over recurrence #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.CalendarEventSource": { // ExclusionDates defines the list of DATE-TIME exceptions for recurring events. "exclusionDates"?: [...string] // Filter // +optional "filter"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.EventSourceFilter" // Interval is a string that describes an interval duration, e.g. 1s, 30m, 2h... // +optional "interval"?: string // Metadata holds the user defined metadata which will passed along the event payload. // +optional "metadata"?: [string]: string // Persistence hold the configuration for event persistence "persistence"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.EventPersistence" // Schedule is a cron-like expression. For reference, see: https://en.wikipedia.org/wiki/Cron // +optional "schedule"?: string // Timezone in which to run the schedule // +optional "timezone"?: string } #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.CatchupConfiguration": { // Enabled enables to triggered the missed schedule when eventsource restarts "enabled"?: bool // MaxDuration holds max catchup duration "maxDuration"?: string } // Condition contains details about resource state #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.Condition": { // Last time the condition transitioned from one status to another. // +optional "lastTransitionTime"?: #."io.k8s.apimachinery.pkg.apis.meta.v1.Time" // Human-readable message indicating details about last transition. // +optional "message"?: string // Unique, this should be a short, machine understandable string that gives the reason // for condition's last transition. For example, "ImageNotFound" // +optional "reason"?: string // Condition status, True, False or Unknown. // +required "status"?: string // Condition type. // +required "type"?: string } #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.ConditionsResetByTime": { // Cron is a cron-like expression. For reference, see: https://en.wikipedia.org/wiki/Cron "cron"?: string // +optional "timezone"?: string } #: { "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.ConditionsResetCriteria": { // Schedule is a cron-like expression. For reference, see: https://en.wikipedia.org/wiki/Cron "byTime"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.ConditionsResetByTime" } } #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.ConfigMapPersistence": { // CreateIfNotExist will create configmap if it doesn't exists "createIfNotExist"?: bool // Name of the configmap "name"?: string } // Container defines customized spec for a container #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.Container": { // +optional "env"?: [...#."io.k8s.api.core.v1.EnvVar"] // +optional "envFrom"?: [...#."io.k8s.api.core.v1.EnvFromSource"] // +optional "imagePullPolicy"?: string // +optional "resources"?: #."io.k8s.api.core.v1.ResourceRequirements" // +optional "securityContext"?: #."io.k8s.api.core.v1.SecurityContext" // +optional "volumeMounts"?: [...#."io.k8s.api.core.v1.VolumeMount"] } // CustomTrigger refers to the specification of the custom trigger. #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.CustomTrigger": { // CertSecret refers to the secret that contains cert for secure connection // between sensor and custom trigger gRPC server. "certSecret"?: #."io.k8s.api.core.v1.SecretKeySelector" // Parameters is the list of parameters that is applied to resolved custom trigger trigger object. "parameters"?: [...#."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.TriggerParameter"] // Payload is the list of key-value extracted from an event payload to construct // the request payload. "payload"?: [...#."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.TriggerParameter"] // Secure refers to type of the connection between sensor to custom trigger gRPC "secure"?: bool // ServerNameOverride for the secure connection between sensor and custom trigger gRPC server. "serverNameOverride"?: string // ServerURL is the url of the gRPC server that executes custom trigger "serverURL"?: string // Spec is the custom trigger resource specification that custom trigger gRPC // server knows how to interpret. "spec"?: [string]: string } // DataFilter describes constraints and filters for event data // Regular Expressions are purposefully not a feature as they are overkill for our uses here // See Rob Pike's Post: // https://commandcenter.blogspot.com/2011/08/regular-expressions-in-lexing-and.html #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.DataFilter": { // Comparator compares the event data with a user given value. // Can be ">=", ">", "=", "!=", "<", or "<=". // Is optional, and if left blank treated as equality "=". "comparator"?: string // Path is the JSONPath of the event's (JSON decoded) data key // Path is a series of keys separated by a dot. A key may contain wildcard characters '*' and '?'. // To access an array value use the index as the key. The dot and wildcard // characters can be escaped with '\\'. // See https://github.com/tidwall/gjson#path-syntax for more information on how to use this. "path"?: string // Template is a go-template for extracting a string from the event's data. // A Template is evaluated with provided path, type and value. // The templating follows the standard go-template syntax as well as sprig's extra functions. // See https://pkg.go.dev/text/template and https://masterminds.github.io/sprig/ "template"?: string // Type contains the JSON type of the data "type"?: string // Value is the allowed string values for this key // Booleans are passed using strconv.ParseBool() // Numbers are parsed using as float64 using strconv.ParseFloat() // Strings are taken as is // Nils this value is ignored "value"?: [...string] } // EmailTrigger refers to the specification of the email notification trigger. #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.EmailTrigger": { // Body refers to the body/content of the email send. // +optional "body"?: string // From refers to the address from which the email is send from. // +optional "from"?: string // Host refers to the smtp host url to which email is send. "host"?: string // Parameters is the list of key-value extracted from event's payload that are applied to // the trigger resource. // +optional "parameters"?: [...#."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.TriggerParameter"] // Port refers to the smtp server port to which email is send. // Defaults to 0. // +optional "port"?: int // SMTPPassword refers to the Kubernetes secret that holds the smtp password // used to connect to smtp server. // +optional "smtpPassword"?: #."io.k8s.api.core.v1.SecretKeySelector" // Subject refers to the subject line for the email send. // +optional "subject"?: string // To refers to the email addresses to which the emails are send. // +optional "to"?: [...string] // Username refers to the username used to connect to the smtp server. // +optional "username"?: string } // EmitterEventSource describes the event source for emitter // More info at https://emitter.io/develop/getting-started/ #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.EmitterEventSource": { // Broker URI to connect to. "broker"?: string // ChannelKey refers to the channel key "channelKey"?: string // ChannelName refers to the channel name "channelName"?: string // Backoff holds parameters applied to connection. // +optional "connectionBackoff"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.Backoff" // Filter // +optional "filter"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.EventSourceFilter" // JSONBody specifies that all event body payload coming from this // source will be JSON // +optional "jsonBody"?: bool // Metadata holds the user defined metadata which will passed along the event payload. // +optional "metadata"?: [string]: string // Password to use to connect to broker // +optional "password"?: #."io.k8s.api.core.v1.SecretKeySelector" // TLS configuration for the emitter client. // +optional "tls"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.TLSConfig" // Username to use to connect to broker // +optional "username"?: #."io.k8s.api.core.v1.SecretKeySelector" } // EventContext holds the context of the cloudevent received from an event source. // +protobuf.options.(gogoproto.goproto_stringer)=false #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.EventContext": { // DataContentType - A MIME (RFC2046) string describing the media type of `data`. "datacontenttype"?: string // ID of the event; must be non-empty and unique within the scope of the producer. "id"?: string // Source - A URI describing the event producer. "source"?: string // SpecVersion - The version of the CloudEvents specification used by the // io.argoproj.workflow.v1alpha1. "specversion"?: string // Subject - The subject of the event in the context of the event producer "subject"?: string // Time - A Timestamp when the event happened. "time"?: #."io.k8s.apimachinery.pkg.apis.meta.v1.Time" // Type - The type of the occurrence which has happened. "type"?: string } // EventDependency describes a dependency #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.EventDependency": { // EventName is the name of the event "eventName"?: string // EventSourceName is the name of EventSource that Sensor depends on "eventSourceName"?: string // Filters and rules governing toleration of success and constraints on the // context and data of an event "filters"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.EventDependencyFilter" // FiltersLogicalOperator defines how different filters are evaluated together. // Available values: and (&&), or (||) // Is optional and if left blank treated as and (&&). "filtersLogicalOperator"?: string // Name is a unique name of this dependency "name"?: string // Transform transforms the event data "transform"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.EventDependencyTransformer" } // EventDependencyFilter defines filters and constraints for a io.argoproj.workflow.v1alpha1. #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.EventDependencyFilter": { // Context filter constraints "context"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.EventContext" // Data filter constraints with escalation "data"?: [...#."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.DataFilter"] // DataLogicalOperator defines how multiple Data filters (if defined) are evaluated together. // Available values: and (&&), or (||) // Is optional and if left blank treated as and (&&). "dataLogicalOperator"?: string // ExprLogicalOperator defines how multiple Exprs filters (if defined) are evaluated together. // Available values: and (&&), or (||) // Is optional and if left blank treated as and (&&). "exprLogicalOperator"?: string // Exprs contains the list of expressions evaluated against the event payload. "exprs"?: [...#."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.ExprFilter"] // Script refers to a Lua script evaluated to determine the validity of an // io.argoproj.workflow.v1alpha1. "script"?: string // Time filter on the event with escalation "time"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.TimeFilter" } // EventDependencyTransformer transforms the event #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.EventDependencyTransformer": { // JQ holds the jq command applied for transformation // +optional "jq"?: string // Script refers to a Lua script used to transform the event // +optional "script"?: string } #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.EventPersistence": { // Catchup enables to triggered the missed schedule when eventsource restarts "catchup"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.CatchupConfiguration" // ConfigMap holds configmap details for persistence "configMap"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.ConfigMapPersistence" } // EventSource is the definition of a eventsource resource // +genclient // +kubebuilder:resource:shortName=es // +kubebuilder:subresource:status // +k8s:deepcopy-gen:interfaces=io.k8s.apimachinery/pkg/runtime.Object // +k8s:openapi-gen=true #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.EventSource": { "metadata"?: #."io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta" "spec"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.EventSourceSpec" // +optional "status"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.EventSourceStatus" } #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.EventSourceFilter": "expression"?: string // EventSourceList is the list of eventsource resources // +k8s:deepcopy-gen:interfaces=io.k8s.apimachinery/pkg/runtime.Object #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.EventSourceList": { "items"?: [...#."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.EventSource"] "metadata"?: #."io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta" } // EventSourceSpec refers to specification of event-source resource #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.EventSourceSpec": { // AMQP event sources "amqp"?: [string]: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.AMQPEventSource" // AzureEventsHub event sources "azureEventsHub"?: [string]: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.AzureEventsHubEventSource" // AzureQueueStorage event source "azureQueueStorage"?: [string]: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.AzureQueueStorageEventSource" // Azure Service Bus event source "azureServiceBus"?: [string]: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.AzureServiceBusEventSource" // Bitbucket event sources "bitbucket"?: [string]: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.BitbucketEventSource" // Bitbucket Server event sources "bitbucketserver"?: [string]: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.BitbucketServerEventSource" // Calendar event sources "calendar"?: [string]: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.CalendarEventSource" // Emitter event source "emitter"?: [string]: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.EmitterEventSource" // EventBusName references to a EventBus name. By default the value is "default" "eventBusName"?: string // File event sources "file"?: [string]: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.FileEventSource" // Generic event source "generic"?: [string]: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.GenericEventSource" // Gerrit event source "gerrit"?: [string]: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.GerritEventSource" // Github event sources "github"?: [string]: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.GithubEventSource" // Gitlab event sources "gitlab"?: [string]: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.GitlabEventSource" // HDFS event sources "hdfs"?: [string]: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.HDFSEventSource" // Kafka event sources "kafka"?: [string]: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.KafkaEventSource" // Minio event sources "minio"?: [string]: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.S3Artifact" // MQTT event sources "mqtt"?: [string]: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.MQTTEventSource" // NATS event sources "nats"?: [string]: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.NATSEventsSource" // NSQ event source "nsq"?: [string]: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.NSQEventSource" // PubSub event sources "pubSub"?: [string]: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.PubSubEventSource" // Pulsar event source "pulsar"?: [string]: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.PulsarEventSource" // Redis event source "redis"?: [string]: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.RedisEventSource" // Redis stream source "redisStream"?: [string]: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.RedisStreamEventSource" // Replicas is the event source deployment replicas "replicas"?: int // Resource event sources "resource"?: [string]: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.ResourceEventSource" // Service is the specifications of the service to expose the event source // +optional "service"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.Service" // SFTP event sources "sftp"?: [string]: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.SFTPEventSource" // Slack event sources "slack"?: [string]: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.SlackEventSource" // SNS event sources "sns"?: [string]: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.SNSEventSource" // SQS event sources "sqs"?: [string]: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.SQSEventSource" // StorageGrid event sources "storageGrid"?: [string]: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.StorageGridEventSource" // Stripe event sources "stripe"?: [string]: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.StripeEventSource" // Template is the pod specification for the event source // +optional "template"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.Template" // Webhook event sources "webhook"?: [string]: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.WebhookEventSource" } // EventSourceStatus holds the status of the event-source resource #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.EventSourceStatus": "status"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.Status" #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.ExprFilter": { // Expr refers to the expression that determines the outcome of the filter. "expr"?: string // Fields refers to set of keys that refer to the paths within event payload. "fields"?: [...#."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.PayloadField"] } // FileArtifact contains information about an artifact in a filesystem #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.FileArtifact": "path"?: string // FileEventSource describes an event-source for file related events. #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.FileEventSource": { // Type of file operations to watch // Refer https://github.com/fsnotify/fsnotify/blob/master/fsnotify.go for more information "eventType"?: string // Filter // +optional "filter"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.EventSourceFilter" // Metadata holds the user defined metadata which will passed along the event payload. // +optional "metadata"?: [string]: string // Use polling instead of inotify "polling"?: bool // WatchPathConfig contains configuration about the file path to watch "watchPathConfig"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.WatchPathConfig" } // GenericEventSource refers to a generic event source. It can be used to // implement a custom event source. #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.GenericEventSource": { // AuthSecret holds a secret selector that contains a bearer token for authentication // +optional "authSecret"?: #."io.k8s.api.core.v1.SecretKeySelector" // Config is the event source configuration "config"?: string // Filter // +optional "filter"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.EventSourceFilter" // Insecure determines the type of connection. "insecure"?: bool // JSONBody specifies that all event body payload coming from this // source will be JSON // +optional "jsonBody"?: bool // Metadata holds the user defined metadata which will passed along the event payload. // +optional "metadata"?: [string]: string // URL of the gRPC server that implements the event source. "url"?: string } // GerritEventSource refers to event-source related to gerrit events #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.GerritEventSource": { // Auth hosts secret selectors for username and password // +optional "auth"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.BasicAuth" // DeleteHookOnFinish determines whether to delete the Gerrit hook for the // project once the event source is stopped. // +optional "deleteHookOnFinish"?: bool // Events are gerrit event to listen to. // Refer https://gerrit-review.googlesource.com/Documentation/cmd-stream-events.html#events "events"?: [...string] // Filter // +optional "filter"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.EventSourceFilter" // GerritBaseURL is the base URL for API requests to a custom endpoint "gerritBaseURL"?: string // HookName is the name of the webhook "hookName"?: string // Metadata holds the user defined metadata which will passed along the event payload. // +optional "metadata"?: [string]: string // List of project namespace paths like "whynowy/test". "projects"?: [...string] // SslVerify to enable ssl verification // +optional "sslVerify"?: bool // Webhook holds configuration to run a http server "webhook"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.WebhookContext" } // GitArtifact contains information about an artifact stored in git #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.GitArtifact": { // Branch to use to pull trigger resource // +optional "branch"?: string // Directory to clone the repository. We clone complete directory because // GitArtifact is not limited to any specific Git service providers. // Hence we don't use any specific git provider client. "cloneDirectory"?: string // Creds contain reference to git username and password // +optional "creds"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.GitCreds" // Path to file that contains trigger resource definition "filePath"?: string // Whether to ignore host key // +optional "insecureIgnoreHostKey"?: bool // Ref to use to pull trigger resource. Will result in a shallow clone and // fetch. // +optional "ref"?: string // Remote to manage set of tracked repositories. Defaults to "origin". // Refer https://git-scm.com/docs/git-remote // +optional "remote"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.GitRemoteConfig" // SSHKeySecret refers to the secret that contains SSH key "sshKeySecret"?: #."io.k8s.api.core.v1.SecretKeySelector" // Tag to use to pull trigger resource // +optional "tag"?: string // Git URL "url"?: string } // GitCreds contain reference to git username and password #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.GitCreds": { "password"?: #."io.k8s.api.core.v1.SecretKeySelector" "username"?: #."io.k8s.api.core.v1.SecretKeySelector" } // GitRemoteConfig contains the configuration of a Git remote #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.GitRemoteConfig": { // Name of the remote to fetch from. "name"?: string // URLs the URLs of a remote repository. It must be non-empty. Fetch will // always use the first URL, while push will use all of them. "urls"?: [...string] } #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.GithubAppCreds": { // AppID refers to the GitHub App ID for the application you created "appID"?: string // InstallationID refers to the Installation ID of the GitHub app you created and installed "installationID"?: string // PrivateKey refers to a K8s secret containing the GitHub app private key "privateKey"?: #."io.k8s.api.core.v1.SecretKeySelector" } // GithubEventSource refers to event-source for github related events #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.GithubEventSource": { // Active refers to status of the webhook for event deliveries. // https://developer.github.com/webhooks/creating/#active // +optional "active"?: bool // APIToken refers to a K8s secret containing github api token // +optional "apiToken"?: #."io.k8s.api.core.v1.SecretKeySelector" // ContentType of the event delivery "contentType"?: string // DeleteHookOnFinish determines whether to delete the GitHub hook for the // repository once the event source is stopped. // +optional "deleteHookOnFinish"?: bool // Events refer to Github events to which the event source will subscribe "events"?: [...string] // Filter // +optional "filter"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.EventSourceFilter" // GitHubApp holds the GitHub app credentials // +optional "githubApp"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.GithubAppCreds" // GitHub base URL (for GitHub Enterprise) // +optional "githubBaseURL"?: string // GitHub upload URL (for GitHub Enterprise) // +optional "githubUploadURL"?: string // Id is the webhook's id // Deprecated: This is not used at all, will be removed in v1.6 // +optional "id"?: string // Insecure tls verification "insecure"?: bool // Metadata holds the user defined metadata which will passed along the event payload. // +optional "metadata"?: [string]: string // Organizations holds the names of organizations (used for organization level // webhooks). Not required if Repositories is set. "organizations"?: [...string] // DeprecatedOwner refers to GitHub owner name i.e. argoproj // Deprecated: use Repositories instead. Will be unsupported in v 1.6 // +optional "owner"?: string // Repositories holds the information of repositories, which uses repo owner as the key, // and list of repo names as the value. Not required if Organizations is set. "repositories"?: [...#."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.OwnedRepositories"] // DeprecatedRepository refers to GitHub repo name i.e. argo-events // Deprecated: use Repositories instead. Will be unsupported in v 1.6 // +optional "repository"?: string // Webhook refers to the configuration required to run a http server "webhook"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.WebhookContext" // WebhookSecret refers to K8s secret containing GitHub webhook secret // https://developer.github.com/webhooks/securing/ // +optional "webhookSecret"?: #."io.k8s.api.core.v1.SecretKeySelector" } // GitlabEventSource refers to event-source related to Gitlab events #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.GitlabEventSource": { // AccessToken references to k8 secret which holds the gitlab api access information "accessToken"?: #."io.k8s.api.core.v1.SecretKeySelector" // DeleteHookOnFinish determines whether to delete the GitLab hook for the // project once the event source is stopped. // +optional "deleteHookOnFinish"?: bool // EnableSSLVerification to enable ssl verification // +optional "enableSSLVerification"?: bool // Events are gitlab event to listen to. // Refer // https://github.com/xanzy/go-gitlab/blob/bf34eca5d13a9f4c3f501d8a97b8ac226d55e4d9/projects.go#L794. "events"?: [...string] // Filter // +optional "filter"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.EventSourceFilter" // GitlabBaseURL is the base URL for API requests to a custom endpoint "gitlabBaseURL"?: string // List of group IDs or group name like "test". // Group level hook available in Premium and Ultimate Gitlab. // +optional "groups"?: [...string] // Metadata holds the user defined metadata which will passed along the event payload. // +optional "metadata"?: [string]: string // DeprecatedProjectID is the id of project for which integration needs to setup // Deprecated: use Projects instead. Will be unsupported in v 1.7 // +optional "projectID"?: string // List of project IDs or project namespace paths like "whynowy/test". // If neither a project nor a group is defined, the EventSource will not manage webhooks. // +optional "projects"?: [...string] // SecretToken references to k8 secret which holds the Secret Token used by webhook config "secretToken"?: #."io.k8s.api.core.v1.SecretKeySelector" // Webhook holds configuration to run a http server "webhook"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.WebhookContext" } // HDFSEventSource refers to event-source for HDFS related events #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.HDFSEventSource": { "addresses"?: [...string] // CheckInterval is a string that describes an interval duration to check the // directory state, e.g. 1s, 30m, 2h... (defaults to 1m) "checkInterval"?: string // Filter // +optional "filter"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.EventSourceFilter" // HDFSUser is the user to access HDFS file system. // It is ignored if either ccache or keytab is used. "hdfsUser"?: string // KrbCCacheSecret is the secret selector for Kerberos ccache // Either ccache or keytab can be set to use Kerberos. "krbCCacheSecret"?: #."io.k8s.api.core.v1.SecretKeySelector" // KrbConfig is the configmap selector for Kerberos config as string // It must be set if either ccache or keytab is used. "krbConfigConfigMap"?: #."io.k8s.api.core.v1.ConfigMapKeySelector" // KrbKeytabSecret is the secret selector for Kerberos keytab // Either ccache or keytab can be set to use Kerberos. "krbKeytabSecret"?: #."io.k8s.api.core.v1.SecretKeySelector" // KrbRealm is the Kerberos realm used with Kerberos keytab // It must be set if keytab is used. "krbRealm"?: string // KrbServicePrincipalName is the principal name of Kerberos service // It must be set if either ccache or keytab is used. "krbServicePrincipalName"?: string // KrbUsername is the Kerberos username used with Kerberos keytab // It must be set if keytab is used. "krbUsername"?: string // Metadata holds the user defined metadata which will passed along the event payload. // +optional "metadata"?: [string]: string // Type of file operations to watch "type"?: string "watchPathConfig"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.WatchPathConfig" } // HTTPTrigger is the trigger for the HTTP request #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.HTTPTrigger": { // BasicAuth configuration for the http request. // +optional "basicAuth"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.BasicAuth" // Headers for the HTTP request. // +optional "headers"?: [string]: string // Method refers to the type of the HTTP request. // Refer https://golang.org/src/net/http/method.go for more io.argoproj.workflow.v1alpha1. // Default value is POST. // +optional "method"?: string // Parameters is the list of key-value extracted from event's payload that are applied to // the HTTP trigger resource. "parameters"?: [...#."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.TriggerParameter"] "payload"?: [...#."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.TriggerParameter"] // Secure Headers stored in Kubernetes Secrets for the HTTP requests. // +optional "secureHeaders"?: [...#."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.SecureHeader"] // Timeout refers to the HTTP request timeout in seconds. // Default value is 60 seconds. // +optional "timeout"?: string // TLS configuration for the HTTP client. // +optional "tls"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.TLSConfig" // URL refers to the URL to send HTTP request to. "url"?: string } #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.Int64OrString": { "int64Val"?: string "strVal"?: string "type"?: string } // K8SResource represent arbitrary structured data. #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.K8SResource": "value"?: string // K8SResourcePolicy refers to the policy used to check the state of K8s based triggers using labels #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.K8SResourcePolicy": { // Backoff before checking resource state "backoff"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.Backoff" // ErrorOnBackoffTimeout determines whether sensor should transition to error // state if the trigger policy is unable to determine // the state of the resource "errorOnBackoffTimeout"?: bool // Labels required to identify whether a resource is in success state "labels"?: [string]: string } #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.KafkaConsumerGroup": { // The name for the consumer group to use "groupName"?: string // When starting up a new group do we want to start from the oldest event (true) // or the newest event (false), defaults to false // +optional "oldest"?: bool // Rebalance strategy can be one of: sticky, roundrobin, range. Range is the default. // +optional "rebalanceStrategy"?: string } // KafkaEventSource refers to event-source for Kafka related events #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.KafkaEventSource": { // Yaml format Sarama config for Kafka connection. // It follows the struct of sarama.Config. See https://github.com/IBM/sarama/blob/main/config.go // e.g. // // consumer: // fetch: // min: 1 // net: // MaxOpenRequests: 5 // // +optional "config"?: string // Backoff holds parameters applied to connection. "connectionBackoff"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.Backoff" // Consumer group for kafka client // +optional "consumerGroup"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.KafkaConsumerGroup" // Filter // +optional "filter"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.EventSourceFilter" // JSONBody specifies that all event body payload coming from this // source will be JSON // +optional "jsonBody"?: bool // Sets a limit on how many events get read from kafka per second. // +optional "limitEventsPerSecond"?: string // Metadata holds the user defined metadata which will passed along the event payload. // +optional "metadata"?: [string]: string // Partition name // +optional "partition"?: string // SASL configuration for the kafka client // +optional "sasl"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.SASLConfig" // TLS configuration for the kafka client. // +optional "tls"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.TLSConfig" // Topic name "topic"?: string // URL to kafka cluster, multiple URLs separated by comma "url"?: string // Specify what kafka version is being connected to enables certain features in // sarama, defaults to 1.0.0 // +optional "version"?: string } // KafkaTrigger refers to the specification of the Kafka trigger. #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.KafkaTrigger": { // Compress determines whether to compress message or not. // Defaults to false. // If set to true, compresses message using snappy compression. // +optional "compress"?: bool // FlushFrequency refers to the frequency in milliseconds to flush batches. // Defaults to 500 milliseconds. // +optional "flushFrequency"?: int // Headers for the Kafka Messages. // +optional "headers"?: [string]: string // Parameters is the list of parameters that is applied to resolved Kafka trigger object. "parameters"?: [...#."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.TriggerParameter"] // +optional // DEPRECATED "partition"?: int // The partitioning key for the messages put on the Kafka topic. // +optional. "partitioningKey"?: string // Payload is the list of key-value extracted from an event payload to construct // the request payload. "payload"?: [...#."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.TriggerParameter"] // RequiredAcks used in producer to tell the broker how many replica acknowledgements // Defaults to 1 (Only wait for the leader to ack). // +optional. "requiredAcks"?: int // SASL configuration for the kafka client // +optional "sasl"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.SASLConfig" // Schema Registry configuration to producer message with avro format // +optional "schemaRegistry"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.SchemaRegistryConfig" // Secure Headers stored in Kubernetes Secrets for the Kafka messages. // +optional "secureHeaders"?: [...#."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.SecureHeader"] // TLS configuration for the Kafka producer. // +optional "tls"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.TLSConfig" // Name of the topic. // More info at https://kafka.apache.org/documentation/#intro_topics "topic"?: string // URL of the Kafka broker, multiple URLs separated by comma. "url"?: string // Specify what kafka version is being connected to enables certain features in // sarama, defaults to 1.0.0 // +optional "version"?: string } #: { "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.LogTrigger": { // Only print messages every interval. Useful to prevent logging too much data for busy events. // +optional "intervalSeconds"?: string } } // MQTTEventSource refers to event-source for MQTT related events #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.MQTTEventSource": { // Auth hosts secret selectors for username and password // +optional "auth"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.BasicAuth" // ClientID is the id of the client "clientId"?: string // ConnectionBackoff holds backoff applied to connection. "connectionBackoff"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.Backoff" // Filter // +optional "filter"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.EventSourceFilter" // JSONBody specifies that all event body payload coming from this // source will be JSON // +optional "jsonBody"?: bool // Metadata holds the user defined metadata which will passed along the event payload. // +optional "metadata"?: [string]: string // TLS configuration for the mqtt client. // +optional "tls"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.TLSConfig" // Topic name "topic"?: string // URL to connect to broker "url"?: string } // Metadata holds the annotations and labels of an event source pod #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.Metadata": { "annotations"?: [string]: string "labels"?: [string]: string } // NATSAuth refers to the auth info for NATS EventSource #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.NATSAuth": { // Baisc auth with username and password // +optional "basic"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.BasicAuth" // credential used to connect // +optional "credential"?: #."io.k8s.api.core.v1.SecretKeySelector" // NKey used to connect // +optional "nkey"?: #."io.k8s.api.core.v1.SecretKeySelector" // Token used to connect // +optional "token"?: #."io.k8s.api.core.v1.SecretKeySelector" } // NATSEventsSource refers to event-source for NATS related events #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.NATSEventsSource": { // Auth information // +optional "auth"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.NATSAuth" // ConnectionBackoff holds backoff applied to connection. "connectionBackoff"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.Backoff" // Filter // +optional "filter"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.EventSourceFilter" // JSONBody specifies that all event body payload coming from this // source will be JSON // +optional "jsonBody"?: bool // Metadata holds the user defined metadata which will passed along the event payload. // +optional "metadata"?: [string]: string // Queue is the name of the queue group to subscribe as if specified. Uses QueueSubscribe // logic to subscribe as queue group. If the queue is empty, uses default Subscribe logic. // +optional "queue"?: string // Subject holds the name of the subject onto which messages are published "subject"?: string // TLS configuration for the nats client. // +optional "tls"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.TLSConfig" // URL to connect to NATS cluster "url"?: string } // NATSTrigger refers to the specification of the NATS trigger. #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.NATSTrigger": { // AuthInformation // +optional "auth"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.NATSAuth" "parameters"?: [...#."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.TriggerParameter"] "payload"?: [...#."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.TriggerParameter"] // Name of the subject to put message on. "subject"?: string // TLS configuration for the NATS producer. // +optional "tls"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.TLSConfig" // URL of the NATS cluster. "url"?: string } // NSQEventSource describes the event source for NSQ PubSub // More info at https://godoc.org/github.com/nsqio/go-nsq #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.NSQEventSource": { // Channel used for subscription "channel"?: string // Backoff holds parameters applied to connection. // +optional "connectionBackoff"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.Backoff" // Filter // +optional "filter"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.EventSourceFilter" // HostAddress is the address of the host for NSQ lookup "hostAddress"?: string // JSONBody specifies that all event body payload coming from this // source will be JSON // +optional "jsonBody"?: bool // Metadata holds the user defined metadata which will passed along the event payload. // +optional "metadata"?: [string]: string // TLS configuration for the nsq client. // +optional "tls"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.TLSConfig" // Topic to subscribe to. "topic"?: string } // OpenWhiskTrigger refers to the specification of the OpenWhisk trigger. #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.OpenWhiskTrigger": { // Name of the action/function. "actionName"?: string // AuthToken for authentication. // +optional "authToken"?: #."io.k8s.api.core.v1.SecretKeySelector" // Host URL of the OpenWhisk. "host"?: string // Namespace for the action. // Defaults to "_". // +optional. "namespace"?: string // Parameters is the list of key-value extracted from event's payload that are applied to // the trigger resource. // +optional "parameters"?: [...#."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.TriggerParameter"] // Payload is the list of key-value extracted from an event payload to construct // the request payload. "payload"?: [...#."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.TriggerParameter"] // Version for the API. // Defaults to v1. // +optional "version"?: string } #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.OwnedRepositories": { // Repository names "names"?: [...string] // Organization or user name "owner"?: string } // PayloadField binds a value at path within the event payload against a name. #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.PayloadField": { // Name acts as key that holds the value at the path. "name"?: string // Path is the JSONPath of the event's (JSON decoded) data key // Path is a series of keys separated by a dot. A key may contain wildcard characters '*' and '?'. // To access an array value use the index as the key. The dot and wildcard // characters can be escaped with '\\'. // See https://github.com/tidwall/gjson#path-syntax for more information on how to use this. "path"?: string } // PubSubEventSource refers to event-source for GCP PubSub related events. #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.PubSubEventSource": { // CredentialSecret references to the secret that contains JSON credentials to access GCP. // If it is missing, it implicitly uses Workload Identity to access. // https://cloud.google.com/kubernetes-engine/docs/how-to/workload-identity // +optional "credentialSecret"?: #."io.k8s.api.core.v1.SecretKeySelector" // DeleteSubscriptionOnFinish determines whether to delete the GCP PubSub // subscription once the event source is stopped. // +optional "deleteSubscriptionOnFinish"?: bool // Filter // +optional "filter"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.EventSourceFilter" // JSONBody specifies that all event body payload coming from this // source will be JSON // +optional "jsonBody"?: bool // Metadata holds the user defined metadata which will passed along the event payload. // +optional "metadata"?: [string]: string // ProjectID is GCP project ID for the subscription. // Required if you run Argo Events outside of GKE/GCE. // (otherwise, the default value is its project) // +optional "projectID"?: string // SubscriptionID is ID of subscription. // Required if you use existing subscription. // The default value will be auto generated hash based on this eventsource // setting, so the subscription // might be recreated every time you update the setting, which has a possibility of event loss. // +optional "subscriptionID"?: string // Topic to which the subscription should belongs. // Required if you want the eventsource to create a new subscription. // If you specify this field along with an existing subscription, // it will be verified whether it actually belongs to the specified topic. // +optional "topic"?: string // TopicProjectID is GCP project ID for the topic. // By default, it is same as ProjectID. // +optional "topicProjectID"?: string } // PulsarEventSource describes the event source for Apache Pulsar #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.PulsarEventSource": { // Authentication athenz parameters for the pulsar client. // Refer https://github.com/apache/pulsar-client-go/blob/master/pulsar/auth/athenz.go // Either token or athenz can be set to use auth. // +optional "authAthenzParams"?: [string]: string // Authentication athenz privateKey secret for the pulsar client. // AuthAthenzSecret must be set if AuthAthenzParams is used. // +optional "authAthenzSecret"?: #."io.k8s.api.core.v1.SecretKeySelector" // Authentication token for the pulsar client. // Either token or athenz can be set to use auth. // +optional "authTokenSecret"?: #."io.k8s.api.core.v1.SecretKeySelector" // Backoff holds parameters applied to connection. // +optional "connectionBackoff"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.Backoff" // Filter // +optional "filter"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.EventSourceFilter" // JSONBody specifies that all event body payload coming from this // source will be JSON // +optional "jsonBody"?: bool // Metadata holds the user defined metadata which will passed along the event payload. // +optional "metadata"?: [string]: string // TLS configuration for the pulsar client. // +optional "tls"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.TLSConfig" // Whether the Pulsar client accept untrusted TLS certificate from broker. // +optional "tlsAllowInsecureConnection"?: bool // Trusted TLS certificate secret. // +optional "tlsTrustCertsSecret"?: #."io.k8s.api.core.v1.SecretKeySelector" // Whether the Pulsar client verify the validity of the host name from broker. // +optional "tlsValidateHostname"?: bool // Name of the topics to subscribe to. // +required "topics"?: [...string] // Type of the subscription. // Only "exclusive" and "shared" is supported. // Defaults to exclusive. // +optional "type"?: string // Configure the service URL for the Pulsar service. // +required "url"?: string } // PulsarTrigger refers to the specification of the Pulsar trigger. #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.PulsarTrigger": { // Authentication athenz parameters for the pulsar client. // Refer https://github.com/apache/pulsar-client-go/blob/master/pulsar/auth/athenz.go // Either token or athenz can be set to use auth. // +optional "authAthenzParams"?: [string]: string // Authentication athenz privateKey secret for the pulsar client. // AuthAthenzSecret must be set if AuthAthenzParams is used. // +optional "authAthenzSecret"?: #."io.k8s.api.core.v1.SecretKeySelector" // Authentication token for the pulsar client. // Either token or athenz can be set to use auth. // +optional "authTokenSecret"?: #."io.k8s.api.core.v1.SecretKeySelector" // Backoff holds parameters applied to connection. // +optional "connectionBackoff"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.Backoff" // Parameters is the list of parameters that is applied to resolved Kafka trigger object. "parameters"?: [...#."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.TriggerParameter"] // Payload is the list of key-value extracted from an event payload to construct // the request payload. "payload"?: [...#."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.TriggerParameter"] // TLS configuration for the pulsar client. // +optional "tls"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.TLSConfig" // Whether the Pulsar client accept untrusted TLS certificate from broker. // +optional "tlsAllowInsecureConnection"?: bool // Trusted TLS certificate secret. // +optional "tlsTrustCertsSecret"?: #."io.k8s.api.core.v1.SecretKeySelector" // Whether the Pulsar client verify the validity of the host name from broker. // +optional "tlsValidateHostname"?: bool // Name of the topic. // See https://pulsar.apache.org/docs/en/concepts-messaging/ "topic"?: string // Configure the service URL for the Pulsar service. // +required "url"?: string } #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.RateLimit": { "requestsPerUnit"?: int // Defaults to Second "unit"?: string } // RedisEventSource describes an event source for the Redis PubSub. // More info at https://godoc.org/github.com/go-redis/redis#example-PubSub #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.RedisEventSource": { "channels"?: [...string] // DB to use. If not specified, default DB 0 will be used. // +optional "db"?: int // Filter // +optional "filter"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.EventSourceFilter" // HostAddress refers to the address of the Redis host/server "hostAddress"?: string // JSONBody specifies that all event body payload coming from this // source will be JSON // +optional "jsonBody"?: bool // Metadata holds the user defined metadata which will passed along the event payload. // +optional "metadata"?: [string]: string // Namespace to use to retrieve the password from. It should only be specified // if password is declared // +optional "namespace"?: string // Password required for authentication if any. // +optional "password"?: #."io.k8s.api.core.v1.SecretKeySelector" // TLS configuration for the redis client. // +optional "tls"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.TLSConfig" // Username required for ACL style authentication if any. // +optional "username"?: string } // RedisStreamEventSource describes an event source for // Redis streams (https://redis.io/topics/streams-intro) #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.RedisStreamEventSource": { // ConsumerGroup refers to the Redis stream consumer group that will be // created on all redis streams. Messages are read through this group. Defaults to 'argo-events-cg' // +optional "consumerGroup"?: string // DB to use. If not specified, default DB 0 will be used. // +optional "db"?: int // Filter // +optional "filter"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.EventSourceFilter" // HostAddress refers to the address of the Redis host/server (master instance) "hostAddress"?: string // MaxMsgCountPerRead holds the maximum number of messages per stream that will // be read in each XREADGROUP of all streams // Example: if there are 2 streams and MaxMsgCountPerRead=10, then each // XREADGROUP may read upto a total of 20 messages. // Same as COUNT option in XREADGROUP(https://redis.io/topics/streams-intro). Defaults to 10 // +optional "maxMsgCountPerRead"?: int // Metadata holds the user defined metadata which will passed along the event payload. // +optional "metadata"?: [string]: string // Password required for authentication if any. // +optional "password"?: #."io.k8s.api.core.v1.SecretKeySelector" // Streams to look for entries. XREADGROUP is used on all streams using a single consumer group. "streams"?: [...string] // TLS configuration for the redis client. // +optional "tls"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.TLSConfig" // Username required for ACL style authentication if any. // +optional "username"?: string } // ResourceEventSource refers to a event-source for K8s resource related events. #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.ResourceEventSource": { // EventTypes is the list of event type to watch. // Possible values are - ADD, UPDATE and DELETE. "eventTypes"?: [...string] // Filter is applied on the metadata of the resource // If you apply filter, then the internal event informer will only monitor // objects that pass the filter. // +optional "filter"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.ResourceFilter" // Group of the resource "groupVersionResource"?: #."io.k8s.apimachinery.pkg.apis.meta.v1.GroupVersionResource" // Metadata holds the user defined metadata which will passed along the event payload. // +optional "metadata"?: [string]: string // Namespace where resource is deployed "namespace"?: string } // ResourceFilter contains K8s ObjectMeta information to further filter resource event objects #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.ResourceFilter": { // If the resource is created after the start time then the event is treated as valid. // +optional "afterStart"?: bool // If resource is created before the specified time then the event is treated as valid. // +optional "createdBy"?: #."io.k8s.apimachinery.pkg.apis.meta.v1.Time" // Fields provide field filters similar to K8s field selector // (see https://kubernetes.io/docs/concepts/overview/working-with-objects/field-selectors/). // Unlike K8s field selector, it supports arbitrary fileds like "spec.serviceAccountName", // and the value could be a string or a regex. // Same as K8s field selector, operator "=", "==" and "!=" are supported. // +optional "fields"?: [...#."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.Selector"] // Labels provide listing options to K8s API to watch resource/s. // Refer // https://kubernetes.io/docs/concepts/overview/working-with-objects/label-selectors/ // for more io.argoproj.workflow.v1alpha1. // Unlike K8s field selector, multiple values are passed as comma separated // values instead of list of values. // Eg: value: value1,value2. // Same as K8s label selector, operator "=", "==", "!=", "exists", "!", "notin", "in", "gt" and "lt" // are supported // +optional "labels"?: [...#."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.Selector"] // Prefix filter is applied on the resource name. // +optional "prefix"?: string } // S3Artifact contains information about an S3 connection and bucket #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.S3Artifact": { "accessKey"?: #."io.k8s.api.core.v1.SecretKeySelector" "bucket"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.S3Bucket" "caCertificate"?: #."io.k8s.api.core.v1.SecretKeySelector" "endpoint"?: string "events"?: [...string] "filter"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.S3Filter" "insecure"?: bool "metadata"?: [string]: string "region"?: string "secretKey"?: #."io.k8s.api.core.v1.SecretKeySelector" } // S3Bucket contains information to describe an S3 Bucket #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.S3Bucket": { "key"?: string "name"?: string } // S3Filter represents filters to apply to bucket notifications for specifying // constraints on objects #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.S3Filter": { "prefix"?: string "suffix"?: string } // SASLConfig refers to SASL configuration for a client #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.SASLConfig": { // SASLMechanism is the name of the enabled SASL mechanism. // Possible values: OAUTHBEARER, PLAIN (defaults to PLAIN). // +optional "mechanism"?: string // Password for SASL/PLAIN authentication "passwordSecret"?: #."io.k8s.api.core.v1.SecretKeySelector" // User is the authentication identity (authcid) to present for // SASL/PLAIN or SASL/SCRAM authentication "userSecret"?: #."io.k8s.api.core.v1.SecretKeySelector" } // SFTPEventSource describes an event-source for sftp related events. #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.SFTPEventSource": { // Address sftp address. "address"?: #."io.k8s.api.core.v1.SecretKeySelector" // Type of file operations to watch // Refer https://github.com/fsnotify/fsnotify/blob/master/fsnotify.go for more information "eventType"?: string // Filter // +optional "filter"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.EventSourceFilter" // Metadata holds the user defined metadata which will passed along the event payload. // +optional "metadata"?: [string]: string // Password required for authentication if any. "password"?: #."io.k8s.api.core.v1.SecretKeySelector" // PollIntervalDuration the interval at which to poll the SFTP server // defaults to 10 seconds // +optional "pollIntervalDuration"?: string // SSHKeySecret refers to the secret that contains SSH key. Key needs to contain // private key and public key. "sshKeySecret"?: #."io.k8s.api.core.v1.SecretKeySelector" // Username required for authentication if any. "username"?: #."io.k8s.api.core.v1.SecretKeySelector" // WatchPathConfig contains configuration about the file path to watch "watchPathConfig"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.WatchPathConfig" } // SNSEventSource refers to event-source for AWS SNS related events #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.SNSEventSource": { // AccessKey refers K8s secret containing aws access key "accessKey"?: #."io.k8s.api.core.v1.SecretKeySelector" // Endpoint configures connection to a specific SNS endpoint instead of Amazons servers // +optional "endpoint"?: string // Filter // +optional "filter"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.EventSourceFilter" // Metadata holds the user defined metadata which will passed along the event payload. // +optional "metadata"?: [string]: string // Region is AWS region "region"?: string // RoleARN is the Amazon Resource Name (ARN) of the role to assume. // +optional "roleARN"?: string // SecretKey refers K8s secret containing aws secret key "secretKey"?: #."io.k8s.api.core.v1.SecretKeySelector" // TopicArn "topicArn"?: string // ValidateSignature is boolean that can be set to true for SNS signature verification // +optional "validateSignature"?: bool // Webhook configuration for http server "webhook"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.WebhookContext" } // SQSEventSource refers to event-source for AWS SQS related events #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.SQSEventSource": { // AccessKey refers K8s secret containing aws access key "accessKey"?: #."io.k8s.api.core.v1.SecretKeySelector" // DLQ specifies if a dead-letter queue is configured for messages that can't be // processed successfully. // If set to true, messages with invalid payload won't be acknowledged to allow // to forward them farther to the dead-letter queue. // The default value is false. // +optional "dlq"?: bool // Endpoint configures connection to a specific SQS endpoint instead of Amazons servers // +optional "endpoint"?: string // Filter // +optional "filter"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.EventSourceFilter" // JSONBody specifies that all event body payload coming from this // source will be JSON // +optional "jsonBody"?: bool // Metadata holds the user defined metadata which will passed along the event payload. // +optional "metadata"?: [string]: string // Queue is AWS SQS queue to listen to for messages "queue"?: string // QueueAccountID is the ID of the account that created the queue to monitor // +optional "queueAccountId"?: string // Region is AWS region "region"?: string // RoleARN is the Amazon Resource Name (ARN) of the role to assume. // +optional "roleARN"?: string // SecretKey refers K8s secret containing aws secret key "secretKey"?: #."io.k8s.api.core.v1.SecretKeySelector" // SessionToken refers to K8s secret containing AWS temporary credentials(STS) session token // +optional "sessionToken"?: #."io.k8s.api.core.v1.SecretKeySelector" // WaitTimeSeconds is The duration (in seconds) for which the call waits for a message to arrive // in the queue before returning. "waitTimeSeconds"?: string } // SchemaRegistryConfig refers to configuration for a client #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.SchemaRegistryConfig": { // +optional // SchemaRegistry - basic authentication "auth"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.BasicAuth" // Schema ID "schemaId"?: int // Schema Registry URL. "url"?: string } // SecureHeader refers to HTTP Headers with auth tokens as values #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.SecureHeader": { "name"?: string // Values can be read from either secrets or configmaps "valueFrom"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.ValueFromSource" } // Selector represents conditional operation to select K8s objects. #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.Selector": { // Key name "key"?: string // Supported operations like ==, != etc. // Defaults to ==. // Refer // https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors // for more io.argoproj.workflow.v1alpha1. // +optional "operation"?: string // Value "value"?: string } // Sensor is the definition of a sensor resource // +genclient // +genclient:noStatus // +kubebuilder:resource:shortName=sn // +kubebuilder:subresource:status // +k8s:deepcopy-gen:interfaces=io.k8s.apimachinery/pkg/runtime.Object // +k8s:openapi-gen=true #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.Sensor": { "metadata"?: #."io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta" "spec"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.SensorSpec" // +optional "status"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.SensorStatus" } // SensorList is the list of Sensor resources // +k8s:deepcopy-gen:interfaces=io.k8s.apimachinery/pkg/runtime.Object #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.SensorList": { "items"?: [...#."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.Sensor"] "metadata"?: #."io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta" } // SensorSpec represents desired sensor state #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.SensorSpec": { // Dependencies is a list of the events that this sensor is dependent on. "dependencies"?: [...#."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.EventDependency"] // ErrorOnFailedRound if set to true, marks sensor state as `error` if the // previous trigger round fails. // Once sensor state is set to `error`, no further triggers will be processed. "errorOnFailedRound"?: bool // EventBusName references to a EventBus name. By default the value is "default" "eventBusName"?: string // LoggingFields add additional key-value pairs when logging happens // +optional "loggingFields"?: [string]: string // Replicas is the sensor deployment replicas "replicas"?: int // RevisionHistoryLimit specifies how many old deployment revisions to retain // +optional "revisionHistoryLimit"?: int // Template is the pod specification for the sensor // +optional "template"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.Template" // Triggers is a list of the things that this sensor evokes. These are the outputs from this sensor. "triggers"?: [...#."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.Trigger"] } // SensorStatus contains information about the status of a sensor. #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.SensorStatus": "status"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.Status" // Service holds the service information eventsource exposes #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.Service": { // clusterIP is the IP address of the service and is usually assigned // randomly by the master. If an address is specified manually and is not in // use by others, it will be allocated to the service; otherwise, creation // of the service will fail. This field can not be changed through updates. // Valid values are "None", empty string (""), or a valid IP address. "None" // can be specified for headless services when proxying is not required. // More info: // https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies // +optional "clusterIP"?: string // Metadata sets the pods's metadata, i.e. annotations and labels // default={annotations: {}, labels: {}} "metadata"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.Metadata" // The list of ports that are exposed by this ClusterIP service. // +patchMergeKey=port // +patchStrategy=merge // +listType=map // +listMapKey=port // +listMapKey=protocol "ports"?: [...#."io.k8s.api.core.v1.ServicePort"] } // SlackEventSource refers to event-source for Slack related events #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.SlackEventSource": { // Filter // +optional "filter"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.EventSourceFilter" // Metadata holds the user defined metadata which will passed along the event payload. // +optional "metadata"?: [string]: string // Slack App signing secret "signingSecret"?: #."io.k8s.api.core.v1.SecretKeySelector" // Token for URL verification handshake "token"?: #."io.k8s.api.core.v1.SecretKeySelector" // Webhook holds configuration for a REST endpoint "webhook"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.WebhookContext" } #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.SlackSender": { // Icon is the Slack application's icon, e.g. :robot_face: or https://example.com/image.png // +optional "icon"?: string // Username is the Slack application's username // +optional "username"?: string } #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.SlackThread": { // BroadcastMessageToChannel allows to also broadcast the message from the thread to the channel // +optional "broadcastMessageToChannel"?: bool // MessageAggregationKey allows to aggregate the messages to a thread by some key. // +optional "messageAggregationKey"?: string } // SlackTrigger refers to the specification of the slack notification trigger. #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.SlackTrigger": { // Attachments is a JSON format string that represents an array of Slack // attachments according to the attachments API: // https://api.slack.com/reference/messaging/attachments . // +optional "attachments"?: string // Blocks is a JSON format string that represents an array of Slack blocks // according to the blocks API: // https://api.slack.com/reference/block-kit/blocks . // +optional "blocks"?: string // Channel refers to which Slack channel to send Slack message. // +optional "channel"?: string // Message refers to the message to send to the Slack channel. // +optional "message"?: string // Parameters is the list of key-value extracted from event's payload that are applied to // the trigger resource. // +optional "parameters"?: [...#."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.TriggerParameter"] // Sender refers to additional configuration of the Slack application that sends the message. // +optional "sender"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.SlackSender" // SlackToken refers to the Kubernetes secret that holds the slack token required to send messages. "slackToken"?: #."io.k8s.api.core.v1.SecretKeySelector" // Thread refers to additional options for sending messages to a Slack thread. // +optional "thread"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.SlackThread" } // StandardK8STrigger is the standard Kubernetes resource trigger #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.StandardK8STrigger": { // LiveObject specifies whether the resource should be directly fetched from K8s instead // of being marshaled from the resource artifact. If set to true, the resource artifact // must contain the information required to uniquely identify the resource in the cluster, // that is, you must specify "apiVersion", "kind" as well as "name" and "namespace" meta // data. // Only valid for operation type `update` // +optional "liveObject"?: bool // Operation refers to the type of operation performed on the k8s resource. // Default value is Create. // +optional "operation"?: string // Parameters is the list of parameters that is applied to resolved K8s trigger object. "parameters"?: [...#."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.TriggerParameter"] // PatchStrategy controls the K8s object patching strategy when the trigger // operation is specified as patch. // possible values: // "application/json-patch+json" // "application/merge-patch+json" // "application/strategic-merge-patch+json" // "application/apply-patch+yaml". // Defaults to "application/merge-patch+json" // +optional "patchStrategy"?: string // Source of the K8s resource file(s) "source"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.ArtifactLocation" } // Status is a common structure which can be used for Status field. #: { "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.Status": { // Conditions are the latest available observations of a resource's current state. // +optional // +patchMergeKey=type // +patchStrategy=merge "conditions"?: [...#."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.Condition"] } } // StatusPolicy refers to the policy used to check the state of the trigger using response status #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.StatusPolicy": "allow"?: [...int] // StorageGridEventSource refers to event-source for StorageGrid related events #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.StorageGridEventSource": { // APIURL is the url of the storagegrid api. "apiURL"?: string // Auth token for storagegrid api "authToken"?: #."io.k8s.api.core.v1.SecretKeySelector" // Name of the bucket to register notifications for. "bucket"?: string "events"?: [...string] // Filter on object key which caused the notification. "filter"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.StorageGridFilter" // Metadata holds the user defined metadata which will passed along the event payload. // +optional "metadata"?: [string]: string // S3 region. // Defaults to us-east-1 // +optional "region"?: string // TopicArn "topicArn"?: string // Webhook holds configuration for a REST endpoint "webhook"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.WebhookContext" } // StorageGridFilter represents filters to apply to bucket notifications for // specifying constraints on objects // +k8s:openapi-gen=true #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.StorageGridFilter": { "prefix"?: string "suffix"?: string } // StripeEventSource describes the event source for stripe webhook notifications // More info at https://stripe.com/docs/webhooks #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.StripeEventSource": { // APIKey refers to K8s secret that holds Stripe API key. Used only if CreateWebhook is enabled. // +optional "apiKey"?: #."io.k8s.api.core.v1.SecretKeySelector" // CreateWebhook if specified creates a new webhook programmatically. // +optional "createWebhook"?: bool // EventFilter describes the type of events to listen to. If not specified, all // types of events will be processed. // More info at https://stripe.com/docs/api/events/list // +optional "eventFilter"?: [...string] // Metadata holds the user defined metadata which will passed along the event payload. // +optional "metadata"?: [string]: string // Webhook holds configuration for a REST endpoint "webhook"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.WebhookContext" } // TLSConfig refers to TLS configuration for a client. #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.TLSConfig": { // CACertSecret refers to the secret that contains the CA cert "caCertSecret"?: #."io.k8s.api.core.v1.SecretKeySelector" // ClientCertSecret refers to the secret that contains the client cert "clientCertSecret"?: #."io.k8s.api.core.v1.SecretKeySelector" // ClientKeySecret refers to the secret that contains the client key "clientKeySecret"?: #."io.k8s.api.core.v1.SecretKeySelector" // If true, skips creation of TLSConfig with certs and creates an empty // TLSConfig. (Defaults to false) // +optional "insecureSkipVerify"?: bool } // Template holds the information of a deployment template #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.Template": { // If specified, the pod's scheduling constraints // +optional "affinity"?: #."io.k8s.api.core.v1.Affinity" // Container is the main container image to run in the sensor pod // +optional "container"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.Container" // ImagePullSecrets is an optional list of references to secrets in the same // namespace to use for pulling any of the images used by this PodSpec. // If specified, these secrets will be passed to individual puller // implementations for them to use. For example, // in the case of docker, only DockerConfig type secrets are honored. // More info: // https://kubernetes.io/docs/concepts/containers/images#specifying-imagepullsecrets-on-a-pod // +optional // +patchMergeKey=name // +patchStrategy=merge "imagePullSecrets"?: [...#."io.k8s.api.core.v1.LocalObjectReference"] // Metadata sets the pods's metadata, i.e. annotations and labels "metadata"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.Metadata" // NodeSelector is a selector which must be true for the pod to fit on a node. // Selector which must match a node's labels for the pod to be scheduled on that node. // More info: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/ // +optional "nodeSelector"?: [string]: string // The priority value. Various system components use this field to find the // priority of the EventSource pod. When Priority Admission Controller is enabled, // it prevents users from setting this field. The admission controller populates // this field from PriorityClassName. // The higher the value, the higher the priority. // More info: https://kubernetes.io/docs/concepts/configuration/pod-priority-preemption/ // +optional "priority"?: int // If specified, indicates the EventSource pod's priority. "system-node-critical" // and "system-cluster-critical" are two special keywords which indicate the // highest priorities with the former being the highest priority. Any other // name must be defined by creating a PriorityClass object with that name. // If not specified, the pod priority will be default or zero if there is no // default. // More info: https://kubernetes.io/docs/concepts/configuration/pod-priority-preemption/ // +optional "priorityClassName"?: string // SecurityContext holds pod-level security attributes and common container settings. // Optional: Defaults to empty. See type description for default values of each field. // +optional "securityContext"?: #."io.k8s.api.core.v1.PodSecurityContext" // ServiceAccountName is the name of the ServiceAccount to use to run sensor pod. // More info: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/ // +optional "serviceAccountName"?: string // If specified, the pod's tolerations. // +optional "tolerations"?: [...#."io.k8s.api.core.v1.Toleration"] // Volumes is a list of volumes that can be mounted by containers in a // io.argoproj.workflow.v1alpha1. // +patchStrategy=merge // +patchMergeKey=name // +optional "volumes"?: [...#."io.k8s.api.core.v1.Volume"] } // TimeFilter describes a window in time. // It filters out events that occur outside the time limits. // In other words, only events that occur after Start and before Stop // will pass this filter. #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.TimeFilter": { // Start is the beginning of a time window in UTC. // Before this time, events for this dependency are ignored. // Format is hh:mm:ss. "start"?: string // Stop is the end of a time window in UTC. // After or equal to this time, events for this dependency are ignored and // Format is hh:mm:ss. // If it is smaller than Start, it is treated as next day of Start // (e.g.: 22:00:00-01:00:00 means 22:00:00-25:00:00). "stop"?: string } // Trigger is an action taken, output produced, an event created, a message sent #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.Trigger": { // AtLeastOnce determines the trigger execution semantics. // Defaults to false. Trigger execution will use at-most-once semantics. // If set to true, Trigger execution will switch to at-least-once semantics. // +kubebuilder:default=false // +optional "atLeastOnce"?: bool // If the trigger fails, it will retry up to the configured number of // retries. If the maximum retries are reached and the trigger is set to // execute atLeastOnce, the dead letter queue (DLQ) trigger will be invoked if // specified. Invoking the dead letter queue trigger helps prevent data // loss. // +optional "dlqTrigger"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.Trigger" // Parameters is the list of parameters applied to the trigger template definition "parameters"?: [...#."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.TriggerParameter"] // Policy to configure backoff and execution criteria for the trigger // +optional "policy"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.TriggerPolicy" // Rate limit, default unit is Second // +optional "rateLimit"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.RateLimit" // Retry strategy, defaults to no retry // +optional "retryStrategy"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.Backoff" // Template describes the trigger specification. "template"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.TriggerTemplate" } // TriggerParameter indicates a passed parameter to a service template #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.TriggerParameter": { // Dest is the JSONPath of a resource key. // A path is a series of keys separated by a dot. The colon character can be escaped with '.' // The -1 key can be used to append a value to an existing array. // See https://github.com/tidwall/sjson#path-syntax for more information about how this is used. "dest"?: string // Operation is what to do with the existing value at Dest, whether to // 'prepend', 'overwrite', or 'append' it. "operation"?: string // Src contains a source reference to the value of the parameter from a dependency "src"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.TriggerParameterSource" } // TriggerParameterSource defines the source for a parameter from a event event #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.TriggerParameterSource": { // ContextKey is the JSONPath of the event's (JSON decoded) context key // ContextKey is a series of keys separated by a dot. A key may contain wildcard // characters '*' and '?'. // To access an array value use the index as the key. The dot and wildcard // characters can be escaped with '\\'. // See https://github.com/tidwall/gjson#path-syntax for more information on how to use this. "contextKey"?: string // ContextTemplate is a go-template for extracting a string from the event's context. // If a ContextTemplate is provided with a ContextKey, the template will be // evaluated first and fallback to the ContextKey. // The templating follows the standard go-template syntax as well as sprig's extra functions. // See https://pkg.go.dev/text/template and https://masterminds.github.io/sprig/ "contextTemplate"?: string // DataKey is the JSONPath of the event's (JSON decoded) data key // DataKey is a series of keys separated by a dot. A key may contain wildcard // characters '*' and '?'. // To access an array value use the index as the key. The dot and wildcard // characters can be escaped with '\\'. // See https://github.com/tidwall/gjson#path-syntax for more information on how to use this. "dataKey"?: string // DataTemplate is a go-template for extracting a string from the event's data. // If a DataTemplate is provided with a DataKey, the template will be evaluated // first and fallback to the DataKey. // The templating follows the standard go-template syntax as well as sprig's extra functions. // See https://pkg.go.dev/text/template and https://masterminds.github.io/sprig/ "dataTemplate"?: string // DependencyName refers to the name of the dependency. The event which is // stored for this dependency is used as payload // for the parameterization. Make sure to refer to one of the dependencies you // have defined under Dependencies list. "dependencyName"?: string // UseRawData indicates if the value in an event at data key should be used // without converting to string. // When true, a number, boolean, json or string parameter may be extracted. When // the field is unspecified, or explicitly // false, the behavior is to turn the extracted field into a string. (e.g. when // set to true, the parameter // 123 will resolve to the numerical type, but when false, or not provided, the // string "123" will be resolved) // +optional "useRawData"?: bool // Value is the default literal value to use for this parameter source // This is only used if the DataKey is invalid. // If the DataKey is invalid and this is not defined, this param source will produce an error. "value"?: string } // TriggerPolicy dictates the policy for the trigger retries #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.TriggerPolicy": { // K8SResourcePolicy refers to the policy used to check the state of K8s based // triggers using using labels "k8s"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.K8SResourcePolicy" // Status refers to the policy used to check the state of the trigger using response status "status"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.StatusPolicy" } // TriggerTemplate is the template that describes trigger specification. #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.TriggerTemplate": { // ArgoWorkflow refers to the trigger that can perform various operations on an // Argo io.argoproj.workflow.v1alpha1. // +optional "argoWorkflow"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.ArgoWorkflowTrigger" // AWSLambda refers to the trigger designed to invoke AWS Lambda function with // with on-the-fly constructable payload. // +optional "awsLambda"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.AWSLambdaTrigger" // AzureEventHubs refers to the trigger send an event to an Azure Event Hub. // +optional "azureEventHubs"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.AzureEventHubsTrigger" // AzureServiceBus refers to the trigger designed to place messages on Azure Service Bus // +optional "azureServiceBus"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.AzureServiceBusTrigger" // Conditions is the conditions to execute the trigger. // For example: "(dep01 || dep02) && dep04" // +optional "conditions"?: string // Criteria to reset the conditons // +optional "conditionsReset"?: [...#."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.ConditionsResetCriteria"] // CustomTrigger refers to the trigger designed to connect to a gRPC trigger // server and execute a custom trigger. // +optional "custom"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.CustomTrigger" // Email refers to the trigger designed to send an email notification // +optional "email"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.EmailTrigger" // HTTP refers to the trigger designed to dispatch a HTTP request with // on-the-fly constructable payload. // +optional "http"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.HTTPTrigger" // StandardK8STrigger refers to the trigger designed to create or update a // generic Kubernetes resource. // +optional "k8s"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.StandardK8STrigger" // Kafka refers to the trigger designed to place messages on Kafka topic. // +optional. "kafka"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.KafkaTrigger" // Log refers to the trigger designed to invoke log the io.argoproj.workflow.v1alpha1. // +optional "log"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.LogTrigger" // Name is a unique name of the action to take. "name"?: string // NATS refers to the trigger designed to place message on NATS subject. // +optional. "nats"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.NATSTrigger" // OpenWhisk refers to the trigger designed to invoke OpenWhisk action. // +optional "openWhisk"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.OpenWhiskTrigger" // Pulsar refers to the trigger designed to place messages on Pulsar topic. // +optional "pulsar"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.PulsarTrigger" // Slack refers to the trigger designed to send slack notification message. // +optional "slack"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.SlackTrigger" } // URLArtifact contains information about an artifact at an http endpoint. #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.URLArtifact": { // Path is the complete URL "path"?: string // VerifyCert decides whether the connection is secure or not "verifyCert"?: bool } // ValueFromSource allows you to reference keys from either a Configmap or Secret #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.ValueFromSource": { "configMapKeyRef"?: #."io.k8s.api.core.v1.ConfigMapKeySelector" "secretKeyRef"?: #."io.k8s.api.core.v1.SecretKeySelector" } #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.WatchPathConfig": { // Directory to watch for events "directory"?: string // Path is relative path of object to watch with respect to the directory "path"?: string // PathRegexp is regexp of relative path of object to watch with respect to the directory "pathRegexp"?: string } // WebhookContext holds a general purpose REST API context #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.WebhookContext": { // AuthSecret holds a secret selector that contains a bearer token for authentication // +optional "authSecret"?: #."io.k8s.api.core.v1.SecretKeySelector" // REST API endpoint "endpoint"?: string // MaxPayloadSize is the maximum webhook payload size that the server will accept. // Requests exceeding that limit will be rejected with "request too large" response. // Default value: 1048576 (1MB). // +optional "maxPayloadSize"?: string // Metadata holds the user defined metadata which will passed along the event payload. // +optional "metadata"?: [string]: string // Method is HTTP request method that indicates the desired action to be // performed for a given resource. // See RFC7231 Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content "method"?: string // Port on which HTTP server is listening for incoming events. "port"?: string // ServerCertPath refers the file that contains the cert. "serverCertSecret"?: #."io.k8s.api.core.v1.SecretKeySelector" // ServerKeyPath refers the file that contains private key "serverKeySecret"?: #."io.k8s.api.core.v1.SecretKeySelector" // URL is the url of the server. "url"?: string } // CalendarEventSource describes an HTTP based EventSource #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.WebhookEventSource": { // Filter // +optional "filter"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.EventSourceFilter" "webhookContext"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.WebhookContext" } #: "google.protobuf.Any": { "type_url"?: string "value"?: string } #: "grpc.gateway.runtime.Error": { "code"?: int "details"?: [...#."google.protobuf.Any"] "error"?: string "message"?: string } #: "grpc.gateway.runtime.StreamError": { "details"?: [...#."google.protobuf.Any"] "grpc_code"?: int "http_code"?: int "http_status"?: string "message"?: string } // Amount represent a numeric amount. #: "io.argoproj.workflow.v1alpha1.Amount": number // ArchiveStrategy describes how to archive files/directory when saving artifacts #: "io.argoproj.workflow.v1alpha1.ArchiveStrategy": { "none"?: #."io.argoproj.workflow.v1alpha1.NoneStrategy" "tar"?: #."io.argoproj.workflow.v1alpha1.TarStrategy" "zip"?: #."io.argoproj.workflow.v1alpha1.ZipStrategy" } #: "io.argoproj.workflow.v1alpha1.ArchivedWorkflowDeletedResponse": {} // Arguments to a template #: "io.argoproj.workflow.v1alpha1.Arguments": { // Artifacts is the list of artifacts to pass to the template or workflow "artifacts"?: [...#."io.argoproj.workflow.v1alpha1.Artifact"] // Parameters is the list of parameters to pass to the template or workflow "parameters"?: [...#."io.argoproj.workflow.v1alpha1.Parameter"] } // ArtGCStatus maintains state related to ArtifactGC #: "io.argoproj.workflow.v1alpha1.ArtGCStatus": { // if this is true, we already checked to see if we need to do it and we don't "notSpecified"?: bool // have completed Pods been processed? (mapped by Pod name) used to prevent // re-processing the Status of a Pod more than once "podsRecouped"?: [string]: bool // have Pods been started to perform this strategy? (enables us not to // re-process what we've already done) "strategiesProcessed"?: [string]: bool } // Artifact indicates an artifact to place at a specified path #: "io.argoproj.workflow.v1alpha1.Artifact": { // Archive controls how the artifact will be saved to the artifact repository. "archive"?: #."io.argoproj.workflow.v1alpha1.ArchiveStrategy" // ArchiveLogs indicates if the container logs should be archived "archiveLogs"?: bool // ArtifactGC describes the strategy to use when to deleting an artifact from // completed or deleted workflows "artifactGC"?: #."io.argoproj.workflow.v1alpha1.ArtifactGC" // Artifactory contains artifactory artifact location details "artifactory"?: #."io.argoproj.workflow.v1alpha1.ArtifactoryArtifact" // Azure contains Azure Storage artifact location details "azure"?: #."io.argoproj.workflow.v1alpha1.AzureArtifact" // Has this been deleted? "deleted"?: bool // From allows an artifact to reference an artifact from a previous step "from"?: string // FromExpression, if defined, is evaluated to specify the value for the artifact "fromExpression"?: string // GCS contains GCS artifact location details "gcs"?: #."io.argoproj.workflow.v1alpha1.GCSArtifact" // Git contains git artifact location details "git"?: #."io.argoproj.workflow.v1alpha1.GitArtifact" // GlobalName exports an output artifact to the global scope, making it // available as io.argoproj.workflow.v1alpha1.outputs.artifacts.XXXX and in // workflow.status.outputs.artifacts "globalName"?: string // HDFS contains HDFS artifact location details "hdfs"?: #."io.argoproj.workflow.v1alpha1.HDFSArtifact" // HTTP contains HTTP artifact location details "http"?: #."io.argoproj.workflow.v1alpha1.HTTPArtifact" // mode bits to use on this file, must be a value between 0 and 0777. Set when // loading input artifacts. It is recommended to set the mode value to ensure // the artifact has the expected permissions in your container. "mode"?: int // name of the artifact. must be unique within a template's inputs/outputs. "name"!: string // Make Artifacts optional, if Artifacts doesn't generate or exist "optional"?: bool // OSS contains OSS artifact location details "oss"?: #."io.argoproj.workflow.v1alpha1.OSSArtifact" // Path is the container path to the artifact "path"?: string // Plugin contains plugin artifact location details "plugin"?: #."io.argoproj.workflow.v1alpha1.PluginArtifact" // Raw contains raw artifact location details "raw"?: #."io.argoproj.workflow.v1alpha1.RawArtifact" // If mode is set, apply the permission recursively into the artifact if it is a folder "recurseMode"?: bool // S3 contains S3 artifact location details "s3"?: #."io.argoproj.workflow.v1alpha1.S3Artifact" // SubPath allows an artifact to be sourced from a subpath within the specified source "subPath"?: string } // ArtifactGC describes how to delete artifacts from completed Workflows - this // is embedded into the WorkflowLevelArtifactGC, and also used for individual // Artifacts to override that as needed #: "io.argoproj.workflow.v1alpha1.ArtifactGC": { // PodMetadata is an optional field for specifying the Labels and Annotations // that should be assigned to the Pod doing the deletion "podMetadata"?: #."io.argoproj.workflow.v1alpha1.Metadata" // ServiceAccountName is an optional field for specifying the Service Account // that should be assigned to the Pod doing the deletion "serviceAccountName"?: string // Strategy is the strategy to use. "strategy"?: string } // ArtifactLocation describes a location for a single or multiple artifacts. It // is used as single artifact in the context of inputs/outputs (e.g. // outputs.artifacts.artname). It is also used to describe the location of // multiple artifacts such as the archive location of a single workflow step, // which the executor will use as a default location to store its files. #: "io.argoproj.workflow.v1alpha1.ArtifactLocation": { // ArchiveLogs indicates if the container logs should be archived "archiveLogs"?: bool // Artifactory contains artifactory artifact location details "artifactory"?: #."io.argoproj.workflow.v1alpha1.ArtifactoryArtifact" // Azure contains Azure Storage artifact location details "azure"?: #."io.argoproj.workflow.v1alpha1.AzureArtifact" // GCS contains GCS artifact location details "gcs"?: #."io.argoproj.workflow.v1alpha1.GCSArtifact" // Git contains git artifact location details "git"?: #."io.argoproj.workflow.v1alpha1.GitArtifact" // HDFS contains HDFS artifact location details "hdfs"?: #."io.argoproj.workflow.v1alpha1.HDFSArtifact" // HTTP contains HTTP artifact location details "http"?: #."io.argoproj.workflow.v1alpha1.HTTPArtifact" // OSS contains OSS artifact location details "oss"?: #."io.argoproj.workflow.v1alpha1.OSSArtifact" // Plugin contains plugin artifact location details "plugin"?: #."io.argoproj.workflow.v1alpha1.PluginArtifact" // Raw contains raw artifact location details "raw"?: #."io.argoproj.workflow.v1alpha1.RawArtifact" // S3 contains S3 artifact location details "s3"?: #."io.argoproj.workflow.v1alpha1.S3Artifact" } // ArtifactPaths expands a step from a collection of artifacts #: "io.argoproj.workflow.v1alpha1.ArtifactPaths": { // Archive controls how the artifact will be saved to the artifact repository. "archive"?: #."io.argoproj.workflow.v1alpha1.ArchiveStrategy" // ArchiveLogs indicates if the container logs should be archived "archiveLogs"?: bool // ArtifactGC describes the strategy to use when to deleting an artifact from // completed or deleted workflows "artifactGC"?: #."io.argoproj.workflow.v1alpha1.ArtifactGC" // Artifactory contains artifactory artifact location details "artifactory"?: #."io.argoproj.workflow.v1alpha1.ArtifactoryArtifact" // Azure contains Azure Storage artifact location details "azure"?: #."io.argoproj.workflow.v1alpha1.AzureArtifact" // Has this been deleted? "deleted"?: bool // From allows an artifact to reference an artifact from a previous step "from"?: string // FromExpression, if defined, is evaluated to specify the value for the artifact "fromExpression"?: string // GCS contains GCS artifact location details "gcs"?: #."io.argoproj.workflow.v1alpha1.GCSArtifact" // Git contains git artifact location details "git"?: #."io.argoproj.workflow.v1alpha1.GitArtifact" // GlobalName exports an output artifact to the global scope, making it // available as io.argoproj.workflow.v1alpha1.outputs.artifacts.XXXX and in // workflow.status.outputs.artifacts "globalName"?: string // HDFS contains HDFS artifact location details "hdfs"?: #."io.argoproj.workflow.v1alpha1.HDFSArtifact" // HTTP contains HTTP artifact location details "http"?: #."io.argoproj.workflow.v1alpha1.HTTPArtifact" // mode bits to use on this file, must be a value between 0 and 0777. Set when // loading input artifacts. It is recommended to set the mode value to ensure // the artifact has the expected permissions in your container. "mode"?: int // name of the artifact. must be unique within a template's inputs/outputs. "name"!: string // Make Artifacts optional, if Artifacts doesn't generate or exist "optional"?: bool // OSS contains OSS artifact location details "oss"?: #."io.argoproj.workflow.v1alpha1.OSSArtifact" // Path is the container path to the artifact "path"?: string // Plugin contains plugin artifact location details "plugin"?: #."io.argoproj.workflow.v1alpha1.PluginArtifact" // Raw contains raw artifact location details "raw"?: #."io.argoproj.workflow.v1alpha1.RawArtifact" // If mode is set, apply the permission recursively into the artifact if it is a folder "recurseMode"?: bool // S3 contains S3 artifact location details "s3"?: #."io.argoproj.workflow.v1alpha1.S3Artifact" // SubPath allows an artifact to be sourced from a subpath within the specified source "subPath"?: string } // ArtifactRepository represents an artifact repository in which a controller // will store its artifacts #: "io.argoproj.workflow.v1alpha1.ArtifactRepository": { // ArchiveLogs enables log archiving "archiveLogs"?: bool // Artifactory stores artifacts to JFrog Artifactory "artifactory"?: #."io.argoproj.workflow.v1alpha1.ArtifactoryArtifactRepository" // Azure stores artifact in an Azure Storage account "azure"?: #."io.argoproj.workflow.v1alpha1.AzureArtifactRepository" // GCS stores artifact in a GCS object store "gcs"?: #."io.argoproj.workflow.v1alpha1.GCSArtifactRepository" // HDFS stores artifacts in HDFS "hdfs"?: #."io.argoproj.workflow.v1alpha1.HDFSArtifactRepository" // OSS stores artifact in a OSS-compliant object store "oss"?: #."io.argoproj.workflow.v1alpha1.OSSArtifactRepository" // Plugin stores artifact in a plugin-specific artifact repository "plugin"?: #."io.argoproj.workflow.v1alpha1.PluginArtifactRepository" // S3 stores artifact in a S3-compliant object store "s3"?: #."io.argoproj.workflow.v1alpha1.S3ArtifactRepository" } #: "io.argoproj.workflow.v1alpha1.ArtifactRepositoryRef": { // The name of the config map. Defaults to "artifact-repositories". "configMap"?: string // The config map key. Defaults to the value of the // "workflows.argoproj.io/default-artifact-repository" annotation. "key"?: string } #: "io.argoproj.workflow.v1alpha1.ArtifactRepositoryRefStatus": { // The repository the workflow will use. This maybe empty before v3.1. "artifactRepository"?: #."io.argoproj.workflow.v1alpha1.ArtifactRepository" // The name of the config map. Defaults to "artifact-repositories". "configMap"?: string // If this ref represents the default artifact repository, rather than a config map. "default"?: bool // The config map key. Defaults to the value of the // "workflows.argoproj.io/default-artifact-repository" annotation. "key"?: string // The namespace of the config map. Defaults to the workflow's namespace, or the // controller's namespace (if found). "namespace"?: string } // ArtifactoryArtifact is the location of an artifactory artifact #: "io.argoproj.workflow.v1alpha1.ArtifactoryArtifact": { // PasswordSecret is the secret selector to the repository password "passwordSecret"?: #."io.k8s.api.core.v1.SecretKeySelector" // URL of the artifact "url"!: string // UsernameSecret is the secret selector to the repository username "usernameSecret"?: #."io.k8s.api.core.v1.SecretKeySelector" } // ArtifactoryArtifactRepository defines the controller configuration for an // artifactory artifact repository #: "io.argoproj.workflow.v1alpha1.ArtifactoryArtifactRepository": { // KeyFormat defines the format of how to store keys and can reference workflow variables. "keyFormat"?: string // PasswordSecret is the secret selector to the repository password "passwordSecret"?: #."io.k8s.api.core.v1.SecretKeySelector" // RepoURL is the url for artifactory repo. "repoURL"?: string // UsernameSecret is the secret selector to the repository username "usernameSecret"?: #."io.k8s.api.core.v1.SecretKeySelector" } // AzureArtifact is the location of an Azure Storage artifact #: "io.argoproj.workflow.v1alpha1.AzureArtifact": { // AccountKeySecret is the secret selector to the Azure Blob Storage account access key "accountKeySecret"?: #."io.k8s.api.core.v1.SecretKeySelector" // Blob is the blob name (i.e., path) in the container where the artifact resides "blob"!: string // Container is the container where resources will be stored "container"!: string // Endpoint is the service url associated with an account. It is most likely // "https://.blob.core.windows.net" "endpoint"!: string // UseSDKCreds tells the driver to figure out credentials based on sdk defaults. "useSDKCreds"?: bool } // AzureArtifactRepository defines the controller configuration for an Azure // Blob Storage artifact repository #: "io.argoproj.workflow.v1alpha1.AzureArtifactRepository": { // AccountKeySecret is the secret selector to the Azure Blob Storage account access key "accountKeySecret"?: #."io.k8s.api.core.v1.SecretKeySelector" // BlobNameFormat is defines the format of how to store blob names. Can reference workflow variables "blobNameFormat"?: string // Container is the container where resources will be stored "container"!: string // Endpoint is the service url associated with an account. It is most likely // "https://.blob.core.windows.net" "endpoint"!: string // UseSDKCreds tells the driver to figure out credentials based on sdk defaults. "useSDKCreds"?: bool } // Backoff is a backoff strategy to use within retryStrategy #: "io.argoproj.workflow.v1alpha1.Backoff": { // Cap is a limit on revised values of the duration parameter. If a // multiplication by the factor parameter would make the duration exceed the // cap then the duration is set to the cap "cap"?: string // Duration is the amount to back off. Default unit is seconds, but could also // be a duration (e.g. "2m", "1h") "duration"?: string // Factor is a factor to multiply the base duration after each failed retry "factor"?: #."io.k8s.apimachinery.pkg.util.intstr.IntOrString" // MaxDuration is the maximum amount of time allowed for a workflow in the // backoff strategy. It is important to note that if the workflow template // includes activeDeadlineSeconds, the pod's deadline is initially set with // activeDeadlineSeconds. However, when the workflow fails, the pod's deadline // is then overridden by maxDuration. This ensures that the workflow does not // exceed the specified maximum duration when retries are involved. "maxDuration"?: string } // BasicAuth describes the secret selectors required for basic authentication #: "io.argoproj.workflow.v1alpha1.BasicAuth": { // PasswordSecret is the secret selector to the repository password "passwordSecret"?: #."io.k8s.api.core.v1.SecretKeySelector" // UsernameSecret is the secret selector to the repository username "usernameSecret"?: #."io.k8s.api.core.v1.SecretKeySelector" } // Cache is the configuration for the type of cache to be used #: { "io.argoproj.workflow.v1alpha1.Cache": { // ConfigMap sets a ConfigMap-based cache "configMap"!: #."io.k8s.api.core.v1.LocalObjectReference" } } // ClientCertAuth holds necessary information for client authentication via certificates #: "io.argoproj.workflow.v1alpha1.ClientCertAuth": { "clientCertSecret"?: #."io.k8s.api.core.v1.SecretKeySelector" "clientKeySecret"?: #."io.k8s.api.core.v1.SecretKeySelector" } // ClusterWorkflowTemplate is the definition of a workflow template resource in cluster scope #: "io.argoproj.workflow.v1alpha1.ClusterWorkflowTemplate": { // APIVersion defines the versioned schema of this representation of an object. // Servers should convert recognized schemas to the latest internal value, and // may reject unrecognized values. More info: // https://git.io.k8s.community/contributors/devel/sig-architecture/api-conventions.md#resources "apiVersion"?: "argoproj.io/v1alpha1" // Kind is a string value representing the REST resource this object represents. // Servers may infer this from the endpoint the client submits requests to. // Cannot be updated. In CamelCase. More info: // https://git.io.k8s.community/contributors/devel/sig-architecture/api-conventions.md#types-kinds "kind"?: "ClusterWorkflowTemplate" "metadata"!: #."io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta" "spec"!: #."io.argoproj.workflow.v1alpha1.WorkflowSpec" } #: "io.argoproj.workflow.v1alpha1.ClusterWorkflowTemplateCreateRequest": { "createOptions"?: #."io.k8s.apimachinery.pkg.apis.meta.v1.CreateOptions" "template"?: #."io.argoproj.workflow.v1alpha1.ClusterWorkflowTemplate" } #: "io.argoproj.workflow.v1alpha1.ClusterWorkflowTemplateDeleteResponse": {} #: "io.argoproj.workflow.v1alpha1.ClusterWorkflowTemplateLintRequest": { "createOptions"?: #."io.k8s.apimachinery.pkg.apis.meta.v1.CreateOptions" "template"?: #."io.argoproj.workflow.v1alpha1.ClusterWorkflowTemplate" } // ClusterWorkflowTemplateList is list of ClusterWorkflowTemplate resources #: "io.argoproj.workflow.v1alpha1.ClusterWorkflowTemplateList": { // APIVersion defines the versioned schema of this representation of an object. // Servers should convert recognized schemas to the latest internal value, and // may reject unrecognized values. More info: // https://git.io.k8s.community/contributors/devel/sig-architecture/api-conventions.md#resources "apiVersion"?: string "items"!: [...#."io.argoproj.workflow.v1alpha1.ClusterWorkflowTemplate"] // Kind is a string value representing the REST resource this object represents. // Servers may infer this from the endpoint the client submits requests to. // Cannot be updated. In CamelCase. More info: // https://git.io.k8s.community/contributors/devel/sig-architecture/api-conventions.md#types-kinds "kind"?: string "metadata"!: #."io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta" } #: "io.argoproj.workflow.v1alpha1.ClusterWorkflowTemplateUpdateRequest": { // DEPRECATED: This field is ignored. "name"?: string "template"?: #."io.argoproj.workflow.v1alpha1.ClusterWorkflowTemplate" } #: "io.argoproj.workflow.v1alpha1.CollectEventRequest": "name"?: string #: "io.argoproj.workflow.v1alpha1.CollectEventResponse": {} // Column is a custom column that will be exposed in the Workflow List View. #: "io.argoproj.workflow.v1alpha1.Column": { // The key of the label or annotation, e.g., "workflows.argoproj.io/completed". "key"!: string // The name of this column, e.g., "Workflow Completed". "name"!: string // The type of this column, "label" or "annotation". "type"!: string } #: "io.argoproj.workflow.v1alpha1.Condition": { // Message is the condition message "message"?: string // Status is the status of the condition "status"?: string // Type is the type of condition "type"?: string } #: "io.argoproj.workflow.v1alpha1.ContainerNode": { // Arguments to the entrypoint. The container image's CMD is used if this is not // provided. Variable references $(VAR_NAME) are expanded using the container's // environment. If a variable cannot be resolved, the reference in the input // string will be unchanged. Double $$ are reduced to a single $, which allows // for escaping the $(VAR_NAME) syntax: i.e. "$$(VAR_NAME)" will produce the // string literal "$(VAR_NAME)". Escaped references will never be expanded, // regardless of whether the variable exists or not. Cannot be updated. More // info: // https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell "args"?: [...string] // Entrypoint array. Not executed within a shell. The container image's // ENTRYPOINT is used if this is not provided. Variable references $(VAR_NAME) // are expanded using the container's environment. If a variable cannot be // resolved, the reference in the input string will be unchanged. Double $$ are // reduced to a single $, which allows for escaping the $(VAR_NAME) syntax: // i.e. "$$(VAR_NAME)" will produce the string literal "$(VAR_NAME)". Escaped // references will never be expanded, regardless of whether the variable exists // or not. Cannot be updated. More info: // https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell "command"?: [...string] "dependencies"?: [...string] // List of environment variables to set in the container. Cannot be updated. "env"?: [...#."io.k8s.api.core.v1.EnvVar"] // List of sources to populate environment variables in the container. The keys // defined within a source must be a C_IDENTIFIER. All invalid keys will be // reported as an event when the container is starting. When a key exists in // multiple sources, the value associated with the last source will take // precedence. Values defined by an Env with a duplicate key will take // precedence. Cannot be updated. "envFrom"?: [...#."io.k8s.api.core.v1.EnvFromSource"] // Container image name. More info: // https://kubernetes.io/docs/concepts/containers/images This field is optional // to allow higher level config management to default or override container // images in workload controllers like Deployments and StatefulSets. "image"?: string // Image pull policy. One of Always, Never, IfNotPresent. Defaults to Always if // :latest tag is specified, or IfNotPresent otherwise. Cannot be updated. More // info: https://kubernetes.io/docs/concepts/containers/images#updating-images "imagePullPolicy"?: string // Actions that the management system should take in response to container // lifecycle events. Cannot be updated. "lifecycle"?: #."io.k8s.api.core.v1.Lifecycle" // Periodic probe of container liveness. Container will be restarted if the // probe fails. Cannot be updated. More info: // https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes "livenessProbe"?: #."io.k8s.api.core.v1.Probe" // Name of the container specified as a DNS_LABEL. Each container in a pod must // have a unique name (DNS_LABEL). Cannot be updated. "name"!: string // List of ports to expose from the container. Not specifying a port here DOES // NOT prevent that port from being exposed. Any port which is listening on the // default "0.0.0.0" address inside a container will be accessible from the // network. Modifying this array with strategic merge patch may corrupt the // data. For more information See // https://github.com/kubernetes/kubernetes/issues/108255. Cannot be updated. "ports"?: [...#."io.k8s.api.core.v1.ContainerPort"] // Periodic probe of container service readiness. Container will be removed from // service endpoints if the probe fails. Cannot be updated. More info: // https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes "readinessProbe"?: #."io.k8s.api.core.v1.Probe" // Resources resize policy for the container. "resizePolicy"?: [...#."io.k8s.api.core.v1.ContainerResizePolicy"] // Compute Resources required by this container. Cannot be updated. More info: // https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/ "resources"?: #."io.k8s.api.core.v1.ResourceRequirements" // RestartPolicy defines the restart behavior of individual containers in a pod. // This field may only be set for init containers, and the only allowed value // is "Always". For non-init containers or when this field is not specified, // the restart behavior is defined by the Pod's restart policy and the // container type. Setting the RestartPolicy as "Always" for the init container // will have the following effect: this init container will be continually // restarted on exit until all regular containers have terminated. Once all // regular containers have completed, all init containers with restartPolicy // "Always" will be shut down. This lifecycle differs from normal init // containers and is often referred to as a "sidecar" container. Although this // init container still starts in the init container sequence, it does not wait // for the container to complete before proceeding to the next init container. // Instead, the next init container starts immediately after this init // container is started, or after any startupProbe has successfully completed. "restartPolicy"?: string // SecurityContext defines the security options the container should be run // with. If set, the fields of SecurityContext override the equivalent fields // of PodSecurityContext. More info: // https://kubernetes.io/docs/tasks/configure-pod-container/security-context/ "securityContext"?: #."io.k8s.api.core.v1.SecurityContext" // StartupProbe indicates that the Pod has successfully initialized. If // specified, no other probes are executed until this completes successfully. // If this probe fails, the Pod will be restarted, just as if the livenessProbe // failed. This can be used to provide different probe parameters at the // beginning of a Pod's lifecycle, when it might take a long time to load data // or warm a cache, than during steady-state operation. This cannot be updated. // More info: // https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes "startupProbe"?: #."io.k8s.api.core.v1.Probe" // Whether this container should allocate a buffer for stdin in the container // runtime. If this is not set, reads from stdin in the container will always // result in EOF. Default is false. "stdin"?: bool // Whether the container runtime should close the stdin channel after it has // been opened by a single attach. When stdin is true the stdin stream will // remain open across multiple attach sessions. If stdinOnce is set to true, // stdin is opened on container start, is empty until the first client attaches // to stdin, and then remains open and accepts data until the client // disconnects, at which time stdin is closed and remains closed until the // container is restarted. If this flag is false, a container processes that // reads from stdin will never receive an EOF. Default is false "stdinOnce"?: bool // Optional: Path at which the file to which the container's termination message // will be written is mounted into the container's filesystem. Message written // is intended to be brief final status, such as an assertion failure message. // Will be truncated by the node if greater than 4096 bytes. The total message // length across all containers will be limited to 12kb. Defaults to // /dev/termination-log. Cannot be updated. "terminationMessagePath"?: string // Indicate how the termination message should be populated. File will use the // contents of terminationMessagePath to populate the container status message // on both success and failure. FallbackToLogsOnError will use the last chunk // of container log output if the termination message file is empty and the // container exited with an error. The log output is limited to 2048 bytes or // 80 lines, whichever is smaller. Defaults to File. Cannot be updated. "terminationMessagePolicy"?: string // Whether this container should allocate a TTY for itself, also requires // 'stdin' to be true. Default is false. "tty"?: bool // volumeDevices is the list of block devices to be used by the container. "volumeDevices"?: [...#."io.k8s.api.core.v1.VolumeDevice"] // Pod volumes to mount into the container's filesystem. Cannot be updated. "volumeMounts"?: [...#."io.k8s.api.core.v1.VolumeMount"] // Container's working directory. If not specified, the container runtime's // default will be used, which might be configured in the container image. // Cannot be updated. "workingDir"?: string } // ContainerSetRetryStrategy provides controls on how to retry a container set #: "io.argoproj.workflow.v1alpha1.ContainerSetRetryStrategy": { // Duration is the time between each retry, examples values are "300ms", "1s" or // "5m". Valid time units are "ns", "us" (or "µs"), "ms", "s", "m", "h". "duration"?: string // Retries is the maximum number of retry attempts for each container. It does // not include the first, original attempt; the maximum number of total // attempts will be `retries + 1`. "retries"!: #."io.k8s.apimachinery.pkg.util.intstr.IntOrString" } #: "io.argoproj.workflow.v1alpha1.ContainerSetTemplate": { "containers"!: [...#."io.argoproj.workflow.v1alpha1.ContainerNode"] // RetryStrategy describes how to retry container nodes if the container set // fails. Note that this works differently from the template-level // `retryStrategy` as it is a process-level retry that does not create new Pods // or containers. "retryStrategy"?: #."io.argoproj.workflow.v1alpha1.ContainerSetRetryStrategy" "volumeMounts"?: [...#."io.k8s.api.core.v1.VolumeMount"] } // ContinueOn defines if a workflow should continue even if a task or step // fails/errors. It can be specified if the workflow should continue when the // pod errors, fails or both. #: "io.argoproj.workflow.v1alpha1.ContinueOn": { "error"?: bool "failed"?: bool } // Counter is a Counter prometheus metric #: { "io.argoproj.workflow.v1alpha1.Counter": { // Value is the value of the metric "value"!: string } } #: "io.argoproj.workflow.v1alpha1.CreateCronWorkflowRequest": { "createOptions"?: #."io.k8s.apimachinery.pkg.apis.meta.v1.CreateOptions" "cronWorkflow"?: #."io.argoproj.workflow.v1alpha1.CronWorkflow" "namespace"?: string } // CreateS3BucketOptions options used to determine automatic automatic bucket-creation process #: { "io.argoproj.workflow.v1alpha1.CreateS3BucketOptions": { // ObjectLocking Enable object locking "objectLocking"?: bool } } // CronWorkflow is the definition of a scheduled workflow resource #: "io.argoproj.workflow.v1alpha1.CronWorkflow": { // APIVersion defines the versioned schema of this representation of an object. // Servers should convert recognized schemas to the latest internal value, and // may reject unrecognized values. More info: // https://git.io.k8s.community/contributors/devel/sig-architecture/api-conventions.md#resources "apiVersion"?: "argoproj.io/v1alpha1" // Kind is a string value representing the REST resource this object represents. // Servers may infer this from the endpoint the client submits requests to. // Cannot be updated. In CamelCase. More info: // https://git.io.k8s.community/contributors/devel/sig-architecture/api-conventions.md#types-kinds "kind"?: "CronWorkflow" "metadata"!: #."io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta" "spec"!: #."io.argoproj.workflow.v1alpha1.CronWorkflowSpec" "status"?: #."io.argoproj.workflow.v1alpha1.CronWorkflowStatus" } #: "io.argoproj.workflow.v1alpha1.CronWorkflowDeletedResponse": {} // CronWorkflowList is list of CronWorkflow resources #: "io.argoproj.workflow.v1alpha1.CronWorkflowList": { // APIVersion defines the versioned schema of this representation of an object. // Servers should convert recognized schemas to the latest internal value, and // may reject unrecognized values. More info: // https://git.io.k8s.community/contributors/devel/sig-architecture/api-conventions.md#resources "apiVersion"?: string "items"!: [...#."io.argoproj.workflow.v1alpha1.CronWorkflow"] // Kind is a string value representing the REST resource this object represents. // Servers may infer this from the endpoint the client submits requests to. // Cannot be updated. In CamelCase. More info: // https://git.io.k8s.community/contributors/devel/sig-architecture/api-conventions.md#types-kinds "kind"?: string "metadata"!: #."io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta" } #: "io.argoproj.workflow.v1alpha1.CronWorkflowResumeRequest": { "name"?: string "namespace"?: string } // CronWorkflowSpec is the specification of a CronWorkflow #: "io.argoproj.workflow.v1alpha1.CronWorkflowSpec": { // ConcurrencyPolicy is the K8s-style concurrency policy that will be used "concurrencyPolicy"?: string // FailedJobsHistoryLimit is the number of failed jobs to be kept at a time "failedJobsHistoryLimit"?: int // v3.6 and after: Schedules is a list of schedules to run the Workflow in Cron format "schedules"!: [...string] // StartingDeadlineSeconds is the K8s-style deadline that will limit the time a // CronWorkflow will be run after its original scheduled time if it is missed. "startingDeadlineSeconds"?: int // v3.6 and after: StopStrategy defines if the CronWorkflow should stop // scheduling based on a condition "stopStrategy"?: #."io.argoproj.workflow.v1alpha1.StopStrategy" // SuccessfulJobsHistoryLimit is the number of successful jobs to be kept at a time "successfulJobsHistoryLimit"?: int // Suspend is a flag that will stop new CronWorkflows from running if set to true "suspend"?: bool // Timezone is the timezone against which the cron schedule will be calculated, // e.g. "Asia/Tokyo". Default is machine's local time. "timezone"?: string // v3.6 and after: When is an expression that determines if a run should be scheduled. "when"?: string // WorkflowMetadata contains some metadata of the workflow to be run "workflowMetadata"?: #."io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta" // WorkflowSpec is the spec of the workflow to be run "workflowSpec"!: #."io.argoproj.workflow.v1alpha1.WorkflowSpec" } // CronWorkflowStatus is the status of a CronWorkflow #: "io.argoproj.workflow.v1alpha1.CronWorkflowStatus": { // Active is a list of active workflows stemming from this CronWorkflow "active"?: [...#."io.k8s.api.core.v1.ObjectReference"] // Conditions is a list of conditions the CronWorkflow may have "conditions"?: [...#."io.argoproj.workflow.v1alpha1.Condition"] // v3.6 and after: Failed counts how many times child workflows failed "failed"?: int // LastScheduleTime is the last time the CronWorkflow was scheduled "lastScheduledTime"?: #."io.k8s.apimachinery.pkg.apis.meta.v1.Time" // v3.6 and after: Phase is an enum of Active or Stopped. It changes to Stopped // when stopStrategy.expression is true "phase"?: string // v3.6 and after: Succeeded counts how many times child workflows succeeded "succeeded"?: int } #: "io.argoproj.workflow.v1alpha1.CronWorkflowSuspendRequest": { "name"?: string "namespace"?: string } // DAGTask represents a node in the graph during DAG execution Note: CEL // validation cannot check withItems (Schemaless) or inline // (PreserveUnknownFields) fields. #: "io.argoproj.workflow.v1alpha1.DAGTask": { // Arguments are the parameter and artifact arguments to the template "arguments"?: #."io.argoproj.workflow.v1alpha1.Arguments" // ContinueOn makes argo to proceed with the following step even if this step // fails. Errors and Failed states can be specified "continueOn"?: #."io.argoproj.workflow.v1alpha1.ContinueOn" // Dependencies are name of other targets which this depends on "dependencies"?: [...string] // Depends are name of other targets which this depends on "depends"?: string // Hooks hold the lifecycle hook which is invoked at lifecycle of task, // irrespective of the success, failure, or error status of the primary task "hooks"?: [string]: #."io.argoproj.workflow.v1alpha1.LifecycleHook" // Inline is the template. Template must be empty if this is declared (and // vice-versa). Note: As mentioned in the corresponding definition in // WorkflowStep, this struct is defined recursively, so we need // "x-kubernetes-preserve-unknown-fields: true" in the validation schema. "inline"?: #."io.argoproj.workflow.v1alpha1.Template" // Name is the name of the target "name"!: string // OnExit is a template reference which is invoked at the end of the template, // irrespective of the success, failure, or error of the primary template. // DEPRECATED: Use Hooks[exit].Template instead. "onExit"?: string // Name of template to execute "template"?: string // TemplateRef is the reference to the template resource to execute. "templateRef"?: #."io.argoproj.workflow.v1alpha1.TemplateRef" // When is an expression in which the task should conditionally execute "when"?: string // WithItems expands a task into multiple parallel tasks from the items in the // list Note: The structure of WithItems is free-form, so we need // "x-kubernetes-preserve-unknown-fields: true" in the validation schema. "withItems"?: [...#."io.argoproj.workflow.v1alpha1.Item"] // WithParam expands a task into multiple parallel tasks from the value in the // parameter, which is expected to be a JSON list. "withParam"?: string // WithSequence expands a task into a numeric sequence "withSequence"?: #."io.argoproj.workflow.v1alpha1.Sequence" } // DAGTemplate is a template subtype for directed acyclic graph templates #: "io.argoproj.workflow.v1alpha1.DAGTemplate": { // This flag is for DAG logic. The DAG logic has a built-in "fail fast" feature // to stop scheduling new steps, as soon as it detects that one of the DAG // nodes is failed. Then it waits until all DAG nodes are completed before // failing the DAG itself. The FailFast flag default is true, if set to false, // it will allow a DAG to run all branches of the DAG to completion (either // success or failure), regardless of the failed outcomes of branches in the // DAG. More info and example about this feature at // https://github.com/argoproj/argo-workflows/issues/1442 "failFast"?: bool // Target are one or more names of targets to execute in a DAG "target"?: string // Tasks are a list of DAG tasks MaxItems is an artificial limit to limit CEL // validation costs - see note at top of file "tasks"!: [...#."io.argoproj.workflow.v1alpha1.DAGTask"] } // Data is a data template #: "io.argoproj.workflow.v1alpha1.Data": { // Source sources external data into a data template "source"!: #."io.argoproj.workflow.v1alpha1.DataSource" // Transformation applies a set of transformations "transformation"!: [...#."io.argoproj.workflow.v1alpha1.TransformationStep"] } // DataSource sources external data into a data template #: { "io.argoproj.workflow.v1alpha1.DataSource": { // ArtifactPaths is a data transformation that collects a list of artifact paths "artifactPaths"?: #."io.argoproj.workflow.v1alpha1.ArtifactPaths" } } #: { "io.argoproj.workflow.v1alpha1.Event": { // Selector (https://github.com/expr-lang/expr) that we must must match the // io.argoproj.workflow.v1alpha1. E.g. `payload.message == "test"` "selector"!: string } } #: "io.argoproj.workflow.v1alpha1.EventResponse": {} // ExecutorConfig holds configurations of an executor container. #: { "io.argoproj.workflow.v1alpha1.ExecutorConfig": { // ServiceAccountName specifies the service account name of the executor container. "serviceAccountName"?: string } } // GCSArtifact is the location of a GCS artifact #: "io.argoproj.workflow.v1alpha1.GCSArtifact": { // Bucket is the name of the bucket "bucket"?: string // Key is the path in the bucket where the artifact resides "key"!: string // ServiceAccountKeySecret is the secret selector to the bucket's service account key "serviceAccountKeySecret"?: #."io.k8s.api.core.v1.SecretKeySelector" } // GCSArtifactRepository defines the controller configuration for a GCS artifact repository #: "io.argoproj.workflow.v1alpha1.GCSArtifactRepository": { // Bucket is the name of the bucket "bucket"?: string // KeyFormat defines the format of how to store keys and can reference workflow variables. "keyFormat"?: string // ServiceAccountKeySecret is the secret selector to the bucket's service account key "serviceAccountKeySecret"?: #."io.k8s.api.core.v1.SecretKeySelector" } // Gauge is a Gauge prometheus metric #: "io.argoproj.workflow.v1alpha1.Gauge": { // Operation defines the operation to apply with value and the metrics' current value "operation"?: string // Realtime emits this metric in real time if applicable "realtime"!: bool // Value is the value to be used in the operation with the metric's current // value. If no operation is set, value is the value of the metric MaxLength is // an artificial limit to limit CEL validation costs - see note at top of file "value"!: string } #: "io.argoproj.workflow.v1alpha1.GetUserInfoResponse": { "email"?: string "emailVerified"?: bool "groups"?: [...string] "issuer"?: string "name"?: string "serviceAccountName"?: string "serviceAccountNamespace"?: string "subject"?: string } // GitArtifact is the location of a git artifact #: "io.argoproj.workflow.v1alpha1.GitArtifact": { // Branch is the branch to fetch when `SingleBranch` is enabled "branch"?: string // Depth specifies clones/fetches should be shallow and include the given number // of commits from the branch tip "depth"?: int // DisableSubmodules disables submodules during git clone "disableSubmodules"?: bool // Fetch specifies a number of refs that should be fetched before checkout "fetch"?: [...string] // InsecureIgnoreHostKey disables SSH strict host key checking during git clone "insecureIgnoreHostKey"?: bool // InsecureSkipTLS disables server certificate verification resulting in insecure HTTPS connections "insecureSkipTLS"?: bool // PasswordSecret is the secret selector to the repository password "passwordSecret"?: #."io.k8s.api.core.v1.SecretKeySelector" // Repo is the git repository "repo"!: string // Revision is the git commit, tag, branch to checkout "revision"?: string // SingleBranch enables single branch clone, using the `branch` parameter "singleBranch"?: bool // SSHPrivateKeySecret is the secret selector to the repository ssh private key "sshPrivateKeySecret"?: #."io.k8s.api.core.v1.SecretKeySelector" // UsernameSecret is the secret selector to the repository username "usernameSecret"?: #."io.k8s.api.core.v1.SecretKeySelector" } // HDFSArtifact is the location of an HDFS artifact #: "io.argoproj.workflow.v1alpha1.HDFSArtifact": { // Addresses is accessible addresses of HDFS name nodes "addresses"?: [...string] // DataTransferProtection is the protection level for HDFS data transfer. It // corresponds to the dfs.data.transfer.protection configuration in HDFS. "dataTransferProtection"?: string // Force copies a file forcibly even if it exists "force"?: bool // HDFSUser is the user to access HDFS file system. It is ignored if either // ccache or keytab is used. "hdfsUser"?: string // KrbCCacheSecret is the secret selector for Kerberos ccache Either ccache or // keytab can be set to use Kerberos. "krbCCacheSecret"?: #."io.k8s.api.core.v1.SecretKeySelector" // KrbConfig is the configmap selector for Kerberos config as string It must be // set if either ccache or keytab is used. "krbConfigConfigMap"?: #."io.k8s.api.core.v1.ConfigMapKeySelector" // KrbKeytabSecret is the secret selector for Kerberos keytab Either ccache or // keytab can be set to use Kerberos. "krbKeytabSecret"?: #."io.k8s.api.core.v1.SecretKeySelector" // KrbRealm is the Kerberos realm used with Kerberos keytab It must be set if keytab is used. "krbRealm"?: string // KrbServicePrincipalName is the principal name of Kerberos service It must be // set if either ccache or keytab is used. "krbServicePrincipalName"?: string // KrbUsername is the Kerberos username used with Kerberos keytab It must be set if keytab is used. "krbUsername"?: string // Path is a file path in HDFS "path"!: string } // HDFSArtifactRepository defines the controller configuration for an HDFS artifact repository #: "io.argoproj.workflow.v1alpha1.HDFSArtifactRepository": { // Addresses is accessible addresses of HDFS name nodes "addresses"?: [...string] // DataTransferProtection is the protection level for HDFS data transfer. It // corresponds to the dfs.data.transfer.protection configuration in HDFS. "dataTransferProtection"?: string // Force copies a file forcibly even if it exists "force"?: bool // HDFSUser is the user to access HDFS file system. It is ignored if either // ccache or keytab is used. "hdfsUser"?: string // KrbCCacheSecret is the secret selector for Kerberos ccache Either ccache or // keytab can be set to use Kerberos. "krbCCacheSecret"?: #."io.k8s.api.core.v1.SecretKeySelector" // KrbConfig is the configmap selector for Kerberos config as string It must be // set if either ccache or keytab is used. "krbConfigConfigMap"?: #."io.k8s.api.core.v1.ConfigMapKeySelector" // KrbKeytabSecret is the secret selector for Kerberos keytab Either ccache or // keytab can be set to use Kerberos. "krbKeytabSecret"?: #."io.k8s.api.core.v1.SecretKeySelector" // KrbRealm is the Kerberos realm used with Kerberos keytab It must be set if keytab is used. "krbRealm"?: string // KrbServicePrincipalName is the principal name of Kerberos service It must be // set if either ccache or keytab is used. "krbServicePrincipalName"?: string // KrbUsername is the Kerberos username used with Kerberos keytab It must be set if keytab is used. "krbUsername"?: string // PathFormat is defines the format of path to store a file. Can reference workflow variables "pathFormat"?: string } #: "io.argoproj.workflow.v1alpha1.HTTP": { // Body is content of the HTTP Request "body"?: string // BodyFrom is content of the HTTP Request as Bytes "bodyFrom"?: #."io.argoproj.workflow.v1alpha1.HTTPBodySource" // Headers are an optional list of headers to send with HTTP requests "headers"?: [...#."io.argoproj.workflow.v1alpha1.HTTPHeader"] // InsecureSkipVerify is a bool when if set to true will skip TLS verification for the HTTP client "insecureSkipVerify"?: bool // Method is HTTP methods for HTTP Request "method"?: string // SuccessCondition is an expression if evaluated to true is considered successful "successCondition"?: string // TimeoutSeconds is request timeout for HTTP Request. Default is 30 seconds "timeoutSeconds"?: int // URL of the HTTP Request "url"!: string } // HTTPArtifact allows a file served on HTTP to be placed as an input artifact in a container #: "io.argoproj.workflow.v1alpha1.HTTPArtifact": { // Auth contains information for client authentication "auth"?: #."io.argoproj.workflow.v1alpha1.HTTPAuth" // Headers are an optional list of headers to send with HTTP requests for artifacts "headers"?: [...#."io.argoproj.workflow.v1alpha1.Header"] // URL of the artifact "url"!: string } #: "io.argoproj.workflow.v1alpha1.HTTPAuth": { "basicAuth"?: #."io.argoproj.workflow.v1alpha1.BasicAuth" "clientCert"?: #."io.argoproj.workflow.v1alpha1.ClientCertAuth" "oauth2"?: #."io.argoproj.workflow.v1alpha1.OAuth2Auth" } // HTTPBodySource contains the source of the HTTP body. #: "io.argoproj.workflow.v1alpha1.HTTPBodySource": "bytes"?: string #: "io.argoproj.workflow.v1alpha1.HTTPHeader": { "name"!: string "value"?: string "valueFrom"?: #."io.argoproj.workflow.v1alpha1.HTTPHeaderSource" } #: "io.argoproj.workflow.v1alpha1.HTTPHeaderSource": "secretKeyRef"?: #."io.k8s.api.core.v1.SecretKeySelector" // Header indicate a key-value request header to be used when fetching artifacts over HTTP #: "io.argoproj.workflow.v1alpha1.Header": { // Name is the header name "name"!: string // Value is the literal value to use for the header "value"!: string } // Histogram is a Histogram prometheus metric #: "io.argoproj.workflow.v1alpha1.Histogram": { // Buckets is a list of bucket divisors for the histogram "buckets"!: [...#."io.argoproj.workflow.v1alpha1.Amount"] // Value is the value of the metric "value"!: string } #: "io.argoproj.workflow.v1alpha1.InfoResponse": { "columns"?: [...#."io.argoproj.workflow.v1alpha1.Column"] "links"?: [...#."io.argoproj.workflow.v1alpha1.Link"] "managedNamespace"?: string // which modals to show "modals"?: [string]: bool "navColor"?: string } // Inputs are the mechanism for passing parameters, artifacts, volumes from one template to another #: "io.argoproj.workflow.v1alpha1.Inputs": { // Artifact are a list of artifacts passed as inputs "artifacts"?: [...#."io.argoproj.workflow.v1alpha1.Artifact"] // Parameters are a list of parameters passed as inputs MaxItems is an // artificial limit to limit CEL validation costs - see note at top of file "parameters"?: [...#."io.argoproj.workflow.v1alpha1.Parameter"] } // Item expands a single workflow step into multiple parallel steps The value of // Item can be a map, string, bool, or number #: "io.argoproj.workflow.v1alpha1.Item": _ // LabelKeys is list of keys #: "io.argoproj.workflow.v1alpha1.LabelKeys": "items"?: [...string] #: "io.argoproj.workflow.v1alpha1.LabelValueFrom": "expression"!: string // Labels is list of workflow labels #: "io.argoproj.workflow.v1alpha1.LabelValues": "items"?: [...string] #: "io.argoproj.workflow.v1alpha1.LifecycleHook": { // Arguments hold arguments to the template "arguments"?: #."io.argoproj.workflow.v1alpha1.Arguments" // Expression is a condition expression for when a node will be retried. If it // evaluates to false, the node will not be retried and the retry strategy will // be ignored "expression"?: string // Template is the name of the template to execute by the hook "template"?: string // TemplateRef is the reference to the template resource to execute by the hook "templateRef"?: #."io.argoproj.workflow.v1alpha1.TemplateRef" } // A link to another app. #: "io.argoproj.workflow.v1alpha1.Link": { // The name of the link, E.g. "Workflow Logs" or "Pod Logs" "name"!: string // "workflow", "pod", "pod-logs", "event-source-logs", "sensor-logs", "workflow-list" or "chat" "scope"!: string // Target attribute specifies where a linked document will be opened when a user // clicks on a link. E.g. "_blank", "_self". If the target is _blank, it will // open in a new tab. "target"!: string // The URL. Can contain "${metadata.namespace}", "${metadata.name}", // "${status.startedAt}", "${status.finishedAt}" or any other element in // workflow yaml, e.g. // "${io.argoproj.workflow.v1alpha1.metadata.annotations.userDefinedKey}" "url"!: string } #: "io.argoproj.workflow.v1alpha1.LintCronWorkflowRequest": { "cronWorkflow"?: #."io.argoproj.workflow.v1alpha1.CronWorkflow" "namespace"?: string } #: "io.argoproj.workflow.v1alpha1.LogEntry": { "content"?: string "podName"?: string } #: { "io.argoproj.workflow.v1alpha1.ManifestFrom": { // Artifact contains the artifact to use "artifact"!: #."io.argoproj.workflow.v1alpha1.Artifact" } } // MemoizationStatus is the status of this memoized node #: "io.argoproj.workflow.v1alpha1.MemoizationStatus": { // Cache is the name of the cache that was used "cacheName"!: string // Hit indicates whether this node was created from a cache entry "hit"!: bool // Key is the name of the key used for this node's cache "key"!: string } // Memoization enables caching for the Outputs of the template #: "io.argoproj.workflow.v1alpha1.Memoize": { // Cache sets and configures the kind of cache "cache"!: #."io.argoproj.workflow.v1alpha1.Cache" // Key is the key to use as the caching key "key"!: string // MaxAge is the maximum age (e.g. "180s", "24h") of an entry that is still // considered valid. If an entry is older than the MaxAge, it will be ignored. "maxAge"!: string } // Pod metadata #: "io.argoproj.workflow.v1alpha1.Metadata": { "annotations"?: [string]: string "labels"?: [string]: string } // MetricLabel is a single label for a prometheus metric #: "io.argoproj.workflow.v1alpha1.MetricLabel": { "key"!: string "value"!: string } // Metrics are a list of metrics emitted from a Workflow/Template #: { "io.argoproj.workflow.v1alpha1.Metrics": { // Prometheus is a list of prometheus metrics to be emitted MaxItems is an // artificial limit to limit CEL validation costs - see note at top of file "prometheus"!: [...#."io.argoproj.workflow.v1alpha1.Prometheus"] } } // Mutex holds Mutex configuration #: "io.argoproj.workflow.v1alpha1.Mutex": { // Database specifies this is database controlled if this is set true "database"?: bool // name of the mutex "name"?: string // Namespace is the namespace of the mutex, default: [namespace of workflow] "namespace"?: string } // MutexHolding describes the mutex and the object which is holding it. #: "io.argoproj.workflow.v1alpha1.MutexHolding": { // Holder is a reference to the object which holds the Mutex. Holding Scenario: // 1. Current workflow's NodeID which is holding the lock. // e.g: ${NodeID} // Waiting Scenario: // 1. Current workflow or other workflow NodeID which is holding the lock. // e.g: ${WorkflowName}/${NodeID} "holder"?: string // Reference for the mutex e.g: ${namespace}/mutex/${mutexName} "mutex"?: string } // MutexStatus contains which objects hold mutex locks, and which objects this // workflow is waiting on to release locks. #: "io.argoproj.workflow.v1alpha1.MutexStatus": { // Holding is a list of mutexes and their respective objects that are held by // mutex lock for this io.argoproj.workflow.v1alpha1. "holding"?: [...#."io.argoproj.workflow.v1alpha1.MutexHolding"] // Waiting is a list of mutexes and their respective objects this workflow is waiting for. "waiting"?: [...#."io.argoproj.workflow.v1alpha1.MutexHolding"] } #: "io.argoproj.workflow.v1alpha1.NodeFlag": { // Hooked tracks whether or not this node was triggered by hook or onExit "hooked"?: bool // Retried tracks whether or not this node was retried by retryStrategy "retried"?: bool } // NodeStatus contains status information about an individual node in the workflow #: "io.argoproj.workflow.v1alpha1.NodeStatus": { // BoundaryID indicates the node ID of the associated template root node in // which this node belongs to "boundaryID"?: string // Children is a list of child node IDs "children"?: [...string] // Daemoned tracks whether or not this node was daemoned and need to be terminated "daemoned"?: bool // DisplayName is a human readable representation of the node. Unique within a template boundary "displayName"?: string // EstimatedDuration in seconds. "estimatedDuration"?: int // FailedPodRestarts tracks the number of times the pod for this node was // restarted due to infrastructure failures before the main container started. "failedPodRestarts"?: int // Time at which this node completed "finishedAt"?: #."io.k8s.apimachinery.pkg.apis.meta.v1.Time" // HostNodeName name of the Kubernetes node on which the Pod is running, if applicable "hostNodeName"?: string // ID is a unique identifier of a node within the worklow It is implemented as a // hash of the node name, which makes the ID deterministic "id"!: string // Inputs captures input parameter values and artifact locations supplied to // this template invocation "inputs"?: #."io.argoproj.workflow.v1alpha1.Inputs" // MemoizationStatus holds information about cached nodes "memoizationStatus"?: #."io.argoproj.workflow.v1alpha1.MemoizationStatus" // A human readable message indicating details about why the node is in this condition. "message"?: string // Name is unique name in the node tree used to generate the node ID "name"!: string // NodeFlag tracks some history of node. e.g.) hooked, retried, etc. "nodeFlag"?: #."io.argoproj.workflow.v1alpha1.NodeFlag" // OutboundNodes tracks the node IDs which are considered "outbound" nodes to a // template invocation. For every invocation of a template, there are nodes // which we considered as "outbound". Essentially, these are last nodes in the // execution sequence to run, before the template is considered completed. // These nodes are then connected as parents to a following step. // // In the case of single pod steps (i.e. container, script, resource templates), // this list will be nil since the pod itself is already considered the // "outbound" node. In the case of DAGs, outbound nodes are the "target" tasks // (tasks with no children). In the case of steps, outbound nodes are all the // containers involved in the last step group. NOTE: since templates are // composable, the list of outbound nodes are carried upwards when a DAG/steps // template invokes another DAG/steps template. In other words, the outbound // nodes of a template, will be a superset of the outbound nodes of its last // children. "outboundNodes"?: [...string] // Outputs captures output parameter values and artifact locations produced by // this template invocation "outputs"?: #."io.argoproj.workflow.v1alpha1.Outputs" // Phase a simple, high-level summary of where the node is in its lifecycle. Can // be used as a state machine. Will be one of these values "Pending", "Running" // before the node is completed, or "Succeeded", "Skipped", "Failed", "Error", // or "Omitted" as a final state. "phase"?: string // PodIP captures the IP of the pod for daemoned steps "podIP"?: string // Progress to completion "progress"?: string // ResourcesDuration is indicative, but not accurate, resource duration. This is // populated when the nodes completes. "resourcesDuration"?: [string]: int // RestartingPodUID tracks the UID of the pod that is currently being restarted. // This prevents duplicate restart attempts when the controller processes the // same failed pod multiple times. Cleared when the replacement pod starts // running. "restartingPodUID"?: string // Time at which this node started "startedAt"?: #."io.k8s.apimachinery.pkg.apis.meta.v1.Time" // SynchronizationStatus is the synchronization status of the node "synchronizationStatus"?: #."io.argoproj.workflow.v1alpha1.NodeSynchronizationStatus" // TaskResultSynced is used to determine if the node's output has been received "taskResultSynced"?: bool // TemplateName is the template name which this node corresponds to. Not // applicable to virtual nodes (e.g. Retry, StepGroup) "templateName"?: string // TemplateRef is the reference to the template resource which this node // corresponds to. Not applicable to virtual nodes (e.g. Retry, StepGroup) "templateRef"?: #."io.argoproj.workflow.v1alpha1.TemplateRef" // TemplateScope is the template scope in which the template of this node was retrieved. "templateScope"?: string // Type indicates type of node "type"!: string } // NodeSynchronizationStatus stores the status of a node #: { "io.argoproj.workflow.v1alpha1.NodeSynchronizationStatus": { // Waiting is the name of the lock that this node is waiting for "waiting"?: string } } // NoneStrategy indicates to skip tar process and upload the files or directory // tree as independent files. Note that if the artifact is a directory, the // artifact driver must support the ability to save/load the directory // appropriately. #: "io.argoproj.workflow.v1alpha1.NoneStrategy": {} // OAuth2Auth holds all information for client authentication via OAuth2 tokens #: "io.argoproj.workflow.v1alpha1.OAuth2Auth": { "clientIDSecret"?: #."io.k8s.api.core.v1.SecretKeySelector" "clientSecretSecret"?: #."io.k8s.api.core.v1.SecretKeySelector" "endpointParams"?: [...#."io.argoproj.workflow.v1alpha1.OAuth2EndpointParam"] "scopes"?: [...string] "tokenURLSecret"?: #."io.k8s.api.core.v1.SecretKeySelector" } // EndpointParam is for requesting optional fields that should be sent in the oauth request #: "io.argoproj.workflow.v1alpha1.OAuth2EndpointParam": { // Name is the header name "key"!: string // Value is the literal value to use for the header "value"?: string } // OSSArtifact is the location of an Alibaba Cloud OSS artifact #: "io.argoproj.workflow.v1alpha1.OSSArtifact": { // AccessKeySecret is the secret selector to the bucket's access key "accessKeySecret"?: #."io.k8s.api.core.v1.SecretKeySelector" // Bucket is the name of the bucket "bucket"?: string // CreateBucketIfNotPresent tells the driver to attempt to create the OSS bucket // for output artifacts, if it doesn't exist "createBucketIfNotPresent"?: bool // Endpoint is the hostname of the bucket endpoint "endpoint"?: string // Key is the path in the bucket where the artifact resides "key"!: string // LifecycleRule specifies how to manage bucket's lifecycle "lifecycleRule"?: #."io.argoproj.workflow.v1alpha1.OSSLifecycleRule" // SecretKeySecret is the secret selector to the bucket's secret key "secretKeySecret"?: #."io.k8s.api.core.v1.SecretKeySelector" // SecurityToken is the user's temporary security token. For more details, check // out: https://www.alibabacloud.com/help/doc-detail/100624.htm "securityToken"?: string // UseSDKCreds tells the driver to figure out credentials based on sdk defaults. "useSDKCreds"?: bool } // OSSArtifactRepository defines the controller configuration for an OSS artifact repository #: "io.argoproj.workflow.v1alpha1.OSSArtifactRepository": { // AccessKeySecret is the secret selector to the bucket's access key "accessKeySecret"?: #."io.k8s.api.core.v1.SecretKeySelector" // Bucket is the name of the bucket "bucket"?: string // CreateBucketIfNotPresent tells the driver to attempt to create the OSS bucket // for output artifacts, if it doesn't exist "createBucketIfNotPresent"?: bool // Endpoint is the hostname of the bucket endpoint "endpoint"?: string // KeyFormat defines the format of how to store keys and can reference workflow variables. "keyFormat"?: string // LifecycleRule specifies how to manage bucket's lifecycle "lifecycleRule"?: #."io.argoproj.workflow.v1alpha1.OSSLifecycleRule" // SecretKeySecret is the secret selector to the bucket's secret key "secretKeySecret"?: #."io.k8s.api.core.v1.SecretKeySelector" // SecurityToken is the user's temporary security token. For more details, check // out: https://www.alibabacloud.com/help/doc-detail/100624.htm "securityToken"?: string // UseSDKCreds tells the driver to figure out credentials based on sdk defaults. "useSDKCreds"?: bool } // OSSLifecycleRule specifies how to manage bucket's lifecycle #: "io.argoproj.workflow.v1alpha1.OSSLifecycleRule": { // MarkDeletionAfterDays is the number of days before we delete objects in the bucket "markDeletionAfterDays"?: int // MarkInfrequentAccessAfterDays is the number of days before we convert the // objects in the bucket to Infrequent Access (IA) storage type "markInfrequentAccessAfterDays"?: int } // Outputs hold parameters, artifacts, and results from a step #: "io.argoproj.workflow.v1alpha1.Outputs": { // Artifacts holds the list of output artifacts produced by a step "artifacts"?: [...#."io.argoproj.workflow.v1alpha1.Artifact"] // ExitCode holds the exit code of a script template "exitCode"?: string // Parameters holds the list of output parameters produced by a step "parameters"?: [...#."io.argoproj.workflow.v1alpha1.Parameter"] // Result holds the result (stdout) of a script or container template, or the // response body of an HTTP template "result"?: string } #: "io.argoproj.workflow.v1alpha1.ParallelSteps": [...#."io.argoproj.workflow.v1alpha1.WorkflowStep"] // Parameter indicate a passed string parameter to a service template with an optional default value #: "io.argoproj.workflow.v1alpha1.Parameter": { // Default is the default value to use for an input parameter if a value was not supplied "default"?: string // Description is the parameter description "description"?: string // Enum holds a list of string values to choose from, for the actual value of the parameter "enum"?: [...string] // GlobalName exports an output parameter to the global scope, making it // available as io.argoproj.workflow.v1alpha1.outputs.parameters.XXXX and in // workflow.status.outputs.parameters "globalName"?: string // Name is the parameter name "name"!: string // Value is the literal value to use for the parameter. If specified in the // context of an input parameter, any passed values take precedence over the // specified value "value"?: string // ValueFrom is the source for the output parameter's value "valueFrom"?: #."io.argoproj.workflow.v1alpha1.ValueFrom" } // Plugin is an Object with exactly one key #: "io.argoproj.workflow.v1alpha1.Plugin": {} // PluginArtifact is the location of a plugin artifact #: "io.argoproj.workflow.v1alpha1.PluginArtifact": { // Configuration is the plugin defined configuration for the artifact driver plugin "configuration"?: string // ConnectionTimeoutSeconds is the timeout for the artifact driver connection, // overriding the driver's timeout "connectionTimeoutSeconds"?: int // Key is the path in the artifact repository where the artifact resides "key"!: string // Name is the name of the artifact driver plugin "name"?: string } // PluginArtifactRepository defines the controller configuration for a plugin artifact repository #: "io.argoproj.workflow.v1alpha1.PluginArtifactRepository": { "configuration"!: string "keyFormat"?: string "name"!: string } // PodGC describes how to delete completed pods as they complete #: "io.argoproj.workflow.v1alpha1.PodGC": { // DeleteDelayDuration specifies the duration before pods in the GC queue get deleted. "deleteDelayDuration"?: string // LabelSelector is the label selector to check if the pods match the labels // before being added to the pod GC queue. "labelSelector"?: #."io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector" // Strategy is the strategy to use. One of "OnPodCompletion", "OnPodSuccess", // "OnWorkflowCompletion", "OnWorkflowSuccess". If unset, does not delete Pods "strategy"?: string } // Prometheus is a prometheus metric to be emitted #: "io.argoproj.workflow.v1alpha1.Prometheus": { // Counter is a counter metric "counter"?: #."io.argoproj.workflow.v1alpha1.Counter" // Gauge is a gauge metric "gauge"?: #."io.argoproj.workflow.v1alpha1.Gauge" // Help is a string that describes the metric "help"!: string // Histogram is a histogram metric "histogram"?: #."io.argoproj.workflow.v1alpha1.Histogram" // Labels is a list of metric labels "labels"?: [...#."io.argoproj.workflow.v1alpha1.MetricLabel"] // Name is the name of the metric "name"!: string // When is a conditional statement that decides when to emit the metric "when"?: string } // RawArtifact allows raw string content to be placed as an artifact in a container #: { "io.argoproj.workflow.v1alpha1.RawArtifact": { // Data is the string contents of the artifact "data"!: string } } // ResourceTemplate is a template subtype to manipulate kubernetes resources #: "io.argoproj.workflow.v1alpha1.ResourceTemplate": { // Action is the action to perform to the resource. Must be one of: get, create, // apply, delete, replace, patch "action"!: string // FailureCondition is a label selector expression which describes the // conditions of the k8s resource in which the step was considered failed "failureCondition"?: string // Flags is a set of additional options passed to kubectl before submitting a // resource I.e. to disable resource validation: flags: [ // "--validate=false" # disable resource validation // ] "flags"?: [...string] // Manifest contains the kubernetes manifest "manifest"?: string // ManifestFrom is the source for a single kubernetes manifest "manifestFrom"?: #."io.argoproj.workflow.v1alpha1.ManifestFrom" // MergeStrategy is the strategy used to merge a patch. It defaults to // "strategic" Must be one of: strategic, merge, json "mergeStrategy"?: string // SetOwnerReference sets the reference to the workflow on the OwnerReference of generated resource. "setOwnerReference"?: bool // SuccessCondition is a label selector expression which describes the // conditions of the k8s resource in which it is acceptable to proceed to the // following step "successCondition"?: string } #: "io.argoproj.workflow.v1alpha1.ResubmitArchivedWorkflowRequest": { "memoized"?: bool "name"?: string "namespace"?: string "parameters"?: [...string] "uid"?: string } // RetryAffinity prevents running steps on the same host. #: "io.argoproj.workflow.v1alpha1.RetryAffinity": "nodeAntiAffinity"?: #."io.argoproj.workflow.v1alpha1.RetryNodeAntiAffinity" #: "io.argoproj.workflow.v1alpha1.RetryArchivedWorkflowRequest": { "name"?: string "namespace"?: string "nodeFieldSelector"?: string "parameters"?: [...string] "restartSuccessful"?: bool "uid"?: string } // RetryNodeAntiAffinity is a placeholder for future expansion, only empty // nodeAntiAffinity is allowed. In order to prevent running steps on the same // host, it uses "kubernetes.io/hostname". #: "io.argoproj.workflow.v1alpha1.RetryNodeAntiAffinity": {} // RetryStrategy provides controls on how to retry a workflow step #: "io.argoproj.workflow.v1alpha1.RetryStrategy": { // Affinity prevents running workflow's step on the same host "affinity"?: #."io.argoproj.workflow.v1alpha1.RetryAffinity" // Backoff is a backoff strategy "backoff"?: #."io.argoproj.workflow.v1alpha1.Backoff" // Expression is a condition expression for when a node will be retried. If it // evaluates to false, the node will not be retried and the retry strategy will // be ignored "expression"?: string // Limit is the maximum number of retry attempts when retrying a container. It // does not include the original container; the maximum number of total // attempts will be `limit + 1`. "limit"?: #."io.k8s.apimachinery.pkg.util.intstr.IntOrString" // RetryPolicy is a policy of NodePhase statuses that will be retried "retryPolicy"?: string } // S3Artifact is the location of an S3 artifact #: "io.argoproj.workflow.v1alpha1.S3Artifact": { // AccessKeySecret is the secret selector to the bucket's access key "accessKeySecret"?: #."io.k8s.api.core.v1.SecretKeySelector" // Bucket is the name of the bucket "bucket"?: string // CASecret specifies the secret that contains the CA, used to verify the TLS connection "caSecret"?: #."io.k8s.api.core.v1.SecretKeySelector" // CreateBucketIfNotPresent tells the driver to attempt to create the S3 bucket // for output artifacts, if it doesn't exist. Setting Enabled Encryption will // apply either SSE-S3 to the bucket if KmsKeyId is not set or SSE-KMS if it // is. "createBucketIfNotPresent"?: #."io.argoproj.workflow.v1alpha1.CreateS3BucketOptions" "encryptionOptions"?: #."io.argoproj.workflow.v1alpha1.S3EncryptionOptions" // Endpoint is the hostname of the bucket endpoint "endpoint"?: string // Insecure will connect to the service with TLS "insecure"?: bool // Key is the key in the bucket where the artifact resides "key"?: string // Region contains the optional bucket region "region"?: string // RoleARN is the Amazon Resource Name (ARN) of the role to assume. "roleARN"?: string // SecretKeySecret is the secret selector to the bucket's secret key "secretKeySecret"?: #."io.k8s.api.core.v1.SecretKeySelector" // SessionTokenSecret is used for ephemeral credentials like an IAM assume role or S3 access grant "sessionTokenSecret"?: #."io.k8s.api.core.v1.SecretKeySelector" // UseSDKCreds tells the driver to figure out credentials based on sdk defaults. "useSDKCreds"?: bool } // S3ArtifactRepository defines the controller configuration for an S3 artifact repository #: "io.argoproj.workflow.v1alpha1.S3ArtifactRepository": { // AccessKeySecret is the secret selector to the bucket's access key "accessKeySecret"?: #."io.k8s.api.core.v1.SecretKeySelector" // Bucket is the name of the bucket "bucket"?: string // CASecret specifies the secret that contains the CA, used to verify the TLS connection "caSecret"?: #."io.k8s.api.core.v1.SecretKeySelector" // CreateBucketIfNotPresent tells the driver to attempt to create the S3 bucket // for output artifacts, if it doesn't exist. Setting Enabled Encryption will // apply either SSE-S3 to the bucket if KmsKeyId is not set or SSE-KMS if it // is. "createBucketIfNotPresent"?: #."io.argoproj.workflow.v1alpha1.CreateS3BucketOptions" "encryptionOptions"?: #."io.argoproj.workflow.v1alpha1.S3EncryptionOptions" // Endpoint is the hostname of the bucket endpoint "endpoint"?: string // Insecure will connect to the service with TLS "insecure"?: bool // KeyFormat defines the format of how to store keys and can reference workflow variables. "keyFormat"?: string // KeyPrefix is prefix used as part of the bucket key in which the controller // will store artifacts. DEPRECATED. Use KeyFormat instead "keyPrefix"?: string // Region contains the optional bucket region "region"?: string // RoleARN is the Amazon Resource Name (ARN) of the role to assume. "roleARN"?: string // SecretKeySecret is the secret selector to the bucket's secret key "secretKeySecret"?: #."io.k8s.api.core.v1.SecretKeySelector" // SessionTokenSecret is used for ephemeral credentials like an IAM assume role or S3 access grant "sessionTokenSecret"?: #."io.k8s.api.core.v1.SecretKeySelector" // UseSDKCreds tells the driver to figure out credentials based on sdk defaults. "useSDKCreds"?: bool } // S3EncryptionOptions used to determine encryption options during s3 operations #: "io.argoproj.workflow.v1alpha1.S3EncryptionOptions": { // EnableEncryption tells the driver to encrypt objects if set to true. If // kmsKeyId and serverSideCustomerKeySecret are not set, SSE-S3 will be used "enableEncryption"?: bool // KmsEncryptionContext is a json blob that contains an encryption context. See // https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#encrypt_context // for more information "kmsEncryptionContext"?: string // KMSKeyId tells the driver to encrypt the object using the specified KMS Key. "kmsKeyId"?: string // ServerSideCustomerKeySecret tells the driver to encrypt the output artifacts // using SSE-C with the specified secret. "serverSideCustomerKeySecret"?: #."io.k8s.api.core.v1.SecretKeySelector" } // ScriptTemplate is a template subtype to enable scripting through code steps #: "io.argoproj.workflow.v1alpha1.ScriptTemplate": { // Arguments to the entrypoint. The container image's CMD is used if this is not // provided. Variable references $(VAR_NAME) are expanded using the container's // environment. If a variable cannot be resolved, the reference in the input // string will be unchanged. Double $$ are reduced to a single $, which allows // for escaping the $(VAR_NAME) syntax: i.e. "$$(VAR_NAME)" will produce the // string literal "$(VAR_NAME)". Escaped references will never be expanded, // regardless of whether the variable exists or not. Cannot be updated. More // info: // https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell "args"?: [...string] // Entrypoint array. Not executed within a shell. The container image's // ENTRYPOINT is used if this is not provided. Variable references $(VAR_NAME) // are expanded using the container's environment. If a variable cannot be // resolved, the reference in the input string will be unchanged. Double $$ are // reduced to a single $, which allows for escaping the $(VAR_NAME) syntax: // i.e. "$$(VAR_NAME)" will produce the string literal "$(VAR_NAME)". Escaped // references will never be expanded, regardless of whether the variable exists // or not. Cannot be updated. More info: // https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell "command"?: [...string] // List of environment variables to set in the container. Cannot be updated. "env"?: [...#."io.k8s.api.core.v1.EnvVar"] // List of sources to populate environment variables in the container. The keys // defined within a source must be a C_IDENTIFIER. All invalid keys will be // reported as an event when the container is starting. When a key exists in // multiple sources, the value associated with the last source will take // precedence. Values defined by an Env with a duplicate key will take // precedence. Cannot be updated. "envFrom"?: [...#."io.k8s.api.core.v1.EnvFromSource"] // Container image name. More info: // https://kubernetes.io/docs/concepts/containers/images This field is optional // to allow higher level config management to default or override container // images in workload controllers like Deployments and StatefulSets. "image"!: string // Image pull policy. One of Always, Never, IfNotPresent. Defaults to Always if // :latest tag is specified, or IfNotPresent otherwise. Cannot be updated. More // info: https://kubernetes.io/docs/concepts/containers/images#updating-images "imagePullPolicy"?: string // Actions that the management system should take in response to container // lifecycle events. Cannot be updated. "lifecycle"?: #."io.k8s.api.core.v1.Lifecycle" // Periodic probe of container liveness. Container will be restarted if the // probe fails. Cannot be updated. More info: // https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes "livenessProbe"?: #."io.k8s.api.core.v1.Probe" // Name of the container specified as a DNS_LABEL. Each container in a pod must // have a unique name (DNS_LABEL). Cannot be updated. "name"?: string // List of ports to expose from the container. Not specifying a port here DOES // NOT prevent that port from being exposed. Any port which is listening on the // default "0.0.0.0" address inside a container will be accessible from the // network. Modifying this array with strategic merge patch may corrupt the // data. For more information See // https://github.com/kubernetes/kubernetes/issues/108255. Cannot be updated. "ports"?: [...#."io.k8s.api.core.v1.ContainerPort"] // Periodic probe of container service readiness. Container will be removed from // service endpoints if the probe fails. Cannot be updated. More info: // https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes "readinessProbe"?: #."io.k8s.api.core.v1.Probe" // Resources resize policy for the container. "resizePolicy"?: [...#."io.k8s.api.core.v1.ContainerResizePolicy"] // Compute Resources required by this container. Cannot be updated. More info: // https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/ "resources"?: #."io.k8s.api.core.v1.ResourceRequirements" // RestartPolicy defines the restart behavior of individual containers in a pod. // This field may only be set for init containers, and the only allowed value // is "Always". For non-init containers or when this field is not specified, // the restart behavior is defined by the Pod's restart policy and the // container type. Setting the RestartPolicy as "Always" for the init container // will have the following effect: this init container will be continually // restarted on exit until all regular containers have terminated. Once all // regular containers have completed, all init containers with restartPolicy // "Always" will be shut down. This lifecycle differs from normal init // containers and is often referred to as a "sidecar" container. Although this // init container still starts in the init container sequence, it does not wait // for the container to complete before proceeding to the next init container. // Instead, the next init container starts immediately after this init // container is started, or after any startupProbe has successfully completed. "restartPolicy"?: string // SecurityContext defines the security options the container should be run // with. If set, the fields of SecurityContext override the equivalent fields // of PodSecurityContext. More info: // https://kubernetes.io/docs/tasks/configure-pod-container/security-context/ "securityContext"?: #."io.k8s.api.core.v1.SecurityContext" // Source contains the source code of the script to execute "source"!: string // StartupProbe indicates that the Pod has successfully initialized. If // specified, no other probes are executed until this completes successfully. // If this probe fails, the Pod will be restarted, just as if the livenessProbe // failed. This can be used to provide different probe parameters at the // beginning of a Pod's lifecycle, when it might take a long time to load data // or warm a cache, than during steady-state operation. This cannot be updated. // More info: // https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes "startupProbe"?: #."io.k8s.api.core.v1.Probe" // Whether this container should allocate a buffer for stdin in the container // runtime. If this is not set, reads from stdin in the container will always // result in EOF. Default is false. "stdin"?: bool // Whether the container runtime should close the stdin channel after it has // been opened by a single attach. When stdin is true the stdin stream will // remain open across multiple attach sessions. If stdinOnce is set to true, // stdin is opened on container start, is empty until the first client attaches // to stdin, and then remains open and accepts data until the client // disconnects, at which time stdin is closed and remains closed until the // container is restarted. If this flag is false, a container processes that // reads from stdin will never receive an EOF. Default is false "stdinOnce"?: bool // Optional: Path at which the file to which the container's termination message // will be written is mounted into the container's filesystem. Message written // is intended to be brief final status, such as an assertion failure message. // Will be truncated by the node if greater than 4096 bytes. The total message // length across all containers will be limited to 12kb. Defaults to // /dev/termination-log. Cannot be updated. "terminationMessagePath"?: string // Indicate how the termination message should be populated. File will use the // contents of terminationMessagePath to populate the container status message // on both success and failure. FallbackToLogsOnError will use the last chunk // of container log output if the termination message file is empty and the // container exited with an error. The log output is limited to 2048 bytes or // 80 lines, whichever is smaller. Defaults to File. Cannot be updated. "terminationMessagePolicy"?: string // Whether this container should allocate a TTY for itself, also requires // 'stdin' to be true. Default is false. "tty"?: bool // volumeDevices is the list of block devices to be used by the container. "volumeDevices"?: [...#."io.k8s.api.core.v1.VolumeDevice"] // Pod volumes to mount into the container's filesystem. Cannot be updated. "volumeMounts"?: [...#."io.k8s.api.core.v1.VolumeMount"] // Container's working directory. If not specified, the container runtime's // default will be used, which might be configured in the container image. // Cannot be updated. "workingDir"?: string } #: "io.argoproj.workflow.v1alpha1.SemaphoreHolding": { // Holders stores the list of current holder names in the io.argoproj.workflow.v1alpha1. "holders"?: [...string] // Semaphore stores the semaphore name. "semaphore"?: string } // SemaphoreRef is a reference of Semaphore #: "io.argoproj.workflow.v1alpha1.SemaphoreRef": { // ConfigMapKeyRef is a configmap selector for Semaphore configuration "configMapKeyRef"?: #."io.k8s.api.core.v1.ConfigMapKeySelector" // SyncDatabaseRef is a database reference for Semaphore configuration "database"?: #."io.argoproj.workflow.v1alpha1.SyncDatabaseRef" // Namespace is the namespace of the configmap, default: [namespace of workflow] "namespace"?: string } #: "io.argoproj.workflow.v1alpha1.SemaphoreStatus": { // Holding stores the list of resource acquired synchronization lock for workflows. "holding"?: [...#."io.argoproj.workflow.v1alpha1.SemaphoreHolding"] // Waiting indicates the list of current synchronization lock holders. "waiting"?: [...#."io.argoproj.workflow.v1alpha1.SemaphoreHolding"] } // Sequence expands a workflow step into numeric range #: "io.argoproj.workflow.v1alpha1.Sequence": { // Count is number of elements in the sequence (default: 0). Not to be used with end "count"?: #."io.k8s.apimachinery.pkg.util.intstr.IntOrString" // Number at which to end the sequence (default: 0). Not to be used with Count "end"?: #."io.k8s.apimachinery.pkg.util.intstr.IntOrString" // Format is a printf format string to format the value in the sequence "format"?: string // Number at which to start the sequence (default: 0) "start"?: #."io.k8s.apimachinery.pkg.util.intstr.IntOrString" } // StopStrategy defines if the CronWorkflow should stop scheduling based on an // expression. v3.6 and after #: { "io.argoproj.workflow.v1alpha1.StopStrategy": { // v3.6 and after: Expression is an expression that stops scheduling workflows // when true. Use the variables `cronworkflow`.`failed` or // `cronworkflow`.`succeeded` to access the number of failed or successful // child workflows. "expression"!: string } } #: "io.argoproj.workflow.v1alpha1.Submit": { // Arguments extracted from the event and then set as arguments to the workflow created. "arguments"?: #."io.argoproj.workflow.v1alpha1.Arguments" // Metadata optional means to customize select fields of the workflow metadata "metadata"?: #."io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta" // WorkflowTemplateRef the workflow template to submit "workflowTemplateRef"!: #."io.argoproj.workflow.v1alpha1.WorkflowTemplateRef" } // SubmitOpts are workflow submission options #: "io.argoproj.workflow.v1alpha1.SubmitOpts": { // Annotations adds to metadata.labels "annotations"?: string // DryRun validates the workflow on the client-side without creating it. This // option is not supported in API "dryRun"?: bool // Entrypoint overrides spec.entrypoint "entryPoint"?: string // GenerateName overrides metadata.generateName "generateName"?: string // Labels adds to metadata.labels "labels"?: string // Name overrides metadata.name "name"?: string // OwnerReference creates a metadata.ownerReference "ownerReference"?: #."io.k8s.apimachinery.pkg.apis.meta.v1.OwnerReference" // Parameters passes input parameters to workflow "parameters"?: [...string] // Set the podPriorityClassName of the workflow "podPriorityClassName"?: string // Priority is used if controller is configured to process limited number of // workflows in parallel, higher priority workflows are processed first. "priority"?: int // ServerDryRun validates the workflow on the server-side without creating it "serverDryRun"?: bool // ServiceAccount runs all pods in the workflow using specified ServiceAccount. "serviceAccount"?: string } // SuppliedValueFrom is a placeholder for a value to be filled in directly, // either through the CLI, API, etc. #: "io.argoproj.workflow.v1alpha1.SuppliedValueFrom": {} // SuspendTemplate is a template subtype to suspend a workflow at a predetermined point in time #: { "io.argoproj.workflow.v1alpha1.SuspendTemplate": { // Duration is the seconds to wait before automatically resuming a template. // Must be a string. Default unit is seconds. Could also be a Duration, e.g.: // "2m", "6h" "duration"?: string } } #: "io.argoproj.workflow.v1alpha1.SyncDatabaseRef": "key"!: string // Synchronization holds synchronization lock configuration #: "io.argoproj.workflow.v1alpha1.Synchronization": { // v3.6 and after: Mutexes holds the list of Mutex lock details "mutexes"?: [...#."io.argoproj.workflow.v1alpha1.Mutex"] // v3.6 and after: Semaphores holds the list of Semaphores configuration "semaphores"?: [...#."io.argoproj.workflow.v1alpha1.SemaphoreRef"] } // SynchronizationStatus stores the status of semaphore and mutex. #: "io.argoproj.workflow.v1alpha1.SynchronizationStatus": { // Mutex stores this workflow's mutex holder details "mutex"?: #."io.argoproj.workflow.v1alpha1.MutexStatus" // Semaphore stores this workflow's Semaphore holder details "semaphore"?: #."io.argoproj.workflow.v1alpha1.SemaphoreStatus" } // TTLStrategy is the strategy for the time to live depending on if the workflow succeeded or failed #: "io.argoproj.workflow.v1alpha1.TTLStrategy": { // SecondsAfterCompletion is the number of seconds to live after completion "secondsAfterCompletion"?: int // SecondsAfterFailure is the number of seconds to live after failure "secondsAfterFailure"?: int // SecondsAfterSuccess is the number of seconds to live after success "secondsAfterSuccess"?: int } // TarStrategy will tar and gzip the file or directory when saving #: { "io.argoproj.workflow.v1alpha1.TarStrategy": { // CompressionLevel specifies the gzip compression level to use for the // artifact. Defaults to gzip.DefaultCompression. "compressionLevel"?: int } } // Template is a reusable and composable unit of execution in a workflow #: "io.argoproj.workflow.v1alpha1.Template": { // Optional duration in seconds relative to the StartTime that the pod may be // active on a node before the system actively tries to terminate the pod; // value must be positive integer This field is only applicable to container // and script templates. "activeDeadlineSeconds"?: #."io.k8s.apimachinery.pkg.util.intstr.IntOrString" // Affinity sets the pod's scheduling constraints Overrides the affinity set at // the workflow level (if any) "affinity"?: #."io.k8s.api.core.v1.Affinity" // Annotations is a list of annotations to add to the template at runtime "annotations"?: [string]: string // Location in which all files related to the step will be stored (logs, // artifacts, etc...). Can be overridden by individual items in Outputs. If // omitted, will use the default artifact repository location configured in the // controller, appended with the / in the key. "archiveLocation"?: #."io.argoproj.workflow.v1alpha1.ArtifactLocation" // AutomountServiceAccountToken indicates whether a service account token should // be automatically mounted in pods. ServiceAccountName of ExecutorConfig must // be specified if this value is false. "automountServiceAccountToken"?: bool // Container is the main container image to run in the pod "container"?: #."io.k8s.api.core.v1.Container" // ContainerSet groups multiple containers within a single pod. "containerSet"?: #."io.argoproj.workflow.v1alpha1.ContainerSetTemplate" // Daemon will allow a workflow to proceed to the next step so long as the // container reaches readiness "daemon"?: bool // DAG template subtype which runs a DAG "dag"?: #."io.argoproj.workflow.v1alpha1.DAGTemplate" // Data is a data template "data"?: #."io.argoproj.workflow.v1alpha1.Data" // Executor holds configurations of the executor container. "executor"?: #."io.argoproj.workflow.v1alpha1.ExecutorConfig" // FailFast, if specified, will fail this template if any of its child pods has // failed. This is useful for when this template is expanded with `withItems`, // etc. "failFast"?: bool // HostAliases is an optional list of hosts and IPs that will be injected into the pod spec "hostAliases"?: [...#."io.k8s.api.core.v1.HostAlias"] // HTTP makes a HTTP request "http"?: #."io.argoproj.workflow.v1alpha1.HTTP" // InitContainers is a list of containers which run before the main container. "initContainers"?: [...#."io.argoproj.workflow.v1alpha1.UserContainer"] // Inputs describe what inputs parameters and artifacts are supplied to this template "inputs"?: #."io.argoproj.workflow.v1alpha1.Inputs" // Memoize allows templates to use outputs generated from already executed templates "memoize"?: #."io.argoproj.workflow.v1alpha1.Memoize" // Metadata sets the pods's metadata, i.e. annotations and labels "metadata"?: #."io.argoproj.workflow.v1alpha1.Metadata" // Metrics are a list of metrics emitted from this template "metrics"?: #."io.argoproj.workflow.v1alpha1.Metrics" // Name is the name of the template "name"?: string // NodeSelector is a selector to schedule this step of the workflow to be run on // the selected node(s). Overrides the selector set at the workflow level. "nodeSelector"?: [string]: string // Outputs describe the parameters and artifacts that this template produces "outputs"?: #."io.argoproj.workflow.v1alpha1.Outputs" // Parallelism limits the max total parallel pods that can execute at the same // time within the boundaries of this template invocation. If additional // steps/dag templates are invoked, the pods created by those templates will // not be counted towards this total. "parallelism"?: int // Plugin is a plugin template Note: the structure of a plugin template is // free-form, so we need to have "x-kubernetes-preserve-unknown-fields: true" // in the validation schema. "plugin"?: #."io.argoproj.workflow.v1alpha1.Plugin" // PodSpecPatch holds strategic merge patch to apply against the pod spec. // Allows parameterization of container fields which are not strings (e.g. // resource limits). "podSpecPatch"?: string // PriorityClassName to apply to workflow pods. "priorityClassName"?: string // Resource template subtype which can run k8s resources "resource"?: #."io.argoproj.workflow.v1alpha1.ResourceTemplate" // RetryStrategy describes how to retry a template when it fails "retryStrategy"?: #."io.argoproj.workflow.v1alpha1.RetryStrategy" // If specified, the pod will be dispatched by specified scheduler. Or it will // be dispatched by workflow scope scheduler if specified. If neither // specified, the pod will be dispatched by default scheduler. "schedulerName"?: string // Script runs a portion of code against an interpreter "script"?: #."io.argoproj.workflow.v1alpha1.ScriptTemplate" // SecurityContext holds pod-level security attributes and common container // settings. Optional: Defaults to empty. See type description for default // values of each field. "securityContext"?: #."io.k8s.api.core.v1.PodSecurityContext" // ServiceAccountName to apply to workflow pods "serviceAccountName"?: string // Sidecars is a list of containers which run alongside the main container // Sidecars are automatically killed when the main container completes "sidecars"?: [...#."io.argoproj.workflow.v1alpha1.UserContainer"] // Steps define a series of sequential/parallel workflow steps "steps"?: [...#."io.argoproj.workflow.v1alpha1.ParallelSteps"] // Suspend template subtype which can suspend a workflow when reaching the step "suspend"?: #."io.argoproj.workflow.v1alpha1.SuspendTemplate" // Synchronization holds synchronization lock configuration for this template "synchronization"?: #."io.argoproj.workflow.v1alpha1.Synchronization" // Timeout allows to set the total node execution timeout duration counting from // the node's start time. This duration also includes time in which the node // spends in Pending state. This duration may not be applied to Step or DAG // templates. "timeout"?: string // Tolerations to apply to workflow pods. "tolerations"?: [...#."io.k8s.api.core.v1.Toleration"] // Volumes is a list of volumes that can be mounted by containers in a template. "volumes"?: [...#."io.k8s.api.core.v1.Volume"] } // TemplateRef is a reference of template resource. #: "io.argoproj.workflow.v1alpha1.TemplateRef": { // ClusterScope indicates the referred template is cluster scoped (i.e. a ClusterWorkflowTemplate). "clusterScope"?: bool // Name is the resource name of the template. "name"?: string // Template is the name of referred template in the resource. "template"?: string } #: { "io.argoproj.workflow.v1alpha1.TransformationStep": { // Expression defines an expr expression to apply "expression"!: string } } #: "io.argoproj.workflow.v1alpha1.UpdateCronWorkflowRequest": { "cronWorkflow"?: #."io.argoproj.workflow.v1alpha1.CronWorkflow" // DEPRECATED: This field is ignored. "name"?: string "namespace"?: string } // UserContainer is a container specified by a user. #: "io.argoproj.workflow.v1alpha1.UserContainer": { // Arguments to the entrypoint. The container image's CMD is used if this is not // provided. Variable references $(VAR_NAME) are expanded using the container's // environment. If a variable cannot be resolved, the reference in the input // string will be unchanged. Double $$ are reduced to a single $, which allows // for escaping the $(VAR_NAME) syntax: i.e. "$$(VAR_NAME)" will produce the // string literal "$(VAR_NAME)". Escaped references will never be expanded, // regardless of whether the variable exists or not. Cannot be updated. More // info: // https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell "args"?: [...string] // Entrypoint array. Not executed within a shell. The container image's // ENTRYPOINT is used if this is not provided. Variable references $(VAR_NAME) // are expanded using the container's environment. If a variable cannot be // resolved, the reference in the input string will be unchanged. Double $$ are // reduced to a single $, which allows for escaping the $(VAR_NAME) syntax: // i.e. "$$(VAR_NAME)" will produce the string literal "$(VAR_NAME)". Escaped // references will never be expanded, regardless of whether the variable exists // or not. Cannot be updated. More info: // https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell "command"?: [...string] // List of environment variables to set in the container. Cannot be updated. "env"?: [...#."io.k8s.api.core.v1.EnvVar"] // List of sources to populate environment variables in the container. The keys // defined within a source must be a C_IDENTIFIER. All invalid keys will be // reported as an event when the container is starting. When a key exists in // multiple sources, the value associated with the last source will take // precedence. Values defined by an Env with a duplicate key will take // precedence. Cannot be updated. "envFrom"?: [...#."io.k8s.api.core.v1.EnvFromSource"] // Container image name. More info: // https://kubernetes.io/docs/concepts/containers/images This field is optional // to allow higher level config management to default or override container // images in workload controllers like Deployments and StatefulSets. "image"?: string // Image pull policy. One of Always, Never, IfNotPresent. Defaults to Always if // :latest tag is specified, or IfNotPresent otherwise. Cannot be updated. More // info: https://kubernetes.io/docs/concepts/containers/images#updating-images "imagePullPolicy"?: string // Actions that the management system should take in response to container // lifecycle events. Cannot be updated. "lifecycle"?: #."io.k8s.api.core.v1.Lifecycle" // Periodic probe of container liveness. Container will be restarted if the // probe fails. Cannot be updated. More info: // https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes "livenessProbe"?: #."io.k8s.api.core.v1.Probe" // MirrorVolumeMounts will mount the same volumes specified in the main // container to the container (including artifacts), at the same mountPaths. // This enables dind daemon to partially see the same filesystem as the main // container in order to use features such as docker volume binding "mirrorVolumeMounts"?: bool // Name of the container specified as a DNS_LABEL. Each container in a pod must // have a unique name (DNS_LABEL). Cannot be updated. "name"!: string // List of ports to expose from the container. Not specifying a port here DOES // NOT prevent that port from being exposed. Any port which is listening on the // default "0.0.0.0" address inside a container will be accessible from the // network. Modifying this array with strategic merge patch may corrupt the // data. For more information See // https://github.com/kubernetes/kubernetes/issues/108255. Cannot be updated. "ports"?: [...#."io.k8s.api.core.v1.ContainerPort"] // Periodic probe of container service readiness. Container will be removed from // service endpoints if the probe fails. Cannot be updated. More info: // https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes "readinessProbe"?: #."io.k8s.api.core.v1.Probe" // Resources resize policy for the container. "resizePolicy"?: [...#."io.k8s.api.core.v1.ContainerResizePolicy"] // Compute Resources required by this container. Cannot be updated. More info: // https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/ "resources"?: #."io.k8s.api.core.v1.ResourceRequirements" // RestartPolicy defines the restart behavior of individual containers in a pod. // This field may only be set for init containers, and the only allowed value // is "Always". For non-init containers or when this field is not specified, // the restart behavior is defined by the Pod's restart policy and the // container type. Setting the RestartPolicy as "Always" for the init container // will have the following effect: this init container will be continually // restarted on exit until all regular containers have terminated. Once all // regular containers have completed, all init containers with restartPolicy // "Always" will be shut down. This lifecycle differs from normal init // containers and is often referred to as a "sidecar" container. Although this // init container still starts in the init container sequence, it does not wait // for the container to complete before proceeding to the next init container. // Instead, the next init container starts immediately after this init // container is started, or after any startupProbe has successfully completed. "restartPolicy"?: string // SecurityContext defines the security options the container should be run // with. If set, the fields of SecurityContext override the equivalent fields // of PodSecurityContext. More info: // https://kubernetes.io/docs/tasks/configure-pod-container/security-context/ "securityContext"?: #."io.k8s.api.core.v1.SecurityContext" // StartupProbe indicates that the Pod has successfully initialized. If // specified, no other probes are executed until this completes successfully. // If this probe fails, the Pod will be restarted, just as if the livenessProbe // failed. This can be used to provide different probe parameters at the // beginning of a Pod's lifecycle, when it might take a long time to load data // or warm a cache, than during steady-state operation. This cannot be updated. // More info: // https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes "startupProbe"?: #."io.k8s.api.core.v1.Probe" // Whether this container should allocate a buffer for stdin in the container // runtime. If this is not set, reads from stdin in the container will always // result in EOF. Default is false. "stdin"?: bool // Whether the container runtime should close the stdin channel after it has // been opened by a single attach. When stdin is true the stdin stream will // remain open across multiple attach sessions. If stdinOnce is set to true, // stdin is opened on container start, is empty until the first client attaches // to stdin, and then remains open and accepts data until the client // disconnects, at which time stdin is closed and remains closed until the // container is restarted. If this flag is false, a container processes that // reads from stdin will never receive an EOF. Default is false "stdinOnce"?: bool // Optional: Path at which the file to which the container's termination message // will be written is mounted into the container's filesystem. Message written // is intended to be brief final status, such as an assertion failure message. // Will be truncated by the node if greater than 4096 bytes. The total message // length across all containers will be limited to 12kb. Defaults to // /dev/termination-log. Cannot be updated. "terminationMessagePath"?: string // Indicate how the termination message should be populated. File will use the // contents of terminationMessagePath to populate the container status message // on both success and failure. FallbackToLogsOnError will use the last chunk // of container log output if the termination message file is empty and the // container exited with an error. The log output is limited to 2048 bytes or // 80 lines, whichever is smaller. Defaults to File. Cannot be updated. "terminationMessagePolicy"?: string // Whether this container should allocate a TTY for itself, also requires // 'stdin' to be true. Default is false. "tty"?: bool // volumeDevices is the list of block devices to be used by the container. "volumeDevices"?: [...#."io.k8s.api.core.v1.VolumeDevice"] // Pod volumes to mount into the container's filesystem. Cannot be updated. "volumeMounts"?: [...#."io.k8s.api.core.v1.VolumeMount"] // Container's working directory. If not specified, the container runtime's // default will be used, which might be configured in the container image. // Cannot be updated. "workingDir"?: string } // ValueFrom describes a location in which to obtain the value to a parameter #: "io.argoproj.workflow.v1alpha1.ValueFrom": { // ConfigMapKeyRef is configmap selector for input parameter configuration "configMapKeyRef"?: #."io.k8s.api.core.v1.ConfigMapKeySelector" // Default specifies a value to be used if retrieving the value from the specified source fails "default"?: string // Selector (https://github.com/expr-lang/expr) that is evaluated against the // event to get the value of the parameter. E.g. `payload.message` "event"?: string // Expression, if defined, is evaluated to specify the value for the parameter "expression"?: string // JQFilter expression against the resource object in resource templates "jqFilter"?: string // JSONPath of a resource to retrieve an output parameter value from in resource templates "jsonPath"?: string // Parameter reference to a step or dag task in which to retrieve an output // parameter value from (e.g. steps.mystep.outputs.myparam) "parameter"?: string // Path in the container to retrieve an output parameter value from in container templates "path"?: string // Supplied value to be filled in directly, either through the CLI, API, etc. "supplied"?: #."io.argoproj.workflow.v1alpha1.SuppliedValueFrom" } #: "io.argoproj.workflow.v1alpha1.Version": { "buildDate"!: string "compiler"!: string "gitCommit"!: string "gitTag"!: string "gitTreeState"!: string "goVersion"!: string "platform"!: string "version"!: string } // VolumeClaimGC describes how to delete volumes from completed Workflows #: { "io.argoproj.workflow.v1alpha1.VolumeClaimGC": { // Strategy is the strategy to use. One of "OnWorkflowCompletion", // "OnWorkflowSuccess". Defaults to "OnWorkflowSuccess" "strategy"?: string } } // Workflow is the definition of a workflow resource #: "io.argoproj.workflow.v1alpha1.Workflow": { // APIVersion defines the versioned schema of this representation of an object. // Servers should convert recognized schemas to the latest internal value, and // may reject unrecognized values. More info: // https://git.io.k8s.community/contributors/devel/sig-architecture/api-conventions.md#resources "apiVersion"?: "argoproj.io/v1alpha1" // Kind is a string value representing the REST resource this object represents. // Servers may infer this from the endpoint the client submits requests to. // Cannot be updated. In CamelCase. More info: // https://git.io.k8s.community/contributors/devel/sig-architecture/api-conventions.md#types-kinds "kind"?: "Workflow" "metadata"!: #."io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta" "spec"!: #."io.argoproj.workflow.v1alpha1.WorkflowSpec" "status"?: #."io.argoproj.workflow.v1alpha1.WorkflowStatus" } #: "io.argoproj.workflow.v1alpha1.WorkflowCreateRequest": { "createOptions"?: #."io.k8s.apimachinery.pkg.apis.meta.v1.CreateOptions" // This field is no longer used. "instanceID"?: string "namespace"?: string "serverDryRun"?: bool "workflow"?: #."io.argoproj.workflow.v1alpha1.Workflow" } #: "io.argoproj.workflow.v1alpha1.WorkflowDeleteResponse": {} // WorkflowEventBinding is the definition of an event resource #: "io.argoproj.workflow.v1alpha1.WorkflowEventBinding": { // APIVersion defines the versioned schema of this representation of an object. // Servers should convert recognized schemas to the latest internal value, and // may reject unrecognized values. More info: // https://git.io.k8s.community/contributors/devel/sig-architecture/api-conventions.md#resources "apiVersion"?: "argoproj.io/v1alpha1" // Kind is a string value representing the REST resource this object represents. // Servers may infer this from the endpoint the client submits requests to. // Cannot be updated. In CamelCase. More info: // https://git.io.k8s.community/contributors/devel/sig-architecture/api-conventions.md#types-kinds "kind"?: "WorkflowEventBinding" "metadata"!: #."io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta" "spec"!: #."io.argoproj.workflow.v1alpha1.WorkflowEventBindingSpec" } // WorkflowEventBindingList is list of event resources #: "io.argoproj.workflow.v1alpha1.WorkflowEventBindingList": { // APIVersion defines the versioned schema of this representation of an object. // Servers should convert recognized schemas to the latest internal value, and // may reject unrecognized values. More info: // https://git.io.k8s.community/contributors/devel/sig-architecture/api-conventions.md#resources "apiVersion"?: string "items"!: [...#."io.argoproj.workflow.v1alpha1.WorkflowEventBinding"] // Kind is a string value representing the REST resource this object represents. // Servers may infer this from the endpoint the client submits requests to. // Cannot be updated. In CamelCase. More info: // https://git.io.k8s.community/contributors/devel/sig-architecture/api-conventions.md#types-kinds "kind"?: string "metadata"!: #."io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta" } #: "io.argoproj.workflow.v1alpha1.WorkflowEventBindingSpec": { // Event is the event to bind to "event"!: #."io.argoproj.workflow.v1alpha1.Event" // Submit is the workflow template to submit "submit"?: #."io.argoproj.workflow.v1alpha1.Submit" } // WorkflowLevelArtifactGC describes how to delete artifacts from completed // Workflows - this spec is used on the Workflow level #: "io.argoproj.workflow.v1alpha1.WorkflowLevelArtifactGC": { // ForceFinalizerRemoval: if set to true, the finalizer will be removed in the // case that Artifact GC fails "forceFinalizerRemoval"?: bool // PodMetadata is an optional field for specifying the Labels and Annotations // that should be assigned to the Pod doing the deletion "podMetadata"?: #."io.argoproj.workflow.v1alpha1.Metadata" // PodSpecPatch holds strategic merge patch to apply against the artgc pod spec. "podSpecPatch"?: string // ServiceAccountName is an optional field for specifying the Service Account // that should be assigned to the Pod doing the deletion "serviceAccountName"?: string // Strategy is the strategy to use. "strategy"?: string } #: "io.argoproj.workflow.v1alpha1.WorkflowLintRequest": { "namespace"?: string "workflow"?: #."io.argoproj.workflow.v1alpha1.Workflow" } // WorkflowList is list of Workflow resources #: "io.argoproj.workflow.v1alpha1.WorkflowList": { // APIVersion defines the versioned schema of this representation of an object. // Servers should convert recognized schemas to the latest internal value, and // may reject unrecognized values. More info: // https://git.io.k8s.community/contributors/devel/sig-architecture/api-conventions.md#resources "apiVersion"?: string "items"!: [...#."io.argoproj.workflow.v1alpha1.Workflow"] // Kind is a string value representing the REST resource this object represents. // Servers may infer this from the endpoint the client submits requests to. // Cannot be updated. In CamelCase. More info: // https://git.io.k8s.community/contributors/devel/sig-architecture/api-conventions.md#types-kinds "kind"?: string "metadata"!: #."io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta" } #: "io.argoproj.workflow.v1alpha1.WorkflowMetadata": { "annotations"?: [string]: string "labels"?: [string]: string "labelsFrom"?: [string]: #."io.argoproj.workflow.v1alpha1.LabelValueFrom" } #: "io.argoproj.workflow.v1alpha1.WorkflowResubmitRequest": { "memoized"?: bool "name"?: string "namespace"?: string "parameters"?: [...string] } #: "io.argoproj.workflow.v1alpha1.WorkflowResumeRequest": { "name"?: string "namespace"?: string "nodeFieldSelector"?: string } #: "io.argoproj.workflow.v1alpha1.WorkflowRetryRequest": { "name"?: string "namespace"?: string "nodeFieldSelector"?: string "parameters"?: [...string] "restartSuccessful"?: bool } #: "io.argoproj.workflow.v1alpha1.WorkflowSetRequest": { "message"?: string "name"?: string "namespace"?: string "nodeFieldSelector"?: string "outputParameters"?: string "phase"?: string } // WorkflowSpec is the specification of a Workflow. #: "io.argoproj.workflow.v1alpha1.WorkflowSpec": { // Optional duration in seconds relative to the workflow start time which the // workflow is allowed to run before the controller terminates the // io.argoproj.workflow.v1alpha1. A value of zero is used to terminate a // Running workflow "activeDeadlineSeconds"?: int // Affinity sets the scheduling constraints for all pods in the // io.argoproj.workflow.v1alpha1. Can be overridden by an affinity specified in // the template "affinity"?: #."io.k8s.api.core.v1.Affinity" // ArchiveLogs indicates if the container logs should be archived "archiveLogs"?: bool // Arguments contain the parameters and artifacts sent to the workflow // entrypoint Parameters are referencable globally using the 'workflow' // variable prefix. e.g. io.argoproj.workflow.v1alpha1.parameters.myparam "arguments"?: #."io.argoproj.workflow.v1alpha1.Arguments" // ArtifactGC describes the strategy to use when deleting artifacts from // completed or deleted workflows (applies to all output Artifacts unless // Artifact.ArtifactGC is specified, which overrides this) "artifactGC"?: #."io.argoproj.workflow.v1alpha1.WorkflowLevelArtifactGC" // ArtifactRepositoryRef specifies the configMap name and key containing the // artifact repository config. "artifactRepositoryRef"?: #."io.argoproj.workflow.v1alpha1.ArtifactRepositoryRef" // AutomountServiceAccountToken indicates whether a service account token should // be automatically mounted in pods. ServiceAccountName of ExecutorConfig must // be specified if this value is false. "automountServiceAccountToken"?: bool // PodDNSConfig defines the DNS parameters of a pod in addition to those generated from DNSPolicy. "dnsConfig"?: #."io.k8s.api.core.v1.PodDNSConfig" // Set DNS policy for workflow pods. Defaults to "ClusterFirst". Valid values // are 'ClusterFirstWithHostNet', 'ClusterFirst', 'Default' or 'None'. DNS // parameters given in DNSConfig will be merged with the policy selected with // DNSPolicy. To have DNS options set along with hostNetwork, you have to // specify DNS policy explicitly to 'ClusterFirstWithHostNet'. "dnsPolicy"?: string // Entrypoint is a template reference to the starting point of the io.argoproj.workflow.v1alpha1. "entrypoint"?: string // Executor holds configurations of executor containers of the io.argoproj.workflow.v1alpha1. "executor"?: #."io.argoproj.workflow.v1alpha1.ExecutorConfig" // Hooks holds the lifecycle hook which is invoked at lifecycle of step, // irrespective of the success, failure, or error status of the primary step "hooks"?: [string]: #."io.argoproj.workflow.v1alpha1.LifecycleHook" "hostAliases"?: [...#."io.k8s.api.core.v1.HostAlias"] // Host networking requested for this workflow pod. Default to false. "hostNetwork"?: bool // ImagePullSecrets is a list of references to secrets in the same namespace to // use for pulling any images in pods that reference this ServiceAccount. // ImagePullSecrets are distinct from Secrets because Secrets can be mounted in // the pod, but ImagePullSecrets are only accessed by the kubelet. More info: // https://kubernetes.io/docs/concepts/containers/images/#specifying-imagepullsecrets-on-a-pod "imagePullSecrets"?: [...#."io.k8s.api.core.v1.LocalObjectReference"] // Metrics are a list of metrics emitted from this Workflow "metrics"?: #."io.argoproj.workflow.v1alpha1.Metrics" // NodeSelector is a selector which will result in all pods of the workflow to // be scheduled on the selected node(s). This is able to be overridden by a // nodeSelector specified in the template. "nodeSelector"?: [string]: string // OnExit is a template reference which is invoked at the end of the workflow, // irrespective of the success, failure, or error of the primary // io.argoproj.workflow.v1alpha1. "onExit"?: string // Parallelism limits the max total parallel pods that can execute at the same time in a workflow "parallelism"?: int // PodDisruptionBudget holds the number of concurrent disruptions that you allow // for Workflow's Pods. Controller will automatically add the selector with // workflow name, if selector is empty. Optional: Defaults to empty. "podDisruptionBudget"?: #."io.k8s.api.policy.v1.PodDisruptionBudgetSpec" // PodGC describes the strategy to use when deleting completed pods "podGC"?: #."io.argoproj.workflow.v1alpha1.PodGC" // PodMetadata defines additional metadata that should be applied to workflow pods "podMetadata"?: #."io.argoproj.workflow.v1alpha1.Metadata" // PriorityClassName to apply to workflow pods. "podPriorityClassName"?: string // PodSpecPatch holds strategic merge patch to apply against the pod spec. // Allows parameterization of container fields which are not strings (e.g. // resource limits). "podSpecPatch"?: string // Priority is used if controller is configured to process limited number of // workflows in parallel. Workflows with higher priority are processed first. "priority"?: int // RetryStrategy for all templates in the io.argoproj.workflow.v1alpha1. "retryStrategy"?: #."io.argoproj.workflow.v1alpha1.RetryStrategy" // Set scheduler name for all pods. Will be overridden if container/script // template's scheduler name is set. Default scheduler will be used if neither // specified. "schedulerName"?: string // SecurityContext holds pod-level security attributes and common container // settings. Optional: Defaults to empty. See type description for default // values of each field. "securityContext"?: #."io.k8s.api.core.v1.PodSecurityContext" // ServiceAccountName is the name of the ServiceAccount to run all pods of the workflow as. "serviceAccountName"?: string // Shutdown will shutdown the workflow according to its ShutdownStrategy "shutdown"?: string // Suspend will suspend the workflow and prevent execution of any future steps in the workflow "suspend"?: bool // Synchronization holds synchronization lock configuration for this Workflow "synchronization"?: #."io.argoproj.workflow.v1alpha1.Synchronization" // TemplateDefaults holds default template values that will apply to all // templates in the Workflow, unless overridden on the template-level "templateDefaults"?: #."io.argoproj.workflow.v1alpha1.Template" // Templates is a list of workflow templates used in a workflow MaxItems is an // artificial limit to limit CEL validation costs - see note at top of file "templates"?: [...#."io.argoproj.workflow.v1alpha1.Template"] // Tolerations to apply to workflow pods. "tolerations"?: [...#."io.k8s.api.core.v1.Toleration"] // TTLStrategy limits the lifetime of a Workflow that has finished execution // depending on if it Succeeded or Failed. If this struct is set, once the // Workflow finishes, it will be deleted after the time to live expires. If // this field is unset, the controller config map will hold the default values. "ttlStrategy"?: #."io.argoproj.workflow.v1alpha1.TTLStrategy" // VolumeClaimGC describes the strategy to use when deleting volumes from completed workflows "volumeClaimGC"?: #."io.argoproj.workflow.v1alpha1.VolumeClaimGC" // VolumeClaimTemplates is a list of claims that containers are allowed to // reference. The Workflow controller will create the claims at the beginning // of the workflow and delete the claims upon completion of the workflow "volumeClaimTemplates"?: [...#."io.k8s.api.core.v1.PersistentVolumeClaim"] // Volumes is a list of volumes that can be mounted by containers in a // io.argoproj.workflow.v1alpha1. "volumes"?: [...#."io.k8s.api.core.v1.Volume"] // WorkflowMetadata contains some metadata of the workflow to refer to "workflowMetadata"?: #."io.argoproj.workflow.v1alpha1.WorkflowMetadata" // WorkflowTemplateRef holds a reference to a WorkflowTemplate for execution "workflowTemplateRef"?: #."io.argoproj.workflow.v1alpha1.WorkflowTemplateRef" } // WorkflowStatus contains overall status information about a workflow #: "io.argoproj.workflow.v1alpha1.WorkflowStatus": { // ArtifactGCStatus maintains the status of Artifact Garbage Collection "artifactGCStatus"?: #."io.argoproj.workflow.v1alpha1.ArtGCStatus" // ArtifactRepositoryRef is used to cache the repository to use so we do not // need to determine it everytime we reconcile. "artifactRepositoryRef"?: #."io.argoproj.workflow.v1alpha1.ArtifactRepositoryRefStatus" // Compressed and base64 decoded Nodes map "compressedNodes"?: string // Conditions is a list of conditions the Workflow may have "conditions"?: [...#."io.argoproj.workflow.v1alpha1.Condition"] // EstimatedDuration in seconds. "estimatedDuration"?: int // Time at which this workflow completed "finishedAt"?: #."io.k8s.apimachinery.pkg.apis.meta.v1.Time" // A human readable message indicating details about why the workflow is in this condition. "message"?: string // Nodes is a mapping between a node ID and the node's status. "nodes"?: [string]: #."io.argoproj.workflow.v1alpha1.NodeStatus" // Whether on not node status has been offloaded to a database. If exists, then // Nodes and CompressedNodes will be empty. This will actually be populated // with a hash of the offloaded data. "offloadNodeStatusVersion"?: string // Outputs captures output values and artifact locations produced by the workflow via global outputs "outputs"?: #."io.argoproj.workflow.v1alpha1.Outputs" // PersistentVolumeClaims tracks all PVCs that were created as part of the // io.argoproj.workflow.v1alpha1. The contents of this list are drained at the // end of the workflow. "persistentVolumeClaims"?: [...#."io.k8s.api.core.v1.Volume"] // Phase a simple, high-level summary of where the workflow is in its lifecycle. // Will be "" (Unknown), "Pending", or "Running" before the workflow is // completed, and "Succeeded", "Failed" or "Error" once the workflow has // completed. "phase"?: string // Progress to completion "progress"?: string // ResourcesDuration is the total for the workflow "resourcesDuration"?: [string]: int // Time at which this workflow started "startedAt"?: #."io.k8s.apimachinery.pkg.apis.meta.v1.Time" // StoredTemplates is a mapping between a template ref and the node's status. "storedTemplates"?: [string]: #."io.argoproj.workflow.v1alpha1.Template" // StoredWorkflowSpec stores the WorkflowTemplate spec for future execution. "storedWorkflowTemplateSpec"?: #."io.argoproj.workflow.v1alpha1.WorkflowSpec" // Synchronization stores the status of synchronization locks "synchronization"?: #."io.argoproj.workflow.v1alpha1.SynchronizationStatus" // TaskResultsCompletionStatus tracks task result completion status (mapped by // node ID). Used to prevent premature archiving and garbage collection. "taskResultsCompletionStatus"?: [string]: bool } // WorkflowStep is a reference to a template to execute in a series of step // Note: CEL validation cannot check withItems (Schemaless) or inline // (PreserveUnknownFields) fields. #: "io.argoproj.workflow.v1alpha1.WorkflowStep": { // Arguments hold arguments to the template "arguments"?: #."io.argoproj.workflow.v1alpha1.Arguments" // ContinueOn makes argo to proceed with the following step even if this step // fails. Errors and Failed states can be specified "continueOn"?: #."io.argoproj.workflow.v1alpha1.ContinueOn" // Hooks holds the lifecycle hook which is invoked at lifecycle of step, // irrespective of the success, failure, or error status of the primary step "hooks"?: [string]: #."io.argoproj.workflow.v1alpha1.LifecycleHook" // Inline is the template. Template must be empty if this is declared (and // vice-versa). Note: This struct is defined recursively, since the inline // template can potentially contain steps/DAGs that also has an "inline" field. // Kubernetes doesn't allow recursive types, so we need // "x-kubernetes-preserve-unknown-fields: true" in the validation schema. "inline"?: #."io.argoproj.workflow.v1alpha1.Template" // Name of the step "name"?: string // OnExit is a template reference which is invoked at the end of the template, // irrespective of the success, failure, or error of the primary template. // DEPRECATED: Use Hooks[exit].Template instead. "onExit"?: string // Template is the name of the template to execute as the step "template"?: string // TemplateRef is the reference to the template resource to execute as the step. "templateRef"?: #."io.argoproj.workflow.v1alpha1.TemplateRef" // When is an expression in which the step should conditionally execute "when"?: string // WithItems expands a step into multiple parallel steps from the items in the // list Note: The structure of WithItems is free-form, so we need // "x-kubernetes-preserve-unknown-fields: true" in the validation schema. "withItems"?: [...#."io.argoproj.workflow.v1alpha1.Item"] // WithParam expands a step into multiple parallel steps from the value in the // parameter, which is expected to be a JSON list. "withParam"?: string // WithSequence expands a step into a numeric sequence "withSequence"?: #."io.argoproj.workflow.v1alpha1.Sequence" } #: "io.argoproj.workflow.v1alpha1.WorkflowStopRequest": { "message"?: string "name"?: string "namespace"?: string "nodeFieldSelector"?: string } #: "io.argoproj.workflow.v1alpha1.WorkflowSubmitRequest": { "namespace"?: string "resourceKind"?: string "resourceName"?: string "submitOptions"?: #."io.argoproj.workflow.v1alpha1.SubmitOpts" } #: "io.argoproj.workflow.v1alpha1.WorkflowSuspendRequest": { "name"?: string "namespace"?: string } // WorkflowTemplate is the definition of a workflow template resource #: "io.argoproj.workflow.v1alpha1.WorkflowTemplate": { // APIVersion defines the versioned schema of this representation of an object. // Servers should convert recognized schemas to the latest internal value, and // may reject unrecognized values. More info: // https://git.io.k8s.community/contributors/devel/sig-architecture/api-conventions.md#resources "apiVersion"?: "argoproj.io/v1alpha1" // Kind is a string value representing the REST resource this object represents. // Servers may infer this from the endpoint the client submits requests to. // Cannot be updated. In CamelCase. More info: // https://git.io.k8s.community/contributors/devel/sig-architecture/api-conventions.md#types-kinds "kind"?: "WorkflowTemplate" "metadata"!: #."io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta" "spec"!: #."io.argoproj.workflow.v1alpha1.WorkflowSpec" } #: "io.argoproj.workflow.v1alpha1.WorkflowTemplateCreateRequest": { "createOptions"?: #."io.k8s.apimachinery.pkg.apis.meta.v1.CreateOptions" "namespace"?: string "template"?: #."io.argoproj.workflow.v1alpha1.WorkflowTemplate" } #: "io.argoproj.workflow.v1alpha1.WorkflowTemplateDeleteResponse": {} #: "io.argoproj.workflow.v1alpha1.WorkflowTemplateLintRequest": { "createOptions"?: #."io.k8s.apimachinery.pkg.apis.meta.v1.CreateOptions" "namespace"?: string "template"?: #."io.argoproj.workflow.v1alpha1.WorkflowTemplate" } // WorkflowTemplateList is list of WorkflowTemplate resources #: "io.argoproj.workflow.v1alpha1.WorkflowTemplateList": { // APIVersion defines the versioned schema of this representation of an object. // Servers should convert recognized schemas to the latest internal value, and // may reject unrecognized values. More info: // https://git.io.k8s.community/contributors/devel/sig-architecture/api-conventions.md#resources "apiVersion"?: string "items"!: [...#."io.argoproj.workflow.v1alpha1.WorkflowTemplate"] // Kind is a string value representing the REST resource this object represents. // Servers may infer this from the endpoint the client submits requests to. // Cannot be updated. In CamelCase. More info: // https://git.io.k8s.community/contributors/devel/sig-architecture/api-conventions.md#types-kinds "kind"?: string "metadata"!: #."io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta" } // WorkflowTemplateRef is a reference to a WorkflowTemplate resource. #: "io.argoproj.workflow.v1alpha1.WorkflowTemplateRef": { // ClusterScope indicates the referred template is cluster scoped (i.e. a ClusterWorkflowTemplate). "clusterScope"?: bool // Name is the resource name of the workflow template. "name"?: string } #: "io.argoproj.workflow.v1alpha1.WorkflowTemplateUpdateRequest": { // DEPRECATED: This field is ignored. "name"?: string "namespace"?: string "template"?: #."io.argoproj.workflow.v1alpha1.WorkflowTemplate" } #: "io.argoproj.workflow.v1alpha1.WorkflowTerminateRequest": { "name"?: string "namespace"?: string } #: "io.argoproj.workflow.v1alpha1.WorkflowWatchEvent": { // the workflow "object"?: #."io.argoproj.workflow.v1alpha1.Workflow" // the type of change "type"?: string } // ZipStrategy will unzip zipped input artifacts #: "io.argoproj.workflow.v1alpha1.ZipStrategy": {} // Represents a Persistent Disk resource in AWS. // // An AWS EBS disk must exist before mounting to a container. The disk must also // be in the same AWS zone as the kubelet. An AWS EBS disk can only be mounted // as read/write once. AWS EBS volumes support ownership management and SELinux // relabeling. #: "io.k8s.api.core.v1.AWSElasticBlockStoreVolumeSource": { // fsType is the filesystem type of the volume that you want to mount. Tip: // Ensure that the filesystem type is supported by the host operating system. // Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if // unspecified. More info: // https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore "fsType"?: string // partition is the partition in the volume that you want to mount. If omitted, // the default is to mount by volume name. Examples: For volume /dev/sda1, you // specify the partition as "1". Similarly, the volume partition for /dev/sda // is "0" (or you can leave the property empty). "partition"?: int // readOnly value true will force the readOnly setting in VolumeMounts. More // info: // https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore "readOnly"?: bool // volumeID is unique ID of the persistent disk resource in AWS (Amazon EBS // volume). More info: // https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore "volumeID"!: string } // Affinity is a group of affinity scheduling rules. #: "io.k8s.api.core.v1.Affinity": { // Describes node affinity scheduling rules for the pod. "nodeAffinity"?: #."io.k8s.api.core.v1.NodeAffinity" // Describes pod affinity scheduling rules (e.g. co-locate this pod in the same // node, zone, etc. as some other pod(s)). "podAffinity"?: #."io.k8s.api.core.v1.PodAffinity" // Describes pod anti-affinity scheduling rules (e.g. avoid putting this pod in // the same node, zone, etc. as some other pod(s)). "podAntiAffinity"?: #."io.k8s.api.core.v1.PodAntiAffinity" } // AppArmorProfile defines a pod or container's AppArmor settings. #: "io.k8s.api.core.v1.AppArmorProfile": { // localhostProfile indicates a profile loaded on the node that should be used. // The profile must be preconfigured on the node to work. Must match the loaded // name of the profile. Must be set if and only if type is "Localhost". "localhostProfile"?: string // type indicates which kind of AppArmor profile will be applied. Valid options are: // Localhost - a profile pre-loaded on the node. // RuntimeDefault - the container runtime's default profile. // Unconfined - no AppArmor enforcement. "type"!: string } // AzureDisk represents an Azure Data Disk mount on the host and bind mount to the pod. #: "io.k8s.api.core.v1.AzureDiskVolumeSource": { // cachingMode is the Host Caching mode: None, Read Only, Read Write. "cachingMode"?: string // diskName is the Name of the data disk in the blob storage "diskName"!: string // diskURI is the URI of data disk in the blob storage "diskURI"!: string // fsType is Filesystem type to mount. Must be a filesystem type supported by // the host operating system. Ex. "ext4", "xfs", "ntfs". Implicitly inferred to // be "ext4" if unspecified. "fsType"?: string // kind expected values are Shared: multiple blob disks per storage account // Dedicated: single blob disk per storage account Managed: azure managed data // disk (only in managed availability set). defaults to shared "kind"?: string // readOnly Defaults to false (read/write). ReadOnly here will force the // ReadOnly setting in VolumeMounts. "readOnly"?: bool } // AzureFile represents an Azure File Service mount on the host and bind mount to the pod. #: "io.k8s.api.core.v1.AzureFileVolumeSource": { // readOnly defaults to false (read/write). ReadOnly here will force the // ReadOnly setting in VolumeMounts. "readOnly"?: bool // secretName is the name of secret that contains Azure Storage Account Name and Key "secretName"!: string // shareName is the azure share Name "shareName"!: string } // Represents a source location of a volume to mount, managed by an external CSI driver #: "io.k8s.api.core.v1.CSIVolumeSource": { // driver is the name of the CSI driver that handles this volume. Consult with // your admin for the correct name as registered in the cluster. "driver"!: string // fsType to mount. Ex. "ext4", "xfs", "ntfs". If not provided, the empty value // is passed to the associated CSI driver which will determine the default // filesystem to apply. "fsType"?: string // nodePublishSecretRef is a reference to the secret object containing sensitive // information to pass to the CSI driver to complete the CSI NodePublishVolume // and NodeUnpublishVolume calls. This field is optional, and may be empty if // no secret is required. If the secret object contains more than one secret, // all secret references are passed. "nodePublishSecretRef"?: #."io.k8s.api.core.v1.LocalObjectReference" // readOnly specifies a read-only configuration for the volume. Defaults to false (read/write). "readOnly"?: bool // volumeAttributes stores driver-specific properties that are passed to the CSI // driver. Consult your driver's documentation for supported values. "volumeAttributes"?: [string]: string } // Adds and removes POSIX capabilities from running containers. #: "io.k8s.api.core.v1.Capabilities": { // Added capabilities "add"?: [...string] // Removed capabilities "drop"?: [...string] } // Represents a Ceph Filesystem mount that lasts the lifetime of a pod Cephfs // volumes do not support ownership management or SELinux relabeling. #: "io.k8s.api.core.v1.CephFSVolumeSource": { // monitors is Required: Monitors is a collection of Ceph monitors More info: // https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it "monitors"!: [...string] // path is Optional: Used as the mounted root, rather than the full Ceph tree, default is / "path"?: string // readOnly is Optional: Defaults to false (read/write). ReadOnly here will // force the ReadOnly setting in VolumeMounts. More info: // https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it "readOnly"?: bool // secretFile is Optional: SecretFile is the path to key ring for User, default // is /etc/ceph/user.secret More info: // https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it "secretFile"?: string // secretRef is Optional: SecretRef is reference to the authentication secret // for User, default is empty. More info: // https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it "secretRef"?: #."io.k8s.api.core.v1.LocalObjectReference" // user is optional: User is the rados user name, default is admin More info: // https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it "user"?: string } // Represents a cinder volume resource in Openstack. A Cinder volume must exist // before mounting to a container. The volume must also be in the same region // as the kubelet. Cinder volumes support ownership management and SELinux // relabeling. #: "io.k8s.api.core.v1.CinderVolumeSource": { // fsType is the filesystem type to mount. Must be a filesystem type supported // by the host operating system. Examples: "ext4", "xfs", "ntfs". Implicitly // inferred to be "ext4" if unspecified. More info: // https://examples.k8s.io/mysql-cinder-pd/README.md "fsType"?: string // readOnly defaults to false (read/write). ReadOnly here will force the // ReadOnly setting in VolumeMounts. More info: // https://examples.k8s.io/mysql-cinder-pd/README.md "readOnly"?: bool // secretRef is optional: points to a secret object containing parameters used // to connect to OpenStack. "secretRef"?: #."io.k8s.api.core.v1.LocalObjectReference" // volumeID used to identify the volume in cinder. More info: // https://examples.k8s.io/mysql-cinder-pd/README.md "volumeID"!: string } // ClusterTrustBundleProjection describes how to select a set of // ClusterTrustBundle objects and project their contents into the pod // filesystem. #: "io.k8s.api.core.v1.ClusterTrustBundleProjection": { // Select all ClusterTrustBundles that match this label selector. Only has // effect if signerName is set. Mutually-exclusive with name. If unset, // interpreted as "match nothing". If set but empty, interpreted as "match // everything". "labelSelector"?: #."io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector" // Select a single ClusterTrustBundle by object name. Mutually-exclusive with // signerName and labelSelector. "name"?: string // If true, don't block pod startup if the referenced ClusterTrustBundle(s) // aren't available. If using name, then the named ClusterTrustBundle is // allowed not to exist. If using signerName, then the combination of // signerName and labelSelector is allowed to match zero ClusterTrustBundles. "optional"?: bool // Relative path from the volume root to write the bundle. "path"!: string // Select all ClusterTrustBundles that match this signer name. // Mutually-exclusive with name. The contents of all selected // ClusterTrustBundles will be unified and deduplicated. "signerName"?: string } // ConfigMapEnvSource selects a ConfigMap to populate the environment variables with. // // The contents of the target ConfigMap's Data field will represent the // key-value pairs as environment variables. #: "io.k8s.api.core.v1.ConfigMapEnvSource": { // Name of the referent. This field is effectively required, but due to // backwards compatibility is allowed to be empty. Instances of this type with // an empty value here are almost certainly wrong. More info: // https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names "name"?: string // Specify whether the ConfigMap must be defined "optional"?: bool } // Selects a key from a ConfigMap. #: "io.k8s.api.core.v1.ConfigMapKeySelector": { // The key to select. "key"!: string // Name of the referent. This field is effectively required, but due to // backwards compatibility is allowed to be empty. Instances of this type with // an empty value here are almost certainly wrong. More info: // https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names "name"?: string // Specify whether the ConfigMap or its key must be defined "optional"?: bool } // Adapts a ConfigMap into a projected volume. // // The contents of the target ConfigMap's Data field will be presented in a // projected volume as files using the keys in the Data field as the file // names, unless the items element is populated with specific mappings of keys // to paths. Note that this is identical to a configmap volume source without // the default mode. #: "io.k8s.api.core.v1.ConfigMapProjection": { // items if unspecified, each key-value pair in the Data field of the referenced // ConfigMap will be projected into the volume as a file whose name is the key // and content is the value. If specified, the listed keys will be projected // into the specified paths, and unlisted keys will not be present. If a key is // specified which is not present in the ConfigMap, the volume setup will error // unless it is marked optional. Paths must be relative and may not contain the // '..' path or start with '..'. "items"?: [...#."io.k8s.api.core.v1.KeyToPath"] // Name of the referent. This field is effectively required, but due to // backwards compatibility is allowed to be empty. Instances of this type with // an empty value here are almost certainly wrong. More info: // https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names "name"?: string // optional specify whether the ConfigMap or its keys must be defined "optional"?: bool } // Adapts a ConfigMap into a volume. // // The contents of the target ConfigMap's Data field will be presented in a // volume as files using the keys in the Data field as the file names, unless // the items element is populated with specific mappings of keys to paths. // ConfigMap volumes support ownership management and SELinux relabeling. #: "io.k8s.api.core.v1.ConfigMapVolumeSource": { // defaultMode is optional: mode bits used to set permissions on created files // by default. Must be an octal value between 0000 and 0777 or a decimal value // between 0 and 511. YAML accepts both octal and decimal values, JSON requires // decimal values for mode bits. Defaults to 0644. Directories within the path // are not affected by this setting. This might be in conflict with other // options that affect the file mode, like fsGroup, and the result can be other // mode bits set. "defaultMode"?: int // items if unspecified, each key-value pair in the Data field of the referenced // ConfigMap will be projected into the volume as a file whose name is the key // and content is the value. If specified, the listed keys will be projected // into the specified paths, and unlisted keys will not be present. If a key is // specified which is not present in the ConfigMap, the volume setup will error // unless it is marked optional. Paths must be relative and may not contain the // '..' path or start with '..'. "items"?: [...#."io.k8s.api.core.v1.KeyToPath"] // Name of the referent. This field is effectively required, but due to // backwards compatibility is allowed to be empty. Instances of this type with // an empty value here are almost certainly wrong. More info: // https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names "name"?: string // optional specify whether the ConfigMap or its keys must be defined "optional"?: bool } // A single application container that you want to run within a pod. #: "io.k8s.api.core.v1.Container": { // Arguments to the entrypoint. The container image's CMD is used if this is not // provided. Variable references $(VAR_NAME) are expanded using the container's // environment. If a variable cannot be resolved, the reference in the input // string will be unchanged. Double $$ are reduced to a single $, which allows // for escaping the $(VAR_NAME) syntax: i.e. "$$(VAR_NAME)" will produce the // string literal "$(VAR_NAME)". Escaped references will never be expanded, // regardless of whether the variable exists or not. Cannot be updated. More // info: // https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell "args"?: [...string] // Entrypoint array. Not executed within a shell. The container image's // ENTRYPOINT is used if this is not provided. Variable references $(VAR_NAME) // are expanded using the container's environment. If a variable cannot be // resolved, the reference in the input string will be unchanged. Double $$ are // reduced to a single $, which allows for escaping the $(VAR_NAME) syntax: // i.e. "$$(VAR_NAME)" will produce the string literal "$(VAR_NAME)". Escaped // references will never be expanded, regardless of whether the variable exists // or not. Cannot be updated. More info: // https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell "command"?: [...string] // List of environment variables to set in the container. Cannot be updated. "env"?: [...#."io.k8s.api.core.v1.EnvVar"] // List of sources to populate environment variables in the container. The keys // defined within a source must be a C_IDENTIFIER. All invalid keys will be // reported as an event when the container is starting. When a key exists in // multiple sources, the value associated with the last source will take // precedence. Values defined by an Env with a duplicate key will take // precedence. Cannot be updated. "envFrom"?: [...#."io.k8s.api.core.v1.EnvFromSource"] // Container image name. More info: // https://kubernetes.io/docs/concepts/containers/images This field is optional // to allow higher level config management to default or override container // images in workload controllers like Deployments and StatefulSets. "image"!: string // Image pull policy. One of Always, Never, IfNotPresent. Defaults to Always if // :latest tag is specified, or IfNotPresent otherwise. Cannot be updated. More // info: https://kubernetes.io/docs/concepts/containers/images#updating-images "imagePullPolicy"?: string // Actions that the management system should take in response to container // lifecycle events. Cannot be updated. "lifecycle"?: #."io.k8s.api.core.v1.Lifecycle" // Periodic probe of container liveness. Container will be restarted if the // probe fails. Cannot be updated. More info: // https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes "livenessProbe"?: #."io.k8s.api.core.v1.Probe" // Name of the container specified as a DNS_LABEL. Each container in a pod must // have a unique name (DNS_LABEL). Cannot be updated. "name"?: string // List of ports to expose from the container. Not specifying a port here DOES // NOT prevent that port from being exposed. Any port which is listening on the // default "0.0.0.0" address inside a container will be accessible from the // network. Modifying this array with strategic merge patch may corrupt the // data. For more information See // https://github.com/kubernetes/kubernetes/issues/108255. Cannot be updated. "ports"?: [...#."io.k8s.api.core.v1.ContainerPort"] // Periodic probe of container service readiness. Container will be removed from // service endpoints if the probe fails. Cannot be updated. More info: // https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes "readinessProbe"?: #."io.k8s.api.core.v1.Probe" // Resources resize policy for the container. "resizePolicy"?: [...#."io.k8s.api.core.v1.ContainerResizePolicy"] // Compute Resources required by this container. Cannot be updated. More info: // https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/ "resources"?: #."io.k8s.api.core.v1.ResourceRequirements" // RestartPolicy defines the restart behavior of individual containers in a pod. // This field may only be set for init containers, and the only allowed value // is "Always". For non-init containers or when this field is not specified, // the restart behavior is defined by the Pod's restart policy and the // container type. Setting the RestartPolicy as "Always" for the init container // will have the following effect: this init container will be continually // restarted on exit until all regular containers have terminated. Once all // regular containers have completed, all init containers with restartPolicy // "Always" will be shut down. This lifecycle differs from normal init // containers and is often referred to as a "sidecar" container. Although this // init container still starts in the init container sequence, it does not wait // for the container to complete before proceeding to the next init container. // Instead, the next init container starts immediately after this init // container is started, or after any startupProbe has successfully completed. "restartPolicy"?: string // SecurityContext defines the security options the container should be run // with. If set, the fields of SecurityContext override the equivalent fields // of PodSecurityContext. More info: // https://kubernetes.io/docs/tasks/configure-pod-container/security-context/ "securityContext"?: #."io.k8s.api.core.v1.SecurityContext" // StartupProbe indicates that the Pod has successfully initialized. If // specified, no other probes are executed until this completes successfully. // If this probe fails, the Pod will be restarted, just as if the livenessProbe // failed. This can be used to provide different probe parameters at the // beginning of a Pod's lifecycle, when it might take a long time to load data // or warm a cache, than during steady-state operation. This cannot be updated. // More info: // https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes "startupProbe"?: #."io.k8s.api.core.v1.Probe" // Whether this container should allocate a buffer for stdin in the container // runtime. If this is not set, reads from stdin in the container will always // result in EOF. Default is false. "stdin"?: bool // Whether the container runtime should close the stdin channel after it has // been opened by a single attach. When stdin is true the stdin stream will // remain open across multiple attach sessions. If stdinOnce is set to true, // stdin is opened on container start, is empty until the first client attaches // to stdin, and then remains open and accepts data until the client // disconnects, at which time stdin is closed and remains closed until the // container is restarted. If this flag is false, a container processes that // reads from stdin will never receive an EOF. Default is false "stdinOnce"?: bool // Optional: Path at which the file to which the container's termination message // will be written is mounted into the container's filesystem. Message written // is intended to be brief final status, such as an assertion failure message. // Will be truncated by the node if greater than 4096 bytes. The total message // length across all containers will be limited to 12kb. Defaults to // /dev/termination-log. Cannot be updated. "terminationMessagePath"?: string // Indicate how the termination message should be populated. File will use the // contents of terminationMessagePath to populate the container status message // on both success and failure. FallbackToLogsOnError will use the last chunk // of container log output if the termination message file is empty and the // container exited with an error. The log output is limited to 2048 bytes or // 80 lines, whichever is smaller. Defaults to File. Cannot be updated. "terminationMessagePolicy"?: string // Whether this container should allocate a TTY for itself, also requires // 'stdin' to be true. Default is false. "tty"?: bool // volumeDevices is the list of block devices to be used by the container. "volumeDevices"?: [...#."io.k8s.api.core.v1.VolumeDevice"] // Pod volumes to mount into the container's filesystem. Cannot be updated. "volumeMounts"?: [...#."io.k8s.api.core.v1.VolumeMount"] // Container's working directory. If not specified, the container runtime's // default will be used, which might be configured in the container image. // Cannot be updated. "workingDir"?: string } // ContainerPort represents a network port in a single container. #: "io.k8s.api.core.v1.ContainerPort": { // Number of port to expose on the pod's IP address. This must be a valid port // number, 0 < x < 65536. "containerPort"!: int // What host IP to bind the external port to. "hostIP"?: string // Number of port to expose on the host. If specified, this must be a valid port // number, 0 < x < 65536. If HostNetwork is specified, this must match // ContainerPort. Most containers do not need this. "hostPort"?: int // If specified, this must be an IANA_SVC_NAME and unique within the pod. Each // named port in a pod must have a unique name. Name for the port that can be // referred to by services. "name"?: string // Protocol for port. Must be UDP, TCP, or SCTP. Defaults to "TCP". "protocol"?: string } // ContainerResizePolicy represents resource resize policy for the container. #: "io.k8s.api.core.v1.ContainerResizePolicy": { // Name of the resource to which this resource resize policy applies. Supported values: cpu, memory. "resourceName"!: string // Restart policy to apply when specified resource is resized. If not specified, // it defaults to NotRequired. "restartPolicy"!: string } // Represents downward API info for projecting into a projected volume. Note // that this is identical to a downwardAPI volume source without the default // mode. #: { "io.k8s.api.core.v1.DownwardAPIProjection": { // Items is a list of DownwardAPIVolume file "items"?: [...#."io.k8s.api.core.v1.DownwardAPIVolumeFile"] } } // DownwardAPIVolumeFile represents information to create the file containing the pod field #: "io.k8s.api.core.v1.DownwardAPIVolumeFile": { // Required: Selects a field of the pod: only annotations, labels, name, // namespace and uid are supported. "fieldRef"?: #."io.k8s.api.core.v1.ObjectFieldSelector" // Optional: mode bits used to set permissions on this file, must be an octal // value between 0000 and 0777 or a decimal value between 0 and 511. YAML // accepts both octal and decimal values, JSON requires decimal values for mode // bits. If not specified, the volume defaultMode will be used. This might be // in conflict with other options that affect the file mode, like fsGroup, and // the result can be other mode bits set. "mode"?: int // Required: Path is the relative path name of the file to be created. Must not // be absolute or contain the '..' path. Must be utf-8 encoded. The first item // of the relative path must not start with '..' "path"!: string // Selects a resource of the container: only resources limits and requests // (limits.cpu, limits.memory, requests.cpu and requests.memory) are currently // supported. "resourceFieldRef"?: #."io.k8s.api.core.v1.ResourceFieldSelector" } // DownwardAPIVolumeSource represents a volume containing downward API info. // Downward API volumes support ownership management and SELinux relabeling. #: "io.k8s.api.core.v1.DownwardAPIVolumeSource": { // Optional: mode bits to use on created files by default. Must be a Optional: // mode bits used to set permissions on created files by default. Must be an // octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML // accepts both octal and decimal values, JSON requires decimal values for mode // bits. Defaults to 0644. Directories within the path are not affected by this // setting. This might be in conflict with other options that affect the file // mode, like fsGroup, and the result can be other mode bits set. "defaultMode"?: int // Items is a list of downward API volume file "items"?: [...#."io.k8s.api.core.v1.DownwardAPIVolumeFile"] } // Represents an empty directory for a pod. Empty directory volumes support // ownership management and SELinux relabeling. #: "io.k8s.api.core.v1.EmptyDirVolumeSource": { // medium represents what type of storage medium should back this directory. The // default is "" which means to use the node's default medium. Must be an empty // string (default) or Memory. More info: // https://kubernetes.io/docs/concepts/storage/volumes#emptydir "medium"?: string // sizeLimit is the total amount of local storage required for this EmptyDir // volume. The size limit is also applicable for memory medium. The maximum // usage on memory medium EmptyDir would be the minimum value between the // SizeLimit specified here and the sum of memory limits of all containers in a // pod. The default is nil which means that the limit is undefined. More info: // https://kubernetes.io/docs/concepts/storage/volumes#emptydir "sizeLimit"?: #."io.k8s.apimachinery.pkg.api.resource.Quantity" } // EnvFromSource represents the source of a set of ConfigMaps or Secrets #: "io.k8s.api.core.v1.EnvFromSource": { // The ConfigMap to select from "configMapRef"?: #."io.k8s.api.core.v1.ConfigMapEnvSource" // Optional text to prepend to the name of each environment variable. Must be a C_IDENTIFIER. "prefix"?: string // The Secret to select from "secretRef"?: #."io.k8s.api.core.v1.SecretEnvSource" } // EnvVar represents an environment variable present in a Container. #: "io.k8s.api.core.v1.EnvVar": { // Name of the environment variable. Must be a C_IDENTIFIER. "name"!: string // Variable references $(VAR_NAME) are expanded using the previously defined // environment variables in the container and any service environment // variables. If a variable cannot be resolved, the reference in the input // string will be unchanged. Double $$ are reduced to a single $, which allows // for escaping the $(VAR_NAME) syntax: i.e. "$$(VAR_NAME)" will produce the // string literal "$(VAR_NAME)". Escaped references will never be expanded, // regardless of whether the variable exists or not. Defaults to "". "value"?: string // Source for the environment variable's value. Cannot be used if value is not empty. "valueFrom"?: #."io.k8s.api.core.v1.EnvVarSource" } // EnvVarSource represents a source for the value of an EnvVar. #: "io.k8s.api.core.v1.EnvVarSource": { // Selects a key of a ConfigMap. "configMapKeyRef"?: #."io.k8s.api.core.v1.ConfigMapKeySelector" // Selects a field of the pod: supports metadata.name, metadata.namespace, // `metadata.labels['']`, `metadata.annotations['']`, spec.nodeName, // spec.serviceAccountName, status.hostIP, status.podIP, status.podIPs. "fieldRef"?: #."io.k8s.api.core.v1.ObjectFieldSelector" // Selects a resource of the container: only resources limits and requests // (limits.cpu, limits.memory, limits.ephemeral-storage, requests.cpu, // requests.memory and requests.ephemeral-storage) are currently supported. "resourceFieldRef"?: #."io.k8s.api.core.v1.ResourceFieldSelector" // Selects a key of a secret in the pod's namespace "secretKeyRef"?: #."io.k8s.api.core.v1.SecretKeySelector" } // Represents an ephemeral volume that is handled by a normal storage driver. #: { "io.k8s.api.core.v1.EphemeralVolumeSource": { // Will be used to create a stand-alone PVC to provision the volume. The pod in // which this EphemeralVolumeSource is embedded will be the owner of the PVC, // i.e. the PVC will be deleted together with the pod. The name of the PVC will // be `-` where `` is the name from the // `PodSpec.Volumes` array entry. Pod validation will reject the pod if the // concatenated name is not valid for a PVC (for example, too long). // // An existing PVC with that name that is not owned by the pod will *not* be // used for the pod to avoid using an unrelated volume by mistake. Starting the // pod is then blocked until the unrelated PVC is removed. If such a // pre-created PVC is meant to be used by the pod, the PVC has to updated with // an owner reference to the pod once the pod exists. Normally this should not // be necessary, but it may be useful when manually reconstructing a broken // cluster. // // This field is read-only and no changes will be made by Kubernetes to the PVC // after it has been created. // // Required, must not be nil. "volumeClaimTemplate"?: #."io.k8s.api.core.v1.PersistentVolumeClaimTemplate" } } // Event is a report of an event somewhere in the cluster. Events have a limited // retention time and triggers and messages may evolve with time. Event // consumers should not rely on the timing of an event with a given Reason // reflecting a consistent underlying trigger, or the continued existence of // events with that Reason. Events should be treated as informative, // best-effort, supplemental data. #: "io.k8s.api.core.v1.Event": { // What action was taken/failed regarding to the Regarding object. "action"?: string // APIVersion defines the versioned schema of this representation of an object. // Servers should convert recognized schemas to the latest internal value, and // may reject unrecognized values. More info: // https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources "apiVersion"?: string // The number of times this event has occurred. "count"?: int // Time when this Event was first observed. "eventTime"?: #."io.k8s.apimachinery.pkg.apis.meta.v1.MicroTime" // The time at which the event was first recorded. (Time of server receipt is in TypeMeta.) "firstTimestamp"?: #."io.k8s.apimachinery.pkg.apis.meta.v1.Time" // The object that this event is about. "involvedObject"!: #."io.k8s.api.core.v1.ObjectReference" // Kind is a string value representing the REST resource this object represents. // Servers may infer this from the endpoint the client submits requests to. // Cannot be updated. In CamelCase. More info: // https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds "kind"?: string // The time at which the most recent occurrence of this event was recorded. "lastTimestamp"?: #."io.k8s.apimachinery.pkg.apis.meta.v1.Time" // A human-readable description of the status of this operation. "message"?: string // Standard object's metadata. More info: // https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata "metadata"!: #."io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta" // This should be a short, machine understandable string that gives the reason // for the transition into the object's current status. "reason"?: string // Optional secondary object for more complex actions. "related"?: #."io.k8s.api.core.v1.ObjectReference" // Name of the controller that emitted this Event, e.g. `kubernetes.io/kubelet`. "reportingComponent"?: string // ID of the controller instance, e.g. `kubelet-xyzf`. "reportingInstance"?: string // Data about the Event series this event represents or nil if it's a singleton Event. "series"?: #."io.k8s.api.core.v1.EventSeries" // The component reporting this event. Should be a short machine understandable string. "source"?: #."io.k8s.api.core.v1.EventSource" // Type of this event (Normal, Warning), new types could be added in the future "type"?: string } // EventSeries contain information on series of events, i.e. thing that was/is // happening continuously for some time. #: "io.k8s.api.core.v1.EventSeries": { // Number of occurrences in this series up to the last heartbeat time "count"?: int // Time of the last occurrence observed "lastObservedTime"?: #."io.k8s.apimachinery.pkg.apis.meta.v1.MicroTime" } // EventSource contains information for an event. #: "io.k8s.api.core.v1.EventSource": { // Component from which the event is generated. "component"?: string // Node name on which the event is generated. "host"?: string } // ExecAction describes a "run in container" action. #: { "io.k8s.api.core.v1.ExecAction": { // Command is the command line to execute inside the container, the working // directory for the command is root ('/') in the container's filesystem. The // command is simply exec'd, it is not run inside a shell, so traditional shell // instructions ('|', etc) won't work. To use a shell, you need to explicitly // call out to that shell. Exit status of 0 is treated as live/healthy and // non-zero is unhealthy. "command"?: [...string] } } // Represents a Fibre Channel volume. Fibre Channel volumes can only be mounted // as read/write once. Fibre Channel volumes support ownership management and // SELinux relabeling. #: "io.k8s.api.core.v1.FCVolumeSource": { // fsType is the filesystem type to mount. Must be a filesystem type supported // by the host operating system. Ex. "ext4", "xfs", "ntfs". Implicitly inferred // to be "ext4" if unspecified. "fsType"?: string // lun is Optional: FC target lun number "lun"?: int // readOnly is Optional: Defaults to false (read/write). ReadOnly here will // force the ReadOnly setting in VolumeMounts. "readOnly"?: bool // targetWWNs is Optional: FC target worldwide names (WWNs) "targetWWNs"?: [...string] // wwids Optional: FC volume world wide identifiers (wwids) Either wwids or // combination of targetWWNs and lun must be set, but not both simultaneously. "wwids"?: [...string] } // FlexVolume represents a generic volume resource that is provisioned/attached // using an exec based plugin. #: "io.k8s.api.core.v1.FlexVolumeSource": { // driver is the name of the driver to use for this volume. "driver"!: string // fsType is the filesystem type to mount. Must be a filesystem type supported // by the host operating system. Ex. "ext4", "xfs", "ntfs". The default // filesystem depends on FlexVolume script. "fsType"?: string // options is Optional: this field holds extra command options if any. "options"?: [string]: string // readOnly is Optional: defaults to false (read/write). ReadOnly here will // force the ReadOnly setting in VolumeMounts. "readOnly"?: bool // secretRef is Optional: secretRef is reference to the secret object containing // sensitive information to pass to the plugin scripts. This may be empty if no // secret object is specified. If the secret object contains more than one // secret, all secrets are passed to the plugin scripts. "secretRef"?: #."io.k8s.api.core.v1.LocalObjectReference" } // Represents a Flocker volume mounted by the Flocker agent. One and only one of // datasetName and datasetUUID should be set. Flocker volumes do not support // ownership management or SELinux relabeling. #: "io.k8s.api.core.v1.FlockerVolumeSource": { // datasetName is Name of the dataset stored as metadata -> name on the dataset // for Flocker should be considered as deprecated "datasetName"?: string // datasetUUID is the UUID of the dataset. This is unique identifier of a Flocker dataset "datasetUUID"?: string } // Represents a Persistent Disk resource in Google Compute Engine. // // A GCE PD must exist before mounting to a container. The disk must also be in // the same GCE project and zone as the kubelet. A GCE PD can only be mounted // as read/write once or read-only many times. GCE PDs support ownership // management and SELinux relabeling. #: "io.k8s.api.core.v1.GCEPersistentDiskVolumeSource": { // fsType is filesystem type of the volume that you want to mount. Tip: Ensure // that the filesystem type is supported by the host operating system. // Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if // unspecified. More info: // https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk "fsType"?: string // partition is the partition in the volume that you want to mount. If omitted, // the default is to mount by volume name. Examples: For volume /dev/sda1, you // specify the partition as "1". Similarly, the volume partition for /dev/sda // is "0" (or you can leave the property empty). More info: // https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk "partition"?: int // pdName is unique name of the PD resource in GCE. Used to identify the disk in // GCE. More info: // https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk "pdName"!: string // readOnly here will force the ReadOnly setting in VolumeMounts. Defaults to // false. More info: // https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk "readOnly"?: bool } // GRPCAction specifies an action involving a GRPC service. #: "io.k8s.api.core.v1.GRPCAction": { // Port number of the gRPC service. Number must be in the range 1 to 65535. "port"!: int // Service is the name of the service to place in the gRPC HealthCheckRequest // (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md). // // If this is not specified, the default behavior is defined by gRPC. "service"?: string } // Represents a volume that is populated with the contents of a git repository. // Git repo volumes do not support ownership management. Git repo volumes // support SELinux relabeling. // // DEPRECATED: GitRepo is deprecated. To provision a container with a git repo, // mount an EmptyDir into an InitContainer that clones the repo using git, then // mount the EmptyDir into the Pod's container. #: "io.k8s.api.core.v1.GitRepoVolumeSource": { // directory is the target directory name. Must not contain or start with '..'. // If '.' is supplied, the volume directory will be the git repository. // Otherwise, if specified, the volume will contain the git repository in the // subdirectory with the given name. "directory"?: string // repository is the URL "repository"!: string // revision is the commit hash for the specified revision. "revision"?: string } // Represents a Glusterfs mount that lasts the lifetime of a pod. Glusterfs // volumes do not support ownership management or SELinux relabeling. #: "io.k8s.api.core.v1.GlusterfsVolumeSource": { // endpoints is the endpoint name that details Glusterfs topology. More info: // https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod "endpoints"!: string // path is the Glusterfs volume path. More info: // https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod "path"!: string // readOnly here will force the Glusterfs volume to be mounted with read-only // permissions. Defaults to false. More info: // https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod "readOnly"?: bool } // HTTPGetAction describes an action based on HTTP Get requests. #: "io.k8s.api.core.v1.HTTPGetAction": { // Host name to connect to, defaults to the pod IP. You probably want to set // "Host" in httpHeaders instead. "host"?: string // Custom headers to set in the request. HTTP allows repeated headers. "httpHeaders"?: [...#."io.k8s.api.core.v1.HTTPHeader"] // Path to access on the HTTP server. "path"?: string // Name or number of the port to access on the container. Number must be in the // range 1 to 65535. Name must be an IANA_SVC_NAME. "port"!: #."io.k8s.apimachinery.pkg.util.intstr.IntOrString" // Scheme to use for connecting to the host. Defaults to HTTP. "scheme"?: string } // HTTPHeader describes a custom header to be used in HTTP probes #: "io.k8s.api.core.v1.HTTPHeader": { // The header field name. This will be canonicalized upon output, so // case-variant names will be understood as the same header. "name"!: string // The header field value "value"!: string } // HostAlias holds the mapping between IP and hostnames that will be injected as // an entry in the pod's hosts file. #: "io.k8s.api.core.v1.HostAlias": { // Hostnames for the above IP address. "hostnames"?: [...string] // IP address of the host file entry. "ip"!: string } // Represents a host path mapped into a pod. Host path volumes do not support // ownership management or SELinux relabeling. #: "io.k8s.api.core.v1.HostPathVolumeSource": { // path of the directory on the host. If the path is a symlink, it will follow // the link to the real path. More info: // https://kubernetes.io/docs/concepts/storage/volumes#hostpath "path"!: string // type for HostPath Volume Defaults to "" More info: // https://kubernetes.io/docs/concepts/storage/volumes#hostpath "type"?: string } // Represents an ISCSI disk. ISCSI volumes can only be mounted as read/write // once. ISCSI volumes support ownership management and SELinux relabeling. #: "io.k8s.api.core.v1.ISCSIVolumeSource": { // chapAuthDiscovery defines whether support iSCSI Discovery CHAP authentication "chapAuthDiscovery"?: bool // chapAuthSession defines whether support iSCSI Session CHAP authentication "chapAuthSession"?: bool // fsType is the filesystem type of the volume that you want to mount. Tip: // Ensure that the filesystem type is supported by the host operating system. // Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if // unspecified. More info: // https://kubernetes.io/docs/concepts/storage/volumes#iscsi "fsType"?: string // initiatorName is the custom iSCSI Initiator Name. If initiatorName is // specified with iscsiInterface simultaneously, new iSCSI interface : will be created for the connection. "initiatorName"?: string // iqn is the target iSCSI Qualified Name. "iqn"!: string // iscsiInterface is the interface Name that uses an iSCSI transport. Defaults to 'default' (tcp). "iscsiInterface"?: string // lun represents iSCSI Target Lun number. "lun"!: int // portals is the iSCSI Target Portal List. The portal is either an IP or // ip_addr:port if the port is other than default (typically TCP ports 860 and // 3260). "portals"?: [...string] // readOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false. "readOnly"?: bool // secretRef is the CHAP Secret for iSCSI target and initiator authentication "secretRef"?: #."io.k8s.api.core.v1.LocalObjectReference" // targetPortal is iSCSI Target Portal. The Portal is either an IP or // ip_addr:port if the port is other than default (typically TCP ports 860 and // 3260). "targetPortal"!: string } // ImageVolumeSource represents a image volume resource. #: "io.k8s.api.core.v1.ImageVolumeSource": { // Policy for pulling OCI objects. Possible values are: Always: the kubelet // always attempts to pull the reference. Container creation will fail If the // pull fails. Never: the kubelet never pulls the reference and only uses a // local image or artifact. Container creation will fail if the reference isn't // present. IfNotPresent: the kubelet pulls if the reference isn't already // present on disk. Container creation will fail if the reference isn't present // and the pull fails. Defaults to Always if :latest tag is specified, or // IfNotPresent otherwise. "pullPolicy"?: string // Required: Image or artifact reference to be used. Behaves in the same way as // pod.spec.containers[*].image. Pull secrets will be assembled in the same way // as for the container image by looking up node credentials, SA image pull // secrets, and pod spec image pull secrets. More info: // https://kubernetes.io/docs/concepts/containers/images This field is optional // to allow higher level config management to default or override container // images in workload controllers like Deployments and StatefulSets. "reference"?: string } // Maps a string key to a path within a volume. #: "io.k8s.api.core.v1.KeyToPath": { // key is the key to project. "key"!: string // mode is Optional: mode bits used to set permissions on this file. Must be an // octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML // accepts both octal and decimal values, JSON requires decimal values for mode // bits. If not specified, the volume defaultMode will be used. This might be // in conflict with other options that affect the file mode, like fsGroup, and // the result can be other mode bits set. "mode"?: int // path is the relative path of the file to map the key to. May not be an // absolute path. May not contain the path element '..'. May not start with the // string '..'. "path"!: string } // Lifecycle describes actions that the management system should take in // response to container lifecycle events. For the PostStart and PreStop // lifecycle handlers, management of the container blocks until the action is // complete, unless the container process fails, in which case the handler is // aborted. #: "io.k8s.api.core.v1.Lifecycle": { // PostStart is called immediately after a container is created. If the handler // fails, the container is terminated and restarted according to its restart // policy. Other management of the container blocks until the hook completes. // More info: // https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks "postStart"?: #."io.k8s.api.core.v1.LifecycleHandler" // PreStop is called immediately before a container is terminated due to an API // request or management event such as liveness/startup probe failure, // preemption, resource contention, etc. The handler is not called if the // container crashes or exits. The Pod's termination grace period countdown // begins before the PreStop hook is executed. Regardless of the outcome of the // handler, the container will eventually terminate within the Pod's // termination grace period (unless delayed by finalizers). Other management of // the container blocks until the hook completes or until the termination grace // period is reached. More info: // https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks "preStop"?: #."io.k8s.api.core.v1.LifecycleHandler" // StopSignal defines which signal will be sent to a container when it is being // stopped. If not specified, the default is defined by the container runtime // in use. StopSignal can only be set for Pods with a non-empty .spec.os.name "stopSignal"?: string } // LifecycleHandler defines a specific action that should be taken in a // lifecycle hook. One and only one of the fields, except TCPSocket must be // specified. #: "io.k8s.api.core.v1.LifecycleHandler": { // Exec specifies a command to execute in the container. "exec"?: #."io.k8s.api.core.v1.ExecAction" // HTTPGet specifies an HTTP GET request to perform. "httpGet"?: #."io.k8s.api.core.v1.HTTPGetAction" // Sleep represents a duration that the container should sleep. "sleep"?: #."io.k8s.api.core.v1.SleepAction" // Deprecated. TCPSocket is NOT supported as a LifecycleHandler and kept for // backward compatibility. There is no validation of this field and lifecycle // hooks will fail at runtime when it is specified. "tcpSocket"?: #."io.k8s.api.core.v1.TCPSocketAction" } // LocalObjectReference contains enough information to let you locate the // referenced object inside the same namespace. #: { "io.k8s.api.core.v1.LocalObjectReference": { // Name of the referent. This field is effectively required, but due to // backwards compatibility is allowed to be empty. Instances of this type with // an empty value here are almost certainly wrong. More info: // https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names "name"?: string } } // ModifyVolumeStatus represents the status object of ControllerModifyVolume operation #: "io.k8s.api.core.v1.ModifyVolumeStatus": { // status is the status of the ControllerModifyVolume operation. It can be in // any of following states: // - Pending // Pending indicates that the PersistentVolumeClaim cannot be modified due to // unmet requirements, such as // the specified VolumeAttributesClass not existing. // - InProgress // InProgress indicates that the volume is being modified. // - Infeasible // Infeasible indicates that the request has been rejected as invalid by the CSI driver. To // resolve the error, a valid VolumeAttributesClass needs to be specified. // Note: New statuses can be added in the future. Consumers should check for // unknown statuses and fail appropriately. "status"!: string // targetVolumeAttributesClassName is the name of the VolumeAttributesClass the // PVC currently being reconciled "targetVolumeAttributesClassName"?: string } // Represents an NFS mount that lasts the lifetime of a pod. NFS volumes do not // support ownership management or SELinux relabeling. #: "io.k8s.api.core.v1.NFSVolumeSource": { // path that is exported by the NFS server. More info: // https://kubernetes.io/docs/concepts/storage/volumes#nfs "path"!: string // readOnly here will force the NFS export to be mounted with read-only // permissions. Defaults to false. More info: // https://kubernetes.io/docs/concepts/storage/volumes#nfs "readOnly"?: bool // server is the hostname or IP address of the NFS server. More info: // https://kubernetes.io/docs/concepts/storage/volumes#nfs "server"!: string } // Node affinity is a group of node affinity scheduling rules. #: "io.k8s.api.core.v1.NodeAffinity": { // The scheduler will prefer to schedule pods to nodes that satisfy the affinity // expressions specified by this field, but it may choose a node that violates // one or more of the expressions. The node that is most preferred is the one // with the greatest sum of weights, i.e. for each node that meets all of the // scheduling requirements (resource request, requiredDuringScheduling affinity // expressions, etc.), compute a sum by iterating through the elements of this // field and adding "weight" to the sum if the node matches the corresponding // matchExpressions; the node(s) with the highest sum are the most preferred. "preferredDuringSchedulingIgnoredDuringExecution"?: [...#."io.k8s.api.core.v1.PreferredSchedulingTerm"] // If the affinity requirements specified by this field are not met at // scheduling time, the pod will not be scheduled onto the node. If the // affinity requirements specified by this field cease to be met at some point // during pod execution (e.g. due to an update), the system may or may not try // to eventually evict the pod from its node. "requiredDuringSchedulingIgnoredDuringExecution"?: #."io.k8s.api.core.v1.NodeSelector" } // A node selector represents the union of the results of one or more label // queries over a set of nodes; that is, it represents the OR of the selectors // represented by the node selector terms. #: { "io.k8s.api.core.v1.NodeSelector": { // Required. A list of node selector terms. The terms are ORed. "nodeSelectorTerms"!: [...#."io.k8s.api.core.v1.NodeSelectorTerm"] } } // A node selector requirement is a selector that contains values, a key, and an // operator that relates the key and values. #: "io.k8s.api.core.v1.NodeSelectorRequirement": { // The label key that the selector applies to. "key"!: string // Represents a key's relationship to a set of values. Valid operators are In, // NotIn, Exists, DoesNotExist. Gt, and Lt. "operator"!: string // An array of string values. If the operator is In or NotIn, the values array // must be non-empty. If the operator is Exists or DoesNotExist, the values // array must be empty. If the operator is Gt or Lt, the values array must have // a single element, which will be interpreted as an integer. This array is // replaced during a strategic merge patch. "values"?: [...string] } // A null or empty node selector term matches no objects. The requirements of // them are ANDed. The TopologySelectorTerm type implements a subset of the // NodeSelectorTerm. #: "io.k8s.api.core.v1.NodeSelectorTerm": { // A list of node selector requirements by node's labels. "matchExpressions"?: [...#."io.k8s.api.core.v1.NodeSelectorRequirement"] // A list of node selector requirements by node's fields. "matchFields"?: [...#."io.k8s.api.core.v1.NodeSelectorRequirement"] } // ObjectFieldSelector selects an APIVersioned field of an object. #: "io.k8s.api.core.v1.ObjectFieldSelector": { // Version of the schema the FieldPath is written in terms of, defaults to "v1". "apiVersion"?: string // Path of the field to select in the specified API version. "fieldPath"!: string } // ObjectReference contains enough information to let you inspect or modify the referred object. #: "io.k8s.api.core.v1.ObjectReference": { // API version of the referent. "apiVersion"?: string // If referring to a piece of an object instead of an entire object, this string // should contain a valid JSON/Go field access statement, such as // desiredState.manifest.containers[2]. For example, if the object reference is // to a container within a pod, this would take on a value like: // "spec.containers{name}" (where "name" refers to the name of the container // that triggered the event) or if no container name is specified // "spec.containers[2]" (container with index 2 in this pod). This syntax is // chosen only to have some well-defined way of referencing a part of an // object. "fieldPath"?: string // Kind of the referent. More info: // https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds "kind"?: string // Name of the referent. More info: // https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names "name"?: string // Namespace of the referent. More info: // https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/ "namespace"?: string // Specific resourceVersion to which this reference is made, if any. More info: // https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency "resourceVersion"?: string // UID of the referent. More info: // https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids "uid"?: string } // PersistentVolumeClaim is a user's request for and claim to a persistent volume #: "io.k8s.api.core.v1.PersistentVolumeClaim": { // APIVersion defines the versioned schema of this representation of an object. // Servers should convert recognized schemas to the latest internal value, and // may reject unrecognized values. More info: // https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources "apiVersion"?: string // Kind is a string value representing the REST resource this object represents. // Servers may infer this from the endpoint the client submits requests to. // Cannot be updated. In CamelCase. More info: // https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds "kind"?: string // Standard object's metadata. More info: // https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata "metadata"?: #."io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta" // spec defines the desired characteristics of a volume requested by a pod // author. More info: // https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims "spec"?: #."io.k8s.api.core.v1.PersistentVolumeClaimSpec" // status represents the current information/status of a persistent volume // claim. Read-only. More info: // https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims "status"?: #."io.k8s.api.core.v1.PersistentVolumeClaimStatus" } // PersistentVolumeClaimCondition contains details about state of pvc #: "io.k8s.api.core.v1.PersistentVolumeClaimCondition": { // lastProbeTime is the time we probed the condition. "lastProbeTime"?: #."io.k8s.apimachinery.pkg.apis.meta.v1.Time" // lastTransitionTime is the time the condition transitioned from one status to another. "lastTransitionTime"?: #."io.k8s.apimachinery.pkg.apis.meta.v1.Time" // message is the human-readable message indicating details about last transition. "message"?: string // reason is a unique, this should be a short, machine understandable string // that gives the reason for condition's last transition. If it reports // "Resizing" that means the underlying persistent volume is being resized. "reason"?: string // Status is the status of the condition. Can be True, False, Unknown. More // info: // https://kubernetes.io/docs/reference/kubernetes-api/config-and-storage-resources/persistent-volume-claim-v1/#:~:text=state%20of%20pvc-,conditions.status,-(string)%2C%20required "status"!: string // Type is the type of the condition. More info: // https://kubernetes.io/docs/reference/kubernetes-api/config-and-storage-resources/persistent-volume-claim-v1/#:~:text=set%20to%20%27ResizeStarted%27.-,PersistentVolumeClaimCondition,-contains%20details%20about "type"!: string } // PersistentVolumeClaimSpec describes the common attributes of storage devices // and allows a Source for provider-specific attributes #: "io.k8s.api.core.v1.PersistentVolumeClaimSpec": { // accessModes contains the desired access modes the volume should have. More // info: // https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1 "accessModes"?: [...string] // dataSource field can be used to specify either: * An existing VolumeSnapshot // object (snapshot.storage.k8s.io/VolumeSnapshot) * An existing PVC // (PersistentVolumeClaim) If the provisioner or an external controller can // support the specified data source, it will create a new volume based on the // contents of the specified data source. When the AnyVolumeDataSource feature // gate is enabled, dataSource contents will be copied to dataSourceRef, and // dataSourceRef contents will be copied to dataSource when // dataSourceRef.namespace is not specified. If the namespace is specified, // then dataSourceRef will not be copied to dataSource. "dataSource"?: #."io.k8s.api.core.v1.TypedLocalObjectReference" // dataSourceRef specifies the object from which to populate the volume with // data, if a non-empty volume is desired. This may be any object from a // non-empty API group (non core object) or a PersistentVolumeClaim object. // When this field is specified, volume binding will only succeed if the type // of the specified object matches some installed volume populator or dynamic // provisioner. This field will replace the functionality of the dataSource // field and as such if both fields are non-empty, they must have the same // value. For backwards compatibility, when namespace isn't specified in // dataSourceRef, both fields (dataSource and dataSourceRef) will be set to the // same value automatically if one of them is empty and the other is non-empty. // When namespace is specified in dataSourceRef, dataSource isn't set to the // same value and must be empty. There are three important differences between // dataSource and dataSourceRef: * While dataSource only allows two specific // types of objects, dataSourceRef // allows any non-core object, as well as PersistentVolumeClaim objects. // * While dataSource ignores disallowed values (dropping them), dataSourceRef // preserves all values, and generates an error if a disallowed value is // specified. // * While dataSource only allows local objects, dataSourceRef allows objects // in any namespaces. // (Beta) Using this field requires the AnyVolumeDataSource feature gate to be // enabled. (Alpha) Using the namespace field of dataSourceRef requires the // CrossNamespaceVolumeDataSource feature gate to be enabled. "dataSourceRef"?: #."io.k8s.api.core.v1.TypedObjectReference" // resources represents the minimum resources the volume should have. If // RecoverVolumeExpansionFailure feature is enabled users are allowed to // specify resource requirements that are lower than previous value but must // still be higher than capacity recorded in the status field of the claim. // More info: // https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources "resources"?: #."io.k8s.api.core.v1.VolumeResourceRequirements" // selector is a label query over volumes to consider for binding. "selector"?: #."io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector" // storageClassName is the name of the StorageClass required by the claim. More // info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#class-1 "storageClassName"?: string // volumeAttributesClassName may be used to set the VolumeAttributesClass used // by this claim. If specified, the CSI driver will create or update the volume // with the attributes defined in the corresponding VolumeAttributesClass. This // has a different purpose than storageClassName, it can be changed after the // claim is created. An empty string value means that no VolumeAttributesClass // will be applied to the claim but it's not allowed to reset this field to // empty string once it is set. If unspecified and the PersistentVolumeClaim is // unbound, the default VolumeAttributesClass will be set by the // persistentvolume controller if it exists. If the resource referred to by // volumeAttributesClass does not exist, this PersistentVolumeClaim will be set // to a Pending state, as reflected by the modifyVolumeStatus field, until such // as a resource exists. More info: // https://kubernetes.io/docs/concepts/storage/volume-attributes-classes/ // (Beta) Using this field requires the VolumeAttributesClass feature gate to // be enabled (off by default). "volumeAttributesClassName"?: string // volumeMode defines what type of volume is required by the claim. Value of // Filesystem is implied when not included in claim spec. "volumeMode"?: string // volumeName is the binding reference to the PersistentVolume backing this claim. "volumeName"?: string } // PersistentVolumeClaimStatus is the current status of a persistent volume claim. #: "io.k8s.api.core.v1.PersistentVolumeClaimStatus": { // accessModes contains the actual access modes the volume backing the PVC has. // More info: // https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1 "accessModes"?: [...string] // allocatedResourceStatuses stores status of resource being resized for the // given PVC. Key names follow standard Kubernetes label syntax. Valid values // are either: // * Un-prefixed keys: // - storage - the capacity of the volume. // * Custom resources must use implementation-defined prefixed names such as // "example.com/my-custom-resource" // Apart from above values - keys that are unprefixed or have kubernetes.io // prefix are considered reserved and hence may not be used. // // ClaimResourceStatus can be in any of following states: // - ControllerResizeInProgress: // State set when resize controller starts resizing the volume in control-plane. // - ControllerResizeFailed: // State set when resize has failed in resize controller with a terminal error. // - NodeResizePending: // State set when resize controller has finished resizing the volume but further resizing of // volume is needed on the node. // - NodeResizeInProgress: // State set when kubelet starts resizing the volume. // - NodeResizeFailed: // State set when resizing has failed in kubelet with a terminal error. Transient errors don't set // NodeResizeFailed. // For example: if expanding a PVC for more capacity - this field can be one of // the following states: // - pvc.status.allocatedResourceStatus['storage'] = "ControllerResizeInProgress" // - pvc.status.allocatedResourceStatus['storage'] = "ControllerResizeFailed" // - pvc.status.allocatedResourceStatus['storage'] = "NodeResizePending" // - pvc.status.allocatedResourceStatus['storage'] = "NodeResizeInProgress" // - pvc.status.allocatedResourceStatus['storage'] = "NodeResizeFailed" // When this field is not set, it means that no resize operation is in progress for the given PVC. // // A controller that receives PVC update with previously unknown resourceName or // ClaimResourceStatus should ignore the update for the purpose it was // designed. For example - a controller that only is responsible for resizing // capacity of the volume, should ignore PVC updates that change other valid // resources associated with PVC. // // This is an alpha field and requires enabling RecoverVolumeExpansionFailure feature. "allocatedResourceStatuses"?: [string]: string // allocatedResources tracks the resources allocated to a PVC including its // capacity. Key names follow standard Kubernetes label syntax. Valid values // are either: // * Un-prefixed keys: // - storage - the capacity of the volume. // * Custom resources must use implementation-defined prefixed names such as // "example.com/my-custom-resource" // Apart from above values - keys that are unprefixed or have kubernetes.io // prefix are considered reserved and hence may not be used. // // Capacity reported here may be larger than the actual capacity when a volume // expansion operation is requested. For storage quota, the larger value from // allocatedResources and PVC.spec.resources is used. If allocatedResources is // not set, PVC.spec.resources alone is used for quota calculation. If a volume // expansion capacity request is lowered, allocatedResources is only lowered if // there are no expansion operations in progress and if the actual volume // capacity is equal or lower than the requested capacity. // // A controller that receives PVC update with previously unknown resourceName // should ignore the update for the purpose it was designed. For example - a // controller that only is responsible for resizing capacity of the volume, // should ignore PVC updates that change other valid resources associated with // PVC. // // This is an alpha field and requires enabling RecoverVolumeExpansionFailure feature. "allocatedResources"?: [string]: #."io.k8s.apimachinery.pkg.api.resource.Quantity" // capacity represents the actual resources of the underlying volume. "capacity"?: [string]: #."io.k8s.apimachinery.pkg.api.resource.Quantity" // conditions is the current Condition of persistent volume claim. If underlying // persistent volume is being resized then the Condition will be set to // 'Resizing'. "conditions"?: [...#."io.k8s.api.core.v1.PersistentVolumeClaimCondition"] // currentVolumeAttributesClassName is the current name of the // VolumeAttributesClass the PVC is using. When unset, there is no // VolumeAttributeClass applied to this PersistentVolumeClaim This is a beta // field and requires enabling VolumeAttributesClass feature (off by default). "currentVolumeAttributesClassName"?: string // ModifyVolumeStatus represents the status object of ControllerModifyVolume // operation. When this is unset, there is no ModifyVolume operation being // attempted. This is a beta field and requires enabling VolumeAttributesClass // feature (off by default). "modifyVolumeStatus"?: #."io.k8s.api.core.v1.ModifyVolumeStatus" // phase represents the current phase of PersistentVolumeClaim. "phase"?: string } // PersistentVolumeClaimTemplate is used to produce PersistentVolumeClaim // objects as part of an EphemeralVolumeSource. #: "io.k8s.api.core.v1.PersistentVolumeClaimTemplate": { // May contain labels and annotations that will be copied into the PVC when // creating it. No other fields are allowed and will be rejected during // validation. "metadata"?: #."io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta" // The specification for the PersistentVolumeClaim. The entire content is copied // unchanged into the PVC that gets created from this template. The same fields // as in a PersistentVolumeClaim are also valid here. "spec"!: #."io.k8s.api.core.v1.PersistentVolumeClaimSpec" } // PersistentVolumeClaimVolumeSource references the user's PVC in the same // namespace. This volume finds the bound PV and mounts that volume for the // pod. A PersistentVolumeClaimVolumeSource is, essentially, a wrapper around // another type of volume that is owned by someone else (the system). #: "io.k8s.api.core.v1.PersistentVolumeClaimVolumeSource": { // claimName is the name of a PersistentVolumeClaim in the same namespace as the // pod using this volume. More info: // https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims "claimName"!: string // readOnly Will force the ReadOnly setting in VolumeMounts. Default false. "readOnly"?: bool } // Represents a Photon Controller persistent disk resource. #: "io.k8s.api.core.v1.PhotonPersistentDiskVolumeSource": { // fsType is the filesystem type to mount. Must be a filesystem type supported // by the host operating system. Ex. "ext4", "xfs", "ntfs". Implicitly inferred // to be "ext4" if unspecified. "fsType"?: string // pdID is the ID that identifies Photon Controller persistent disk "pdID"!: string } // Pod affinity is a group of inter pod affinity scheduling rules. #: "io.k8s.api.core.v1.PodAffinity": { // The scheduler will prefer to schedule pods to nodes that satisfy the affinity // expressions specified by this field, but it may choose a node that violates // one or more of the expressions. The node that is most preferred is the one // with the greatest sum of weights, i.e. for each node that meets all of the // scheduling requirements (resource request, requiredDuringScheduling affinity // expressions, etc.), compute a sum by iterating through the elements of this // field and adding "weight" to the sum if the node has pods which matches the // corresponding podAffinityTerm; the node(s) with the highest sum are the most // preferred. "preferredDuringSchedulingIgnoredDuringExecution"?: [...#."io.k8s.api.core.v1.WeightedPodAffinityTerm"] // If the affinity requirements specified by this field are not met at // scheduling time, the pod will not be scheduled onto the node. If the // affinity requirements specified by this field cease to be met at some point // during pod execution (e.g. due to a pod label update), the system may or may // not try to eventually evict the pod from its node. When there are multiple // elements, the lists of nodes corresponding to each podAffinityTerm are // intersected, i.e. all terms must be satisfied. "requiredDuringSchedulingIgnoredDuringExecution"?: [...#."io.k8s.api.core.v1.PodAffinityTerm"] } // Defines a set of pods (namely those matching the labelSelector relative to // the given namespace(s)) that this pod should be co-located (affinity) or not // co-located (anti-affinity) with, where co-located is defined as running on a // node whose value of the label with key matches that of any // node on which a pod of the set of pods is running #: "io.k8s.api.core.v1.PodAffinityTerm": { // A label query over a set of resources, in this case pods. If it's null, this // PodAffinityTerm matches with no Pods. "labelSelector"?: #."io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector" // MatchLabelKeys is a set of pod label keys to select which pods will be taken // into consideration. The keys are used to lookup values from the incoming pod // labels, those key-value labels are merged with `labelSelector` as `key in // (value)` to select the group of existing pods which pods will be taken into // consideration for the incoming pod's pod (anti) affinity. Keys that don't // exist in the incoming pod labels will be ignored. The default value is // empty. The same key is forbidden to exist in both matchLabelKeys and // labelSelector. Also, matchLabelKeys cannot be set when labelSelector isn't // set. "matchLabelKeys"?: [...string] // MismatchLabelKeys is a set of pod label keys to select which pods will be // taken into consideration. The keys are used to lookup values from the // incoming pod labels, those key-value labels are merged with `labelSelector` // as `key notin (value)` to select the group of existing pods which pods will // be taken into consideration for the incoming pod's pod (anti) affinity. Keys // that don't exist in the incoming pod labels will be ignored. The default // value is empty. The same key is forbidden to exist in both mismatchLabelKeys // and labelSelector. Also, mismatchLabelKeys cannot be set when labelSelector // isn't set. "mismatchLabelKeys"?: [...string] // A label query over the set of namespaces that the term applies to. The term // is applied to the union of the namespaces selected by this field and the // ones listed in the namespaces field. null selector and null or empty // namespaces list means "this pod's namespace". An empty selector ({}) matches // all namespaces. "namespaceSelector"?: #."io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector" // namespaces specifies a static list of namespace names that the term applies // to. The term is applied to the union of the namespaces listed in this field // and the ones selected by namespaceSelector. null or empty namespaces list // and null namespaceSelector means "this pod's namespace". "namespaces"?: [...string] // This pod should be co-located (affinity) or not co-located (anti-affinity) // with the pods matching the labelSelector in the specified namespaces, where // co-located is defined as running on a node whose value of the label with key // topologyKey matches that of any node on which any of the selected pods is // running. Empty topologyKey is not allowed. "topologyKey"!: string } // Pod anti affinity is a group of inter pod anti affinity scheduling rules. #: "io.k8s.api.core.v1.PodAntiAffinity": { // The scheduler will prefer to schedule pods to nodes that satisfy the // anti-affinity expressions specified by this field, but it may choose a node // that violates one or more of the expressions. The node that is most // preferred is the one with the greatest sum of weights, i.e. for each node // that meets all of the scheduling requirements (resource request, // requiredDuringScheduling anti-affinity expressions, etc.), compute a sum by // iterating through the elements of this field and adding "weight" to the sum // if the node has pods which matches the corresponding podAffinityTerm; the // node(s) with the highest sum are the most preferred. "preferredDuringSchedulingIgnoredDuringExecution"?: [...#."io.k8s.api.core.v1.WeightedPodAffinityTerm"] // If the anti-affinity requirements specified by this field are not met at // scheduling time, the pod will not be scheduled onto the node. If the // anti-affinity requirements specified by this field cease to be met at some // point during pod execution (e.g. due to a pod label update), the system may // or may not try to eventually evict the pod from its node. When there are // multiple elements, the lists of nodes corresponding to each podAffinityTerm // are intersected, i.e. all terms must be satisfied. "requiredDuringSchedulingIgnoredDuringExecution"?: [...#."io.k8s.api.core.v1.PodAffinityTerm"] } // PodDNSConfig defines the DNS parameters of a pod in addition to those generated from DNSPolicy. #: "io.k8s.api.core.v1.PodDNSConfig": { // A list of DNS name server IP addresses. This will be appended to the base // nameservers generated from DNSPolicy. Duplicated nameservers will be // removed. "nameservers"?: [...string] // A list of DNS resolver options. This will be merged with the base options // generated from DNSPolicy. Duplicated entries will be removed. Resolution // options given in Options will override those that appear in the base // DNSPolicy. "options"?: [...#."io.k8s.api.core.v1.PodDNSConfigOption"] // A list of DNS search domains for host-name lookup. This will be appended to // the base search paths generated from DNSPolicy. Duplicated search paths will // be removed. "searches"?: [...string] } // PodDNSConfigOption defines DNS resolver options of a pod. #: "io.k8s.api.core.v1.PodDNSConfigOption": { // Name is this DNS resolver option's name. Required. "name"?: string // Value is this DNS resolver option's value. "value"?: string } // PodSecurityContext holds pod-level security attributes and common container // settings. Some fields are also present in container.securityContext. Field // values of container.securityContext take precedence over field values of // PodSecurityContext. #: "io.k8s.api.core.v1.PodSecurityContext": { // appArmorProfile is the AppArmor options to use by the containers in this pod. // Note that this field cannot be set when spec.os.name is windows. "appArmorProfile"?: #."io.k8s.api.core.v1.AppArmorProfile" // A special supplemental group that applies to all containers in a pod. Some // volume types allow the Kubelet to change the ownership of that volume to be // owned by the pod: // // 1. The owning GID will be the FSGroup 2. The setgid bit is set (new files // created in the volume will be owned by FSGroup) 3. The permission bits are // OR'd with rw-rw---- // // If unset, the Kubelet will not modify the ownership and permissions of any // volume. Note that this field cannot be set when spec.os.name is windows. "fsGroup"?: int // fsGroupChangePolicy defines behavior of changing ownership and permission of // the volume before being exposed inside Pod. This field will only apply to // volume types which support fsGroup based ownership(and permissions). It will // have no effect on ephemeral volume types such as: secret, configmaps and // emptydir. Valid values are "OnRootMismatch" and "Always". If not specified, // "Always" is used. Note that this field cannot be set when spec.os.name is // windows. "fsGroupChangePolicy"?: string // The GID to run the entrypoint of the container process. Uses runtime default // if unset. May also be set in SecurityContext. If set in both SecurityContext // and PodSecurityContext, the value specified in SecurityContext takes // precedence for that container. Note that this field cannot be set when // spec.os.name is windows. "runAsGroup"?: int // Indicates that the container must run as a non-root user. If true, the // Kubelet will validate the image at runtime to ensure that it does not run as // UID 0 (root) and fail to start the container if it does. If unset or false, // no such validation will be performed. May also be set in SecurityContext. If // set in both SecurityContext and PodSecurityContext, the value specified in // SecurityContext takes precedence. "runAsNonRoot"?: bool // The UID to run the entrypoint of the container process. Defaults to user // specified in image metadata if unspecified. May also be set in // SecurityContext. If set in both SecurityContext and PodSecurityContext, the // value specified in SecurityContext takes precedence for that container. Note // that this field cannot be set when spec.os.name is windows. "runAsUser"?: int // seLinuxChangePolicy defines how the container's SELinux label is applied to // all volumes used by the Pod. It has no effect on nodes that do not support // SELinux or to volumes does not support SELinux. Valid values are // "MountOption" and "Recursive". // // "Recursive" means relabeling of all files on all Pod volumes by the container // runtime. This may be slow for large volumes, but allows mixing privileged // and unprivileged Pods sharing the same volume on the same node. // // "MountOption" mounts all eligible Pod volumes with `-o context` mount option. // This requires all Pods that share the same volume to use the same SELinux // label. It is not possible to share the same volume among privileged and // unprivileged Pods. Eligible volumes are in-tree FibreChannel and iSCSI // volumes, and all CSI volumes whose CSI driver announces SELinux support by // setting spec.seLinuxMount: true in their CSIDriver instance. Other volumes // are always re-labelled recursively. "MountOption" value is allowed only when // SELinuxMount feature gate is enabled. // // If not specified and SELinuxMount feature gate is enabled, "MountOption" is // used. If not specified and SELinuxMount feature gate is disabled, // "MountOption" is used for ReadWriteOncePod volumes and "Recursive" for all // other volumes. // // This field affects only Pods that have SELinux label set, either in // PodSecurityContext or in SecurityContext of all containers. // // All Pods that use the same volume should use the same seLinuxChangePolicy, // otherwise some pods can get stuck in ContainerCreating state. Note that this // field cannot be set when spec.os.name is windows. "seLinuxChangePolicy"?: string // The SELinux context to be applied to all containers. If unspecified, the // container runtime will allocate a random SELinux context for each container. // May also be set in SecurityContext. If set in both SecurityContext and // PodSecurityContext, the value specified in SecurityContext takes precedence // for that container. Note that this field cannot be set when spec.os.name is // windows. "seLinuxOptions"?: #."io.k8s.api.core.v1.SELinuxOptions" // The seccomp options to use by the containers in this pod. Note that this // field cannot be set when spec.os.name is windows. "seccompProfile"?: #."io.k8s.api.core.v1.SeccompProfile" // A list of groups applied to the first process run in each container, in // addition to the container's primary GID and fsGroup (if specified). If the // SupplementalGroupsPolicy feature is enabled, the supplementalGroupsPolicy // field determines whether these are in addition to or instead of any group // memberships defined in the container image. If unspecified, no additional // groups are added, though group memberships defined in the container image // may still be used, depending on the supplementalGroupsPolicy field. Note // that this field cannot be set when spec.os.name is windows. "supplementalGroups"?: [...int] // Defines how supplemental groups of the first container processes are // calculated. Valid values are "Merge" and "Strict". If not specified, "Merge" // is used. (Alpha) Using the field requires the SupplementalGroupsPolicy // feature gate to be enabled and the container runtime must implement support // for this feature. Note that this field cannot be set when spec.os.name is // windows. "supplementalGroupsPolicy"?: string // Sysctls hold a list of namespaced sysctls used for the pod. Pods with // unsupported sysctls (by the container runtime) might fail to launch. Note // that this field cannot be set when spec.os.name is windows. "sysctls"?: [...#."io.k8s.api.core.v1.Sysctl"] // The Windows specific settings applied to all containers. If unspecified, the // options within a container's SecurityContext will be used. If set in both // SecurityContext and PodSecurityContext, the value specified in // SecurityContext takes precedence. Note that this field cannot be set when // spec.os.name is linux. "windowsOptions"?: #."io.k8s.api.core.v1.WindowsSecurityContextOptions" } // PortworxVolumeSource represents a Portworx volume resource. #: "io.k8s.api.core.v1.PortworxVolumeSource": { // fSType represents the filesystem type to mount Must be a filesystem type // supported by the host operating system. Ex. "ext4", "xfs". Implicitly // inferred to be "ext4" if unspecified. "fsType"?: string // readOnly defaults to false (read/write). ReadOnly here will force the // ReadOnly setting in VolumeMounts. "readOnly"?: bool // volumeID uniquely identifies a Portworx volume "volumeID"!: string } // An empty preferred scheduling term matches all objects with implicit weight 0 // (i.e. it's a no-op). A null preferred scheduling term matches no objects // (i.e. is also a no-op). #: "io.k8s.api.core.v1.PreferredSchedulingTerm": { // A node selector term, associated with the corresponding weight. "preference"!: #."io.k8s.api.core.v1.NodeSelectorTerm" // Weight associated with matching the corresponding nodeSelectorTerm, in the range 1-100. "weight"!: int } // Probe describes a health check to be performed against a container to // determine whether it is alive or ready to receive traffic. #: "io.k8s.api.core.v1.Probe": { // Exec specifies a command to execute in the container. "exec"?: #."io.k8s.api.core.v1.ExecAction" // Minimum consecutive failures for the probe to be considered failed after // having succeeded. Defaults to 3. Minimum value is 1. "failureThreshold"?: int // GRPC specifies a GRPC HealthCheckRequest. "grpc"?: #."io.k8s.api.core.v1.GRPCAction" // HTTPGet specifies an HTTP GET request to perform. "httpGet"?: #."io.k8s.api.core.v1.HTTPGetAction" // Number of seconds after the container has started before liveness probes are // initiated. More info: // https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes "initialDelaySeconds"?: int // How often (in seconds) to perform the probe. Default to 10 seconds. Minimum value is 1. "periodSeconds"?: int // Minimum consecutive successes for the probe to be considered successful after // having failed. Defaults to 1. Must be 1 for liveness and startup. Minimum // value is 1. "successThreshold"?: int // TCPSocket specifies a connection to a TCP port. "tcpSocket"?: #."io.k8s.api.core.v1.TCPSocketAction" // Optional duration in seconds the pod needs to terminate gracefully upon probe // failure. The grace period is the duration in seconds after the processes // running in the pod are sent a termination signal and the time when the // processes are forcibly halted with a kill signal. Set this value longer than // the expected cleanup time for your process. If this value is nil, the pod's // terminationGracePeriodSeconds will be used. Otherwise, this value overrides // the value provided by the pod spec. Value must be non-negative integer. The // value zero indicates stop immediately via the kill signal (no opportunity to // shut down). This is a beta field and requires enabling // ProbeTerminationGracePeriod feature gate. Minimum value is 1. // spec.terminationGracePeriodSeconds is used if unset. "terminationGracePeriodSeconds"?: int // Number of seconds after which the probe times out. Defaults to 1 second. // Minimum value is 1. More info: // https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes "timeoutSeconds"?: int } // Represents a projected volume source #: "io.k8s.api.core.v1.ProjectedVolumeSource": { // defaultMode are the mode bits used to set permissions on created files by // default. Must be an octal value between 0000 and 0777 or a decimal value // between 0 and 511. YAML accepts both octal and decimal values, JSON requires // decimal values for mode bits. Directories within the path are not affected // by this setting. This might be in conflict with other options that affect // the file mode, like fsGroup, and the result can be other mode bits set. "defaultMode"?: int // sources is the list of volume projections. Each entry in this list handles one source. "sources"?: [...#."io.k8s.api.core.v1.VolumeProjection"] } // Represents a Quobyte mount that lasts the lifetime of a pod. Quobyte volumes // do not support ownership management or SELinux relabeling. #: "io.k8s.api.core.v1.QuobyteVolumeSource": { // group to map volume access to Default is no group "group"?: string // readOnly here will force the Quobyte volume to be mounted with read-only // permissions. Defaults to false. "readOnly"?: bool // registry represents a single or multiple Quobyte Registry services specified // as a string as host:port pair (multiple entries are separated with commas) // which acts as the central registry for volumes "registry"!: string // tenant owning the given Quobyte volume in the Backend Used with dynamically // provisioned Quobyte volumes, value is set by the plugin "tenant"?: string // user to map volume access to Defaults to serivceaccount user "user"?: string // volume is a string that references an already created Quobyte volume by name. "volume"!: string } // Represents a Rados Block Device mount that lasts the lifetime of a pod. RBD // volumes support ownership management and SELinux relabeling. #: "io.k8s.api.core.v1.RBDVolumeSource": { // fsType is the filesystem type of the volume that you want to mount. Tip: // Ensure that the filesystem type is supported by the host operating system. // Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if // unspecified. More info: // https://kubernetes.io/docs/concepts/storage/volumes#rbd "fsType"?: string // image is the rados image name. More info: // https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it "image"!: string // keyring is the path to key ring for RBDUser. Default is /etc/ceph/keyring. // More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it "keyring"?: string // monitors is a collection of Ceph monitors. More info: // https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it "monitors"!: [...string] // pool is the rados pool name. Default is rbd. More info: // https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it "pool"?: string // readOnly here will force the ReadOnly setting in VolumeMounts. Defaults to // false. More info: // https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it "readOnly"?: bool // secretRef is name of the authentication secret for RBDUser. If provided // overrides keyring. Default is nil. More info: // https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it "secretRef"?: #."io.k8s.api.core.v1.LocalObjectReference" // user is the rados user name. Default is admin. More info: // https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it "user"?: string } // ResourceClaim references one entry in PodSpec.ResourceClaims. #: "io.k8s.api.core.v1.ResourceClaim": { // Name must match the name of one entry in pod.spec.resourceClaims of the Pod // where this field is used. It makes that resource available inside a // container. "name"!: string // Request is the name chosen for a request in the referenced claim. If empty, // everything from the claim is made available, otherwise only the result of // this request. "request"?: string } // ResourceFieldSelector represents container resources (cpu, memory) and their output format #: "io.k8s.api.core.v1.ResourceFieldSelector": { // Container name: required for volumes, optional for env vars "containerName"?: string // Specifies the output format of the exposed resources, defaults to "1" "divisor"?: #."io.k8s.apimachinery.pkg.api.resource.Quantity" // Required: resource to select "resource"!: string } // ResourceRequirements describes the compute resource requirements. #: "io.k8s.api.core.v1.ResourceRequirements": { // Claims lists the names of resources, defined in spec.resourceClaims, that are // used by this container. // // This is an alpha field and requires enabling the DynamicResourceAllocation feature gate. // // This field is immutable. It can only be set for containers. "claims"?: [...#."io.k8s.api.core.v1.ResourceClaim"] // Limits describes the maximum amount of compute resources allowed. More info: // https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/ "limits"?: [string]: #."io.k8s.apimachinery.pkg.api.resource.Quantity" // Requests describes the minimum amount of compute resources required. If // Requests is omitted for a container, it defaults to Limits if that is // explicitly specified, otherwise to an implementation-defined value. Requests // cannot exceed Limits. More info: // https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/ "requests"?: [string]: #."io.k8s.apimachinery.pkg.api.resource.Quantity" } // SELinuxOptions are the labels to be applied to the container #: "io.k8s.api.core.v1.SELinuxOptions": { // Level is SELinux level label that applies to the container. "level"?: string // Role is a SELinux role label that applies to the container. "role"?: string // Type is a SELinux type label that applies to the container. "type"?: string // User is a SELinux user label that applies to the container. "user"?: string } // ScaleIOVolumeSource represents a persistent ScaleIO volume #: "io.k8s.api.core.v1.ScaleIOVolumeSource": { // fsType is the filesystem type to mount. Must be a filesystem type supported // by the host operating system. Ex. "ext4", "xfs", "ntfs". Default is "xfs". "fsType"?: string // gateway is the host address of the ScaleIO API Gateway. "gateway"!: string // protectionDomain is the name of the ScaleIO Protection Domain for the configured storage. "protectionDomain"?: string // readOnly Defaults to false (read/write). ReadOnly here will force the // ReadOnly setting in VolumeMounts. "readOnly"?: bool // secretRef references to the secret for ScaleIO user and other sensitive // information. If this is not provided, Login operation will fail. "secretRef"!: #."io.k8s.api.core.v1.LocalObjectReference" // sslEnabled Flag enable/disable SSL communication with Gateway, default false "sslEnabled"?: bool // storageMode indicates whether the storage for a volume should be // ThickProvisioned or ThinProvisioned. Default is ThinProvisioned. "storageMode"?: string // storagePool is the ScaleIO Storage Pool associated with the protection domain. "storagePool"?: string // system is the name of the storage system as configured in ScaleIO. "system"!: string // volumeName is the name of a volume already created in the ScaleIO system that // is associated with this volume source. "volumeName"?: string } // SeccompProfile defines a pod/container's seccomp profile settings. Only one // profile source may be set. #: "io.k8s.api.core.v1.SeccompProfile": { // localhostProfile indicates a profile defined in a file on the node should be // used. The profile must be preconfigured on the node to work. Must be a // descending path, relative to the kubelet's configured seccomp profile // location. Must be set if type is "Localhost". Must NOT be set for any other // type. "localhostProfile"?: string // type indicates which kind of seccomp profile will be applied. Valid options are: // // Localhost - a profile defined in a file on the node should be used. // RuntimeDefault - the container runtime default profile should be used. // Unconfined - no profile should be applied. "type"!: string } // SecretEnvSource selects a Secret to populate the environment variables with. // // The contents of the target Secret's Data field will represent the key-value // pairs as environment variables. #: "io.k8s.api.core.v1.SecretEnvSource": { // Name of the referent. This field is effectively required, but due to // backwards compatibility is allowed to be empty. Instances of this type with // an empty value here are almost certainly wrong. More info: // https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names "name"?: string // Specify whether the Secret must be defined "optional"?: bool } // SecretKeySelector selects a key of a Secret. #: "io.k8s.api.core.v1.SecretKeySelector": { // The key of the secret to select from. Must be a valid secret key. "key"!: string // Name of the referent. This field is effectively required, but due to // backwards compatibility is allowed to be empty. Instances of this type with // an empty value here are almost certainly wrong. More info: // https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names "name"?: string // Specify whether the Secret or its key must be defined "optional"?: bool } // Adapts a secret into a projected volume. // // The contents of the target Secret's Data field will be presented in a // projected volume as files using the keys in the Data field as the file // names. Note that this is identical to a secret volume source without the // default mode. #: "io.k8s.api.core.v1.SecretProjection": { // items if unspecified, each key-value pair in the Data field of the referenced // Secret will be projected into the volume as a file whose name is the key and // content is the value. If specified, the listed keys will be projected into // the specified paths, and unlisted keys will not be present. If a key is // specified which is not present in the Secret, the volume setup will error // unless it is marked optional. Paths must be relative and may not contain the // '..' path or start with '..'. "items"?: [...#."io.k8s.api.core.v1.KeyToPath"] // Name of the referent. This field is effectively required, but due to // backwards compatibility is allowed to be empty. Instances of this type with // an empty value here are almost certainly wrong. More info: // https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names "name"?: string // optional field specify whether the Secret or its key must be defined "optional"?: bool } // Adapts a Secret into a volume. // // The contents of the target Secret's Data field will be presented in a volume // as files using the keys in the Data field as the file names. Secret volumes // support ownership management and SELinux relabeling. #: "io.k8s.api.core.v1.SecretVolumeSource": { // defaultMode is Optional: mode bits used to set permissions on created files // by default. Must be an octal value between 0000 and 0777 or a decimal value // between 0 and 511. YAML accepts both octal and decimal values, JSON requires // decimal values for mode bits. Defaults to 0644. Directories within the path // are not affected by this setting. This might be in conflict with other // options that affect the file mode, like fsGroup, and the result can be other // mode bits set. "defaultMode"?: int // items If unspecified, each key-value pair in the Data field of the referenced // Secret will be projected into the volume as a file whose name is the key and // content is the value. If specified, the listed keys will be projected into // the specified paths, and unlisted keys will not be present. If a key is // specified which is not present in the Secret, the volume setup will error // unless it is marked optional. Paths must be relative and may not contain the // '..' path or start with '..'. "items"?: [...#."io.k8s.api.core.v1.KeyToPath"] // optional field specify whether the Secret or its keys must be defined "optional"?: bool // secretName is the name of the secret in the pod's namespace to use. More // info: https://kubernetes.io/docs/concepts/storage/volumes#secret "secretName"?: string } // SecurityContext holds security configuration that will be applied to a // container. Some fields are present in both SecurityContext and // PodSecurityContext. When both are set, the values in SecurityContext take // precedence. #: "io.k8s.api.core.v1.SecurityContext": { // AllowPrivilegeEscalation controls whether a process can gain more privileges // than its parent process. This bool directly controls if the no_new_privs // flag will be set on the container process. AllowPrivilegeEscalation is true // always when the container is: 1) run as Privileged 2) has CAP_SYS_ADMIN Note // that this field cannot be set when spec.os.name is windows. "allowPrivilegeEscalation"?: bool // appArmorProfile is the AppArmor options to use by this container. If set, // this profile overrides the pod's appArmorProfile. Note that this field // cannot be set when spec.os.name is windows. "appArmorProfile"?: #."io.k8s.api.core.v1.AppArmorProfile" // The capabilities to add/drop when running containers. Defaults to the default // set of capabilities granted by the container runtime. Note that this field // cannot be set when spec.os.name is windows. "capabilities"?: #."io.k8s.api.core.v1.Capabilities" // Run container in privileged mode. Processes in privileged containers are // essentially equivalent to root on the host. Defaults to false. Note that // this field cannot be set when spec.os.name is windows. "privileged"?: bool // procMount denotes the type of proc mount to use for the containers. The // default value is Default which uses the container runtime defaults for // readonly paths and masked paths. This requires the ProcMountType feature // flag to be enabled. Note that this field cannot be set when spec.os.name is // windows. "procMount"?: string // Whether this container has a read-only root filesystem. Default is false. // Note that this field cannot be set when spec.os.name is windows. "readOnlyRootFilesystem"?: bool // The GID to run the entrypoint of the container process. Uses runtime default // if unset. May also be set in PodSecurityContext. If set in both // SecurityContext and PodSecurityContext, the value specified in // SecurityContext takes precedence. Note that this field cannot be set when // spec.os.name is windows. "runAsGroup"?: int // Indicates that the container must run as a non-root user. If true, the // Kubelet will validate the image at runtime to ensure that it does not run as // UID 0 (root) and fail to start the container if it does. If unset or false, // no such validation will be performed. May also be set in PodSecurityContext. // If set in both SecurityContext and PodSecurityContext, the value specified // in SecurityContext takes precedence. "runAsNonRoot"?: bool // The UID to run the entrypoint of the container process. Defaults to user // specified in image metadata if unspecified. May also be set in // PodSecurityContext. If set in both SecurityContext and PodSecurityContext, // the value specified in SecurityContext takes precedence. Note that this // field cannot be set when spec.os.name is windows. "runAsUser"?: int // The SELinux context to be applied to the container. If unspecified, the // container runtime will allocate a random SELinux context for each container. // May also be set in PodSecurityContext. If set in both SecurityContext and // PodSecurityContext, the value specified in SecurityContext takes precedence. // Note that this field cannot be set when spec.os.name is windows. "seLinuxOptions"?: #."io.k8s.api.core.v1.SELinuxOptions" // The seccomp options to use by this container. If seccomp options are provided // at both the pod & container level, the container options override the pod // options. Note that this field cannot be set when spec.os.name is windows. "seccompProfile"?: #."io.k8s.api.core.v1.SeccompProfile" // The Windows specific settings applied to all containers. If unspecified, the // options from the PodSecurityContext will be used. If set in both // SecurityContext and PodSecurityContext, the value specified in // SecurityContext takes precedence. Note that this field cannot be set when // spec.os.name is linux. "windowsOptions"?: #."io.k8s.api.core.v1.WindowsSecurityContextOptions" } // ServiceAccountTokenProjection represents a projected service account token // volume. This projection can be used to insert a service account token into // the pods runtime filesystem for use against APIs (Kubernetes API Server or // otherwise). #: "io.k8s.api.core.v1.ServiceAccountTokenProjection": { // audience is the intended audience of the token. A recipient of a token must // identify itself with an identifier specified in the audience of the token, // and otherwise should reject the token. The audience defaults to the // identifier of the apiserver. "audience"?: string // expirationSeconds is the requested duration of validity of the service // account token. As the token approaches expiration, the kubelet volume plugin // will proactively rotate the service account token. The kubelet will start // trying to rotate the token if the token is older than 80 percent of its time // to live or if the token is older than 24 hours.Defaults to 1 hour and must // be at least 10 minutes. "expirationSeconds"?: int // path is the path relative to the mount point of the file to project the token into. "path"!: string } // ServicePort contains information on service's port. #: "io.k8s.api.core.v1.ServicePort": { // The application protocol for this port. This is used as a hint for // implementations to offer richer behavior for protocols that they understand. // This field follows standard Kubernetes label syntax. Valid values are // either: // // * Un-prefixed protocol names - reserved for IANA standard service names (as // per RFC-6335 and https://www.iana.org/assignments/service-names). // // * Kubernetes-defined prefixed names: // * 'kubernetes.io/h2c' - HTTP/2 prior knowledge over cleartext as described in // https://www.rfc-editor.org/rfc/rfc9113.html#name-starting-http-2-with-prior- // * 'kubernetes.io/ws' - WebSocket over cleartext as described in // https://www.rfc-editor.org/rfc/rfc6455 // * 'kubernetes.io/wss' - WebSocket over TLS as described in https://www.rfc-editor.org/rfc/rfc6455 // // * Other protocols should use implementation-defined prefixed names such as // mycompany.com/my-custom-protocol. "appProtocol"?: string // The name of this port within the service. This must be a DNS_LABEL. All ports // within a ServiceSpec must have unique names. When considering the endpoints // for a Service, this must match the 'name' field in the EndpointPort. // Optional if only one ServicePort is defined on this service. "name"?: string // The port on each node on which this service is exposed when type is NodePort // or LoadBalancer. Usually assigned by the system. If a value is specified, // in-range, and not in use it will be used, otherwise the operation will fail. // If not specified, a port will be allocated if this Service requires one. If // this field is specified when creating a Service which does not need it, // creation will fail. This field will be wiped when updating a Service to no // longer need it (e.g. changing type from NodePort to ClusterIP). More info: // https://kubernetes.io/docs/concepts/services-networking/service/#type-nodeport "nodePort"?: int // The port that will be exposed by this service. "port"!: int // The IP protocol for this port. Supports "TCP", "UDP", and "SCTP". Default is TCP. "protocol"?: string // Number or name of the port to access on the pods targeted by the service. // Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME. If // this is a string, it will be looked up as a named port in the target Pod's // container ports. If this is not specified, the value of the 'port' field is // used (an identity map). This field is ignored for services with // clusterIP=None, and should be omitted or set equal to the 'port' field. More // info: // https://kubernetes.io/docs/concepts/services-networking/service/#defining-a-service "targetPort"?: #."io.k8s.apimachinery.pkg.util.intstr.IntOrString" } // SleepAction describes a "sleep" action. #: { "io.k8s.api.core.v1.SleepAction": { // Seconds is the number of seconds to sleep. "seconds"!: int } } // Represents a StorageOS persistent volume resource. #: "io.k8s.api.core.v1.StorageOSVolumeSource": { // fsType is the filesystem type to mount. Must be a filesystem type supported // by the host operating system. Ex. "ext4", "xfs", "ntfs". Implicitly inferred // to be "ext4" if unspecified. "fsType"?: string // readOnly defaults to false (read/write). ReadOnly here will force the // ReadOnly setting in VolumeMounts. "readOnly"?: bool // secretRef specifies the secret to use for obtaining the StorageOS API // credentials. If not specified, default values will be attempted. "secretRef"?: #."io.k8s.api.core.v1.LocalObjectReference" // volumeName is the human-readable name of the StorageOS volume. Volume names // are only unique within a namespace. "volumeName"?: string // volumeNamespace specifies the scope of the volume within StorageOS. If no // namespace is specified then the Pod's namespace will be used. This allows // the Kubernetes name scoping to be mirrored within StorageOS for tighter // integration. Set VolumeName to any name to override the default behaviour. // Set to "default" if you are not using namespaces within StorageOS. // Namespaces that do not pre-exist within StorageOS will be created. "volumeNamespace"?: string } // Sysctl defines a kernel parameter to be set #: "io.k8s.api.core.v1.Sysctl": { // Name of a property to set "name"!: string // Value of a property to set "value"!: string } // TCPSocketAction describes an action based on opening a socket #: "io.k8s.api.core.v1.TCPSocketAction": { // Optional: Host name to connect to, defaults to the pod IP. "host"?: string // Number or name of the port to access on the container. Number must be in the // range 1 to 65535. Name must be an IANA_SVC_NAME. "port"!: #."io.k8s.apimachinery.pkg.util.intstr.IntOrString" } // The pod this Toleration is attached to tolerates any taint that matches the // triple using the matching operator . #: "io.k8s.api.core.v1.Toleration": { // Effect indicates the taint effect to match. Empty means match all taint // effects. When specified, allowed values are NoSchedule, PreferNoSchedule and // NoExecute. "effect"?: string // Key is the taint key that the toleration applies to. Empty means match all // taint keys. If the key is empty, operator must be Exists; this combination // means to match all values and all keys. "key"?: string // Operator represents a key's relationship to the value. Valid operators are // Exists and Equal. Defaults to Equal. Exists is equivalent to wildcard for // value, so that a pod can tolerate all taints of a particular category. "operator"?: string // TolerationSeconds represents the period of time the toleration (which must be // of effect NoExecute, otherwise this field is ignored) tolerates the taint. // By default, it is not set, which means tolerate the taint forever (do not // evict). Zero and negative values will be treated as 0 (evict immediately) by // the system. "tolerationSeconds"?: int // Value is the taint value the toleration matches to. If the operator is // Exists, the value should be empty, otherwise just a regular string. "value"?: string } // TypedLocalObjectReference contains enough information to let you locate the // typed referenced object inside the same namespace. #: "io.k8s.api.core.v1.TypedLocalObjectReference": { // APIGroup is the group for the resource being referenced. If APIGroup is not // specified, the specified Kind must be in the core API group. For any other // third-party types, APIGroup is required. "apiGroup"?: string // Kind is the type of resource being referenced "kind"!: string // Name is the name of resource being referenced "name"!: string } // TypedObjectReference contains enough information to let you locate the typed referenced object #: "io.k8s.api.core.v1.TypedObjectReference": { // APIGroup is the group for the resource being referenced. If APIGroup is not // specified, the specified Kind must be in the core API group. For any other // third-party types, APIGroup is required. "apiGroup"?: string // Kind is the type of resource being referenced "kind"!: string // Name is the name of resource being referenced "name"!: string // Namespace is the namespace of resource being referenced Note that when a // namespace is specified, a gateway.networking.k8s.io/ReferenceGrant object is // required in the referent namespace to allow that namespace's owner to accept // the reference. See the ReferenceGrant documentation for details. (Alpha) // This field requires the CrossNamespaceVolumeDataSource feature gate to be // enabled. "namespace"?: string } // Volume represents a named volume in a pod that may be accessed by any container in the pod. #: "io.k8s.api.core.v1.Volume": { // awsElasticBlockStore represents an AWS Disk resource that is attached to a // kubelet's host machine and then exposed to the pod. Deprecated: // AWSElasticBlockStore is deprecated. All operations for the in-tree // awsElasticBlockStore type are redirected to the ebs.csi.aws.com CSI driver. // More info: // https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore "awsElasticBlockStore"?: #."io.k8s.api.core.v1.AWSElasticBlockStoreVolumeSource" // azureDisk represents an Azure Data Disk mount on the host and bind mount to // the pod. Deprecated: AzureDisk is deprecated. All operations for the in-tree // azureDisk type are redirected to the disk.csi.azure.com CSI driver. "azureDisk"?: #."io.k8s.api.core.v1.AzureDiskVolumeSource" // azureFile represents an Azure File Service mount on the host and bind mount // to the pod. Deprecated: AzureFile is deprecated. All operations for the // in-tree azureFile type are redirected to the file.csi.azure.com CSI driver. "azureFile"?: #."io.k8s.api.core.v1.AzureFileVolumeSource" // cephFS represents a Ceph FS mount on the host that shares a pod's lifetime. // Deprecated: CephFS is deprecated and the in-tree cephfs type is no longer // supported. "cephfs"?: #."io.k8s.api.core.v1.CephFSVolumeSource" // cinder represents a cinder volume attached and mounted on kubelets host // machine. Deprecated: Cinder is deprecated. All operations for the in-tree // cinder type are redirected to the cinder.csi.openstack.org CSI driver. More // info: https://examples.k8s.io/mysql-cinder-pd/README.md "cinder"?: #."io.k8s.api.core.v1.CinderVolumeSource" // configMap represents a configMap that should populate this volume "configMap"?: #."io.k8s.api.core.v1.ConfigMapVolumeSource" // csi (Container Storage Interface) represents ephemeral storage that is // handled by certain external CSI drivers. "csi"?: #."io.k8s.api.core.v1.CSIVolumeSource" // downwardAPI represents downward API about the pod that should populate this volume "downwardAPI"?: #."io.k8s.api.core.v1.DownwardAPIVolumeSource" // emptyDir represents a temporary directory that shares a pod's lifetime. More // info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir "emptyDir"?: #."io.k8s.api.core.v1.EmptyDirVolumeSource" // ephemeral represents a volume that is handled by a cluster storage driver. // The volume's lifecycle is tied to the pod that defines it - it will be // created before the pod starts, and deleted when the pod is removed. // // Use this if: a) the volume is only needed while the pod runs, b) features of // normal volumes like restoring from snapshot or capacity // tracking are needed, // c) the storage driver is specified through a storage class, and d) the // storage driver supports dynamic volume provisioning through // a PersistentVolumeClaim (see EphemeralVolumeSource for more // information on the connection between this volume type // and PersistentVolumeClaim). // // Use PersistentVolumeClaim or one of the vendor-specific APIs for volumes that // persist for longer than the lifecycle of an individual pod. // // Use CSI for light-weight local ephemeral volumes if the CSI driver is meant // to be used that way - see the documentation of the driver for more // information. // // A pod can use both types of ephemeral volumes and persistent volumes at the same time. "ephemeral"?: #."io.k8s.api.core.v1.EphemeralVolumeSource" // fc represents a Fibre Channel resource that is attached to a kubelet's host // machine and then exposed to the pod. "fc"?: #."io.k8s.api.core.v1.FCVolumeSource" // flexVolume represents a generic volume resource that is provisioned/attached // using an exec based plugin. Deprecated: FlexVolume is deprecated. Consider // using a CSIDriver instead. "flexVolume"?: #."io.k8s.api.core.v1.FlexVolumeSource" // flocker represents a Flocker volume attached to a kubelet's host machine. // This depends on the Flocker control service being running. Deprecated: // Flocker is deprecated and the in-tree flocker type is no longer supported. "flocker"?: #."io.k8s.api.core.v1.FlockerVolumeSource" // gcePersistentDisk represents a GCE Disk resource that is attached to a // kubelet's host machine and then exposed to the pod. Deprecated: // GCEPersistentDisk is deprecated. All operations for the in-tree // gcePersistentDisk type are redirected to the pd.csi.storage.gke.io CSI // driver. More info: // https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk "gcePersistentDisk"?: #."io.k8s.api.core.v1.GCEPersistentDiskVolumeSource" // gitRepo represents a git repository at a particular revision. Deprecated: // GitRepo is deprecated. To provision a container with a git repo, mount an // EmptyDir into an InitContainer that clones the repo using git, then mount // the EmptyDir into the Pod's container. "gitRepo"?: #."io.k8s.api.core.v1.GitRepoVolumeSource" // glusterfs represents a Glusterfs mount on the host that shares a pod's // lifetime. Deprecated: Glusterfs is deprecated and the in-tree glusterfs type // is no longer supported. More info: // https://examples.k8s.io/volumes/glusterfs/README.md "glusterfs"?: #."io.k8s.api.core.v1.GlusterfsVolumeSource" // hostPath represents a pre-existing file or directory on the host machine that // is directly exposed to the container. This is generally used for system // agents or other privileged things that are allowed to see the host machine. // Most containers will NOT need this. More info: // https://kubernetes.io/docs/concepts/storage/volumes#hostpath "hostPath"?: #."io.k8s.api.core.v1.HostPathVolumeSource" // image represents an OCI object (a container image or artifact) pulled and // mounted on the kubelet's host machine. The volume is resolved at pod startup // depending on which PullPolicy value is provided: // // - Always: the kubelet always attempts to pull the reference. Container // creation will fail If the pull fails. - Never: the kubelet never pulls the // reference and only uses a local image or artifact. Container creation will // fail if the reference isn't present. - IfNotPresent: the kubelet pulls if // the reference isn't already present on disk. Container creation will fail if // the reference isn't present and the pull fails. // // The volume gets re-resolved if the pod gets deleted and recreated, which // means that new remote content will become available on pod recreation. A // failure to resolve or pull the image during pod startup will block // containers from starting and may add significant latency. Failures will be // retried using normal volume backoff and will be reported on the pod reason // and message. The types of objects that may be mounted by this volume are // defined by the container runtime implementation on a host machine and at // minimum must include all valid types supported by the container image field. // The OCI object gets mounted in a single directory // (spec.containers[*].volumeMounts.mountPath) by merging the manifest layers // in the same way as for container images. The volume will be mounted // read-only (ro) and non-executable files (noexec). Sub path mounts for // containers are not supported (spec.containers[*].volumeMounts.subpath) // before 1.33. The field spec.securityContext.fsGroupChangePolicy has no // effect on this volume type. "image"?: #."io.k8s.api.core.v1.ImageVolumeSource" // iscsi represents an ISCSI Disk resource that is attached to a kubelet's host // machine and then exposed to the pod. More info: // https://examples.k8s.io/volumes/iscsi/README.md "iscsi"?: #."io.k8s.api.core.v1.ISCSIVolumeSource" // name of the volume. Must be a DNS_LABEL and unique within the pod. More info: // https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names "name"!: string // nfs represents an NFS mount on the host that shares a pod's lifetime More // info: https://kubernetes.io/docs/concepts/storage/volumes#nfs "nfs"?: #."io.k8s.api.core.v1.NFSVolumeSource" // persistentVolumeClaimVolumeSource represents a reference to a // PersistentVolumeClaim in the same namespace. More info: // https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims "persistentVolumeClaim"?: #."io.k8s.api.core.v1.PersistentVolumeClaimVolumeSource" // photonPersistentDisk represents a PhotonController persistent disk attached // and mounted on kubelets host machine. Deprecated: PhotonPersistentDisk is // deprecated and the in-tree photonPersistentDisk type is no longer supported. "photonPersistentDisk"?: #."io.k8s.api.core.v1.PhotonPersistentDiskVolumeSource" // portworxVolume represents a portworx volume attached and mounted on kubelets // host machine. Deprecated: PortworxVolume is deprecated. All operations for // the in-tree portworxVolume type are redirected to the pxd.portworx.com CSI // driver when the CSIMigrationPortworx feature-gate is on. "portworxVolume"?: #."io.k8s.api.core.v1.PortworxVolumeSource" // projected items for all in one resources secrets, configmaps, and downward API "projected"?: #."io.k8s.api.core.v1.ProjectedVolumeSource" // quobyte represents a Quobyte mount on the host that shares a pod's lifetime. // Deprecated: Quobyte is deprecated and the in-tree quobyte type is no longer // supported. "quobyte"?: #."io.k8s.api.core.v1.QuobyteVolumeSource" // rbd represents a Rados Block Device mount on the host that shares a pod's // lifetime. Deprecated: RBD is deprecated and the in-tree rbd type is no // longer supported. More info: https://examples.k8s.io/volumes/rbd/README.md "rbd"?: #."io.k8s.api.core.v1.RBDVolumeSource" // scaleIO represents a ScaleIO persistent volume attached and mounted on // Kubernetes nodes. Deprecated: ScaleIO is deprecated and the in-tree scaleIO // type is no longer supported. "scaleIO"?: #."io.k8s.api.core.v1.ScaleIOVolumeSource" // secret represents a secret that should populate this volume. More info: // https://kubernetes.io/docs/concepts/storage/volumes#secret "secret"?: #."io.k8s.api.core.v1.SecretVolumeSource" // storageOS represents a StorageOS volume attached and mounted on Kubernetes // nodes. Deprecated: StorageOS is deprecated and the in-tree storageos type is // no longer supported. "storageos"?: #."io.k8s.api.core.v1.StorageOSVolumeSource" // vsphereVolume represents a vSphere volume attached and mounted on kubelets // host machine. Deprecated: VsphereVolume is deprecated. All operations for // the in-tree vsphereVolume type are redirected to the csi.vsphere.vmware.com // CSI driver. "vsphereVolume"?: #."io.k8s.api.core.v1.VsphereVirtualDiskVolumeSource" } // volumeDevice describes a mapping of a raw block device within a container. #: "io.k8s.api.core.v1.VolumeDevice": { // devicePath is the path inside of the container that the device will be mapped to. "devicePath"!: string // name must match the name of a persistentVolumeClaim in the pod "name"!: string } // VolumeMount describes a mounting of a Volume within a container. #: "io.k8s.api.core.v1.VolumeMount": { // Path within the container at which the volume should be mounted. Must not contain ':'. "mountPath"!: string // mountPropagation determines how mounts are propagated from the host to // container and the other way around. When not set, MountPropagationNone is // used. This field is beta in 1.10. When RecursiveReadOnly is set to // IfPossible or to Enabled, MountPropagation must be None or unspecified // (which defaults to None). "mountPropagation"?: string // This must match the Name of a Volume. "name"!: string // Mounted read-only if true, read-write otherwise (false or unspecified). Defaults to false. "readOnly"?: bool // RecursiveReadOnly specifies whether read-only mounts should be handled recursively. // // If ReadOnly is false, this field has no meaning and must be unspecified. // // If ReadOnly is true, and this field is set to Disabled, the mount is not made // recursively read-only. If this field is set to IfPossible, the mount is made // recursively read-only, if it is supported by the container runtime. If this // field is set to Enabled, the mount is made recursively read-only if it is // supported by the container runtime, otherwise the pod will not be started // and an error will be generated to indicate the reason. // // If this field is set to IfPossible or Enabled, MountPropagation must be set // to None (or be unspecified, which defaults to None). // // If this field is not specified, it is treated as an equivalent of Disabled. "recursiveReadOnly"?: string // Path within the volume from which the container's volume should be mounted. // Defaults to "" (volume's root). "subPath"?: string // Expanded path within the volume from which the container's volume should be // mounted. Behaves similarly to SubPath but environment variable references // $(VAR_NAME) are expanded using the container's environment. Defaults to "" // (volume's root). SubPathExpr and SubPath are mutually exclusive. "subPathExpr"?: string } // Projection that may be projected along with other supported volume types. // Exactly one of these fields must be set. #: "io.k8s.api.core.v1.VolumeProjection": { // ClusterTrustBundle allows a pod to access the `.spec.trustBundle` field of // ClusterTrustBundle objects in an auto-updating file. // // Alpha, gated by the ClusterTrustBundleProjection feature gate. // // ClusterTrustBundle objects can either be selected by name, or by the // combination of signer name and a label selector. // // Kubelet performs aggressive normalization of the PEM contents written into // the pod filesystem. Esoteric PEM features such as inter-block comments and // block headers are stripped. Certificates are deduplicated. The ordering of // certificates within the file is arbitrary, and Kubelet may change the order // over time. "clusterTrustBundle"?: #."io.k8s.api.core.v1.ClusterTrustBundleProjection" // configMap information about the configMap data to project "configMap"?: #."io.k8s.api.core.v1.ConfigMapProjection" // downwardAPI information about the downwardAPI data to project "downwardAPI"?: #."io.k8s.api.core.v1.DownwardAPIProjection" // secret information about the secret data to project "secret"?: #."io.k8s.api.core.v1.SecretProjection" // serviceAccountToken is information about the serviceAccountToken data to project "serviceAccountToken"?: #."io.k8s.api.core.v1.ServiceAccountTokenProjection" } // VolumeResourceRequirements describes the storage resource requirements for a volume. #: "io.k8s.api.core.v1.VolumeResourceRequirements": { // Limits describes the maximum amount of compute resources allowed. More info: // https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/ "limits"?: [string]: #."io.k8s.apimachinery.pkg.api.resource.Quantity" // Requests describes the minimum amount of compute resources required. If // Requests is omitted for a container, it defaults to Limits if that is // explicitly specified, otherwise to an implementation-defined value. Requests // cannot exceed Limits. More info: // https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/ "requests"?: [string]: #."io.k8s.apimachinery.pkg.api.resource.Quantity" } // Represents a vSphere volume resource. #: "io.k8s.api.core.v1.VsphereVirtualDiskVolumeSource": { // fsType is filesystem type to mount. Must be a filesystem type supported by // the host operating system. Ex. "ext4", "xfs", "ntfs". Implicitly inferred to // be "ext4" if unspecified. "fsType"?: string // storagePolicyID is the storage Policy Based Management (SPBM) profile ID // associated with the StoragePolicyName. "storagePolicyID"?: string // storagePolicyName is the storage Policy Based Management (SPBM) profile name. "storagePolicyName"?: string // volumePath is the path that identifies vSphere volume vmdk "volumePath"!: string } // The weights of all of the matched WeightedPodAffinityTerm fields are added // per-node to find the most preferred node(s) #: "io.k8s.api.core.v1.WeightedPodAffinityTerm": { // Required. A pod affinity term, associated with the corresponding weight. "podAffinityTerm"!: #."io.k8s.api.core.v1.PodAffinityTerm" // weight associated with matching the corresponding podAffinityTerm, in the range 1-100. "weight"!: int } // WindowsSecurityContextOptions contain Windows-specific options and credentials. #: "io.k8s.api.core.v1.WindowsSecurityContextOptions": { // GMSACredentialSpec is where the GMSA admission webhook // (https://github.com/kubernetes-sigs/windows-gmsa) inlines the contents of // the GMSA credential spec named by the GMSACredentialSpecName field. "gmsaCredentialSpec"?: string // GMSACredentialSpecName is the name of the GMSA credential spec to use. "gmsaCredentialSpecName"?: string // HostProcess determines if a container should be run as a 'Host Process' // container. All of a Pod's containers must have the same effective // HostProcess value (it is not allowed to have a mix of HostProcess containers // and non-HostProcess containers). In addition, if HostProcess is true then // HostNetwork must also be set to true. "hostProcess"?: bool // The UserName in Windows to run the entrypoint of the container process. // Defaults to the user specified in image metadata if unspecified. May also be // set in PodSecurityContext. If set in both SecurityContext and // PodSecurityContext, the value specified in SecurityContext takes precedence. "runAsUserName"?: string } // PodDisruptionBudgetSpec is a description of a PodDisruptionBudget. #: "io.k8s.api.policy.v1.PodDisruptionBudgetSpec": { // An eviction is allowed if at most "maxUnavailable" pods selected by // "selector" are unavailable after the eviction, i.e. even in absence of the // evicted pod. For example, one can prevent all voluntary evictions by // specifying 0. This is a mutually exclusive setting with "minAvailable". "maxUnavailable"?: #."io.k8s.apimachinery.pkg.util.intstr.IntOrString" // An eviction is allowed if at least "minAvailable" pods selected by "selector" // will still be available after the eviction, i.e. even in the absence of the // evicted pod. So for example you can prevent all voluntary evictions by // specifying "100%". "minAvailable"?: #."io.k8s.apimachinery.pkg.util.intstr.IntOrString" // Label query over pods whose evictions are managed by the disruption budget. A // null selector will match no pods, while an empty ({}) selector will select // all pods within the namespace. "selector"?: #."io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector" // UnhealthyPodEvictionPolicy defines the criteria for when unhealthy pods // should be considered for eviction. Current implementation considers healthy // pods, as pods that have status.conditions item with // type="Ready",status="True". // // Valid policies are IfHealthyBudget and AlwaysAllow. If no policy is // specified, the default behavior will be used, which corresponds to the // IfHealthyBudget policy. // // IfHealthyBudget policy means that running pods (status.phase="Running"), but // not yet healthy can be evicted only if the guarded application is not // disrupted (status.currentHealthy is at least equal to // status.desiredHealthy). Healthy pods will be subject to the PDB for // eviction. // // AlwaysAllow policy means that all running pods (status.phase="Running"), but // not yet healthy are considered disrupted and can be evicted regardless of // whether the criteria in a PDB is met. This means perspective running pods of // a disrupted application might not get a chance to become healthy. Healthy // pods will be subject to the PDB for eviction. // // Additional policies may be added in the future. Clients making eviction // decisions should disallow eviction of unhealthy pods if they encounter an // unrecognized policy in this field. "unhealthyPodEvictionPolicy"?: string } // Quantity is a fixed-point representation of a number. It provides convenient // marshaling/unmarshaling in JSON and YAML, in addition to String() and // AsInt64() accessors. // // The serialization format is: // // ``` ::= // // (Note that may be empty, from the "" case in .) // // ::= 0 | 1 | ... | 9 ::= | // ::= | . | . | . ::= "+" | // "-" ::= | ::= | // | ::= Ki | Mi | Gi | Ti | Pi | Ei // // (International System of units; See: http://physics.nist.gov/cuu/Units/binary.html) // // ::= m | "" | k | M | G | T | P | E // // (Note that 1024 = 1Ki but 1000 = 1k; I didn't choose the capitalization.) // // ::= "e" | "E" ``` // // No matter which of the three exponent forms is used, no quantity may // represent a number greater than 2^63-1 in magnitude, nor may it have more // than 3 decimal places. Numbers larger or more precise will be capped or // rounded up. (E.g.: 0.1m will rounded up to 1m.) This may be extended in the // future if we require larger or smaller quantities. // // When a Quantity is parsed from a string, it will remember the type of suffix // it had, and will use the same type again when it is serialized. // // Before serializing, Quantity will be put in "canonical form". This means that // Exponent/suffix will be adjusted up or down (with a corresponding increase // or decrease in Mantissa) such that: // // - No precision is lost - No fractional digits will be emitted - The exponent // (or suffix) is as large as possible. // // The sign will be omitted unless the number is negative. // // Examples: // // - 1.5 will be serialized as "1500m" - 1.5Gi will be serialized as "1536Mi" // // Note that the quantity will NEVER be internally represented by a floating // point number. That is the whole point of this exercise. // // Non-canonical values will still parse as long as they are well formed, but // will be re-emitted in their canonical form. (So always use canonical form, // or don't diff.) // // This format is intended to make it difficult to use these numbers without // writing some sort of special handling code in the hopes that that will cause // implementors to also use a fixed point implementation. #: "io.k8s.apimachinery.pkg.api.resource.Quantity": string // CreateOptions may be provided when creating an API object. #: "io.k8s.apimachinery.pkg.apis.meta.v1.CreateOptions": { // When present, indicates that modifications should not be // persisted. An invalid or unrecognized dryRun directive will // result in an error response and no further processing of the // request. Valid values are: // - All: all dry run stages will be processed // +optional // +listType=atomic "dryRun"?: [...string] // fieldManager is a name associated with the actor or entity // that is making these changes. The value must be less than or // 128 characters long, and only contain printable characters, // as defined by https://golang.org/pkg/unicode/#IsPrint. // +optional "fieldManager"?: string // fieldValidation instructs the server on how to handle // objects in the request (POST/PUT/PATCH) containing unknown // or duplicate fields. Valid values are: // - Ignore: This will ignore any unknown fields that are silently // dropped from the object, and will ignore all but the last duplicate // field that the decoder encounters. This is the default behavior // prior to v1.23. // - Warn: This will send a warning via the standard warning response // header for each unknown field that is dropped from the object, and // for each duplicate field that is encountered. The request will // still succeed if there are no other errors, and will only persist // the last of any duplicate fields. This is the default in v1.23+ // - Strict: This will fail the request with a BadRequest error if // any unknown fields would be dropped from the object, or if any // duplicate fields are present. The error returned from the server // will contain all unknown and duplicate fields encountered. // +optional "fieldValidation"?: string } // FieldsV1 stores a set of fields in a data structure like a Trie, in JSON format. // // Each key is either a '.' representing the field itself, and will always map // to an empty set, or a string representing a sub-field or item. The string // will follow one of these four formats: 'f:', where is the name // of a field in a struct, or key in a map 'v:', where is the // exact json formatted value of a list item 'i:', where is // position of a item in a list 'k:', where is a map of a list // item's key fields to their unique values If a key maps to an empty Fields // value, the field that key represents is part of the set. // // The exact format is defined in sigs.k8s.io/structured-merge-diff #: "io.k8s.apimachinery.pkg.apis.meta.v1.FieldsV1": {} // GroupVersionResource unambiguously identifies a resource. It doesn't // anonymously include GroupVersion // to avoid automatic coercion. It doesn't use a GroupVersion to avoid custom marshalling // // +protobuf.options.(gogoproto.goproto_stringer)=false #: "io.k8s.apimachinery.pkg.apis.meta.v1.GroupVersionResource": { "group"?: string "resource"?: string "version"?: string } // A label selector is a label query over a set of resources. The result of // matchLabels and matchExpressions are ANDed. An empty label selector matches // all objects. A null label selector matches no objects. #: "io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector": { // matchExpressions is a list of label selector requirements. The requirements are ANDed. "matchExpressions"?: [...#."io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelectorRequirement"] // matchLabels is a map of {key,value} pairs. A single {key,value} in the // matchLabels map is equivalent to an element of matchExpressions, whose key // field is "key", the operator is "In", and the values array contains only // "value". The requirements are ANDed. "matchLabels"?: [string]: string } // A label selector requirement is a selector that contains values, a key, and // an operator that relates the key and values. #: "io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelectorRequirement": { // key is the label key that the selector applies to. "key"!: string // operator represents a key's relationship to a set of values. Valid operators // are In, NotIn, Exists and DoesNotExist. "operator"!: string // values is an array of string values. If the operator is In or NotIn, the // values array must be non-empty. If the operator is Exists or DoesNotExist, // the values array must be empty. This array is replaced during a strategic // merge patch. "values"?: [...string] } // ListMeta describes metadata that synthetic resources must have, including // lists and various status objects. A resource may have only one of // {ObjectMeta, ListMeta}. #: "io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta": { // continue may be set if the user set a limit on the number of items returned, // and indicates that the server has more data available. The value is opaque // and may be used to issue another request to the endpoint that served this // list to retrieve the next set of available objects. Continuing a consistent // list may not be possible if the server configuration has changed or more // than a few minutes have passed. The resourceVersion field returned when // using this continue value will be identical to the value in the first // response, unless you have received this token from an error message. "continue"?: string // remainingItemCount is the number of subsequent items in the list which are // not included in this list response. If the list request contained label or // field selectors, then the number of remaining items is unknown and the field // will be left unset and omitted during serialization. If the list is complete // (either because it is not chunking or because this is the last chunk), then // there are no more remaining items and this field will be left unset and // omitted during serialization. Servers older than v1.15 do not set this // field. The intended use of the remainingItemCount is *estimating* the size // of a collection. Clients should not rely on the remainingItemCount to be set // or to be exact. "remainingItemCount"?: int // String that identifies the server's internal version of this object that can // be used by clients to determine when objects have changed. Value must be // treated as opaque by clients and passed unmodified back to the server. // Populated by the system. Read-only. More info: // https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency "resourceVersion"?: string // Deprecated: selfLink is a legacy read-only field that is no longer populated by the system. "selfLink"?: string } // ManagedFieldsEntry is a workflow-id, a FieldSet and the group version of the // resource that the fieldset applies to. #: "io.k8s.apimachinery.pkg.apis.meta.v1.ManagedFieldsEntry": { // APIVersion defines the version of this resource that this field set applies // to. The format is "group/version" just like the top-level APIVersion field. // It is necessary to track the version of a field set because it cannot be // automatically converted. "apiVersion"?: string // FieldsType is the discriminator for the different fields format and version. // There is currently only one possible value: "FieldsV1" "fieldsType"?: string // FieldsV1 holds the first JSON version format as described in the "FieldsV1" type. "fieldsV1"?: #."io.k8s.apimachinery.pkg.apis.meta.v1.FieldsV1" // Manager is an identifier of the workflow managing these fields. "manager"?: string // Operation is the type of operation which lead to this ManagedFieldsEntry // being created. The only valid values for this field are 'Apply' and // 'Update'. "operation"?: string // Subresource is the name of the subresource used to update that object, or // empty string if the object was updated through the main resource. The value // of this field is used to distinguish between managers, even if they share // the same name. For example, a status update will be distinct from a regular // update using the same manager name. Note that the APIVersion field is not // related to the Subresource field and it always corresponds to the version of // the main resource. "subresource"?: string // Time is the timestamp of when the ManagedFields entry was added. The // timestamp will also be updated if a field is added, the manager changes any // of the owned fields value or removes a field. The timestamp does not update // when a field is removed from the entry because another manager took it over. "time"?: #."io.k8s.apimachinery.pkg.apis.meta.v1.Time" } // MicroTime is version of Time with microsecond level precision. #: "io.k8s.apimachinery.pkg.apis.meta.v1.MicroTime": time.Time // ObjectMeta is metadata that all persisted resources must have, which includes // all objects users must create. #: "io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta": { // Annotations is an unstructured key value map stored with a resource that may // be set by external tools to store and retrieve arbitrary metadata. They are // not queryable and should be preserved when modifying objects. More info: // https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations "annotations"?: [string]: string // CreationTimestamp is a timestamp representing the server time when this // object was created. It is not guaranteed to be set in happens-before order // across separate operations. Clients may not set this value. It is // represented in RFC3339 form and is in UTC. // // Populated by the system. Read-only. Null for lists. More info: // https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata "creationTimestamp"?: #."io.k8s.apimachinery.pkg.apis.meta.v1.Time" // Number of seconds allowed for this object to gracefully terminate before it // will be removed from the system. Only set when deletionTimestamp is also // set. May only be shortened. Read-only. "deletionGracePeriodSeconds"?: int // DeletionTimestamp is RFC 3339 date and time at which this resource will be // deleted. This field is set by the server when a graceful deletion is // requested by the user, and is not directly settable by a client. The // resource is expected to be deleted (no longer visible from resource lists, // and not reachable by name) after the time in this field, once the finalizers // list is empty. As long as the finalizers list contains items, deletion is // blocked. Once the deletionTimestamp is set, this value may not be unset or // be set further into the future, although it may be shortened or the resource // may be deleted prior to this time. For example, a user may request that a // pod is deleted in 30 seconds. The Kubelet will react by sending a graceful // termination signal to the containers in the pod. After that 30 seconds, the // Kubelet will send a hard termination signal (SIGKILL) to the container and // after cleanup, remove the pod from the API. In the presence of network // partitions, this object may still exist after this timestamp, until an // administrator or automated process can determine the resource is fully // terminated. If not set, graceful deletion of the object has not been // requested. // // Populated by the system when a graceful deletion is requested. Read-only. // More info: // https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata "deletionTimestamp"?: #."io.k8s.apimachinery.pkg.apis.meta.v1.Time" // Must be empty before the object is deleted from the registry. Each entry is // an identifier for the responsible component that will remove the entry from // the list. If the deletionTimestamp of the object is non-nil, entries in this // list can only be removed. Finalizers may be processed and removed in any // order. Order is NOT enforced because it introduces significant risk of stuck // finalizers. finalizers is a shared field, any actor with permission can // reorder it. If the finalizer list is processed in order, then this can lead // to a situation in which the component responsible for the first finalizer in // the list is waiting for a signal (field value, external system, or other) // produced by a component responsible for a finalizer later in the list, // resulting in a deadlock. Without enforced ordering finalizers are free to // order amongst themselves and are not vulnerable to ordering changes in the // list. "finalizers"?: [...string] // GenerateName is an optional prefix, used by the server, to generate a unique // name ONLY IF the Name field has not been provided. If this field is used, // the name returned to the client will be different than the name passed. This // value will also be combined with a unique suffix. The provided value has the // same validation rules as the Name field, and may be truncated by the length // of the suffix required to make the value unique on the server. // // If this field is specified and the generated name exists, the server will return a 409. // // Applied only if Name is not specified. More info: // https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#idempotency "generateName"?: string // A sequence number representing a specific generation of the desired state. // Populated by the system. Read-only. "generation"?: int // Map of string keys and values that can be used to organize and categorize // (scope and select) objects. May match selectors of replication controllers // and services. More info: // https://kubernetes.io/docs/concepts/overview/working-with-objects/labels "labels"?: [string]: string // ManagedFields maps workflow-id and version to the set of fields that are // managed by that workflow. This is mostly for internal housekeeping, and // users typically shouldn't need to set or understand this field. A workflow // can be the user's name, a controller's name, or the name of a specific apply // path like "ci-cd". The set of fields is always in the version that the // workflow used when modifying the object. "managedFields"?: [...#."io.k8s.apimachinery.pkg.apis.meta.v1.ManagedFieldsEntry"] // Name must be unique within a namespace. Is required when creating resources, // although some resources may allow a client to request the generation of an // appropriate name automatically. Name is primarily intended for creation // idempotence and configuration definition. Cannot be updated. More info: // https://kubernetes.io/docs/concepts/overview/working-with-objects/names#names "name"?: string // Namespace defines the space within which each name must be unique. An empty // namespace is equivalent to the "default" namespace, but "default" is the // canonical representation. Not all objects are required to be scoped to a // namespace - the value of this field for those objects will be empty. // // Must be a DNS_LABEL. Cannot be updated. More info: // https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces "namespace"?: string // List of objects depended by this object. If ALL objects in the list have been // deleted, this object will be garbage collected. If this object is managed by // a controller, then an entry in this list will point to this controller, with // the controller field set to true. There cannot be more than one managing // controller. "ownerReferences"?: [...#."io.k8s.apimachinery.pkg.apis.meta.v1.OwnerReference"] // An opaque value that represents the internal version of this object that can // be used by clients to determine when objects have changed. May be used for // optimistic concurrency, change detection, and the watch operation on a // resource or set of resources. Clients must treat these values as opaque and // passed unmodified back to the server. They may only be valid for a // particular resource or set of resources. // // Populated by the system. Read-only. Value must be treated as opaque by // clients and . More info: // https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency "resourceVersion"?: string // Deprecated: selfLink is a legacy read-only field that is no longer populated by the system. "selfLink"?: string // UID is the unique in time and space value for this object. It is typically // generated by the server on successful creation of a resource and is not // allowed to change on PUT operations. // // Populated by the system. Read-only. More info: // https://kubernetes.io/docs/concepts/overview/working-with-objects/names#uids "uid"?: string } // OwnerReference contains enough information to let you identify an owning // object. An owning object must be in the same namespace as the dependent, or // be cluster-scoped, so there is no namespace field. #: "io.k8s.apimachinery.pkg.apis.meta.v1.OwnerReference": { // API version of the referent. "apiVersion"!: string // If true, AND if the owner has the "foregroundDeletion" finalizer, then the // owner cannot be deleted from the key-value store until this reference is // removed. See // https://kubernetes.io/docs/concepts/architecture/garbage-collection/#foreground-deletion // for how the garbage collector interacts with this field and enforces the // foreground deletion. Defaults to false. To set this field, a user needs // "delete" permission of the owner, otherwise 422 (Unprocessable Entity) will // be returned. "blockOwnerDeletion"?: bool // If true, this reference points to the managing controller. "controller"?: bool // Kind of the referent. More info: // https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds "kind"!: string // Name of the referent. More info: // https://kubernetes.io/docs/concepts/overview/working-with-objects/names#names "name"!: string // UID of the referent. More info: // https://kubernetes.io/docs/concepts/overview/working-with-objects/names#uids "uid"!: string } // Time is a wrapper around time.Time which supports correct marshaling to YAML // and JSON. Wrappers are provided for many of the factory methods that the // time package offers. #: "io.k8s.apimachinery.pkg.apis.meta.v1.Time": time.Time #: "io.k8s.apimachinery.pkg.util.intstr.IntOrString": string #: "sensor.CreateSensorRequest": { "createOptions"?: #."io.k8s.apimachinery.pkg.apis.meta.v1.CreateOptions" "namespace"?: string "sensor"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.Sensor" } #: "sensor.DeleteSensorResponse": {} // structured log entry #: "sensor.LogEntry": { // optional - trigger dependency name "dependencyName"?: string // optional - Cloud Event context "eventContext"?: string "level"?: string "msg"?: string "namespace"?: string "sensorName"?: string "time"?: #."io.k8s.apimachinery.pkg.apis.meta.v1.Time" // optional - any trigger name "triggerName"?: string } #: "sensor.SensorWatchEvent": { "object"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.Sensor" "type"?: string } #: "sensor.UpdateSensorRequest": { "name"?: string "namespace"?: string "sensor"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.Sensor" } #: "sync.CreateSyncLimitRequest": { "cmName"?: string "key"?: string "limit"?: int "namespace"?: string "type"?: #."sync.SyncConfigType" } #: "sync.DeleteSyncLimitResponse": {} #: "sync.SyncConfigType": "CONFIGMAP" | "DATABASE" #: "sync.SyncLimitResponse": { "cmName"?: string "key"?: string "limit"?: int "namespace"?: string "type"?: #."sync.SyncConfigType" } #: "sync.UpdateSyncLimitRequest": { "cmName"?: string "key"?: string "limit"?: int "namespace"?: string "type"?: #."sync.SyncConfigType" } }