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/managed-by-kcc: "true"
9 cnrm.cloud.google.com/stability-level: alpha
10 cnrm.cloud.google.com/system: "true"
11 cnrm.cloud.google.com/tf2crd: "true"
12 name: appengineflexibleappversions.appengine.cnrm.cloud.google.com
13spec:
14 group: appengine.cnrm.cloud.google.com
15 names:
16 categories:
17 - gcp
18 kind: AppEngineFlexibleAppVersion
19 plural: appengineflexibleappversions
20 shortNames:
21 - gcpappengineflexibleappversion
22 - gcpappengineflexibleappversions
23 singular: appengineflexibleappversion
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: v1alpha1
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 apiConfig:
62 description: Serving configuration for Google Cloud Endpoints.
63 properties:
64 authFailAction:
65 description: 'Action to take when users access resources that
66 require authentication. Default value: "AUTH_FAIL_ACTION_REDIRECT"
67 Possible values: ["AUTH_FAIL_ACTION_REDIRECT", "AUTH_FAIL_ACTION_UNAUTHORIZED"].'
68 type: string
69 login:
70 description: 'Level of login required to access this resource.
71 Default value: "LOGIN_OPTIONAL" Possible values: ["LOGIN_OPTIONAL",
72 "LOGIN_ADMIN", "LOGIN_REQUIRED"].'
73 type: string
74 script:
75 description: Path to the script from the application root directory.
76 type: string
77 securityLevel:
78 description: 'Security (HTTPS) enforcement for this URL. Possible
79 values: ["SECURE_DEFAULT", "SECURE_NEVER", "SECURE_OPTIONAL",
80 "SECURE_ALWAYS"].'
81 type: string
82 url:
83 description: URL to serve the endpoint at.
84 type: string
85 required:
86 - script
87 type: object
88 automaticScaling:
89 description: Automatic scaling is based on request rate, response
90 latencies, and other application metrics.
91 properties:
92 coolDownPeriod:
93 description: |-
94 The time period that the Autoscaler should wait before it starts collecting information from a new instance.
95 This prevents the autoscaler from collecting information when the instance is initializing,
96 during which the collected usage would not be reliable. Default: 120s.
97 type: string
98 cpuUtilization:
99 description: Target scaling by CPU usage.
100 properties:
101 aggregationWindowLength:
102 description: Period of time over which CPU utilization is
103 calculated.
104 type: string
105 targetUtilization:
106 description: Target CPU utilization ratio to maintain when
107 scaling. Must be between 0 and 1.
108 type: number
109 required:
110 - targetUtilization
111 type: object
112 diskUtilization:
113 description: Target scaling by disk usage.
114 properties:
115 targetReadBytesPerSecond:
116 description: Target bytes read per second.
117 type: integer
118 targetReadOpsPerSecond:
119 description: Target ops read per seconds.
120 type: integer
121 targetWriteBytesPerSecond:
122 description: Target bytes written per second.
123 type: integer
124 targetWriteOpsPerSecond:
125 description: Target ops written per second.
126 type: integer
127 type: object
128 maxConcurrentRequests:
129 description: |-
130 Number of concurrent requests an automatic scaling instance can accept before the scheduler spawns a new instance.
131
132 Defaults to a runtime-specific value.
133 type: integer
134 maxIdleInstances:
135 description: Maximum number of idle instances that should be maintained
136 for this version.
137 type: integer
138 maxPendingLatency:
139 description: Maximum amount of time that a request should wait
140 in the pending queue before starting a new instance to handle
141 it.
142 type: string
143 maxTotalInstances:
144 description: 'Maximum number of instances that should be started
145 to handle requests for this version. Default: 20.'
146 type: integer
147 minIdleInstances:
148 description: Minimum number of idle instances that should be maintained
149 for this version. Only applicable for the default version of
150 a service.
151 type: integer
152 minPendingLatency:
153 description: Minimum amount of time a request should wait in the
154 pending queue before starting a new instance to handle it.
155 type: string
156 minTotalInstances:
157 description: 'Minimum number of running instances that should
158 be maintained for this version. Default: 2.'
159 type: integer
160 networkUtilization:
161 description: Target scaling by network usage.
162 properties:
163 targetReceivedBytesPerSecond:
164 description: Target bytes received per second.
165 type: integer
166 targetReceivedPacketsPerSecond:
167 description: Target packets received per second.
168 type: integer
169 targetSentBytesPerSecond:
170 description: Target bytes sent per second.
171 type: integer
172 targetSentPacketsPerSecond:
173 description: Target packets sent per second.
174 type: integer
175 type: object
176 requestUtilization:
177 description: Target scaling by request utilization.
178 properties:
179 targetConcurrentRequests:
180 description: Target number of concurrent requests.
181 type: number
182 targetRequestCountPerSecond:
183 description: Target requests per second.
184 type: string
185 type: object
186 required:
187 - cpuUtilization
188 type: object
189 betaSettings:
190 additionalProperties:
191 type: string
192 description: Metadata settings that are supplied to this version to
193 enable beta runtime features.
194 type: object
195 defaultExpiration:
196 description: |-
197 Duration that static files should be cached by web proxies and browsers.
198 Only applicable if the corresponding StaticFilesHandler does not specify its own expiration time.
199 type: string
200 deleteServiceOnDestroy:
201 description: If set to 'true', the service will be deleted if it is
202 the last version.
203 type: boolean
204 deployment:
205 description: Code and application artifacts that make up this version.
206 properties:
207 cloudBuildOptions:
208 description: Options for the build operations performed as a part
209 of the version deployment. Only applicable when creating a version
210 using source code directly.
211 properties:
212 appYamlPath:
213 description: Path to the yaml file used in deployment, used
214 to determine runtime configuration details.
215 type: string
216 cloudBuildTimeout:
217 description: |-
218 The Cloud Build timeout used as part of any dependent builds performed by version creation. Defaults to 10 minutes.
219
220 A duration in seconds with up to nine fractional digits, terminated by 's'. Example: "3.5s".
221 type: string
222 required:
223 - appYamlPath
224 type: object
225 container:
226 description: The Docker image for the container that runs the
227 version.
228 properties:
229 image:
230 description: |-
231 URI to the hosted container image in Google Container Registry. The URI must be fully qualified and include a tag or digest.
232 Examples: "gcr.io/my-project/image:tag" or "gcr.io/my-project/image@digest".
233 type: string
234 required:
235 - image
236 type: object
237 files:
238 description: |-
239 Manifest of the files stored in Google Cloud Storage that are included as part of this version.
240 All files must be readable using the credentials supplied with this call.
241 items:
242 properties:
243 name:
244 type: string
245 sha1Sum:
246 description: SHA1 checksum of the file.
247 type: string
248 sourceUrl:
249 description: Source URL.
250 type: string
251 required:
252 - name
253 - sourceUrl
254 type: object
255 type: array
256 zip:
257 description: Zip File.
258 properties:
259 filesCount:
260 description: files count.
261 type: integer
262 sourceUrl:
263 description: Source URL.
264 type: string
265 required:
266 - sourceUrl
267 type: object
268 type: object
269 endpointsApiService:
270 description: Code and application artifacts that make up this version.
271 properties:
272 configId:
273 description: |-
274 Endpoints service configuration ID as specified by the Service Management API. For example "2016-09-19r1".
275
276 By default, the rollout strategy for Endpoints is "FIXED". This means that Endpoints starts up with a particular configuration ID.
277 When a new configuration is rolled out, Endpoints must be given the new configuration ID. The configId field is used to give the configuration ID
278 and is required in this case.
279
280 Endpoints also has a rollout strategy called "MANAGED". When using this, Endpoints fetches the latest configuration and does not need
281 the configuration ID. In this case, configId must be omitted.
282 type: string
283 disableTraceSampling:
284 description: Enable or disable trace sampling. By default, this
285 is set to false for enabled.
286 type: boolean
287 name:
288 description: |-
289 Endpoints service name which is the name of the "service" resource in the Service Management API.
290 For example "myapi.endpoints.myproject.cloud.goog".
291 type: string
292 rolloutStrategy:
293 description: 'Endpoints rollout strategy. If FIXED, configId must
294 be specified. If MANAGED, configId must be omitted. Default
295 value: "FIXED" Possible values: ["FIXED", "MANAGED"].'
296 type: string
297 required:
298 - name
299 type: object
300 entrypoint:
301 description: The entrypoint for the application.
302 properties:
303 shell:
304 description: The format should be a shell command that can be
305 fed to bash -c.
306 type: string
307 required:
308 - shell
309 type: object
310 envVariables:
311 additionalProperties:
312 type: string
313 type: object
314 handlers:
315 description: |-
316 An ordered list of URL-matching patterns that should be applied to incoming requests.
317 The first matching URL handles the request and other request handlers are not attempted.
318 items:
319 properties:
320 authFailAction:
321 description: 'Actions to take when the user is not logged in.
322 Possible values: ["AUTH_FAIL_ACTION_REDIRECT", "AUTH_FAIL_ACTION_UNAUTHORIZED"].'
323 type: string
324 login:
325 description: 'Methods to restrict access to a URL based on login
326 status. Possible values: ["LOGIN_OPTIONAL", "LOGIN_ADMIN",
327 "LOGIN_REQUIRED"].'
328 type: string
329 redirectHttpResponseCode:
330 description: '30x code to use when performing redirects for
331 the secure field. Possible values: ["REDIRECT_HTTP_RESPONSE_CODE_301",
332 "REDIRECT_HTTP_RESPONSE_CODE_302", "REDIRECT_HTTP_RESPONSE_CODE_303",
333 "REDIRECT_HTTP_RESPONSE_CODE_307"].'
334 type: string
335 script:
336 description: |-
337 Executes a script to handle the requests that match this URL pattern.
338 Only the auto value is supported for Node.js in the App Engine standard environment, for example "script:" "auto".
339 properties:
340 scriptPath:
341 description: Path to the script from the application root
342 directory.
343 type: string
344 required:
345 - scriptPath
346 type: object
347 securityLevel:
348 description: 'Security (HTTPS) enforcement for this URL. Possible
349 values: ["SECURE_DEFAULT", "SECURE_NEVER", "SECURE_OPTIONAL",
350 "SECURE_ALWAYS"].'
351 type: string
352 staticFiles:
353 description: |-
354 Files served directly to the user for a given URL, such as images, CSS stylesheets, or JavaScript source files.
355 Static file handlers describe which files in the application directory are static files, and which URLs serve them.
356 properties:
357 applicationReadable:
358 description: |-
359 Whether files should also be uploaded as code data. By default, files declared in static file handlers are
360 uploaded as static data and are only served to end users; they cannot be read by the application. If enabled,
361 uploads are charged against both your code and static data storage resource quotas.
362 type: boolean
363 expiration:
364 description: |-
365 Time a static file served by this handler should be cached by web proxies and browsers.
366 A duration in seconds with up to nine fractional digits, terminated by 's'. Example "3.5s".
367 Default is '0s'.
368 type: string
369 httpHeaders:
370 additionalProperties:
371 type: string
372 description: |-
373 HTTP headers to use for all responses from these URLs.
374 An object containing a list of "key:value" value pairs.".
375 type: object
376 mimeType:
377 description: |-
378 MIME type used to serve all files served by this handler.
379 Defaults to file-specific MIME types, which are derived from each file's filename extension.
380 type: string
381 path:
382 description: |-
383 Path to the static files matched by the URL pattern, from the application root directory.
384 The path can refer to text matched in groupings in the URL pattern.
385 type: string
386 requireMatchingFile:
387 description: Whether this handler should match the request
388 if the file referenced by the handler does not exist.
389 type: boolean
390 uploadPathRegex:
391 description: Regular expression that matches the file paths
392 for all files that should be referenced by this handler.
393 type: string
394 type: object
395 urlRegex:
396 description: |-
397 URL prefix. Uses regular expression syntax, which means regexp special characters must be escaped, but should not contain groupings.
398 All URLs that begin with this prefix are handled by this handler, using the portion of the URL after the prefix as part of the file path.
399 type: string
400 type: object
401 type: array
402 inboundServices:
403 description: 'A list of the types of messages that this application
404 is able to receive. Possible values: ["INBOUND_SERVICE_MAIL", "INBOUND_SERVICE_MAIL_BOUNCE",
405 "INBOUND_SERVICE_XMPP_ERROR", "INBOUND_SERVICE_XMPP_MESSAGE", "INBOUND_SERVICE_XMPP_SUBSCRIBE",
406 "INBOUND_SERVICE_XMPP_PRESENCE", "INBOUND_SERVICE_CHANNEL_PRESENCE",
407 "INBOUND_SERVICE_WARMUP"].'
408 items:
409 type: string
410 type: array
411 instanceClass:
412 description: |-
413 Instance class that is used to run this version. Valid values are
414 AutomaticScaling: F1, F2, F4, F4_1G
415 ManualScaling: B1, B2, B4, B8, B4_1G
416 Defaults to F1 for AutomaticScaling and B1 for ManualScaling.
417 type: string
418 livenessCheck:
419 description: Health checking configuration for VM instances. Unhealthy
420 instances are killed and replaced with new instances.
421 properties:
422 checkInterval:
423 description: Interval between health checks.
424 type: string
425 failureThreshold:
426 description: 'Number of consecutive failed checks required before
427 considering the VM unhealthy. Default: 4.'
428 type: number
429 host:
430 description: 'Host header to send when performing a HTTP Readiness
431 check. Example: "myapp.appspot.com".'
432 type: string
433 initialDelay:
434 description: 'The initial delay before starting to execute the
435 checks. Default: "300s".'
436 type: string
437 path:
438 description: The request path.
439 type: string
440 successThreshold:
441 description: 'Number of consecutive successful checks required
442 before considering the VM healthy. Default: 2.'
443 type: number
444 timeout:
445 description: 'Time before the check is considered failed. Default:
446 "4s".'
447 type: string
448 required:
449 - path
450 type: object
451 manualScaling:
452 description: A service with manual scaling runs continuously, allowing
453 you to perform complex initialization and rely on the state of its
454 memory over time.
455 properties:
456 instances:
457 description: |-
458 Number of instances to assign to the service at the start.
459
460 **Note:** When managing the number of instances at runtime through the App Engine Admin API or the (now deprecated) Python 2
461 Modules API set_num_instances() you must use 'lifecycle.ignore_changes = ["manual_scaling"[0].instances]' to prevent drift detection.
462 type: integer
463 required:
464 - instances
465 type: object
466 network:
467 description: Extra network settings.
468 properties:
469 forwardedPorts:
470 description: List of ports, or port pairs, to forward from the
471 virtual machine to the application container.
472 items:
473 type: string
474 type: array
475 instanceTag:
476 description: Tag to apply to the instance during creation.
477 type: string
478 name:
479 description: Google Compute Engine network where the virtual machines
480 are created. Specify the short name, not the resource path.
481 type: string
482 sessionAffinity:
483 description: Enable session affinity.
484 type: boolean
485 subnetwork:
486 description: |-
487 Google Cloud Platform sub-network where the virtual machines are created. Specify the short name, not the resource path.
488
489 If the network that the instance is being created in is a Legacy network, then the IP address is allocated from the IPv4Range.
490 If the network that the instance is being created in is an auto Subnet Mode Network, then only network name should be specified (not the subnetworkName) and the IP address is created from the IPCidrRange of the subnetwork that exists in that zone for that network.
491 If the network that the instance is being created in is a custom Subnet Mode Network, then the subnetworkName must be specified and the IP address is created from the IPCidrRange of the subnetwork.
492 If specified, the subnetwork must exist in the same region as the App Engine flexible environment application.
493 type: string
494 required:
495 - name
496 type: object
497 nobuildFilesRegex:
498 description: Files that match this pattern will not be built into
499 this version. Only applicable for Go runtimes.
500 type: string
501 noopOnDestroy:
502 description: If set to 'true', the application version will not be
503 deleted.
504 type: boolean
505 project:
506 description: Immutable.
507 type: string
508 readinessCheck:
509 description: Configures readiness health checking for instances. Unhealthy
510 instances are not put into the backend traffic rotation.
511 properties:
512 appStartTimeout:
513 description: |-
514 A maximum time limit on application initialization, measured from moment the application successfully
515 replies to a healthcheck until it is ready to serve traffic. Default: "300s".
516 type: string
517 checkInterval:
518 description: 'Interval between health checks. Default: "5s".'
519 type: string
520 failureThreshold:
521 description: 'Number of consecutive failed checks required before
522 removing traffic. Default: 2.'
523 type: number
524 host:
525 description: 'Host header to send when performing a HTTP Readiness
526 check. Example: "myapp.appspot.com".'
527 type: string
528 path:
529 description: The request path.
530 type: string
531 successThreshold:
532 description: 'Number of consecutive successful checks required
533 before receiving traffic. Default: 2.'
534 type: number
535 timeout:
536 description: 'Time before the check is considered failed. Default:
537 "4s".'
538 type: string
539 required:
540 - path
541 type: object
542 resourceID:
543 description: Immutable. Optional. The versionId of the resource. Used
544 for creation and acquisition. When unset, the value of `metadata.name`
545 is used as the default.
546 type: string
547 resources:
548 description: Machine resources for a version.
549 properties:
550 cpu:
551 description: Number of CPU cores needed.
552 type: integer
553 diskGb:
554 description: Disk size (GB) needed.
555 type: integer
556 memoryGb:
557 description: Memory (GB) needed.
558 type: number
559 volumes:
560 description: List of ports, or port pairs, to forward from the
561 virtual machine to the application container.
562 items:
563 properties:
564 name:
565 description: Unique name for the volume.
566 type: string
567 sizeGb:
568 description: Volume size in gigabytes.
569 type: integer
570 volumeType:
571 description: Underlying volume type, e.g. 'tmpfs'.
572 type: string
573 required:
574 - name
575 - sizeGb
576 - volumeType
577 type: object
578 type: array
579 type: object
580 runtime:
581 description: Desired runtime. Example python27.
582 type: string
583 runtimeApiVersion:
584 description: |-
585 The version of the API in the given runtime environment.
586 Please see the app.yaml reference for valid values at 'https://cloud.google.com/appengine/docs/standard/<language>/config/appref'\
587 Substitute '<language>' with 'python', 'java', 'php', 'ruby', 'go' or 'nodejs'.
588 type: string
589 runtimeChannel:
590 description: The channel of the runtime to use. Only available for
591 some runtimes.
592 type: string
593 runtimeMainExecutablePath:
594 description: The path or name of the app's main executable.
595 type: string
596 serviceAccount:
597 description: |-
598 The identity that the deployed version will run as. Admin API will use the App Engine Appspot service account as
599 default if this field is neither provided in app.yaml file nor through CLI flag.
600 type: string
601 serviceRef:
602 oneOf:
603 - not:
604 required:
605 - external
606 required:
607 - name
608 - not:
609 anyOf:
610 - required:
611 - name
612 - required:
613 - namespace
614 required:
615 - external
616 properties:
617 external:
618 description: 'Allowed value: The `name` field of an `AppEngineService`
619 resource.'
620 type: string
621 name:
622 description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
623 type: string
624 namespace:
625 description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/'
626 type: string
627 type: object
628 servingStatus:
629 description: 'Current serving status of this version. Only the versions
630 with a SERVING status create instances and can be billed. Default
631 value: "SERVING" Possible values: ["SERVING", "STOPPED"].'
632 type: string
633 vpcAccessConnector:
634 description: Enables VPC connectivity for standard apps.
635 properties:
636 name:
637 description: Full Serverless VPC Access Connector name e.g. /projects/my-project/locations/us-central1/connectors/c1.
638 type: string
639 required:
640 - name
641 type: object
642 required:
643 - livenessCheck
644 - readinessCheck
645 - runtime
646 - serviceRef
647 type: object
648 status:
649 properties:
650 conditions:
651 description: Conditions represent the latest available observation
652 of the resource's current state.
653 items:
654 properties:
655 lastTransitionTime:
656 description: Last time the condition transitioned from one status
657 to another.
658 type: string
659 message:
660 description: Human-readable message indicating details about
661 last transition.
662 type: string
663 reason:
664 description: Unique, one-word, CamelCase reason for the condition's
665 last transition.
666 type: string
667 status:
668 description: Status is the status of the condition. Can be True,
669 False, Unknown.
670 type: string
671 type:
672 description: Type is the type of the condition.
673 type: string
674 type: object
675 type: array
676 name:
677 description: Full path to the Version resource in the API. Example,
678 "v1".
679 type: string
680 observedGeneration:
681 description: ObservedGeneration is the generation of the resource
682 that was most recently observed by the Config Connector controller.
683 If this is equal to metadata.generation, then that means that the
684 current reported status reflects the most recent desired state of
685 the resource.
686 type: integer
687 type: object
688 required:
689 - spec
690 type: object
691 served: true
692 storage: true
693 subresources:
694 status: {}
695status:
696 acceptedNames:
697 kind: ""
698 plural: ""
699 conditions: []
700 storedVersions: []
View as plain text