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