apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
annotations:
kubectl.kubernetes.io/last-applied-configuration: "{\"apiVersion\":\"apiextensions.k8s.io/v1\"\
,\"kind\":\"CustomResourceDefinition\",\"metadata\":{\"labels\":{\"knative.dev/crd-install\"\
:\"true\",\"serving.knative.dev/release\":\"v0.24.0\"},\"name\":\"revisions.serving.knative.dev\"\
},\"spec\":{\"group\":\"serving.knative.dev\",\"names\":{\"categories\":[\"\
all\",\"knative\",\"serving\"],\"kind\":\"Revision\",\"plural\":\"revisions\"\
,\"shortNames\":[\"rev\"],\"singular\":\"revision\"},\"scope\":\"Namespaced\"\
,\"versions\":[{\"additionalPrinterColumns\":[{\"jsonPath\":\".metadata.labels['serving\\\
\\.knative\\\\.dev/configuration']\",\"name\":\"Config Name\",\"type\":\"string\"\
},{\"jsonPath\":\".status.serviceName\",\"name\":\"K8s Service Name\",\"type\"\
:\"string\"},{\"jsonPath\":\".metadata.labels['serving\\\\.knative\\\\.dev/configurationGeneration']\"\
,\"name\":\"Generation\",\"type\":\"string\"},{\"jsonPath\":\".status.conditions[?(@.type=='Ready')].status\"\
,\"name\":\"Ready\",\"type\":\"string\"},{\"jsonPath\":\".status.conditions[?(@.type=='Ready')].reason\"\
,\"name\":\"Reason\",\"type\":\"string\"},{\"jsonPath\":\".status.actualReplicas\"\
,\"name\":\"Actual Replicas\",\"type\":\"integer\"},{\"jsonPath\":\".status.desiredReplicas\"\
,\"name\":\"Desired Replicas\",\"type\":\"integer\"}],\"name\":\"v1\",\"schema\"\
:{\"openAPIV3Schema\":{\"description\":\"Revision is an immutable snapshot of\
\ code and configuration. A revision references a container image. Revisions\
\ are created by updates to a Configuration. \\n See also: https://github.com/knative/serving/blob/main/docs/spec/overview.md#revision\"\
,\"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\"\
:\"RevisionSpec holds the desired state of the Revision (from the client).\"\
,\"properties\":{\"containerConcurrency\":{\"description\":\"ContainerConcurrency\
\ specifies the maximum allowed in-flight (concurrent) requests per container\
\ of the Revision. Defaults to `0` which means concurrency to the application\
\ is not limited, and the system decides the target concurrency for the autoscaler.\"\
,\"format\":\"int64\",\"type\":\"integer\"},\"containers\":{\"description\"\
:\"List of containers belonging to the pod. Containers cannot currently be added\
\ or removed. There must be at least one container in a Pod. Cannot be updated.\"\
,\"items\":{\"description\":\"A single application container that you want to\
\ run within a pod.\",\"properties\":{\"args\":{\"description\":\"Arguments\
\ to the entrypoint. The docker image's CMD is used if this is not provided.\
\ Variable references $(VAR_NAME) are expanded using the container's environment.\
\ If a variable cannot be resolved, the reference in the input string will be\
\ unchanged. The $(VAR_NAME) syntax can be escaped with a double $$, ie: $$(VAR_NAME).\
\ Escaped references will never be expanded, regardless of whether the variable\
\ exists or not. Cannot be updated. More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell\"\
,\"items\":{\"type\":\"string\"},\"type\":\"array\"},\"command\":{\"description\"\
:\"Entrypoint array. Not executed within a shell. The docker image's ENTRYPOINT\
\ is used if this is not provided. Variable references $(VAR_NAME) are expanded\
\ using the container's environment. If a variable cannot be resolved, the reference\
\ in the input string will be unchanged. The $(VAR_NAME) syntax can be escaped\
\ with a double $$, ie: $$(VAR_NAME). Escaped references will never be expanded,\
\ regardless of whether the variable exists or not. Cannot be updated. More\
\ info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell\"\
,\"items\":{\"type\":\"string\"},\"type\":\"array\"},\"env\":{\"description\"\
:\"List of environment variables to set in the container. Cannot be updated.\"\
,\"items\":{\"description\":\"EnvVar represents an environment variable present\
\ in a Container.\",\"properties\":{\"name\":{\"description\":\"Name of the\
\ environment variable. Must be a C_IDENTIFIER.\",\"type\":\"string\"},\"value\"\
:{\"description\":\"Variable references $(VAR_NAME) are expanded using the previous\
\ defined environment variables in the container and any service environment\
\ variables. If a variable cannot be resolved, the reference in the input string\
\ will be unchanged. The $(VAR_NAME) syntax can be escaped with a double $$,\
\ ie: $$(VAR_NAME). Escaped references will never be expanded, regardless of\
\ whether the variable exists or not. Defaults to \\\"\\\".\",\"type\":\"string\"\
},\"valueFrom\":{\"description\":\"Source for the environment variable's value.\
\ Cannot be used if value is not empty.\",\"properties\":{\"configMapKeyRef\"\
:{\"description\":\"Selects a key of a ConfigMap.\",\"properties\":{\"key\"\
:{\"description\":\"The key to select.\",\"type\":\"string\"},\"name\":{\"description\"\
:\"Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\
\ TODO: Add other useful fields. apiVersion, kind, uid?\",\"type\":\"string\"\
},\"optional\":{\"description\":\"Specify whether the ConfigMap or its key must\
\ be defined\",\"type\":\"boolean\"}},\"required\":[\"key\"],\"type\":\"object\"\
},\"secretKeyRef\":{\"description\":\"Selects a key of a secret in the pod's\
\ namespace\",\"properties\":{\"key\":{\"description\":\"The key of the secret\
\ to select from. Must be a valid secret key.\",\"type\":\"string\"},\"name\"\
:{\"description\":\"Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\
\ TODO: Add other useful fields. apiVersion, kind, uid?\",\"type\":\"string\"\
},\"optional\":{\"description\":\"Specify whether the Secret or its key must\
\ be defined\",\"type\":\"boolean\"}},\"required\":[\"key\"],\"type\":\"object\"\
}},\"type\":\"object\",\"x-kubernetes-preserve-unknown-fields\":true}},\"required\"\
:[\"name\"],\"type\":\"object\"},\"type\":\"array\"},\"envFrom\":{\"description\"\
:\"List of sources to populate environment variables in the container. The keys\
\ defined within a source must be a C_IDENTIFIER. All invalid keys will be reported\
\ as an event when the container is starting. When a key exists in multiple\
\ sources, the value associated with the last source will take precedence. Values\
\ defined by an Env with a duplicate key will take precedence. Cannot be updated.\"\
,\"items\":{\"description\":\"EnvFromSource represents the source of a set of\
\ ConfigMaps\",\"properties\":{\"configMapRef\":{\"description\":\"The ConfigMap\
\ to select from\",\"properties\":{\"name\":{\"description\":\"Name of the referent.\
\ More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\
\ TODO: Add other useful fields. apiVersion, kind, uid?\",\"type\":\"string\"\
},\"optional\":{\"description\":\"Specify whether the ConfigMap must be defined\"\
,\"type\":\"boolean\"}},\"type\":\"object\"},\"prefix\":{\"description\":\"\
An optional identifier to prepend to each key in the ConfigMap. Must be a C_IDENTIFIER.\"\
,\"type\":\"string\"},\"secretRef\":{\"description\":\"The Secret to select\
\ from\",\"properties\":{\"name\":{\"description\":\"Name of the referent. More\
\ info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\
\ TODO: Add other useful fields. apiVersion, kind, uid?\",\"type\":\"string\"\
},\"optional\":{\"description\":\"Specify whether the Secret must be defined\"\
,\"type\":\"boolean\"}},\"type\":\"object\"}},\"type\":\"object\"},\"type\"\
:\"array\"},\"image\":{\"description\":\"Docker image name. More info: https://kubernetes.io/docs/concepts/containers/images\
\ This field is optional to allow higher level config management to default\
\ or override container images in workload controllers like Deployments and\
\ StatefulSets.\",\"type\":\"string\"},\"imagePullPolicy\":{\"description\"\
:\"Image pull policy. One of Always, Never, IfNotPresent. Defaults to Always\
\ if :latest tag is specified, or IfNotPresent otherwise. Cannot be updated.\
\ More info: https://kubernetes.io/docs/concepts/containers/images#updating-images\"\
,\"type\":\"string\"},\"livenessProbe\":{\"description\":\"Periodic probe of\
\ container liveness. Container will be restarted if the probe fails. Cannot\
\ be updated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\"\
,\"properties\":{\"exec\":{\"description\":\"One and only one of the following\
\ should be specified. Exec specifies the action to take.\",\"properties\":{\"\
command\":{\"description\":\"Command is the command line to execute inside the\
\ container, the working directory for the command is root ('/') in the container's\
\ filesystem. The command is simply exec'd, it is not run inside a shell, so\
\ traditional shell instructions ('|', etc) won't work. To use a shell, you\
\ need to explicitly call out to that shell. Exit status of 0 is treated as\
\ live/healthy and non-zero is unhealthy.\",\"items\":{\"type\":\"string\"},\"\
type\":\"array\"}},\"type\":\"object\"},\"failureThreshold\":{\"description\"\
:\"Minimum consecutive failures for the probe to be considered failed after\
\ having succeeded. Defaults to 3. Minimum value is 1.\",\"format\":\"int32\"\
,\"type\":\"integer\"},\"httpGet\":{\"description\":\"HTTPGet specifies the\
\ http request to perform.\",\"properties\":{\"host\":{\"description\":\"Host\
\ name to connect to, defaults to the pod IP. You probably want to set \\\"\
Host\\\" in httpHeaders instead.\",\"type\":\"string\"},\"httpHeaders\":{\"\
description\":\"Custom headers to set in the request. HTTP allows repeated headers.\"\
,\"items\":{\"description\":\"HTTPHeader describes a custom header to be used\
\ in HTTP probes\",\"properties\":{\"name\":{\"description\":\"The header field\
\ name\",\"type\":\"string\"},\"value\":{\"description\":\"The header field\
\ value\",\"type\":\"string\"}},\"required\":[\"name\",\"value\"],\"type\":\"\
object\"},\"type\":\"array\"},\"path\":{\"description\":\"Path to access on\
\ the HTTP server.\",\"type\":\"string\"},\"scheme\":{\"description\":\"Scheme\
\ to use for connecting to the host. Defaults to HTTP.\",\"type\":\"string\"\
}},\"type\":\"object\",\"x-kubernetes-preserve-unknown-fields\":true},\"initialDelaySeconds\"\
:{\"description\":\"Number of seconds after the container has started before\
\ liveness probes are initiated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\"\
,\"format\":\"int32\",\"type\":\"integer\"},\"periodSeconds\":{\"description\"\
:\"How often (in seconds) to perform the probe.\",\"format\":\"int32\",\"type\"\
:\"integer\"},\"successThreshold\":{\"description\":\"Minimum consecutive successes\
\ for the probe to be considered successful after having failed. Defaults to\
\ 1. Must be 1 for liveness and startup. Minimum value is 1.\",\"format\":\"\
int32\",\"type\":\"integer\"},\"tcpSocket\":{\"description\":\"TCPSocket specifies\
\ an action involving a TCP port. TCP hooks not yet supported TODO: implement\
\ a realistic TCP lifecycle hook\",\"properties\":{\"host\":{\"description\"\
:\"Optional: Host name to connect to, defaults to the pod IP.\",\"type\":\"\
string\"}},\"type\":\"object\",\"x-kubernetes-preserve-unknown-fields\":true},\"\
timeoutSeconds\":{\"description\":\"Number of seconds after which the probe\
\ times out. Defaults to 1 second. Minimum value is 1. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\"\
,\"format\":\"int32\",\"type\":\"integer\"}},\"type\":\"object\"},\"name\":{\"\
description\":\"Name of the container specified as a DNS_LABEL. Each container\
\ in a pod must have a unique name (DNS_LABEL). Cannot be updated.\",\"type\"\
:\"string\"},\"ports\":{\"description\":\"List of ports to expose from the container.\
\ Exposing a port here gives the system additional information about the network\
\ connections a container uses, but is primarily informational. Not specifying\
\ a port here DOES NOT prevent that port from being exposed. Any port which\
\ is listening on the default \\\"0.0.0.0\\\" address inside a container will\
\ be accessible from the network. Cannot be updated.\",\"items\":{\"description\"\
:\"ContainerPort represents a network port in a single container.\",\"properties\"\
:{\"containerPort\":{\"description\":\"Number of port to expose on the pod's\
\ IP address. This must be a valid port number, 0 \\u003c x \\u003c 65536.\"\
,\"format\":\"int32\",\"type\":\"integer\"},\"name\":{\"description\":\"If specified,\
\ this must be an IANA_SVC_NAME and unique within the pod. Each named port in\
\ a pod must have a unique name. Name for the port that can be referred to by\
\ services.\",\"type\":\"string\"},\"protocol\":{\"default\":\"TCP\",\"description\"\
:\"Protocol for port. Must be UDP, TCP, or SCTP. Defaults to \\\"TCP\\\".\"\
,\"type\":\"string\"}},\"required\":[\"containerPort\"],\"type\":\"object\"\
,\"x-kubernetes-preserve-unknown-fields\":true},\"type\":\"array\",\"x-kubernetes-list-map-keys\"\
:[\"containerPort\",\"protocol\"],\"x-kubernetes-list-type\":\"map\"},\"readinessProbe\"\
:{\"description\":\"Periodic probe of container service readiness. Container\
\ will be removed from service endpoints if the probe fails. Cannot be updated.\
\ More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\"\
,\"properties\":{\"exec\":{\"description\":\"One and only one of the following\
\ should be specified. Exec specifies the action to take.\",\"properties\":{\"\
command\":{\"description\":\"Command is the command line to execute inside the\
\ container, the working directory for the command is root ('/') in the container's\
\ filesystem. The command is simply exec'd, it is not run inside a shell, so\
\ traditional shell instructions ('|', etc) won't work. To use a shell, you\
\ need to explicitly call out to that shell. Exit status of 0 is treated as\
\ live/healthy and non-zero is unhealthy.\",\"items\":{\"type\":\"string\"},\"\
type\":\"array\"}},\"type\":\"object\"},\"failureThreshold\":{\"description\"\
:\"Minimum consecutive failures for the probe to be considered failed after\
\ having succeeded. Defaults to 3. Minimum value is 1.\",\"format\":\"int32\"\
,\"type\":\"integer\"},\"httpGet\":{\"description\":\"HTTPGet specifies the\
\ http request to perform.\",\"properties\":{\"host\":{\"description\":\"Host\
\ name to connect to, defaults to the pod IP. You probably want to set \\\"\
Host\\\" in httpHeaders instead.\",\"type\":\"string\"},\"httpHeaders\":{\"\
description\":\"Custom headers to set in the request. HTTP allows repeated headers.\"\
,\"items\":{\"description\":\"HTTPHeader describes a custom header to be used\
\ in HTTP probes\",\"properties\":{\"name\":{\"description\":\"The header field\
\ name\",\"type\":\"string\"},\"value\":{\"description\":\"The header field\
\ value\",\"type\":\"string\"}},\"required\":[\"name\",\"value\"],\"type\":\"\
object\"},\"type\":\"array\"},\"path\":{\"description\":\"Path to access on\
\ the HTTP server.\",\"type\":\"string\"},\"scheme\":{\"description\":\"Scheme\
\ to use for connecting to the host. Defaults to HTTP.\",\"type\":\"string\"\
}},\"type\":\"object\",\"x-kubernetes-preserve-unknown-fields\":true},\"initialDelaySeconds\"\
:{\"description\":\"Number of seconds after the container has started before\
\ liveness probes are initiated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\"\
,\"format\":\"int32\",\"type\":\"integer\"},\"periodSeconds\":{\"description\"\
:\"How often (in seconds) to perform the probe.\",\"format\":\"int32\",\"type\"\
:\"integer\"},\"successThreshold\":{\"description\":\"Minimum consecutive successes\
\ for the probe to be considered successful after having failed. Defaults to\
\ 1. Must be 1 for liveness and startup. Minimum value is 1.\",\"format\":\"\
int32\",\"type\":\"integer\"},\"tcpSocket\":{\"description\":\"TCPSocket specifies\
\ an action involving a TCP port. TCP hooks not yet supported TODO: implement\
\ a realistic TCP lifecycle hook\",\"properties\":{\"host\":{\"description\"\
:\"Optional: Host name to connect to, defaults to the pod IP.\",\"type\":\"\
string\"}},\"type\":\"object\",\"x-kubernetes-preserve-unknown-fields\":true},\"\
timeoutSeconds\":{\"description\":\"Number of seconds after which the probe\
\ times out. Defaults to 1 second. Minimum value is 1. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\"\
,\"format\":\"int32\",\"type\":\"integer\"}},\"type\":\"object\"},\"resources\"\
:{\"description\":\"Compute Resources required by this container. Cannot be\
\ updated. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/\"\
,\"properties\":{\"limits\":{\"additionalProperties\":{\"anyOf\":[{\"type\"\
:\"integer\"},{\"type\":\"string\"}],\"pattern\":\"^(\\\\+|-)?(([0-9]+(\\\\\
.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\
\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\"x-kubernetes-int-or-string\":true},\"description\"\
:\"Limits describes the maximum amount of compute resources allowed. More info:\
\ https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/\"\
,\"type\":\"object\"},\"requests\":{\"additionalProperties\":{\"anyOf\":[{\"\
type\":\"integer\"},{\"type\":\"string\"}],\"pattern\":\"^(\\\\+|-)?(([0-9]+(\\\
\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\
\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\"x-kubernetes-int-or-string\":true},\"description\"\
:\"Requests describes the minimum amount of compute resources required. If Requests\
\ is omitted for a container, it defaults to Limits if that is explicitly specified,\
\ otherwise to an implementation-defined value. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/\"\
,\"type\":\"object\"}},\"type\":\"object\"},\"securityContext\":{\"description\"\
:\"Security options the pod should run with. More info: https://kubernetes.io/docs/concepts/policy/security-context/\
\ More info: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/\"\
,\"properties\":{\"capabilities\":{\"description\":\"The capabilities to add/drop\
\ when running containers. Defaults to the default set of capabilities granted\
\ by the container runtime.\",\"properties\":{\"drop\":{\"description\":\"Removed\
\ capabilities\",\"items\":{\"description\":\"Capability represent POSIX capabilities\
\ type\",\"type\":\"string\"},\"type\":\"array\"}},\"type\":\"object\",\"x-kubernetes-preserve-unknown-fields\"\
:true},\"readOnlyRootFilesystem\":{\"description\":\"Whether this container\
\ has a read-only root filesystem. Default is false.\",\"type\":\"boolean\"\
},\"runAsUser\":{\"description\":\"The UID to run the entrypoint of the container\
\ process. Defaults to user specified in image metadata if unspecified. May\
\ also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext,\
\ the value specified in SecurityContext takes precedence.\",\"format\":\"int64\"\
,\"type\":\"integer\"}},\"type\":\"object\",\"x-kubernetes-preserve-unknown-fields\"\
:true},\"terminationMessagePath\":{\"description\":\"Optional: Path at which\
\ the file to which the container's termination message will be written is mounted\
\ into the container's filesystem. Message written is intended to be brief final\
\ status, such as an assertion failure message. Will be truncated by the node\
\ if greater than 4096 bytes. The total message length across all containers\
\ will be limited to 12kb. Defaults to /dev/termination-log. Cannot be updated.\"\
,\"type\":\"string\"},\"terminationMessagePolicy\":{\"description\":\"Indicate\
\ how the termination message should be populated. File will use the contents\
\ of terminationMessagePath to populate the container status message on both\
\ success and failure. FallbackToLogsOnError will use the last chunk of container\
\ log output if the termination message file is empty and the container exited\
\ with an error. The log output is limited to 2048 bytes or 80 lines, whichever\
\ is smaller. Defaults to File. Cannot be updated.\",\"type\":\"string\"},\"\
volumeMounts\":{\"description\":\"Pod volumes to mount into the container's\
\ filesystem. Cannot be updated.\",\"items\":{\"description\":\"VolumeMount\
\ describes a mounting of a Volume within a container.\",\"properties\":{\"\
mountPath\":{\"description\":\"Path within the container at which the volume\
\ should be mounted. Must not contain ':'.\",\"type\":\"string\"},\"name\"\
:{\"description\":\"This must match the Name of a Volume.\",\"type\":\"string\"\
},\"readOnly\":{\"description\":\"Mounted read-only if true, read-write otherwise\
\ (false or unspecified). Defaults to false.\",\"type\":\"boolean\"},\"subPath\"\
:{\"description\":\"Path within the volume from which the container's volume\
\ should be mounted. Defaults to \\\"\\\" (volume's root).\",\"type\":\"string\"\
}},\"required\":[\"mountPath\",\"name\"],\"type\":\"object\"},\"type\":\"array\"\
},\"workingDir\":{\"description\":\"Container's working directory. If not specified,\
\ the container runtime's default will be used, which might be configured in\
\ the container image. Cannot be updated.\",\"type\":\"string\"}},\"type\":\"\
object\",\"x-kubernetes-preserve-unknown-fields\":true},\"type\":\"array\"},\"\
enableServiceLinks\":{\"description\":\"EnableServiceLinks indicates whether\
\ information about services should be injected into pod's environment variables,\
\ matching the syntax of Docker links. Optional: Defaults to true.\",\"type\"\
:\"boolean\"},\"imagePullSecrets\":{\"description\":\"ImagePullSecrets is an\
\ optional list of references to secrets in the same namespace to use for pulling\
\ any of the images used by this PodSpec. If specified, these secrets will be\
\ passed to individual puller implementations for them to use. For example,\
\ in the case of docker, only DockerConfig type secrets are honored. More info:\
\ https://kubernetes.io/docs/concepts/containers/images#specifying-imagepullsecrets-on-a-pod\"\
,\"items\":{\"description\":\"LocalObjectReference contains enough information\
\ to let you locate the referenced object inside the same namespace.\",\"properties\"\
:{\"name\":{\"description\":\"Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\
\ TODO: Add other useful fields. apiVersion, kind, uid?\",\"type\":\"string\"\
}},\"type\":\"object\"},\"type\":\"array\"},\"serviceAccountName\":{\"description\"\
:\"ServiceAccountName is the name of the ServiceAccount to use to run this pod.\
\ More info: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/\"\
,\"type\":\"string\"},\"timeoutSeconds\":{\"description\":\"TimeoutSeconds is\
\ the maximum duration in seconds that the request routing layer will wait for\
\ a request delivered to a container to begin replying (send network traffic).\
\ If unspecified, a system default will be provided.\",\"format\":\"int64\"\
,\"type\":\"integer\"},\"volumes\":{\"description\":\"List of volumes that can\
\ be mounted by containers belonging to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes\"\
,\"items\":{\"description\":\"Volume represents a named volume in a pod that\
\ may be accessed by any container in the pod.\",\"properties\":{\"configMap\"\
:{\"description\":\"ConfigMap represents a configMap that should populate this\
\ volume\",\"properties\":{\"defaultMode\":{\"description\":\"Optional: mode\
\ bits used to set permissions on created files by default. Must be an octal\
\ value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts\
\ both octal and decimal values, JSON requires decimal values for mode bits.\
\ Defaults to 0644. Directories within the path are not affected by this setting.\
\ This might be in conflict with other options that affect the file mode, like\
\ fsGroup, and the result can be other mode bits set.\",\"format\":\"int32\"\
,\"type\":\"integer\"},\"items\":{\"description\":\"If unspecified, each key-value\
\ pair in the Data field of the referenced ConfigMap will be projected into\
\ the volume as a file whose name is the key and content is the value. If specified,\
\ the listed keys will be projected into the specified paths, and unlisted keys\
\ will not be present. If a key is specified which is not present in the ConfigMap,\
\ the volume setup will error unless it is marked optional. Paths must be relative\
\ and may not contain the '..' path or start with '..'.\",\"items\":{\"description\"\
:\"Maps a string key to a path within a volume.\",\"properties\":{\"key\":{\"\
description\":\"The key to project.\",\"type\":\"string\"},\"mode\":{\"description\"\
:\"Optional: mode bits used to set permissions on this file. Must be an octal\
\ value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts\
\ both octal and decimal values, JSON requires decimal values for mode bits.\
\ If not specified, the volume defaultMode will be used. This might be in conflict\
\ with other options that affect the file mode, like fsGroup, and the result\
\ can be other mode bits set.\",\"format\":\"int32\",\"type\":\"integer\"},\"\
path\":{\"description\":\"The relative path of the file to map the key to. May\
\ not be an absolute path. May not contain the path element '..'. May not start\
\ with the string '..'.\",\"type\":\"string\"}},\"required\":[\"key\",\"path\"\
],\"type\":\"object\"},\"type\":\"array\"},\"name\":{\"description\":\"Name\
\ of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\
\ TODO: Add other useful fields. apiVersion, kind, uid?\",\"type\":\"string\"\
},\"optional\":{\"description\":\"Specify whether the ConfigMap or its keys\
\ must be defined\",\"type\":\"boolean\"}},\"type\":\"object\"},\"name\":{\"\
description\":\"Volume's name. Must be a DNS_LABEL and unique within the pod.\
\ More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\"\
,\"type\":\"string\"},\"projected\":{\"description\":\"Items for all in one\
\ resources secrets, configmaps, and downward API\",\"properties\":{\"defaultMode\"\
:{\"description\":\"Mode bits used to set permissions on created files by default.\
\ Must be an octal value between 0000 and 0777 or a decimal value between 0\
\ and 511. YAML accepts both octal and decimal values, JSON requires decimal\
\ values for mode bits. Directories within the path are not affected by this\
\ setting. This might be in conflict with other options that affect the file\
\ mode, like fsGroup, and the result can be other mode bits set.\",\"format\"\
:\"int32\",\"type\":\"integer\"},\"sources\":{\"description\":\"list of volume\
\ projections\",\"items\":{\"description\":\"Projection that may be projected\
\ along with other supported volume types\",\"properties\":{\"configMap\":{\"\
description\":\"information about the configMap data to project\",\"properties\"\
:{\"items\":{\"description\":\"If unspecified, each key-value pair in the Data\
\ field of the referenced ConfigMap will be projected into the volume as a file\
\ whose name is the key and content is the value. If specified, the listed keys\
\ will be projected into the specified paths, and unlisted keys will not be\
\ present. If a key is specified which is not present in the ConfigMap, the\
\ volume setup will error unless it is marked optional. Paths must be relative\
\ and may not contain the '..' path or start with '..'.\",\"items\":{\"description\"\
:\"Maps a string key to a path within a volume.\",\"properties\":{\"key\":{\"\
description\":\"The key to project.\",\"type\":\"string\"},\"mode\":{\"description\"\
:\"Optional: mode bits used to set permissions on this file. Must be an octal\
\ value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts\
\ both octal and decimal values, JSON requires decimal values for mode bits.\
\ If not specified, the volume defaultMode will be used. This might be in conflict\
\ with other options that affect the file mode, like fsGroup, and the result\
\ can be other mode bits set.\",\"format\":\"int32\",\"type\":\"integer\"},\"\
path\":{\"description\":\"The relative path of the file to map the key to. May\
\ not be an absolute path. May not contain the path element '..'. May not start\
\ with the string '..'.\",\"type\":\"string\"}},\"required\":[\"key\",\"path\"\
],\"type\":\"object\"},\"type\":\"array\"},\"name\":{\"description\":\"Name\
\ of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\
\ TODO: Add other useful fields. apiVersion, kind, uid?\",\"type\":\"string\"\
},\"optional\":{\"description\":\"Specify whether the ConfigMap or its keys\
\ must be defined\",\"type\":\"boolean\"}},\"type\":\"object\"},\"secret\":{\"\
description\":\"information about the secret data to project\",\"properties\"\
:{\"items\":{\"description\":\"If unspecified, each key-value pair in the Data\
\ field of the referenced Secret will be projected into the volume as a file\
\ whose name is the key and content is the value. If specified, the listed keys\
\ will be projected into the specified paths, and unlisted keys will not be\
\ present. If a key is specified which is not present in the Secret, the volume\
\ setup will error unless it is marked optional. Paths must be relative and\
\ may not contain the '..' path or start with '..'.\",\"items\":{\"description\"\
:\"Maps a string key to a path within a volume.\",\"properties\":{\"key\":{\"\
description\":\"The key to project.\",\"type\":\"string\"},\"mode\":{\"description\"\
:\"Optional: mode bits used to set permissions on this file. Must be an octal\
\ value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts\
\ both octal and decimal values, JSON requires decimal values for mode bits.\
\ If not specified, the volume defaultMode will be used. This might be in conflict\
\ with other options that affect the file mode, like fsGroup, and the result\
\ can be other mode bits set.\",\"format\":\"int32\",\"type\":\"integer\"},\"\
path\":{\"description\":\"The relative path of the file to map the key to. May\
\ not be an absolute path. May not contain the path element '..'. May not start\
\ with the string '..'.\",\"type\":\"string\"}},\"required\":[\"key\",\"path\"\
],\"type\":\"object\"},\"type\":\"array\"},\"name\":{\"description\":\"Name\
\ of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\
\ TODO: Add other useful fields. apiVersion, kind, uid?\",\"type\":\"string\"\
},\"optional\":{\"description\":\"Specify whether the Secret or its key must\
\ be defined\",\"type\":\"boolean\"}},\"type\":\"object\"},\"serviceAccountToken\"\
:{\"description\":\"information about the serviceAccountToken data to project\"\
,\"properties\":{\"audience\":{\"description\":\"Audience is the intended audience\
\ of the token. A recipient of a token must identify itself with an identifier\
\ specified in the audience of the token, and otherwise should reject the token.\
\ The audience defaults to the identifier of the apiserver.\",\"type\":\"string\"\
},\"expirationSeconds\":{\"description\":\"ExpirationSeconds is the requested\
\ duration of validity of the service account token. As the token approaches\
\ expiration, the kubelet volume plugin will proactively rotate the service\
\ account token. The kubelet will start trying to rotate the token if the token\
\ is older than 80 percent of its time to live or if the token is older than\
\ 24 hours.Defaults to 1 hour and must be at least 10 minutes.\",\"format\"\
:\"int64\",\"type\":\"integer\"},\"path\":{\"description\":\"Path is the path\
\ relative to the mount point of the file to project the token into.\",\"type\"\
:\"string\"}},\"required\":[\"path\"],\"type\":\"object\"}},\"type\":\"object\"\
},\"type\":\"array\"}},\"type\":\"object\"},\"secret\":{\"description\":\"Secret\
\ represents a secret that should populate this volume. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret\"\
,\"properties\":{\"defaultMode\":{\"description\":\"Optional: mode bits used\
\ to set permissions on created files by default. Must be an octal value between\
\ 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal\
\ and decimal values, JSON requires decimal values for mode bits. Defaults to\
\ 0644. Directories within the path are not affected by this setting. This might\
\ be in conflict with other options that affect the file mode, like fsGroup,\
\ and the result can be other mode bits set.\",\"format\":\"int32\",\"type\"\
:\"integer\"},\"items\":{\"description\":\"If unspecified, each key-value pair\
\ in the Data field of the referenced Secret will be projected into the volume\
\ as a file whose name is the key and content is the value. If specified, the\
\ listed keys will be projected into the specified paths, and unlisted keys\
\ will not be present. If a key is specified which is not present in the Secret,\
\ the volume setup will error unless it is marked optional. Paths must be relative\
\ and may not contain the '..' path or start with '..'.\",\"items\":{\"description\"\
:\"Maps a string key to a path within a volume.\",\"properties\":{\"key\":{\"\
description\":\"The key to project.\",\"type\":\"string\"},\"mode\":{\"description\"\
:\"Optional: mode bits used to set permissions on this file. Must be an octal\
\ value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts\
\ both octal and decimal values, JSON requires decimal values for mode bits.\
\ If not specified, the volume defaultMode will be used. This might be in conflict\
\ with other options that affect the file mode, like fsGroup, and the result\
\ can be other mode bits set.\",\"format\":\"int32\",\"type\":\"integer\"},\"\
path\":{\"description\":\"The relative path of the file to map the key to. May\
\ not be an absolute path. May not contain the path element '..'. May not start\
\ with the string '..'.\",\"type\":\"string\"}},\"required\":[\"key\",\"path\"\
],\"type\":\"object\"},\"type\":\"array\"},\"optional\":{\"description\":\"\
Specify whether the Secret or its keys must be defined\",\"type\":\"boolean\"\
},\"secretName\":{\"description\":\"Name of the secret in the pod's namespace\
\ to use. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret\"\
,\"type\":\"string\"}},\"type\":\"object\"}},\"required\":[\"name\"],\"type\"\
:\"object\"},\"type\":\"array\"}},\"required\":[\"containers\"],\"type\":\"\
object\",\"x-kubernetes-preserve-unknown-fields\":true},\"status\":{\"description\"\
:\"RevisionStatus communicates the observed state of the Revision (from the\
\ controller).\",\"properties\":{\"actualReplicas\":{\"description\":\"ActualReplicas\
\ reflects the amount of ready pods running this revision.\",\"format\":\"int32\"\
,\"type\":\"integer\"},\"annotations\":{\"additionalProperties\":{\"type\":\"\
string\"},\"description\":\"Annotations is additional Status fields for the\
\ Resource to save some additional State as well as convey more information\
\ to the user. This is roughly akin to Annotations on any k8s resource, just\
\ the reconciler conveying richer information outwards.\",\"type\":\"object\"\
},\"conditions\":{\"description\":\"Conditions the latest available observations\
\ of a resource's current state.\",\"items\":{\"description\":\"Condition defines\
\ a readiness condition for a Knative resource. See: https://github.com/kubernetes/community/blob/master/contributors/devel/sig-architecture/api-conventions.md#typical-status-properties\"\
,\"properties\":{\"lastTransitionTime\":{\"description\":\"LastTransitionTime\
\ is the last time the condition transitioned from one status to another. We\
\ use VolatileTime in place of metav1.Time to exclude this from creating equality.Semantic\
\ differences (all other things held constant).\",\"format\":\"date-time\",\"\
type\":\"string\"},\"message\":{\"description\":\"A human readable message indicating\
\ details about the transition.\",\"type\":\"string\"},\"reason\":{\"description\"\
:\"The reason for the condition's last transition.\",\"type\":\"string\"},\"\
severity\":{\"description\":\"Severity with which to treat failures of this\
\ type of condition. When this is not specified, it defaults to Error.\",\"\
type\":\"string\"},\"status\":{\"description\":\"Status of the condition, one\
\ of True, False, Unknown.\",\"type\":\"string\"},\"type\":{\"description\"\
:\"Type of condition.\",\"type\":\"string\"}},\"required\":[\"status\",\"type\"\
],\"type\":\"object\"},\"type\":\"array\"},\"containerStatuses\":{\"description\"\
:\"ContainerStatuses is a slice of images present in .Spec.Container[*].Image\
\ to their respective digests and their container name. The digests are resolved\
\ during the creation of Revision. ContainerStatuses holds the container name\
\ and image digests for both serving and non serving containers. ref: http://bit.ly/image-digests\"\
,\"items\":{\"description\":\"ContainerStatus holds the information of container\
\ name and image digest value\",\"properties\":{\"imageDigest\":{\"type\":\"\
string\"},\"name\":{\"type\":\"string\"}},\"type\":\"object\"},\"type\":\"array\"\
},\"desiredReplicas\":{\"description\":\"DesiredReplicas reflects the desired\
\ amount of pods running this revision.\",\"format\":\"int32\",\"type\":\"integer\"\
},\"imageDigest\":{\"description\":\"DeprecatedImageDigest holds the resolved\
\ digest for the image specified within .Spec.Container.Image. The digest is\
\ resolved during the creation of Revision. This field holds the digest value\
\ regardless of whether a tag or digest was originally specified in the Container\
\ object. It may be empty if the image comes from a registry listed to skip\
\ resolution. If multiple containers specified then DeprecatedImageDigest holds\
\ the digest for serving container. DEPRECATED: Use ContainerStatuses instead.\
\ TODO(savitaashture) Remove deprecatedImageDigest. ref https://kubernetes.io/docs/reference/using-api/deprecation-policy\
\ for deprecation.\",\"type\":\"string\"},\"logUrl\":{\"description\":\"LogURL\
\ specifies the generated logging url for this particular revision based on\
\ the revision url template specified in the controller's config.\",\"type\"\
:\"string\"},\"observedGeneration\":{\"description\":\"ObservedGeneration is\
\ the 'Generation' of the Service that was last processed by the controller.\"\
,\"format\":\"int64\",\"type\":\"integer\"},\"serviceName\":{\"description\"\
:\"ServiceName holds the name of a core Kubernetes Service resource that load\
\ balances over the pods backing this Revision. Deprecated: revision service\
\ name is effectively equal to the revision name, as per #10540. 0.23 \u2014\
\ stop populating 0.25 \u2014 remove.\",\"type\":\"string\"}},\"type\":\"object\"\
}},\"type\":\"object\"}},\"served\":true,\"storage\":true,\"subresources\":{\"\
status\":{}}}]}}\n"
creationTimestamp: '2021-08-30T18:59:46Z'
generation: 1
labels:
knative.dev/crd-install: 'true'
serving.knative.dev/release: v0.24.0
managedFields:
- apiVersion: apiextensions.k8s.io/v1
fieldsType: FieldsV1
fieldsV1:
f:status:
f:acceptedNames:
f:categories: {}
f:kind: {}
f:listKind: {}
f:plural: {}
f:shortNames: {}
f:singular: {}
f:conditions:
k:{"type":"Established"}:
.: {}
f:lastTransitionTime: {}
f:message: {}
f:reason: {}
f:status: {}
f:type: {}
k:{"type":"NamesAccepted"}:
.: {}
f:lastTransitionTime: {}
f:message: {}
f:reason: {}
f:status: {}
f:type: {}
manager: k3s
operation: Update
time: '2021-08-30T18:59:46Z'
- apiVersion: apiextensions.k8s.io/v1
fieldsType: FieldsV1
fieldsV1:
f:metadata:
f:annotations:
.: {}
f:kubectl.kubernetes.io/last-applied-configuration: {}
f:labels:
.: {}
f:knative.dev/crd-install: {}
f:serving.knative.dev/release: {}
f:spec:
f:conversion:
.: {}
f:strategy: {}
f:group: {}
f:names:
f:categories: {}
f:kind: {}
f:listKind: {}
f:plural: {}
f:shortNames: {}
f:singular: {}
f:scope: {}
f:versions: {}
manager: manifestival
operation: Update
time: '2021-08-30T18:59:49Z'
name: revisions.serving.knative.dev
resourceVersion: '5618'
uid: c7608c83-1ae8-490f-b6fb-34141ab16ae3
spec:
conversion:
strategy: None
group: serving.knative.dev
names:
categories:
- all
- knative
- serving
kind: Revision
listKind: RevisionList
plural: revisions
shortNames:
- rev
singular: revision
scope: Namespaced
versions:
- additionalPrinterColumns:
- jsonPath: .metadata.labels['serving\.knative\.dev/configuration']
name: Config Name
type: string
- jsonPath: .status.serviceName
name: K8s Service Name
type: string
- jsonPath: .metadata.labels['serving\.knative\.dev/configurationGeneration']
name: Generation
type: string
- jsonPath: .status.conditions[?(@.type=='Ready')].status
name: Ready
type: string
- jsonPath: .status.conditions[?(@.type=='Ready')].reason
name: Reason
type: string
- jsonPath: .status.actualReplicas
name: Actual Replicas
type: integer
- jsonPath: .status.desiredReplicas
name: Desired Replicas
type: integer
name: v1
schema:
openAPIV3Schema:
description: "Revision is an immutable snapshot of code and configuration.\
\ A revision references a container image. Revisions are created by updates\
\ to a Configuration. \n See also: https://github.com/knative/serving/blob/main/docs/spec/overview.md#revision"
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: RevisionSpec holds the desired state of the Revision (from
the client).
properties:
containerConcurrency:
description: ContainerConcurrency specifies the maximum allowed in-flight
(concurrent) requests per container of the Revision. Defaults to
`0` which means concurrency to the application is not limited, and
the system decides the target concurrency for the autoscaler.
format: int64
type: integer
containers:
description: List of containers belonging to the pod. Containers cannot
currently be added or removed. There must be at least one container
in a Pod. Cannot be updated.
items:
description: A single application container that you want to run
within a pod.
properties:
args:
description: 'Arguments to the entrypoint. The docker image''s
CMD is used if this is not provided. Variable references $(VAR_NAME)
are expanded using the container''s environment. If a variable
cannot be resolved, the reference in the input string will
be unchanged. The $(VAR_NAME) syntax can be escaped with a
double $$, ie: $$(VAR_NAME). Escaped references will never
be expanded, regardless of whether the variable exists or
not. Cannot be updated. More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell'
items:
type: string
type: array
command:
description: 'Entrypoint array. Not executed within a shell.
The docker image''s ENTRYPOINT is used if this is not provided.
Variable references $(VAR_NAME) are expanded using the container''s
environment. If a variable cannot be resolved, the reference
in the input string will be unchanged. The $(VAR_NAME) syntax
can be escaped with a double $$, ie: $$(VAR_NAME). Escaped
references will never be expanded, regardless of whether the
variable exists or not. Cannot be updated. More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell'
items:
type: string
type: array
env:
description: List of environment variables to set in the container.
Cannot be updated.
items:
description: EnvVar represents an environment variable present
in a Container.
properties:
name:
description: Name of the environment variable. Must be
a C_IDENTIFIER.
type: string
value:
description: 'Variable references $(VAR_NAME) are expanded
using the previous defined environment variables in
the container and any service environment variables.
If a variable cannot be resolved, the reference in the
input string will be unchanged. The $(VAR_NAME) syntax
can be escaped with a double $$, ie: $$(VAR_NAME). Escaped
references will never be expanded, regardless of whether
the variable exists or not. Defaults to "".'
type: string
valueFrom:
description: Source for the environment variable's value.
Cannot be used if value is not empty.
properties:
configMapKeyRef:
description: Selects a key of a ConfigMap.
properties:
key:
description: The key to select.
type: string
name:
description: 'Name of the referent. More info:
https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
TODO: Add other useful fields. apiVersion, kind,
uid?'
type: string
optional:
description: Specify whether the ConfigMap or
its key must be defined
type: boolean
required:
- key
type: object
secretKeyRef:
description: Selects a key of a secret in the pod's
namespace
properties:
key:
description: The key of the secret to select from. Must
be a valid secret key.
type: string
name:
description: 'Name of the referent. More info:
https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
TODO: Add other useful fields. apiVersion, kind,
uid?'
type: string
optional:
description: Specify whether the Secret or its
key must be defined
type: boolean
required:
- key
type: object
type: object
x-kubernetes-preserve-unknown-fields: true
required:
- name
type: object
type: array
envFrom:
description: List of sources to populate environment variables
in the container. The keys defined within a source must be
a C_IDENTIFIER. All invalid keys will be reported as an event
when the container is starting. When a key exists in multiple
sources, the value associated with the last source will take
precedence. Values defined by an Env with a duplicate key
will take precedence. Cannot be updated.
items:
description: EnvFromSource represents the source of a set
of ConfigMaps
properties:
configMapRef:
description: The ConfigMap to select from
properties:
name:
description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
TODO: Add other useful fields. apiVersion, kind,
uid?'
type: string
optional:
description: Specify whether the ConfigMap must be
defined
type: boolean
type: object
prefix:
description: An optional identifier to prepend to each
key in the ConfigMap. Must be a C_IDENTIFIER.
type: string
secretRef:
description: The Secret to select from
properties:
name:
description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
TODO: Add other useful fields. apiVersion, kind,
uid?'
type: string
optional:
description: Specify whether the Secret must be defined
type: boolean
type: object
type: object
type: array
image:
description: 'Docker image name. More info: https://kubernetes.io/docs/concepts/containers/images
This field is optional to allow higher level config management
to default or override container images in workload controllers
like Deployments and StatefulSets.'
type: string
imagePullPolicy:
description: 'Image pull policy. One of Always, Never, IfNotPresent.
Defaults to Always if :latest tag is specified, or IfNotPresent
otherwise. Cannot be updated. More info: https://kubernetes.io/docs/concepts/containers/images#updating-images'
type: string
livenessProbe:
description: 'Periodic probe of container liveness. Container
will be restarted if the probe fails. Cannot be updated. More
info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
properties:
exec:
description: One and only one of the following should be
specified. Exec specifies the action to take.
properties:
command:
description: Command is the command line to execute
inside the container, the working directory for the
command is root ('/') in the container's filesystem.
The command is simply exec'd, it is not run inside
a shell, so traditional shell instructions ('|', etc)
won't work. To use a shell, you need to explicitly
call out to that shell. Exit status of 0 is treated
as live/healthy and non-zero is unhealthy.
items:
type: string
type: array
type: object
failureThreshold:
description: Minimum consecutive failures for the probe
to be considered failed after having succeeded. Defaults
to 3. Minimum value is 1.
format: int32
type: integer
httpGet:
description: HTTPGet specifies the http request to perform.
properties:
host:
description: Host name to connect to, defaults to the
pod IP. You probably want to set "Host" in httpHeaders
instead.
type: string
httpHeaders:
description: Custom headers to set in the request. HTTP
allows repeated headers.
items:
description: HTTPHeader describes a custom header
to be used in HTTP probes
properties:
name:
description: The header field name
type: string
value:
description: The header field value
type: string
required:
- name
- value
type: object
type: array
path:
description: Path to access on the HTTP server.
type: string
scheme:
description: Scheme to use for connecting to the host.
Defaults to HTTP.
type: string
type: object
x-kubernetes-preserve-unknown-fields: true
initialDelaySeconds:
description: 'Number of seconds after the container has
started before liveness probes are initiated. More info:
https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
format: int32
type: integer
periodSeconds:
description: How often (in seconds) to perform the probe.
format: int32
type: integer
successThreshold:
description: Minimum consecutive successes for the probe
to be considered successful after having failed. Defaults
to 1. Must be 1 for liveness and startup. Minimum value
is 1.
format: int32
type: integer
tcpSocket:
description: 'TCPSocket specifies an action involving a
TCP port. TCP hooks not yet supported TODO: implement
a realistic TCP lifecycle hook'
properties:
host:
description: 'Optional: Host name to connect to, defaults
to the pod IP.'
type: string
type: object
x-kubernetes-preserve-unknown-fields: true
timeoutSeconds:
description: 'Number of seconds after which the probe times
out. Defaults to 1 second. Minimum value is 1. More info:
https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
format: int32
type: integer
type: object
name:
description: Name of the container specified as a DNS_LABEL.
Each container in a pod must have a unique name (DNS_LABEL).
Cannot be updated.
type: string
ports:
description: List of ports to expose from the container. Exposing
a port here gives the system additional information about
the network connections a container uses, but is primarily
informational. Not specifying a port here DOES NOT prevent
that port from being exposed. Any port which is listening
on the default "0.0.0.0" address inside a container will be
accessible from the network. Cannot be updated.
items:
description: ContainerPort represents a network port in a
single container.
properties:
containerPort:
description: Number of port to expose on the pod's IP
address. This must be a valid port number, 0 < x < 65536.
format: int32
type: integer
name:
description: If specified, this must be an IANA_SVC_NAME
and unique within the pod. Each named port in a pod
must have a unique name. Name for the port that can
be referred to by services.
type: string
protocol:
default: TCP
description: Protocol for port. Must be UDP, TCP, or SCTP.
Defaults to "TCP".
type: string
required:
- containerPort
type: object
x-kubernetes-preserve-unknown-fields: true
type: array
x-kubernetes-list-map-keys:
- containerPort
- protocol
x-kubernetes-list-type: map
readinessProbe:
description: 'Periodic probe of container service readiness.
Container will be removed from service endpoints if the probe
fails. Cannot be updated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
properties:
exec:
description: One and only one of the following should be
specified. Exec specifies the action to take.
properties:
command:
description: Command is the command line to execute
inside the container, the working directory for the
command is root ('/') in the container's filesystem.
The command is simply exec'd, it is not run inside
a shell, so traditional shell instructions ('|', etc)
won't work. To use a shell, you need to explicitly
call out to that shell. Exit status of 0 is treated
as live/healthy and non-zero is unhealthy.
items:
type: string
type: array
type: object
failureThreshold:
description: Minimum consecutive failures for the probe
to be considered failed after having succeeded. Defaults
to 3. Minimum value is 1.
format: int32
type: integer
httpGet:
description: HTTPGet specifies the http request to perform.
properties:
host:
description: Host name to connect to, defaults to the
pod IP. You probably want to set "Host" in httpHeaders
instead.
type: string
httpHeaders:
description: Custom headers to set in the request. HTTP
allows repeated headers.
items:
description: HTTPHeader describes a custom header
to be used in HTTP probes
properties:
name:
description: The header field name
type: string
value:
description: The header field value
type: string
required:
- name
- value
type: object
type: array
path:
description: Path to access on the HTTP server.
type: string
scheme:
description: Scheme to use for connecting to the host.
Defaults to HTTP.
type: string
type: object
x-kubernetes-preserve-unknown-fields: true
initialDelaySeconds:
description: 'Number of seconds after the container has
started before liveness probes are initiated. More info:
https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
format: int32
type: integer
periodSeconds:
description: How often (in seconds) to perform the probe.
format: int32
type: integer
successThreshold:
description: Minimum consecutive successes for the probe
to be considered successful after having failed. Defaults
to 1. Must be 1 for liveness and startup. Minimum value
is 1.
format: int32
type: integer
tcpSocket:
description: 'TCPSocket specifies an action involving a
TCP port. TCP hooks not yet supported TODO: implement
a realistic TCP lifecycle hook'
properties:
host:
description: 'Optional: Host name to connect to, defaults
to the pod IP.'
type: string
type: object
x-kubernetes-preserve-unknown-fields: true
timeoutSeconds:
description: 'Number of seconds after which the probe times
out. Defaults to 1 second. Minimum value is 1. More info:
https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
format: int32
type: integer
type: object
resources:
description: 'Compute Resources required by this container.
Cannot be updated. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/'
properties:
limits:
additionalProperties:
anyOf:
- type: integer
- type: string
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
x-kubernetes-int-or-string: true
description: 'Limits describes the maximum amount of compute
resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/'
type: object
requests:
additionalProperties:
anyOf:
- type: integer
- type: string
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
x-kubernetes-int-or-string: true
description: 'Requests describes the minimum amount of compute
resources required. If Requests is omitted for a container,
it defaults to Limits if that is explicitly specified,
otherwise to an implementation-defined value. More info:
https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/'
type: object
type: object
securityContext:
description: 'Security options the pod should run with. More
info: https://kubernetes.io/docs/concepts/policy/security-context/
More info: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/'
properties:
capabilities:
description: The capabilities to add/drop when running containers.
Defaults to the default set of capabilities granted by
the container runtime.
properties:
drop:
description: Removed capabilities
items:
description: Capability represent POSIX capabilities
type
type: string
type: array
type: object
x-kubernetes-preserve-unknown-fields: true
readOnlyRootFilesystem:
description: Whether this container has a read-only root
filesystem. Default is false.
type: boolean
runAsUser:
description: The UID to run the entrypoint of the container
process. Defaults to user specified in image metadata
if unspecified. May also be set in PodSecurityContext. If
set in both SecurityContext and PodSecurityContext, the
value specified in SecurityContext takes precedence.
format: int64
type: integer
type: object
x-kubernetes-preserve-unknown-fields: true
terminationMessagePath:
description: 'Optional: Path at which the file to which the
container''s termination message will be written is mounted
into the container''s filesystem. Message written is intended
to be brief final status, such as an assertion failure message.
Will be truncated by the node if greater than 4096 bytes.
The total message length across all containers will be limited
to 12kb. Defaults to /dev/termination-log. Cannot be updated.'
type: string
terminationMessagePolicy:
description: Indicate how the termination message should be
populated. File will use the contents of terminationMessagePath
to populate the container status message on both success and
failure. FallbackToLogsOnError will use the last chunk of
container log output if the termination message file is empty
and the container exited with an error. The log output is
limited to 2048 bytes or 80 lines, whichever is smaller. Defaults
to File. Cannot be updated.
type: string
volumeMounts:
description: Pod volumes to mount into the container's filesystem.
Cannot be updated.
items:
description: VolumeMount describes a mounting of a Volume
within a container.
properties:
mountPath:
description: Path within the container at which the volume
should be mounted. Must not contain ':'.
type: string
name:
description: This must match the Name of a Volume.
type: string
readOnly:
description: Mounted read-only if true, read-write otherwise
(false or unspecified). Defaults to false.
type: boolean
subPath:
description: Path within the volume from which the container's
volume should be mounted. Defaults to "" (volume's root).
type: string
required:
- mountPath
- name
type: object
type: array
workingDir:
description: Container's working directory. If not specified,
the container runtime's default will be used, which might
be configured in the container image. Cannot be updated.
type: string
type: object
x-kubernetes-preserve-unknown-fields: true
type: array
enableServiceLinks:
description: 'EnableServiceLinks indicates whether information about
services should be injected into pod''s environment variables, matching
the syntax of Docker links. Optional: Defaults to true.'
type: boolean
imagePullSecrets:
description: 'ImagePullSecrets is an optional list of references to
secrets in the same namespace to use for pulling any of the images
used by this PodSpec. If specified, these secrets will be passed
to individual puller implementations for them to use. For example,
in the case of docker, only DockerConfig type secrets are honored.
More info: https://kubernetes.io/docs/concepts/containers/images#specifying-imagepullsecrets-on-a-pod'
items:
description: LocalObjectReference contains enough information to
let you locate the referenced object inside the same namespace.
properties:
name:
description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
TODO: Add other useful fields. apiVersion, kind, uid?'
type: string
type: object
type: array
serviceAccountName:
description: 'ServiceAccountName is the name of the ServiceAccount
to use to run this pod. More info: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/'
type: string
timeoutSeconds:
description: TimeoutSeconds is the maximum duration in seconds that
the request routing layer will wait for a request delivered to a
container to begin replying (send network traffic). If unspecified,
a system default will be provided.
format: int64
type: integer
volumes:
description: 'List of volumes that can be mounted by containers belonging
to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes'
items:
description: Volume represents a named volume in a pod that may
be accessed by any container in the pod.
properties:
configMap:
description: ConfigMap represents a configMap that should populate
this volume
properties:
defaultMode:
description: 'Optional: mode bits used to set permissions
on created files by default. Must be an octal value between
0000 and 0777 or a decimal value between 0 and 511. YAML
accepts both octal and decimal values, JSON requires decimal
values for mode bits. Defaults to 0644. Directories within
the path are not affected by this setting. This might
be in conflict with other options that affect the file
mode, like fsGroup, and the result can be other mode bits
set.'
format: int32
type: integer
items:
description: If unspecified, each key-value pair in the
Data field of the referenced ConfigMap will be projected
into the volume as a file whose name is the key and content
is the value. If specified, the listed keys will be projected
into the specified paths, and unlisted keys will not be
present. If a key is specified which is not present in
the ConfigMap, the volume setup will error unless it is
marked optional. Paths must be relative and may not contain
the '..' path or start with '..'.
items:
description: Maps a string key to a path within a volume.
properties:
key:
description: The key to project.
type: string
mode:
description: 'Optional: mode bits used to set permissions
on this file. Must be an octal value between 0000
and 0777 or a decimal value between 0 and 511. YAML
accepts both octal and decimal values, JSON requires
decimal values for mode bits. If not specified,
the volume defaultMode will be used. This might
be in conflict with other options that affect the
file mode, like fsGroup, and the result can be other
mode bits set.'
format: int32
type: integer
path:
description: The relative path of the file to map
the key to. May not be an absolute path. May not
contain the path element '..'. May not start with
the string '..'.
type: string
required:
- key
- path
type: object
type: array
name:
description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
TODO: Add other useful fields. apiVersion, kind, uid?'
type: string
optional:
description: Specify whether the ConfigMap or its keys must
be defined
type: boolean
type: object
name:
description: 'Volume''s name. Must be a DNS_LABEL and unique
within the pod. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
type: string
projected:
description: Items for all in one resources secrets, configmaps,
and downward API
properties:
defaultMode:
description: Mode bits used to set permissions on created
files by default. Must be an octal value between 0000
and 0777 or a decimal value between 0 and 511. YAML accepts
both octal and decimal values, JSON requires decimal values
for mode bits. Directories within the path are not affected
by this setting. This might be in conflict with other
options that affect the file mode, like fsGroup, and the
result can be other mode bits set.
format: int32
type: integer
sources:
description: list of volume projections
items:
description: Projection that may be projected along with
other supported volume types
properties:
configMap:
description: information about the configMap data
to project
properties:
items:
description: If unspecified, each key-value pair
in the Data field of the referenced ConfigMap
will be projected into the volume as a file
whose name is the key and content is the value.
If specified, the listed keys will be projected
into the specified paths, and unlisted keys
will not be present. If a key is specified which
is not present in the ConfigMap, the volume
setup will error unless it is marked optional.
Paths must be relative and may not contain the
'..' path or start with '..'.
items:
description: Maps a string key to a path within
a volume.
properties:
key:
description: The key to project.
type: string
mode:
description: 'Optional: mode bits used to
set permissions on this file. Must be
an octal value between 0000 and 0777 or
a decimal value between 0 and 511. YAML
accepts both octal and decimal values,
JSON requires decimal values for mode
bits. If not specified, the volume defaultMode
will be used. This might be in conflict
with other options that affect the file
mode, like fsGroup, and the result can
be other mode bits set.'
format: int32
type: integer
path:
description: The relative path of the file
to map the key to. May not be an absolute
path. May not contain the path element
'..'. May not start with the string '..'.
type: string
required:
- key
- path
type: object
type: array
name:
description: 'Name of the referent. More info:
https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
TODO: Add other useful fields. apiVersion, kind,
uid?'
type: string
optional:
description: Specify whether the ConfigMap or
its keys must be defined
type: boolean
type: object
secret:
description: information about the secret data to
project
properties:
items:
description: If unspecified, each key-value pair
in the Data field of the referenced Secret will
be projected into the volume as a file whose
name is the key and content is the value. If
specified, the listed keys will be projected
into the specified paths, and unlisted keys
will not be present. If a key is specified which
is not present in the Secret, the volume setup
will error unless it is marked optional. Paths
must be relative and may not contain the '..'
path or start with '..'.
items:
description: Maps a string key to a path within
a volume.
properties:
key:
description: The key to project.
type: string
mode:
description: 'Optional: mode bits used to
set permissions on this file. Must be
an octal value between 0000 and 0777 or
a decimal value between 0 and 511. YAML
accepts both octal and decimal values,
JSON requires decimal values for mode
bits. If not specified, the volume defaultMode
will be used. This might be in conflict
with other options that affect the file
mode, like fsGroup, and the result can
be other mode bits set.'
format: int32
type: integer
path:
description: The relative path of the file
to map the key to. May not be an absolute
path. May not contain the path element
'..'. May not start with the string '..'.
type: string
required:
- key
- path
type: object
type: array
name:
description: 'Name of the referent. More info:
https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
TODO: Add other useful fields. apiVersion, kind,
uid?'
type: string
optional:
description: Specify whether the Secret or its
key must be defined
type: boolean
type: object
serviceAccountToken:
description: information about the serviceAccountToken
data to project
properties:
audience:
description: Audience is the intended audience
of the token. A recipient of a token must identify
itself with an identifier specified in the audience
of the token, and otherwise should reject the
token. The audience defaults to the identifier
of the apiserver.
type: string
expirationSeconds:
description: ExpirationSeconds is the requested
duration of validity of the service account
token. As the token approaches expiration, the
kubelet volume plugin will proactively rotate
the service account token. The kubelet will
start trying to rotate the token if the token
is older than 80 percent of its time to live
or if the token is older than 24 hours.Defaults
to 1 hour and must be at least 10 minutes.
format: int64
type: integer
path:
description: Path is the path relative to the
mount point of the file to project the token
into.
type: string
required:
- path
type: object
type: object
type: array
type: object
secret:
description: 'Secret represents a secret that should populate
this volume. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret'
properties:
defaultMode:
description: 'Optional: mode bits used to set permissions
on created files by default. Must be an octal value between
0000 and 0777 or a decimal value between 0 and 511. YAML
accepts both octal and decimal values, JSON requires decimal
values for mode bits. Defaults to 0644. Directories within
the path are not affected by this setting. This might
be in conflict with other options that affect the file
mode, like fsGroup, and the result can be other mode bits
set.'
format: int32
type: integer
items:
description: If unspecified, each key-value pair in the
Data field of the referenced Secret will be projected
into the volume as a file whose name is the key and content
is the value. If specified, the listed keys will be projected
into the specified paths, and unlisted keys will not be
present. If a key is specified which is not present in
the Secret, the volume setup will error unless it is marked
optional. Paths must be relative and may not contain the
'..' path or start with '..'.
items:
description: Maps a string key to a path within a volume.
properties:
key:
description: The key to project.
type: string
mode:
description: 'Optional: mode bits used to set permissions
on this file. Must be an octal value between 0000
and 0777 or a decimal value between 0 and 511. YAML
accepts both octal and decimal values, JSON requires
decimal values for mode bits. If not specified,
the volume defaultMode will be used. This might
be in conflict with other options that affect the
file mode, like fsGroup, and the result can be other
mode bits set.'
format: int32
type: integer
path:
description: The relative path of the file to map
the key to. May not be an absolute path. May not
contain the path element '..'. May not start with
the string '..'.
type: string
required:
- key
- path
type: object
type: array
optional:
description: Specify whether the Secret or its keys must
be defined
type: boolean
secretName:
description: 'Name of the secret in the pod''s namespace
to use. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret'
type: string
type: object
required:
- name
type: object
type: array
required:
- containers
type: object
x-kubernetes-preserve-unknown-fields: true
status:
description: RevisionStatus communicates the observed state of the Revision
(from the controller).
properties:
actualReplicas:
description: ActualReplicas reflects the amount of ready pods running
this revision.
format: int32
type: integer
annotations:
additionalProperties:
type: string
description: Annotations is additional Status fields for the Resource
to save some additional State as well as convey more information
to the user. This is roughly akin to Annotations on any k8s resource,
just the reconciler conveying richer information outwards.
type: object
conditions:
description: Conditions the latest available observations of a resource's
current state.
items:
description: 'Condition defines a readiness condition for a Knative
resource. See: https://github.com/kubernetes/community/blob/master/contributors/devel/sig-architecture/api-conventions.md#typical-status-properties'
properties:
lastTransitionTime:
description: LastTransitionTime is the last time the condition
transitioned from one status to another. We use VolatileTime
in place of metav1.Time to exclude this from creating equality.Semantic
differences (all other things held constant).
format: date-time
type: string
message:
description: A human readable message indicating details about
the transition.
type: string
reason:
description: The reason for the condition's last transition.
type: string
severity:
description: Severity with which to treat failures of this type
of condition. When this is not specified, it defaults to Error.
type: string
status:
description: Status of the condition, one of True, False, Unknown.
type: string
type:
description: Type of condition.
type: string
required:
- status
- type
type: object
type: array
containerStatuses:
description: 'ContainerStatuses is a slice of images present in .Spec.Container[*].Image
to their respective digests and their container name. The digests
are resolved during the creation of Revision. ContainerStatuses
holds the container name and image digests for both serving and
non serving containers. ref: http://bit.ly/image-digests'
items:
description: ContainerStatus holds the information of container
name and image digest value
properties:
imageDigest:
type: string
name:
type: string
type: object
type: array
desiredReplicas:
description: DesiredReplicas reflects the desired amount of pods running
this revision.
format: int32
type: integer
imageDigest:
description: 'DeprecatedImageDigest holds the resolved digest for
the image specified within .Spec.Container.Image. The digest is
resolved during the creation of Revision. This field holds the digest
value regardless of whether a tag or digest was originally specified
in the Container object. It may be empty if the image comes from
a registry listed to skip resolution. If multiple containers specified
then DeprecatedImageDigest holds the digest for serving container.
DEPRECATED: Use ContainerStatuses instead. TODO(savitaashture) Remove
deprecatedImageDigest. ref https://kubernetes.io/docs/reference/using-api/deprecation-policy
for deprecation.'
type: string
logUrl:
description: LogURL specifies the generated logging url for this particular
revision based on the revision url template specified in the controller's
config.
type: string
observedGeneration:
description: ObservedGeneration is the 'Generation' of the Service
that was last processed by the controller.
format: int64
type: integer
serviceName:
description: "ServiceName holds the name of a core Kubernetes Service\
\ resource that load balances over the pods backing this Revision.\
\ Deprecated: revision service name is effectively equal to the\
\ revision name, as per #10540. 0.23 \u2014 stop populating 0.25\
\ \u2014 remove."
type: string
type: object
type: object
served: true
storage: true
subresources:
status: {}
status:
acceptedNames:
categories:
- all
- knative
- serving
kind: Revision
listKind: RevisionList
plural: revisions
shortNames:
- rev
singular: revision
conditions:
- lastTransitionTime: '2021-08-30T18:59:46Z'
message: no conflicts found
reason: NoConflicts
status: 'True'
type: NamesAccepted
- lastTransitionTime: '2021-08-30T18:59:46Z'
message: the initial names have been accepted
reason: InitialNamesAccepted
status: 'True'
type: Established
storedVersions:
- v1