Repository for dip
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

350 lines
15 KiB

{{- if .Values.omjobOperator.enabled }}
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
name: cronomjobs.pipelines.openmetadata.org
spec:
group: pipelines.openmetadata.org
versions:
- name: v1
served: true
storage: true
schema:
openAPIV3Schema:
type: object
properties:
spec:
type: object
properties:
schedule:
type: string
description: "Cron schedule expression"
timeZone:
type: string
description: "Time zone for the schedule (default UTC)"
default: "UTC"
suspend:
type: boolean
description: "Whether to suspend scheduling"
default: false
startingDeadlineSeconds:
type: integer
description: "Deadline for starting the job if missed"
successfulJobsHistoryLimit:
type: integer
description: "Number of successful jobs to keep"
default: 3
failedJobsHistoryLimit:
type: integer
description: "Number of failed jobs to keep"
default: 3
omJobSpec:
type: object
description: "OMJob template to create for each scheduled run"
properties:
mainPodSpec:
type: object
description: "Pod specification for the main ingestion job"
properties:
image:
type: string
description: "Container image for the ingestion job"
imagePullPolicy:
type: string
description: "Image pull policy"
enum: ["Always", "Never", "IfNotPresent"]
default: "IfNotPresent"
imagePullSecrets:
type: array
items:
type: object
properties:
name:
type: string
serviceAccountName:
type: string
description: "Service account name for the pod"
command:
type: array
items:
type: string
description: "Command to execute in the container"
env:
type: array
items:
type: object
properties:
name:
type: string
description: "Name of the environment variable"
value:
type: string
description: "Direct value of the environment variable"
valueFrom:
type: object
description: "Source for the environment variable value"
properties:
configMapKeyRef:
type: object
description: "Reference to a key in a ConfigMap"
properties:
name:
type: string
description: "Name of the ConfigMap"
key:
type: string
description: "Key in the ConfigMap"
optional:
type: boolean
description: "Whether the ConfigMap must exist"
required:
- name
- key
secretKeyRef:
type: object
description: "Reference to a key in a Secret"
properties:
name:
type: string
description: "Name of the Secret"
key:
type: string
description: "Key in the Secret"
optional:
type: boolean
description: "Whether the Secret must exist"
required:
- name
- key
fieldRef:
type: object
description: "Reference to a field in the pod"
properties:
apiVersion:
type: string
description: "API version of the field reference"
fieldPath:
type: string
description: "Path to the field"
required:
- fieldPath
resourceFieldRef:
type: object
description: "Reference to a resource field"
properties:
containerName:
type: string
description: "Name of the container"
resource:
type: string
description: "Resource to select"
divisor:
type: string
description: "Divisor for the resource"
required:
- resource
required:
- name
resources:
type: object
properties:
requests:
type: object
additionalProperties:
type: string
limits:
type: object
additionalProperties:
type: string
description: "Resource requirements for the container"
nodeSelector:
type: object
additionalProperties:
type: string
securityContext:
type: object
x-kubernetes-preserve-unknown-fields: true
description: "Security context for the pod"
labels:
type: object
additionalProperties:
type: string
annotations:
type: object
additionalProperties:
type: string
required: ["image", "serviceAccountName", "command"]
exitHandlerSpec:
type: object
description: "Pod specification for the exit handler job (runs after main pod completes)"
properties:
image:
type: string
description: "Container image for the exit handler"
imagePullPolicy:
type: string
description: "Image pull policy"
enum: ["Always", "Never", "IfNotPresent"]
default: "IfNotPresent"
command:
type: array
items:
type: string
description: "Command to execute in the exit handler container"
env:
type: array
items:
type: object
properties:
name:
type: string
description: "Name of the environment variable"
value:
type: string
description: "Direct value of the environment variable"
valueFrom:
type: object
description: "Source for the environment variable value"
properties:
configMapKeyRef:
type: object
description: "Reference to a key in a ConfigMap"
properties:
name:
type: string
description: "Name of the ConfigMap"
key:
type: string
description: "Key in the ConfigMap"
optional:
type: boolean
description: "Whether the ConfigMap must exist"
required:
- name
- key
secretKeyRef:
type: object
description: "Reference to a key in a Secret"
properties:
name:
type: string
description: "Name of the Secret"
key:
type: string
description: "Key in the Secret"
optional:
type: boolean
description: "Whether the Secret must exist"
required:
- name
- key
fieldRef:
type: object
description: "Reference to a field in the pod"
properties:
apiVersion:
type: string
description: "API version of the field reference"
fieldPath:
type: string
description: "Path to the field"
required:
- fieldPath
resourceFieldRef:
type: object
description: "Reference to a resource field"
properties:
containerName:
type: string
description: "Name of the container"
resource:
type: string
description: "Resource to select"
divisor:
type: string
description: "Divisor for the resource"
required:
- resource
required:
- name
resources:
type: object
properties:
requests:
type: object
additionalProperties:
type: string
limits:
type: object
additionalProperties:
type: string
description: "Resource requirements for the exit handler container"
serviceAccountName:
type: string
description: "Service account name for the exit handler pod"
nodeSelector:
type: object
additionalProperties:
type: string
imagePullSecrets:
type: array
items:
type: object
properties:
name:
type: string
securityContext:
type: object
x-kubernetes-preserve-unknown-fields: true
description: "Security context for the exit handler pod"
labels:
type: object
additionalProperties:
type: string
annotations:
type: object
additionalProperties:
type: string
required: ["image", "command"]
ttlSecondsAfterFinished:
type: integer
description: "Time in seconds to keep pods after completion"
default: 86400
required: ["mainPodSpec"]
required: ["schedule", "omJobSpec"]
status:
type: object
properties:
lastScheduleTime:
type: string
format: date-time
description: "Last time the CronOMJob was scheduled"
lastOMJobName:
type: string
description: "Name of the last OMJob created"
message:
type: string
description: "Human-readable message about the current status"
subresources:
status: {}
additionalPrinterColumns:
- name: Schedule
type: string
jsonPath: .spec.schedule
- name: Suspended
type: boolean
jsonPath: .spec.suspend
- name: Last Schedule
type: date
jsonPath: .status.lastScheduleTime
- name: Age
type: date
jsonPath: .metadata.creationTimestamp
scope: Namespaced
names:
plural: cronomjobs
singular: cronomjob
kind: CronOMJob
shortNames:
- comj
{{- end }}