1apiVersion: apiextensions.k8s.io/v1
2kind: CustomResourceDefinition
3metadata:
4 annotations:
5 cnrm.cloud.google.com/version: 0.0.0-dev
6 creationTimestamp: null
7 labels:
8 cnrm.cloud.google.com/dcl2crd: "true"
9 cnrm.cloud.google.com/managed-by-kcc: "true"
10 cnrm.cloud.google.com/stability-level: stable
11 cnrm.cloud.google.com/system: "true"
12 name: cloudschedulerjobs.cloudscheduler.cnrm.cloud.google.com
13spec:
14 group: cloudscheduler.cnrm.cloud.google.com
15 names:
16 categories:
17 - gcp
18 kind: CloudSchedulerJob
19 plural: cloudschedulerjobs
20 shortNames:
21 - gcpcloudschedulerjob
22 - gcpcloudschedulerjobs
23 singular: cloudschedulerjob
24 preserveUnknownFields: false
25 scope: Namespaced
26 versions:
27 - additionalPrinterColumns:
28 - jsonPath: .metadata.creationTimestamp
29 name: Age
30 type: date
31 - description: When 'True', the most recent reconcile of the resource succeeded
32 jsonPath: .status.conditions[?(@.type=='Ready')].status
33 name: Ready
34 type: string
35 - description: The reason for the value in 'Ready'
36 jsonPath: .status.conditions[?(@.type=='Ready')].reason
37 name: Status
38 type: string
39 - description: The last transition time for the value in 'Status'
40 jsonPath: .status.conditions[?(@.type=='Ready')].lastTransitionTime
41 name: Status Age
42 type: date
43 name: v1beta1
44 schema:
45 openAPIV3Schema:
46 properties:
47 apiVersion:
48 description: 'apiVersion defines the versioned schema of this representation
49 of an object. Servers should convert recognized schemas to the latest
50 internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources'
51 type: string
52 kind:
53 description: 'kind is a string value representing the REST resource this
54 object represents. Servers may infer this from the endpoint the client
55 submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds'
56 type: string
57 metadata:
58 type: object
59 spec:
60 properties:
61 appEngineHttpTarget:
62 description: App Engine HTTP target.
63 properties:
64 appEngineRouting:
65 description: App Engine Routing setting for the job.
66 properties:
67 instance:
68 description: App instance. By default, the job is sent to
69 an instance which is available when the job is attempted.
70 Requests can only be sent to a specific instance if [manual
71 scaling is used in App Engine Standard](https://cloud.google.com/appengine/docs/python/an-overview-of-app-engine?hl=en_US#scaling_types_and_instance_classes).
72 App Engine Flex does not support instances. For more information,
73 see [App Engine Standard request routing](https://cloud.google.com/appengine/docs/standard/python/how-requests-are-routed)
74 and [App Engine Flex request routing](https://cloud.google.com/appengine/docs/flexible/python/how-requests-are-routed).
75 type: string
76 service:
77 description: App service. By default, the job is sent to the
78 service which is the default service when the job is attempted.
79 type: string
80 version:
81 description: App version. By default, the job is sent to the
82 version which is the default version when the job is attempted.
83 type: string
84 type: object
85 body:
86 description: Body. HTTP request body. A request body is allowed
87 only if the HTTP method is POST or PUT. It will result in invalid
88 argument error to set a body on a job with an incompatible HttpMethod.
89 type: string
90 headers:
91 additionalProperties:
92 type: string
93 description: 'HTTP request headers. This map contains the header
94 field names and values. Headers can be set when the job is created.
95 Cloud Scheduler sets some headers to default values: * `User-Agent`:
96 By default, this header is `"App Engine-Google; (+http://code.google.com/appengine)"`.
97 This header can be modified, but Cloud Scheduler will append
98 `"App Engine-Google; (+http://code.google.com/appengine)"` to
99 the modified `User-Agent`. * `X-CloudScheduler`: This header
100 will be set to true. The headers below are output only. They
101 cannot be set or overridden: * `X-Google-*`: For Google internal
102 use only. * `X-App Engine-*`: For Google internal use only.
103 In addition, some App Engine headers, which contain job-specific
104 information, are also be sent to the job handler.'
105 type: object
106 httpMethod:
107 description: 'The HTTP method to use for the request. PATCH and
108 OPTIONS are not permitted. Possible values: HTTP_METHOD_UNSPECIFIED,
109 POST, GET, HEAD, PUT, DELETE, PATCH, OPTIONS'
110 type: string
111 relativeUri:
112 description: The relative URI. The relative URL must begin with
113 "/" and must be a valid HTTP relative URL. It can contain a
114 path, query string arguments, and `#` fragments. If the relative
115 URL is empty, then the root path "/" will be used. No spaces
116 are allowed, and the maximum length allowed is 2083 characters.
117 type: string
118 type: object
119 attemptDeadline:
120 description: 'The deadline for job attempts. If the request handler
121 does not respond by this deadline then the request is cancelled
122 and the attempt is marked as a `DEADLINE_EXCEEDED` failure. The
123 failed attempt can be viewed in execution logs. Cloud Scheduler
124 will retry the job according to the RetryConfig. The allowed duration
125 for this deadline is: * For HTTP targets, between 15 seconds and
126 30 minutes. * For App Engine HTTP targets, between 15 seconds and
127 24 hours.'
128 type: string
129 description:
130 description: Optionally caller-specified in CreateJob or UpdateJob.
131 A human-readable description for the job. This string must not contain
132 more than 500 characters.
133 type: string
134 httpTarget:
135 description: HTTP target.
136 properties:
137 body:
138 description: HTTP request body. A request body is allowed only
139 if the HTTP method is POST, PUT, or PATCH. It is an error to
140 set body on a job with an incompatible HttpMethod.
141 type: string
142 headers:
143 additionalProperties:
144 type: string
145 description: 'The user can specify HTTP request headers to send
146 with the job''s HTTP request. This map contains the header field
147 names and values. Repeated headers are not supported, but a
148 header value can contain commas. These headers represent a subset
149 of the headers that will accompany the job''s HTTP request.
150 Some HTTP request headers will be ignored or replaced. A partial
151 list of headers that will be ignored or replaced is below: -
152 Host: This will be computed by Cloud Scheduler and derived from
153 uri. * `Content-Length`: This will be computed by Cloud Scheduler.
154 * `User-Agent`: This will be set to `"Google-Cloud-Scheduler"`.
155 * `X-Google-*`: Google internal use only. * `X-appengine-*`:
156 Google internal use only. The total size of headers must be
157 less than 80KB.'
158 type: object
159 httpMethod:
160 description: 'Which HTTP method to use for the request. Possible
161 values: HTTP_METHOD_UNSPECIFIED, POST, GET, HEAD, PUT, DELETE,
162 PATCH, OPTIONS'
163 type: string
164 oauthToken:
165 description: If specified, an [OAuth token](https://developers.google.com/identity/protocols/OAuth2)
166 will be generated and attached as an `Authorization` header
167 in the HTTP request. This type of authorization should generally
168 only be used when calling Google APIs hosted on *.googleapis.com.
169 properties:
170 scope:
171 description: OAuth scope to be used for generating OAuth access
172 token. If not specified, "https://www.googleapis.com/auth/cloud-platform"
173 will be used.
174 type: string
175 serviceAccountRef:
176 oneOf:
177 - not:
178 required:
179 - external
180 required:
181 - name
182 - not:
183 anyOf:
184 - required:
185 - name
186 - required:
187 - namespace
188 required:
189 - external
190 properties:
191 external:
192 description: |-
193 [Service account email](https://cloud.google.com/iam/docs/service-accounts) to be used for generating OAuth token. The service account must be within the same project as the job. The caller must have iam.serviceAccounts.actAs permission for the service account.
194
195 Allowed value: The `email` field of an `IAMServiceAccount` resource.
196 type: string
197 name:
198 description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
199 type: string
200 namespace:
201 description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/'
202 type: string
203 type: object
204 type: object
205 oidcToken:
206 description: If specified, an [OIDC](https://developers.google.com/identity/protocols/OpenIDConnect)
207 token will be generated and attached as an `Authorization` header
208 in the HTTP request. This type of authorization can be used
209 for many scenarios, including calling Cloud Run, or endpoints
210 where you intend to validate the token yourself.
211 properties:
212 audience:
213 description: Audience to be used when generating OIDC token.
214 If not specified, the URI specified in target will be used.
215 type: string
216 serviceAccountRef:
217 oneOf:
218 - not:
219 required:
220 - external
221 required:
222 - name
223 - not:
224 anyOf:
225 - required:
226 - name
227 - required:
228 - namespace
229 required:
230 - external
231 properties:
232 external:
233 description: |-
234 [Service account email](https://cloud.google.com/iam/docs/service-accounts) to be used for generating OIDC token. The service account must be within the same project as the job. The caller must have iam.serviceAccounts.actAs permission for the service account.
235
236 Allowed value: The `email` field of an `IAMServiceAccount` resource.
237 type: string
238 name:
239 description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
240 type: string
241 namespace:
242 description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/'
243 type: string
244 type: object
245 type: object
246 uri:
247 description: 'Required. The full URI path that the request will
248 be sent to. This string must begin with either "http://" or
249 "https://". Some examples of valid values for uri are: `http://acme.com`
250 and `https://acme.com/sales:8080`. Cloud Scheduler will encode
251 some characters for safety and compatibility. The maximum allowed
252 URL length is 2083 characters after encoding.'
253 type: string
254 required:
255 - uri
256 type: object
257 location:
258 description: Immutable. The location for the resource
259 type: string
260 pubsubTarget:
261 description: Pub/Sub target.
262 properties:
263 attributes:
264 additionalProperties:
265 type: string
266 description: Attributes for PubsubMessage. Pubsub message must
267 contain either non-empty data, or at least one attribute.
268 type: object
269 data:
270 description: The message payload for PubsubMessage. Pubsub message
271 must contain either non-empty data, or at least one attribute.
272 type: string
273 topicRef:
274 oneOf:
275 - not:
276 required:
277 - external
278 required:
279 - name
280 - not:
281 anyOf:
282 - required:
283 - name
284 - required:
285 - namespace
286 required:
287 - external
288 properties:
289 external:
290 description: |-
291 Required. The name of the Cloud Pub/Sub topic to which messages will be published when a job is delivered. The topic name must be in the same format as required by Pub/Sub's [PublishRequest.name](https://cloud.google.com/pubsub/docs/reference/rpc/google.pubsub.v1#publishrequest), for example `projects/PROJECT_ID/topics/TOPIC_ID`. The topic must be in the same project as the Cloud Scheduler job.
292
293 Allowed value: The Google Cloud resource name of a `PubSubTopic` resource (format: `projects/{{project}}/topics/{{name}}`).
294 type: string
295 name:
296 description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
297 type: string
298 namespace:
299 description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/'
300 type: string
301 type: object
302 required:
303 - topicRef
304 type: object
305 resourceID:
306 description: Immutable. Optional. The name of the resource. Used for
307 creation and acquisition. When unset, the value of `metadata.name`
308 is used as the default.
309 type: string
310 retryConfig:
311 description: Settings that determine the retry behavior.
312 properties:
313 maxBackoffDuration:
314 description: The maximum amount of time to wait before retrying
315 a job after it fails. The default value of this field is 1 hour.
316 type: string
317 maxDoublings:
318 description: The time between retries will double `max_doublings`
319 times. A job's retry interval starts at min_backoff_duration,
320 then doubles `max_doublings` times, then increases linearly,
321 and finally retries at intervals of max_backoff_duration up
322 to retry_count times. For example, if min_backoff_duration is
323 10s, max_backoff_duration is 300s, and `max_doublings` is 3,
324 then the a job will first be retried in 10s. The retry interval
325 will double three times, and then increase linearly by 2^3 *
326 10s. Finally, the job will retry at intervals of max_backoff_duration
327 until the job has been attempted retry_count times. Thus, the
328 requests will retry at 10s, 20s, 40s, 80s, 160s, 240s, 300s,
329 300s, .... The default value of this field is 5.
330 format: int64
331 type: integer
332 maxRetryDuration:
333 description: The time limit for retrying a failed job, measured
334 from time when an execution was first attempted. If specified
335 with retry_count, the job will be retried until both limits
336 are reached. The default value for max_retry_duration is zero,
337 which means retry duration is unlimited.
338 type: string
339 minBackoffDuration:
340 description: The minimum amount of time to wait before retrying
341 a job after it fails. The default value of this field is 5 seconds.
342 type: string
343 retryCount:
344 description: The number of attempts that the system will make
345 to run a job using the exponential backoff procedure described
346 by max_doublings. The default value of retry_count is zero.
347 If retry_count is zero, a job attempt will *not* be retried
348 if it fails. Instead the Cloud Scheduler system will wait for
349 the next scheduled execution time. If retry_count is set to
350 a non-zero number then Cloud Scheduler will retry failed attempts,
351 using exponential backoff, retry_count times, or until the next
352 scheduled execution time, whichever comes first. Values greater
353 than 5 and negative values are not allowed.
354 format: int64
355 type: integer
356 type: object
357 schedule:
358 description: 'Required, except when used with UpdateJob. Describes
359 the schedule on which the job will be executed. The schedule can
360 be either of the following types: * [Crontab](http://en.wikipedia.org/wiki/Cron#Overview)
361 * English-like [schedule](https://cloud.google.com/scheduler/docs/configuring/cron-job-schedules)
362 As a general rule, execution `n + 1` of a job will not begin until
363 execution `n` has finished. Cloud Scheduler will never allow two
364 simultaneously outstanding executions. For example, this implies
365 that if the `n+1`th execution is scheduled to run at 16:00 but the
366 `n`th execution takes until 16:15, the `n+1`th execution will not
367 start until `16:15`. A scheduled start time will be delayed if the
368 previous execution has not ended when its scheduled time occurs.
369 If retry_count > 0 and a job attempt fails, the job will be tried
370 a total of retry_count times, with exponential backoff, until the
371 next scheduled start time.'
372 type: string
373 timeZone:
374 description: Specifies the time zone to be used in interpreting schedule.
375 The value of this field must be a time zone name from the [tz database](http://en.wikipedia.org/wiki/Tz_database).
376 Note that some time zones include a provision for daylight savings
377 time. The rules for daylight saving time are determined by the chosen
378 tz. For UTC use the string "utc". If a time zone is not specified,
379 the default will be in UTC (also known as GMT).
380 type: string
381 required:
382 - location
383 type: object
384 status:
385 properties:
386 appEngineHttpTarget:
387 properties:
388 appEngineRouting:
389 properties:
390 host:
391 description: 'Output only. The host that the job is sent to.
392 For more information about how App Engine requests are routed,
393 see [here](https://cloud.google.com/appengine/docs/standard/python/how-requests-are-routed).
394 The host is constructed as: * `host = [application_domain_name]`
395 `| [service] + ''.'' + [application_domain_name]` `| [version]
396 + ''.'' + [application_domain_name]` `| [version_dot_service]+
397 ''.'' + [application_domain_name]` `| [instance] + ''.''
398 + [application_domain_name]` `| [instance_dot_service] +
399 ''.'' + [application_domain_name]` `| [instance_dot_version]
400 + ''.'' + [application_domain_name]` `| [instance_dot_version_dot_service]
401 + ''.'' + [application_domain_name]` * `application_domain_name`
402 = The domain name of the app, for example .appspot.com,
403 which is associated with the job''s project ID. * `service
404 =` service * `version =` version * `version_dot_service
405 =` version `+ ''.'' +` service * `instance =` instance *
406 `instance_dot_service =` instance `+ ''.'' +` service *
407 `instance_dot_version =` instance `+ ''.'' +` version *
408 `instance_dot_version_dot_service =` instance `+ ''.'' +`
409 version `+ ''.'' +` service If service is empty, then the
410 job will be sent to the service which is the default service
411 when the job is attempted. If version is empty, then the
412 job will be sent to the version which is the default version
413 when the job is attempted. If instance is empty, then the
414 job will be sent to an instance which is available when
415 the job is attempted. If service, version, or instance is
416 invalid, then the job will be sent to the default version
417 of the default service when the job is attempted.'
418 type: string
419 type: object
420 type: object
421 conditions:
422 description: Conditions represent the latest available observation
423 of the resource's current state.
424 items:
425 properties:
426 lastTransitionTime:
427 description: Last time the condition transitioned from one status
428 to another.
429 type: string
430 message:
431 description: Human-readable message indicating details about
432 last transition.
433 type: string
434 reason:
435 description: Unique, one-word, CamelCase reason for the condition's
436 last transition.
437 type: string
438 status:
439 description: Status is the status of the condition. Can be True,
440 False, Unknown.
441 type: string
442 type:
443 description: Type is the type of the condition.
444 type: string
445 type: object
446 type: array
447 lastAttemptTime:
448 description: Output only. The time the last job attempt started.
449 format: date-time
450 type: string
451 observedGeneration:
452 description: ObservedGeneration is the generation of the resource
453 that was most recently observed by the Config Connector controller.
454 If this is equal to metadata.generation, then that means that the
455 current reported status reflects the most recent desired state of
456 the resource.
457 type: integer
458 scheduleTime:
459 description: Output only. The next time the job is scheduled. Note
460 that this may be a retry of a previously failed attempt or the next
461 execution time according to the schedule.
462 format: date-time
463 type: string
464 state:
465 description: 'Output only. State of the job. Possible values: STATE_UNSPECIFIED,
466 ENABLED, PAUSED, DISABLED, UPDATE_FAILED'
467 type: string
468 status:
469 description: Output only. The response from the target for the last
470 attempted execution.
471 properties:
472 code:
473 description: The status code, which should be an enum value of
474 google.rpc.Code.
475 format: int64
476 type: integer
477 details:
478 description: A list of messages that carry the error details.
479 There is a common set of message types for APIs to use.
480 items:
481 properties:
482 typeUrl:
483 description: 'A URL/resource name that uniquely identifies
484 the type of the serialized protocol buffer message. This
485 string must contain at least one "/" character. The last
486 segment of the URL''s path must represent the fully qualified
487 name of the type (as in `path/google.protobuf.Duration`).
488 The name should be in a canonical form (e.g., leading
489 "." is not accepted). In practice, teams usually precompile
490 into the binary all types that they expect it to use in
491 the context of Any. However, for URLs which use the scheme
492 `http`, `https`, or no scheme, one can optionally set
493 up a type server that maps type URLs to message definitions
494 as follows: * If no scheme is provided, `https` is assumed.
495 * An HTTP GET on the URL must yield a google.protobuf.Type
496 value in binary format, or produce an error. * Applications
497 are allowed to cache lookup results based on the URL,
498 or have them precompiled into a binary to avoid any lookup.
499 Therefore, binary compatibility needs to be preserved
500 on changes to types. (Use versioned type names to manage
501 breaking changes.) Note: this functionality is not currently
502 available in the official protobuf release, and it is
503 not used for type URLs beginning with type.googleapis.com.
504 Schemes other than `http`, `https` (or the empty scheme)
505 might be used with implementation specific semantics.'
506 type: string
507 value:
508 description: Must be a valid serialized protocol buffer
509 of the above specified type.
510 type: string
511 type: object
512 type: array
513 message:
514 description: A developer-facing error message, which should be
515 in English. Any user-facing error message should be localized
516 and sent in the google.rpc.Status.details field, or localized
517 by the client.
518 type: string
519 type: object
520 userUpdateTime:
521 description: Output only. The creation time of the job.
522 format: date-time
523 type: string
524 type: object
525 required:
526 - spec
527 type: object
528 served: true
529 storage: true
530 subresources:
531 status: {}
532status:
533 acceptedNames:
534 kind: ""
535 plural: ""
536 conditions: []
537 storedVersions: []
View as plain text