{{- if .Values.crds.managed }} --- apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: controller-gen.kubebuilder.io/version: v0.14.0 name: advancedcronjobs.apps.kruise.io spec: group: apps.kruise.io names: kind: AdvancedCronJob listKind: AdvancedCronJobList plural: advancedcronjobs shortNames: - acj singular: advancedcronjob scope: Namespaced versions: - additionalPrinterColumns: - description: The schedule of advanced cron job. jsonPath: .spec.schedule name: Schedule type: string - description: Type of cron job. jsonPath: .status.type name: Type type: string - description: The last time at which job was scheduled. jsonPath: .status.lastScheduleTime name: LastScheduleTime type: date - description: 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. jsonPath: .metadata.creationTimestamp name: AGE type: date name: v1alpha1 schema: openAPIV3Schema: description: AdvancedCronJob is the Schema for the advancedcronjobs API 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: AdvancedCronJobSpec defines the desired state of AdvancedCronJob properties: concurrencyPolicy: description: |- Specifies how to treat concurrent executions of a Job. Valid values are: - "Allow" (default): allows CronJobs to run concurrently; - "Forbid": forbids concurrent runs, skipping next run if previous run hasn't finished yet; - "Replace": cancels currently running job and replaces it with a new one enum: - Allow - Forbid - Replace type: string failedJobsHistoryLimit: description: |- The number of failed finished jobs to retain. This is a pointer to distinguish between explicit zero and not specified. format: int32 type: integer paused: description: Paused will pause the cron job. type: boolean schedule: description: The schedule in Cron format, see https://en.wikipedia.org/wiki/Cron. minLength: 0 type: string startingDeadlineSeconds: description: |- Optional deadline in seconds for starting the job if it misses scheduled time for any reason. Missed jobs executions will be counted as failed ones. format: int64 type: integer successfulJobsHistoryLimit: description: |- The number of successful finished jobs to retain. This is a pointer to distinguish between explicit zero and not specified. format: int32 type: integer template: description: Specifies the job that will be created when executing a CronJob. properties: broadcastJobTemplate: description: Specifies the broadcastjob that will be created when executing a BroadcastCronJob. properties: metadata: description: Standard object's metadata of the jobs created from this template. type: object spec: description: Specification of the desired behavior of the broadcastjob. properties: completionPolicy: description: |- CompletionPolicy indicates the completion policy of the job. Default is Always CompletionPolicyType. properties: activeDeadlineSeconds: description: |- ActiveDeadlineSeconds specifies the duration in seconds relative to the startTime that the job may be active before the system tries to terminate it; value must be positive integer. Only works for Always type. format: int64 type: integer ttlSecondsAfterFinished: description: |- ttlSecondsAfterFinished limits the lifetime of a Job that has finished execution (either Complete or Failed). If this field is set, ttlSecondsAfterFinished after the Job finishes, it is eligible to be automatically deleted. When the Job is being deleted, its lifecycle guarantees (e.g. finalizers) will be honored. If this field is unset, the Job won't be automatically deleted. If this field is set to zero, the Job becomes eligible to be deleted immediately after it finishes. This field is alpha-level and is only honored by servers that enable the TTLAfterFinished feature. Only works for Always type format: int32 type: integer type: description: |- Type indicates the type of the CompletionPolicy. Default is Always. type: string type: object failurePolicy: description: FailurePolicy indicates the behavior of the job, when failed pod is found. properties: restartLimit: description: RestartLimit specifies the number of retries before marking the pod failed. format: int32 type: integer type: description: |- Type indicates the type of FailurePolicyType. Default is FailurePolicyTypeFailFast. type: string type: object parallelism: anyOf: - type: integer - type: string description: |- Parallelism specifies the maximum desired number of pods the job should run at any given time. The actual number of pods running in steady state will be less than this number when the work left to do is less than max parallelism. Not setting this value means no limit. x-kubernetes-int-or-string: true paused: description: Paused will pause the job. type: boolean template: description: Template describes the pod that will be created when executing a job. x-kubernetes-preserve-unknown-fields: true required: - template type: object type: object jobTemplate: description: Specifies the job that will be created when executing a CronJob. x-kubernetes-preserve-unknown-fields: true type: object timeZone: description: |- The time zone name for the given schedule, see https://en.wikipedia.org/wiki/List_of_tz_database_time_zones. If not specified, this will default to the time zone of the kruise-controller-manager process. type: string required: - schedule - template type: object status: description: AdvancedCronJobStatus defines the observed state of AdvancedCronJob properties: active: description: A list of pointers to currently running jobs. items: description: |- ObjectReference contains enough information to let you inspect or modify the referred object. --- New uses of this type are discouraged because of difficulty describing its usage when embedded in APIs. 1. Ignored fields. It includes many fields which are not generally honored. For instance, ResourceVersion and FieldPath are both very rarely valid in actual usage. 2. Invalid usage help. It is impossible to add specific help for individual usage. In most embedded usages, there are particular restrictions like, "must refer only to types A and B" or "UID not honored" or "name must be restricted". Those cannot be well described when embedded. 3. Inconsistent validation. Because the usages are different, the validation rules are different by usage, which makes it hard for users to predict what will happen. 4. The fields are both imprecise and overly precise. Kind is not a precise mapping to a URL. This can produce ambiguity during interpretation and require a REST mapping. In most cases, the dependency is on the group,resource tuple and the version of the actual struct is irrelevant. 5. We cannot easily change it. Because this type is embedded in many locations, updates to this type will affect numerous schemas. Don't make new APIs embed an underspecified API type they do not control. Instead of using this type, create a locally provided and used type that is well-focused on your reference. For example, ServiceReferences for admission registration: https://github.com/kubernetes/api/blob/release-1.17/admissionregistration/v1/types.go#L533 . properties: apiVersion: description: API version of the referent. type: string fieldPath: description: |- 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. TODO: this design is not final and this field is subject to change in the future. type: string kind: description: |- Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds type: string name: description: |- Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names type: string namespace: description: |- Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/ type: string resourceVersion: description: |- 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 type: string uid: description: |- UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids type: string type: object x-kubernetes-map-type: atomic type: array lastScheduleTime: description: Information when was the last time the job was successfully scheduled. format: date-time type: string type: type: string type: object type: object served: true storage: true subresources: status: {} {{- end }}