Knative Serving Component
Packages:
autoscaling.internal.knative.dev/v1alpha1
Package v1alpha1 contains the Autoscaling v1alpha1 API types.
Resource Types:
PodAutoscaler
PodAutoscaler is a Knative abstraction that encapsulates the interface by which Knative components instantiate autoscalers. This definition is an abstraction that may be backed by multiple definitions. For more information, see the Knative Pluggability presentation: https://docs.google.com/presentation/d/10KWynvAJYuOEWy69VBa6bHJVCqIsz1TNdEKosNvcpPY/edit
Field | Description | ||||||||
---|---|---|---|---|---|---|---|---|---|
apiVersion string | autoscaling.internal.knative.dev/v1alpha1 | ||||||||
kind string | PodAutoscaler | ||||||||
metadata Kubernetes meta/v1.ObjectMeta | (Optional) Refer to the Kubernetes API documentation for the fields of the metadata field. | ||||||||
spec PodAutoscalerSpec | (Optional) Spec holds the desired state of the PodAutoscaler (from the client).
| ||||||||
status PodAutoscalerStatus | (Optional) Status communicates the observed state of the PodAutoscaler (from the controller). |
Metric
Metric represents a resource to configure the metric collector with.
Field | Description | ||||||
---|---|---|---|---|---|---|---|
metadata Kubernetes meta/v1.ObjectMeta | (Optional) Refer to the Kubernetes API documentation for the fields of the metadata field. | ||||||
spec MetricSpec | (Optional) Spec holds the desired state of the Metric (from the client).
| ||||||
status MetricStatus | (Optional) Status communicates the observed state of the Metric (from the controller). |
MetricSpec
(Appears on:Metric)
MetricSpec contains all values a metric collector needs to operate.
Field | Description |
---|---|
stableWindow time.Duration | StableWindow is the aggregation window for metrics in a stable state. |
panicWindow time.Duration | PanicWindow is the aggregation window for metrics where quick reactions are needed. |
scrapeTarget string | ScrapeTarget is the K8s service that publishes the metric endpoint. |
MetricStatus
(Appears on:Metric)
MetricStatus reflects the status of metric collection for this specific entity.
Field | Description |
---|---|
Status knative.dev/pkg/apis/duck/v1.Status | (Members of |
PodAutoscalerSpec
(Appears on:PodAutoscaler)
PodAutoscalerSpec holds the desired state of the PodAutoscaler (from the client).
Field | Description |
---|---|
containerConcurrency int64 | (Optional) ContainerConcurrency specifies the maximum allowed in-flight (concurrent) requests per container of the Revision. Defaults to |
scaleTargetRef Kubernetes core/v1.ObjectReference | ScaleTargetRef defines the /scale-able resource that this PodAutoscaler is responsible for quickly right-sizing. |
reachability ReachabilityType | (Optional) Reachability specifies whether or not the |
protocolType knative.dev/networking/pkg/apis/networking.ProtocolType | The application-layer protocol. Matches |
PodAutoscalerStatus
(Appears on:PodAutoscaler)
PodAutoscalerStatus communicates the observed state of the PodAutoscaler (from the controller).
Field | Description |
---|---|
Status knative.dev/pkg/apis/duck/v1.Status | (Members of |
serviceName string | ServiceName is the K8s Service name that serves the revision, scaled by this PA. The service is created and owned by the ServerlessService object owned by this PA. |
metricsServiceName string | MetricsServiceName is the K8s Service name that provides revision metrics. The service is managed by the PA object. |
desiredScale int32 | DesiredScale shows the current desired number of replicas for the revision. |
actualScale int32 | ActualScale shows the actual number of replicas for the revision. |
PodScalable
PodScalable is a duck type that the resources referenced by the PodAutoscaler’s ScaleTargetRef must implement. They must also implement the /scale
sub-resource for use with /scale
based implementations (e.g. HPA), but this further constrains the shape the referenced resources may take.
Field | Description | ||||||
---|---|---|---|---|---|---|---|
metadata Kubernetes meta/v1.ObjectMeta | Refer to the Kubernetes API documentation for the fields of the metadata field. | ||||||
spec PodScalableSpec |
| ||||||
status PodScalableStatus |
PodScalableSpec
(Appears on:PodScalable)
PodScalableSpec is the specification for the desired state of a PodScalable (or at least our shared portion).
Field | Description |
---|---|
replicas int32 | |
selector Kubernetes meta/v1.LabelSelector | |
template Kubernetes core/v1.PodTemplateSpec |
PodScalableStatus
(Appears on:PodScalable)
PodScalableStatus is the observed state of a PodScalable (or at least our shared portion).
Field | Description |
---|---|
replicas int32 |
ReachabilityType (string
alias)
(Appears on:PodAutoscalerSpec)
ReachabilityType is the enumeration type for the different states of reachability to the ScaleTarget
of a PodAutoscaler
Value | Description |
---|---|
“Reachable” | ReachabilityReachable means the |
“” | ReachabilityUnknown means the reachability of the |
“Unreachable” | ReachabilityUnreachable means the |
serving.knative.dev/v1
Package v1 contains the Serving v1 API types.
Resource Types:
Configuration
Configuration represents the “floating HEAD” of a linear history of Revisions. Users create new Revisions by updating the Configuration’s spec. The “latest created” revision’s name is available under status, as is the “latest ready” revision’s name. See also: https://github.com/knative/serving/blob/main/docs/spec/overview.md#configuration
Field | Description | ||
---|---|---|---|
apiVersion string | serving.knative.dev/v1 | ||
kind string | Configuration | ||
metadata Kubernetes meta/v1.ObjectMeta | (Optional) Refer to the Kubernetes API documentation for the fields of the metadata field. | ||
spec ConfigurationSpec | (Optional)
| ||
status ConfigurationStatus | (Optional) |
Revision
Revision is an immutable snapshot of code and configuration. A revision references a container image. Revisions are created by updates to a Configuration.
See also: https://github.com/knative/serving/blob/main/docs/spec/overview.md#revision
Field | Description | ||||||
---|---|---|---|---|---|---|---|
apiVersion string | serving.knative.dev/v1 | ||||||
kind string | Revision | ||||||
metadata Kubernetes meta/v1.ObjectMeta | (Optional) Refer to the Kubernetes API documentation for the fields of the metadata field. | ||||||
spec RevisionSpec | (Optional)
| ||||||
status RevisionStatus | (Optional) |
Route
Route is responsible for configuring ingress over a collection of Revisions. Some of the Revisions a Route distributes traffic over may be specified by referencing the Configuration responsible for creating them; in these cases the Route is additionally responsible for monitoring the Configuration for “latest ready revision” changes, and smoothly rolling out latest revisions. See also: https://github.com/knative/serving/blob/main/docs/spec/overview.md#route
Field | Description | ||
---|---|---|---|
apiVersion string | serving.knative.dev/v1 | ||
kind string | Route | ||
metadata Kubernetes meta/v1.ObjectMeta | (Optional) Refer to the Kubernetes API documentation for the fields of the metadata field. | ||
spec RouteSpec | (Optional) Spec holds the desired state of the Route (from the client).
| ||
status RouteStatus | (Optional) Status communicates the observed state of the Route (from the controller). |
Service
Service acts as a top-level container that manages a Route and Configuration which implement a network service. Service exists to provide a singular abstraction which can be access controlled, reasoned about, and which encapsulates software lifecycle decisions such as rollout policy and team resource ownership. Service acts only as an orchestrator of the underlying Routes and Configurations (much as a kubernetes Deployment orchestrates ReplicaSets), and its usage is optional but recommended.
The Service’s controller will track the statuses of its owned Configuration and Route, reflecting their statuses and conditions as its own.
See also: https://github.com/knative/serving/blob/main/docs/spec/overview.md#service
Field | Description | ||||
---|---|---|---|---|---|
apiVersion string | serving.knative.dev/v1 | ||||
kind string | Service | ||||
metadata Kubernetes meta/v1.ObjectMeta | (Optional) Refer to the Kubernetes API documentation for the fields of the metadata field. | ||||
spec ServiceSpec | (Optional)
| ||||
status ServiceStatus | (Optional) |
ConfigurationSpec
(Appears on:Configuration, ServiceSpec)
ConfigurationSpec holds the desired state of the Configuration (from the client).
Field | Description |
---|---|
template RevisionTemplateSpec | (Optional) Template holds the latest specification for the Revision to be stamped out. |
ConfigurationStatus
(Appears on:Configuration)
ConfigurationStatus communicates the observed state of the Configuration (from the controller).
Field | Description |
---|---|
Status knative.dev/pkg/apis/duck/v1.Status | (Members of |
ConfigurationStatusFields ConfigurationStatusFields | (Members of |
ConfigurationStatusFields
(Appears on:ConfigurationStatus, ServiceStatus)
ConfigurationStatusFields holds the fields of Configuration’s status that are not generally shared. This is defined separately and inlined so that other types can readily consume these fields via duck typing.
Field | Description |
---|---|
latestReadyRevisionName string | (Optional) LatestReadyRevisionName holds the name of the latest Revision stamped out from this Configuration that has had its “Ready” condition become “True”. |
latestCreatedRevisionName string | (Optional) LatestCreatedRevisionName is the last revision that was created from this Configuration. It might not be ready yet, for that use LatestReadyRevisionName. |
ContainerStatus
(Appears on:RevisionStatus)
ContainerStatus holds the information of container name and image digest value
Field | Description |
---|---|
name string | |
imageDigest string |
RevisionSpec
(Appears on:Revision, RevisionTemplateSpec)
RevisionSpec holds the desired state of the Revision (from the client).
Field | Description |
---|---|
PodSpec Kubernetes core/v1.PodSpec | (Members of |
containerConcurrency int64 | (Optional) ContainerConcurrency specifies the maximum allowed in-flight (concurrent) requests per container of the Revision. Defaults to |
timeoutSeconds int64 | (Optional) 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. |
RevisionStatus
(Appears on:Revision)
RevisionStatus communicates the observed state of the Revision (from the controller).
Field | Description |
---|---|
Status knative.dev/pkg/apis/duck/v1.Status | (Members of |
serviceName string | (Optional) 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 — stop populating 0.25 — remove. |
logUrl string | (Optional) LogURL specifies the generated logging url for this particular revision based on the revision url template specified in the controller’s config. |
imageDigest string | (Optional) 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. |
containerStatuses []ContainerStatus | (Optional) 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 |
actualReplicas int32 | (Optional) ActualReplicas reflects the amount of ready pods running this revision. |
desiredReplicas int32 | (Optional) DesiredReplicas reflects the desired amount of pods running this revision. |
RevisionTemplateSpec
(Appears on:ConfigurationSpec)
RevisionTemplateSpec describes the data a revision should have when created from a template. Based on: https://github.com/kubernetes/api/blob/e771f807/core/v1/types.go#L3179-L3190
Field | Description | ||||||
---|---|---|---|---|---|---|---|
metadata Kubernetes meta/v1.ObjectMeta | (Optional) Refer to the Kubernetes API documentation for the fields of the metadata field. | ||||||
spec RevisionSpec | (Optional)
|
RouteSpec
(Appears on:Route, ServiceSpec)
RouteSpec holds the desired state of the Route (from the client).
Field | Description |
---|---|
traffic []TrafficTarget | (Optional) Traffic specifies how to distribute traffic over a collection of revisions and configurations. |
RouteStatus
(Appears on:Route)
RouteStatus communicates the observed state of the Route (from the controller).
Field | Description |
---|---|
Status knative.dev/pkg/apis/duck/v1.Status | (Members of |
RouteStatusFields RouteStatusFields | (Members of |
RouteStatusFields
(Appears on:RouteStatus, ServiceStatus)
RouteStatusFields holds the fields of Route’s status that are not generally shared. This is defined separately and inlined so that other types can readily consume these fields via duck typing.
Field | Description |
---|---|
url knative.dev/pkg/apis.URL | (Optional) URL holds the url that will distribute traffic over the provided traffic targets. It generally has the form http[s]://{route-name}.{route-namespace}.{cluster-level-suffix} |
address knative.dev/pkg/apis/duck/v1.Addressable | (Optional) Address holds the information needed for a Route to be the target of an event. |
traffic []TrafficTarget | (Optional) Traffic holds the configured traffic distribution. These entries will always contain RevisionName references. When ConfigurationName appears in the spec, this will hold the LatestReadyRevisionName that we last observed. |
RoutingState (string
alias)
RoutingState represents states of a revision with regards to serving a route.
Value | Description |
---|---|
“active” | RoutingStateActive is a state for a revision which is actively referenced by a Route. |
“pending” | RoutingStatePending is a state after a revision is created, but before its routing state has been determined. It is treated like active for the purposes of revision garbage collection. |
“reserve” | RoutingStateReserve is a state for a revision which is no longer referenced by a Route, and is scaled down, but may be rapidly pinned to a route to be made active again. |
“” | RoutingStateUnset is the empty value for routing state, this state is unexpected. |
ServiceSpec
(Appears on:Service)
ServiceSpec represents the configuration for the Service object. A Service’s specification is the union of the specifications for a Route and Configuration. The Service restricts what can be expressed in these fields, e.g. the Route must reference the provided Configuration; however, these limitations also enable friendlier defaulting, e.g. Route never needs a Configuration name, and may be defaulted to the appropriate “run latest” spec.
Field | Description |
---|---|
ConfigurationSpec ConfigurationSpec | (Members of ServiceSpec inlines an unrestricted ConfigurationSpec. |
RouteSpec RouteSpec | (Members of ServiceSpec inlines RouteSpec and restricts/defaults its fields via webhook. In particular, this spec can only reference this Service’s configuration and revisions (which also influences defaults). |
ServiceStatus
(Appears on:Service)
ServiceStatus represents the Status stanza of the Service resource.
Field | Description |
---|---|
Status knative.dev/pkg/apis/duck/v1.Status | (Members of |
ConfigurationStatusFields ConfigurationStatusFields | (Members of In addition to inlining ConfigurationSpec, we also inline the fields specific to ConfigurationStatus. |
RouteStatusFields RouteStatusFields | (Members of In addition to inlining RouteSpec, we also inline the fields specific to RouteStatus. |
TrafficTarget
(Appears on:RouteSpec, RouteStatusFields)
TrafficTarget holds a single entry of the routing table for a Route.
Field | Description |
---|---|
tag string | (Optional) Tag is optionally used to expose a dedicated url for referencing this target exclusively. |
revisionName string | (Optional) RevisionName of a specific revision to which to send this portion of traffic. This is mutually exclusive with ConfigurationName. |
configurationName string | (Optional) ConfigurationName of a configuration to whose latest revision we will send this portion of traffic. When the “status.latestReadyRevisionName” of the referenced configuration changes, we will automatically migrate traffic from the prior “latest ready” revision to the new one. This field is never set in Route’s status, only its spec. This is mutually exclusive with RevisionName. |
latestRevision bool | (Optional) LatestRevision may be optionally provided to indicate that the latest ready Revision of the Configuration should be used for this traffic target. When provided LatestRevision must be true if RevisionName is empty; it must be false when RevisionName is non-empty. |
percent int64 | (Optional) Percent indicates that percentage based routing should be used and the value indicates the percent of traffic that is be routed to this Revision or Configuration. |
url knative.dev/pkg/apis.URL | (Optional) URL displays the URL for accessing named traffic targets. URL is displayed in status, and is disallowed on spec. URL must contain a scheme (e.g. http://) and a hostname, but may not contain anything else (e.g. basic auth, url path, etc.) |
serving.knative.dev/v1alpha1
Package v1alpha1 contains the v1alpha1 versions of the serving apis. Api versions allow the api contract for a resource to be changed while keeping backward compatibility by support multiple concurrent versions of the same resource
Resource Types:
DomainMapping
DomainMapping is a mapping from a custom hostname to an Addressable.
Field | Description | ||
---|---|---|---|
apiVersion string | serving.knative.dev/v1alpha1 | ||
kind string | DomainMapping | ||
metadata Kubernetes meta/v1.ObjectMeta | (Optional) Standard object’s metadata. More info: https://github.com/kubernetes/community/blob/master/contributors/devel/sig-architecture/api-conventions.md#metadata Refer to the Kubernetes API documentation for the fields of themetadata field. | ||
spec DomainMappingSpec | (Optional) Spec is the desired state of the DomainMapping. More info: https://github.com/kubernetes/community/blob/master/contributors/devel/sig-architecture/api-conventions.md#spec-and-status
| ||
status DomainMappingStatus | (Optional) Status is the current state of the DomainMapping. More info: https://github.com/kubernetes/community/blob/master/contributors/devel/sig-architecture/api-conventions.md#spec-and-status |
CannotConvertError
CannotConvertError is returned when a field cannot be converted.
Field | Description |
---|---|
Message string | |
Field string |
DomainMappingSpec
(Appears on:DomainMapping)
DomainMappingSpec describes the DomainMapping the user wishes to exist.
Field | Description |
---|---|
ref knative.dev/pkg/apis/duck/v1.KReference | Ref specifies the target of the Domain Mapping. The object identified by the Ref must be an Addressable with a URL of the form This contract is satisfied by Knative types such as Knative Services and Knative Routes, and by Kubernetes Services. |
DomainMappingStatus
(Appears on:DomainMapping)
DomainMappingStatus describes the current state of the DomainMapping.
Field | Description |
---|---|
Status knative.dev/pkg/apis/duck/v1.Status | (Members of |
url knative.dev/pkg/apis.URL | (Optional) URL is the URL of this DomainMapping. |
address knative.dev/pkg/apis/duck/v1.Addressable | (Optional) Address holds the information needed for a DomainMapping to be the target of an event. |
Generated with gen-crd-api-reference-docs
on git commit 35efb3108
.