--- apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: controller-gen.kubebuilder.io/version: v0.18.0 name: watchoperations.ops.crossplane.io spec: group: ops.crossplane.io names: categories: - crossplane kind: WatchOperation listKind: WatchOperationList plural: watchoperations shortNames: - watchops singular: watchoperation scope: Cluster versions: - additionalPrinterColumns: - jsonPath: .spec.watch.kind name: KIND type: string - jsonPath: .status.watchingResources name: COUNT type: integer - jsonPath: .status.conditions[?(@.type=='Synced')].status name: SYNCED type: string - jsonPath: .status.conditions[?(@.type=='Watching')].status name: WATCHING type: string - jsonPath: .status.lastScheduleTime name: LAST SCHEDULE type: date - jsonPath: .status.lastSuccessfulTime name: LAST SUCCESS type: date - jsonPath: .metadata.creationTimestamp name: AGE type: date name: v1alpha1 schema: openAPIV3Schema: description: A WatchOperation creates Operations when watched resources change. properties: apiVersion: description: |- 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 type: string kind: description: |- 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 type: string metadata: type: object spec: description: WatchOperationSpec specifies the desired state of a WatchOperation. properties: concurrencyPolicy: default: Allow description: |- ConcurrencyPolicy specifies how to treat concurrent executions of an operation. enum: - Allow - Forbid - Replace type: string failedHistoryLimit: default: 1 description: FailedHistoryLimit is the number of failed Operations to retain. format: int32 type: integer operationTemplate: description: OperationTemplate is the template for the Operation to be created. properties: metadata: description: Standard object metadata. type: object spec: description: Spec is the specification of the Operation to be created. properties: mode: default: Pipeline description: |- Mode controls what type or "mode" of operation will be used. "Pipeline" indicates that an Operation specifies a pipeline of functions, each of which is responsible for implementing its logic. enum: - Pipeline type: string pipeline: description: |- Pipeline is a list of operation function steps that will be used when this operation runs. items: description: A PipelineStep in an operation function pipeline. properties: credentials: description: Credentials are optional credentials that the operation function needs. items: description: |- FunctionCredentials are optional credentials that a function needs to run. properties: name: description: Name of this set of credentials. type: string secretRef: description: |- A SecretRef is a reference to a secret containing credentials that should be supplied to the function. properties: name: description: Name of the secret. type: string namespace: description: Namespace of the secret. type: string required: - name - namespace type: object source: description: Source of the function credentials. enum: - None - Secret type: string required: - name - source type: object type: array x-kubernetes-list-map-keys: - name x-kubernetes-list-type: map functionRef: description: |- FunctionRef is a reference to the function this step should execute. properties: name: description: Name of the referenced function. type: string required: - name type: object input: description: |- Input is an optional, arbitrary Kubernetes resource (i.e. a resource with an apiVersion and kind) that will be passed to the unction as the 'input' of its RunFunctionRequest. type: object x-kubernetes-embedded-resource: true x-kubernetes-preserve-unknown-fields: true requirements: description: |- Requirements are resource requirements that will be satisfied before this pipeline step is called for the first time. This allows pre-populating required resources without requiring a function to request them first. properties: requiredResources: description: |- RequiredResources that will be fetched before this pipeline step is called for the first time. items: description: |- RequiredResourceSelector selects resources that should be fetched before a pipeline step runs. properties: apiVersion: description: APIVersion of resources to select. type: string kind: description: Kind of resources to select. type: string matchLabels: additionalProperties: type: string description: |- MatchLabels matches resources by label selector. Only one of Name or MatchLabels may be specified. type: object name: description: |- Name matches a single resource by name. Only one of Name or MatchLabels may be specified. type: string namespace: description: Namespace to search for resources. Optional for cluster-scoped resources. type: string requirementName: description: |- RequirementName uniquely identifies this group of resources. This name will be used as the key in RunFunctionRequest.required_resources. type: string required: - apiVersion - kind - requirementName type: object x-kubernetes-validations: - message: Either name or matchLabels must be specified, but not both rule: (has(self.name) && !has(self.matchLabels)) || (!has(self.name) && has(self.matchLabels)) type: array x-kubernetes-list-map-keys: - requirementName x-kubernetes-list-type: map type: object step: description: Step name. Must be unique within its Pipeline. type: string required: - functionRef - step type: object maxItems: 99 minItems: 1 type: array x-kubernetes-list-map-keys: - step x-kubernetes-list-type: map retryLimit: description: |- RetryLimit configures how many times the operation may fail. When the failure limit is exceeded, the operation will not be retried. format: int64 type: integer required: - mode - pipeline type: object required: - spec type: object successfulHistoryLimit: default: 3 description: SuccessfulHistoryLimit is the number of successful Operations to retain. format: int32 type: integer watch: description: Watch specifies the resource to watch. properties: apiVersion: description: APIVersion of the resource to watch. type: string x-kubernetes-validations: - message: apiVersion is immutable rule: self == oldSelf kind: description: Kind of the resource to watch. type: string x-kubernetes-validations: - message: kind is immutable rule: self == oldSelf matchLabels: additionalProperties: type: string description: |- MatchLabels selects resources by label. If empty, all resources of the specified kind are watched. type: object namespace: description: |- Namespace selects resources in a specific namespace. If empty, all namespaces are watched. Only applicable for namespaced resources. type: string required: - apiVersion - kind type: object required: - operationTemplate - watch type: object status: description: WatchOperationStatus represents the observed state of a WatchOperation. properties: conditions: description: Conditions of the resource. items: description: A Condition that may apply to a resource. properties: lastTransitionTime: description: |- LastTransitionTime is the last time this condition transitioned from one status to another. format: date-time type: string message: description: |- A Message containing details about this condition's last transition from one status to another, if any. type: string observedGeneration: description: |- ObservedGeneration represents the .metadata.generation that the condition was set based upon. For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date with respect to the current state of the instance. format: int64 type: integer reason: description: A Reason for this condition's last transition from one status to another. type: string status: description: Status of this condition; is it currently True, False, or Unknown? type: string type: description: |- Type of this condition. At most one of each condition type may apply to a resource at any point in time. type: string required: - lastTransitionTime - reason - status - type type: object type: array x-kubernetes-list-map-keys: - type x-kubernetes-list-type: map lastScheduleTime: description: |- LastScheduleTime is the last time the WatchOperation created an Operation. format: date-time type: string lastSuccessfulTime: description: |- LastSuccessfulTime is the last time the WatchOperation successfully completed an Operation. format: date-time type: string runningOperationRefs: description: RunningOperationRefs is a list of currently running Operations. items: description: A RunningOperationRef is a reference to a running operation. properties: name: description: Name of the active operation. type: string required: - name type: object type: array watchingResources: description: |- WatchingResources is the number of resources this WatchOperation is currently watching. format: int64 type: integer type: object type: object served: true storage: true subresources: status: {}