diff --git a/docs/reference/serving.md b/docs/reference/serving.md index 4f23172eb6..efa0cbda60 100644 --- a/docs/reference/serving.md +++ b/docs/reference/serving.md @@ -1,35 +1,43 @@
Packages:
Resource Types:
-
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
+Configuration represents the “floating HEAD” of a linear history of Revisions, +and optionally how the containers those revisions reference are built. +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/master/docs/spec/overview.md#configuration
-autoscaling.internal.knative.dev/v1alpha1
+serving.knative.dev/v1alpha1
|
@@ -54,7 +62,7 @@ autoscaling.internal.knative.dev/v1alpha1
PodAutoscaler |
+Configuration |
||||||||||
@@ -75,14 +83,14 @@ Refer to the Kubernetes API documentation for the fields of the |
spec
-
-PodAutoscalerSpec
+
+ConfigurationSpec
|
(Optional)
- Spec holds the desired state of the PodAutoscaler (from the client). +Spec holds the desired state of the Configuration (from the client).
|
status
-
-PodAutoscalerStatus
+
+ConfigurationStatus
|
(Optional)
- Status communicates the observed state of the PodAutoscaler (from the controller). +Status communicates the observed state of the Configuration (from the controller). |
-
Metric represents a resource to configure the metric collector with.
+Revision is an immutable snapshot of code and configuration. A revision +references a container image, and optionally a build that is responsible for +materializing that container image from source. Revisions are created by +updates to a Configuration.
+See also: https://github.com/knative/serving/blob/master/docs/spec/overview.md#revision
+apiVersion
+string |
+
+
+serving.knative.dev/v1alpha1
+
+ |
+|||||||
+kind
+string
+ |
+Revision |
+|||||||
metadata
@@ -207,129 +228,158 @@ Refer to the Kubernetes API documentation for the fields of the
|
spec
-
-MetricSpec
+
+RevisionSpec
(Optional)
- |
Spec holds the desired state of the Metric (from the client). +Spec holds the desired state of the Revision (from the client).
DeprecatedServingState holds a value describing the desired state the Kubernetes +resources should be in for this Revision. +Users must not specify this when creating a revision. These values are no longer +updated by the system. | ||||||
-status
+concurrencyModel
-
-MetricStatus
+
+DeprecatedRevisionRequestConcurrencyModelType
|
(Optional)
- Status communicates the observed state of the Metric (from the controller). +DeprecatedConcurrencyModel specifies the desired concurrency model +(Single or Multi) for the +Revision. Defaults to Multi. +Deprecated in favor of ContainerConcurrency. |
-(Appears on: -Metric) -
--
MetricSpec contains all values a metric collector needs to operate.
- -Field | -Description | +
+buildName
+
+string
+
+ |
+
+(Optional)
+ DeprecatedBuildName optionally holds the name of the Build responsible for +producing the container image for its Revision. +DEPRECATED: Use DeprecatedBuildRef instead. + |
---|---|---|---|
-stableWindow
+buildRef
-time.Duration
+
+Kubernetes core/v1.ObjectReference
+
|
- StableWindow is the aggregation window for metrics in a stable state. +(Optional) +DeprecatedBuildRef holds the reference to the build (if there is one) responsible +for producing the container image for this Revision. Otherwise, nil |
||
-panicWindow
+container
-time.Duration
+
+Kubernetes core/v1.Container
+
|
- PanicWindow is the aggregation window for metrics where quick reactions are needed. +(Optional) +Container defines the unit of execution for this Revision. +In the context of a Revision, we disallow a number of the fields of +this Container, including: name and lifecycle. +See also the runtime contract for more information about the execution +environment: +https://github.com/knative/serving/blob/master/docs/runtime-contract.md + |
+
scrapeTarget
+status
-string
+
+RevisionStatus
+
ScrapeTarget is the K8s service that publishes the metric endpoint.
+(Optional) +Status communicates the observed state of the Revision (from the controller).
-(Appears on: -Metric) -
--
MetricStatus reflects the status of metric collection for this specific entity.
+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/master/docs/spec/overview.md#route
-Status
-
-knative.dev/pkg/apis/duck/v1.Status
-
- |
+
-
-(Members of
+serving.knative.dev/v1alpha1
+
|
-(Appears on: -PodAutoscaler) -
--
PodAutoscalerSpec holds the desired state of the PodAutoscaler (from the client).
- -Field | -Description | +
+kind
+string
+ |
+Route |
---|---|---|---|
-generation
+metadata
-int64
+
+Kubernetes meta/v1.ObjectMeta
+
|
(Optional)
- DeprecatedGeneration was used prior in Kubernetes versions <1.11 -when metadata.generation was not being incremented by the api server -This property will be dropped in future Knative releases and should -not be used - use metadata.generation -Tracking issue: https://github.com/knative/serving/issues/643 +Refer to the Kubernetes API documentation for the fields of the +metadata field.
|
||
-containerConcurrency
+spec
-int64
+
+RouteSpec
+
|
(Optional)
- ContainerConcurrency specifies the maximum allowed
-in-flight (concurrent) requests per container of the Revision.
-Defaults to |
-
-scaleTargetRef
+generation
-
-Kubernetes core/v1.ObjectReference
-
+int64
|
- ScaleTargetRef defines the /scale-able resource that this PodAutoscaler -is responsible for quickly right-sizing. +(Optional) +DeprecatedGeneration was used prior in Kubernetes versions <1.11 +when metadata.generation was not being incremented by the api server +This property will be dropped in future Knative releases and should +not be used - use metadata.generation +Tracking issue: https://github.com/knative/serving/issues/643 |
-reachability
+traffic
-
-ReachabilityType
+
+[]TrafficTarget
|
(Optional)
- Reachable specifies whether or not the Traffic specifies how to distribute traffic over a collection of Knative Serving Revisions and Configurations. + |
+
protocolType
+status
-knative.dev/serving/pkg/apis/networking.ProtocolType
+
+RouteStatus
+
The application-layer protocol. Matches ProtocolType
inferred from the revision spec.
Status communicates the observed state of the Route (from the controller).
-(Appears on: -PodAutoscaler) -
--
PodAutoscalerStatus communicates the observed state of the PodAutoscaler (from the controller).
+Service acts as a top-level container that manages a set of Routes and +Configurations 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/master/docs/spec/overview.md#service
-Status
-
-knative.dev/pkg/apis/duck/v1.Status
-
+apiVersion
+string |
+
+
+serving.knative.dev/v1alpha1
+
|
+||||||||||
-
-(Members of kind
+string
|
+Service |
||||||||||
-serviceName
+metadata
-string
+
+Kubernetes meta/v1.ObjectMeta
+
|
- 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. +(Optional) +Refer to the Kubernetes API documentation for the fields of the +metadata field.
|
||||||||||
-metricsServiceName
+spec
-string
+
+ServiceSpec
+
|
- MetricsServiceName is the K8s Service name that provides revision metrics. -The service is managed by the PA object. - |
-
-desiredScale
+generation
-int32
+int64
|
- DesiredScale shows the current desired number of replicas for the revision. +(Optional) +DeprecatedGeneration was used prior in Kubernetes versions <1.11 +when metadata.generation was not being incremented by the api server +This property will be dropped in future Knative releases and should +not be used - use metadata.generation +Tracking issue: https://github.com/knative/serving/issues/643 |
-actualScale
+runLatest
-int32
+
+RunLatestType
+
|
- ActualScale shows the actual number of replicas for the revision. +(Optional) +DeprecatedRunLatest defines a simple Service. It will automatically +configure a route that keeps the latest ready revision +from the supplied configuration running. |
-
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
+pinned
-
-Kubernetes meta/v1.ObjectMeta
+
+PinnedType
|
-Refer to the Kubernetes API documentation for the fields of the
-metadata field.
+(Optional)
+DeprecatedPinned is DEPRECATED in favor of ReleaseType |
||||||||
-spec
+manual
-
-PodScalableSpec
+
+ManualType
|
- - -
|
status
-
-PodScalableStatus
+
+ServiceStatus
|
+(Optional) |
-(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
-
-
- |
-- | -
-(Appears on: -PodScalable) -
--
PodScalableStatus is the observed state of a PodScalable (or at -least our shared portion).
- -Field | -Description | -
---|---|
-replicas
-
-int32
-
- |
-- | -
string
alias)-(Appears on: -PodAutoscalerSpec) -
--
ReachabilityType is the enumeration type for the different states of reachability
-to the ScaleTarget
of a PodAutoscaler
-
-Resource Types: --
Certificate is responsible for provisioning a SSL certificate for the -given hosts. It is a Knative abstraction for various SSL certificate -provisioning solutions (such as cert-manager or self-signed SSL certificate).
- -Field | -Description | -||||
---|---|---|---|---|---|
-apiVersion
-string |
-
-
-networking.internal.knative.dev/v1alpha1
-
- |
-||||
-kind
-string
- |
-Certificate |
-||||
-metadata
-
-
-Kubernetes meta/v1.ObjectMeta
-
-
- |
-
-(Optional)
- Standard object’s metadata. -More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata -Refer to the Kubernetes API documentation for the fields of the -metadata field.
- |
-||||
-spec
-
-
-CertificateSpec
-
-
- |
-
-(Optional)
- Spec is the desired state of the Certificate. -More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status -- -
|
-||||
-status
-
-
-CertificateStatus
-
-
- |
-
-(Optional)
- Status is the current state of the Certificate. -More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status - |
-
-
Ingress is a collection of rules that allow inbound connections to reach the endpoints defined -by a backend. An Ingress can be configured to give services externally-reachable URLs, load -balance traffic, offer name based virtual hosting, etc.
-This is heavily based on K8s Ingress https://pkg.go.dev/k8s.io/api/networking/v1beta1#Ingress -which some highlighted modifications.
+CannotConvertError is returned when a field cannot be converted.
Field | -Description | -||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
-apiVersion
-string |
-
-
-networking.internal.knative.dev/v1alpha1
-
- |
-||||||||||
-kind
-string
- |
-Ingress |
-||||||||||
-metadata
-
-
-Kubernetes meta/v1.ObjectMeta
-
-
- |
-
-(Optional)
- Standard object’s metadata. -More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata -Refer to the Kubernetes API documentation for the fields of the -metadata field.
- |
-||||||||||
-spec
-
-
-IngressSpec
-
-
- |
-
-(Optional)
- Spec is the desired state of the Ingress. -More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status -- -
|
||||||||||
-status
+Field
-
-IngressStatus
-
+string
|
-(Optional)
- Status is the current state of the Ingress. -More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status |
-
ServerlessService is a proxy for the K8s service objects containing the -endpoints for the revision, whether those are endpoints of the activator or -revision pods. -See: https://knative.page.link/naxz for details.
+(Appears on: +Configuration, +PinnedType, +ReleaseType, +RunLatestType, +ServiceSpec) + ++
ConfigurationSpec holds the desired state of the Configuration (from the client).
-apiVersion
-string |
-
-
-networking.internal.knative.dev/v1alpha1
-
- |
-||||||
-kind
-string
- |
-ServerlessService |
-||||||
-metadata
+generation
-
-Kubernetes meta/v1.ObjectMeta
-
+int64
|
(Optional)
- Standard object’s metadata. -More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata -Refer to the Kubernetes API documentation for the fields of the -metadata field.
+DeprecatedGeneration was used prior in Kubernetes versions <1.11 +when metadata.generation was not being incremented by the api server +This property will be dropped in future Knative releases and should +not be used - use metadata.generation +Tracking issue: https://github.com/knative/serving/issues/643 |
||||||
-spec
+build
-
-ServerlessServiceSpec
-
+k8s.io/apimachinery/pkg/runtime.RawExtension
|
(Optional)
- Spec is the desired state of the ServerlessService. -More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status -- -
DeprecatedRevisionTemplate holds the latest specification for the Revision to +be stamped out. If a Build specification is provided, then the +DeprecatedRevisionTemplate’s BuildName field will be populated with the name of +the Build object created to produce the container for the Revision. +DEPRECATED Use Template instead. |
||||||
-status
+template
-
-ServerlessServiceStatus
+
+RevisionTemplateSpec
|
(Optional)
- Status is the current state of the ServerlessService. -More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status - |
-
-(Appears on: -Certificate) -
--
CertificateSpec defines the desired state of a Certificate
.
Field | -Description | -
---|---|
-dnsNames
-
-[]string
-
- |
-
- DNSNames is a list of DNS names the Certificate could support. -The wildcard format of DNSNames (e.g. *.default.example.com) is supported. - |
-
-secretName
-
-string
-
- |
-
- SecretName is the name of the secret resource to store the SSL certificate in. +Template holds the latest specification for the Revision to +be stamped out. |
(Appears on: -Certificate) +Configuration)
-
CertificateStatus defines the observed state of a Certificate
.
ConfigurationStatus communicates the observed state of the Configuration (from the controller).
-notAfter
-
-
-Kubernetes meta/v1.Time
-
-
- |
-
-(Optional)
- The expiration time of the TLS certificate stored in the secret named -by this resource in spec.secretName. |
-http01Challenges
+ConfigurationStatusFields
-
-[]HTTP01Challenge
+
+ConfigurationStatusFields
|
- HTTP01Challenges is a list of HTTP01 challenges that need to be fulfilled -in order to get the TLS certificate.. +
+(Members of |
(Appears on: -CertificateStatus) +ConfigurationStatus, +ServiceStatus)
-
HTTP01Challenge defines the status of a HTTP01 challenge that a certificate needs -to fulfill.
+ConfigurationStatusFields holds all of the non-duckv1.Status status fields of a Route. +These are defined outline so that we can also inline them into Service, and more easily +copy them.
Description | - -|
---|---|
-url
-
-knative.dev/pkg/apis.URL
-
- |
-
- URL is the URL that the HTTP01 challenge is expected to serve on. - |
-
-serviceName
-
-string
-
- |
-
- ServiceName is the name of the service to serve HTTP01 challenge requests. - |
-
-serviceNamespace
+latestReadyRevisionName
string
|
- ServiceNamespace is the namespace of the service to serve HTTP01 challenge requests. +(Optional) +LatestReadyRevisionName holds the name of the latest Revision stamped out +from this Configuration that has had its “Ready” condition become “True”. |
-servicePort
+latestCreatedRevisionName
-k8s.io/apimachinery/pkg/util/intstr.IntOrString
+string
|
- ServicePort is the port of the service to serve HTTP01 challenge requests. +(Optional) +LatestCreatedRevisionName is the last revision that was created from this +Configuration. It might not be ready yet, for that use LatestReadyRevisionName. |
string
alias)+(Appears on: +RevisionSpec) +
++
DeprecatedRevisionRequestConcurrencyModelType is an enumeration of the +concurrency models supported by a Revision. +DEPRECATED in favor of an integer based ContainerConcurrency setting. +TODO(vagababov): retire completely in 0.9.
+ +string
alias)+(Appears on: +RevisionSpec) +
++
DeprecatedRevisionServingStateType is an enumeration of the levels of serving readiness of the Revision. +See also: https://github.com/knative/serving/blob/master/docs/spec/errors.md#error-conditions-and-reporting
+ +(Appears on: -HTTPIngressRuleValue) +ServiceSpec)
-
HTTPIngressPath associates a path regex with a backend. Incoming URLs matching -the path are forwarded to the backend.
+ManualType contains the options for configuring a manual service. See ServiceSpec for +more details.
+ ++(Appears on: +ServiceSpec) +
++
PinnedType is DEPRECATED. ReleaseType should be used instead. To get the behavior of PinnedType set +ReleaseType.Revisions to []string{PinnedType.RevisionName} and ReleaseType.RolloutPercent to 0.
-path
+revisionName
string
|
(Optional)
- Path is an extended POSIX regex as defined by IEEE Std 1003.1, -(i.e this follows the egrep/unix syntax, not the perl syntax) -matched against the path of an incoming request. Currently it can -contain characters disallowed from the conventional “path” -part of a URL as defined by RFC 3986. Paths must begin with -a ‘/’. If unspecified, the path defaults to a catch all sending -traffic to the backend. +The revision name to pin this service to until changed +to a different service type. |
-splits
+configuration
-
-[]IngressBackendSplit
+
+ConfigurationSpec
|
- Splits defines the referenced service endpoints to which the traffic -will be forwarded to. +(Optional) +The configuration for this service. |
+(Appears on: +ServiceSpec) +
++
ReleaseType contains the options for slowly releasing revisions. See ServiceSpec for +more details.
+ +Field | +Description | +
---|---|
-appendHeaders
+revisions
-map[string]string
+[]string
|
(Optional)
- AppendHeaders allow specifying additional HTTP headers to add -before forwarding a request to the destination service. -NOTE: This differs from K8s Ingress which doesn’t allow header appending. +Revisions is an ordered list of 1 or 2 revisions. The first will +have a TrafficTarget with a name of “current” and the second will have +a name of “candidate”. |
-timeout
+rolloutPercent
-
-Kubernetes meta/v1.Duration
-
+int
|
(Optional)
- Timeout for HTTP requests. -NOTE: This differs from K8s Ingress which doesn’t allow setting timeouts. +RolloutPercent is the percent of traffic that should be sent to the “candidate” +revision. Valid values are between 0 and 99 inclusive. |
-retries
+configuration
-
-HTTPRetry
+
+ConfigurationSpec
|
(Optional)
- Retry policy for HTTP requests. -NOTE: This differs from K8s Ingress which doesn’t allow retry settings. +The configuration for this service. All revisions from this service must +come from a single configuration. |
(Appears on: -IngressRule) +Revision, +RevisionTemplateSpec)
-
HTTPIngressRuleValue is a list of http selectors pointing to backends.
-In the example: http://
RevisionSpec holds the desired state of the Revision (from the client).
-paths
+RevisionSpec
-
-[]HTTPIngressPath
+
+RevisionSpec
|
- A collection of paths that map requests to backends. -If they are multiple matching paths, the first match takes precendent. - |
-
-(Appears on: -HTTPIngressPath) -
-
HTTPRetry describes the retry policy to use when a HTTP request fails.
+(Members ofRevisionSpec
are embedded into this type.)
-Field | -Description | +
---|---|
-attempts
+generation
-int
+int64
|
- Number of retries for a given request. +(Optional) +DeprecatedGeneration was used prior in Kubernetes versions <1.11 +when metadata.generation was not being incremented by the api server +This property will be dropped in future Knative releases and should +not be used - use metadata.generation +Tracking issue: https://github.com/knative/serving/issues/643 |
-perTryTimeout
+servingState
-
-Kubernetes meta/v1.Duration
+
+DeprecatedRevisionServingStateType
|
- Timeout per retry attempt for a given request. format: 1h/1m/1s/1ms. MUST BE >=1ms. +(Optional) +DeprecatedServingState holds a value describing the desired state the Kubernetes +resources should be in for this Revision. +Users must not specify this when creating a revision. These values are no longer +updated by the system. |
-(Appears on: -IngressBackendSplit) -
--
IngressBackend describes all endpoints for a given service and port.
- -Field | -Description | +
+concurrencyModel
+
+
+DeprecatedRevisionRequestConcurrencyModelType
+
+
+ |
+
+(Optional)
+ DeprecatedConcurrencyModel specifies the desired concurrency model +(Single or Multi) for the +Revision. Defaults to Multi. +Deprecated in favor of ContainerConcurrency. + |
---|---|---|---|
-serviceNamespace
+buildName
string
|
- Specifies the namespace of the referenced service. -NOTE: This differs from K8s Ingress to allow routing to different namespaces. +(Optional) +DeprecatedBuildName optionally holds the name of the Build responsible for +producing the container image for its Revision. +DEPRECATED: Use DeprecatedBuildRef instead. |
||
-serviceName
+buildRef
-string
+
+Kubernetes core/v1.ObjectReference
+
|
- Specifies the name of the referenced service. +(Optional) +DeprecatedBuildRef holds the reference to the build (if there is one) responsible +for producing the container image for this Revision. Otherwise, nil |
||
-servicePort
+container
-k8s.io/apimachinery/pkg/util/intstr.IntOrString
+
+Kubernetes core/v1.Container
+
|
- Specifies the port of the referenced service. +(Optional) +Container defines the unit of execution for this Revision. +In the context of a Revision, we disallow a number of the fields of +this Container, including: name and lifecycle. +See also the runtime contract for more information about the execution +environment: +https://github.com/knative/serving/blob/master/docs/runtime-contract.md |
(Appears on: -HTTPIngressPath) +Revision)
-
IngressBackendSplit describes all endpoints for a given service and port.
+RevisionStatus communicates the observed state of the Revision (from the controller).
-IngressBackend
+Status
-
-IngressBackend
-
+knative.dev/pkg/apis/duck/v1.Status
|
-(Members of Specifies the backend receiving the traffic split. |
-percent
+serviceName
-int
+string
|
- Specifies the split percentage, a number between 0 and 100. If -only one split is specified, we default to 100. -NOTE: This differs from K8s Ingress to allow percentage split. +(Optional) +ServiceName holds the name of a core Kubernetes Service resource that +load balances over the pods backing this Revision. |
-appendHeaders
+logUrl
-map[string]string
+string
|
(Optional)
- AppendHeaders allow specifying additional HTTP headers to add -before forwarding a request to the destination service. -NOTE: This differs from K8s Ingress which doesn’t allow header appending. +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)
+ ImageDigest 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. |
(Appears on: -IngressSpec) +ConfigurationSpec)
-
IngressRule represents the rules mapping the paths under a specified host to -the related backend services. Incoming requests are first evaluated for a host -match, then routed to the backend associated with the matching IngressRuleValue.
+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
-hosts
+metadata
-[]string
+
+Kubernetes meta/v1.ObjectMeta
+
|
(Optional)
- Host is the fully qualified domain name of a network host, as defined
-by RFC 3986. Note the following deviations from the “host” part of the
-URI as defined in the RFC:
-1. IPs are not allowed. Currently a rule value can only apply to the
-IP in the Spec of the parent .
-2. The metadata field.
|
-visibility
+spec
-
-IngressVisibility
+
+RevisionSpec
|
(Optional)
- Visibility signifies whether this rule should |
-
-http
+RevisionSpec
-
-HTTPIngressRuleValue
+
+RevisionSpec
|
- HTTP represents a rule to apply against incoming requests. If the -rule is satisfied, the request is routed to the specified backend. - |
-
-(Appears on: -Ingress) -
-
IngressSpec describes the Ingress the user wishes to exist.
-In general this follows the same shape as K8s Ingress. -Some notable differences: -- Backends now can have namespace: -- Traffic can be split across multiple backends. -- Timeout & Retry can be configured. -- Headers can be appended.
+(Members ofRevisionSpec
are embedded into this type.)
-Field | -Description | +
---|---|
generation
@@ -1679,59 +1326,100 @@ not be used - use metadata.generation
| |
-tls
+servingState
-
-[]IngressTLS
+
+DeprecatedRevisionServingStateType
|
(Optional)
- TLS configuration. Currently Ingress only supports a single TLS -port: 443. If multiple members of this list specify different hosts, they -will be multiplexed on the same port according to the hostname specified -through the SNI TLS extension, if the ingress controller fulfilling the -ingress supports SNI. +DeprecatedServingState holds a value describing the desired state the Kubernetes +resources should be in for this Revision. +Users must not specify this when creating a revision. These values are no longer +updated by the system. |
-rules
+concurrencyModel
-
-[]IngressRule
+
+DeprecatedRevisionRequestConcurrencyModelType
|
(Optional)
- A list of host rules used to configure the Ingress. +DeprecatedConcurrencyModel specifies the desired concurrency model +(Single or Multi) for the +Revision. Defaults to Multi. +Deprecated in favor of ContainerConcurrency. |
-visibility
+buildName
-
-IngressVisibility
+string
+
+ |
+
+(Optional)
+ DeprecatedBuildName optionally holds the name of the Build responsible for +producing the container image for its Revision. +DEPRECATED: Use DeprecatedBuildRef instead. + |
+
+buildRef
+
+
+Kubernetes core/v1.ObjectReference
|
- Visibility setting. +(Optional) +DeprecatedBuildRef holds the reference to the build (if there is one) responsible +for producing the container image for this Revision. Otherwise, nil + |
+
+container
+
+
+Kubernetes core/v1.Container
+
+
+ |
+
+(Optional)
+ Container defines the unit of execution for this Revision. +In the context of a Revision, we disallow a number of the fields of +this Container, including: name and lifecycle. +See also the runtime contract for more information about the execution +environment: +https://github.com/knative/serving/blob/master/docs/runtime-contract.md + |
+
(Appears on: -Ingress) +Route, +ServiceSpec)
-
IngressStatus describe the current state of the Ingress.
+RouteSpec holds the desired state of the Route (from the client).
-Status
+generation
-knative.dev/pkg/apis/duck/v1.Status
+int64
|
-
-(Members of DeprecatedGeneration was used prior in Kubernetes versions <1.11 +when metadata.generation was not being incremented by the api server +This property will be dropped in future Knative releases and should +not be used - use metadata.generation +Tracking issue: https://github.com/knative/serving/issues/643 |
-loadBalancer
+traffic
-
-LoadBalancerStatus
+
+[]TrafficTarget
|
(Optional)
- LoadBalancer contains the current status of the load-balancer.
-This is to be superseded by the combination of Traffic specifies how to distribute traffic over a collection of Knative Serving Revisions and Configurations. |
+(Appears on: +Route) +
++
RouteStatus communicates the observed state of the Route (from the controller).
+ +Field | +Description | +
---|---|
-publicLoadBalancer
+Status
-
-LoadBalancerStatus
-
+knative.dev/pkg/apis/duck/v1.Status
|
-(Optional)
- PublicLoadBalancer contains the current status of the load-balancer. +
+(Members of |
-privateLoadBalancer
+RouteStatusFields
-
-LoadBalancerStatus
+
+RouteStatusFields
|
-(Optional)
- PrivateLoadBalancer contains the current status of the load-balancer. +
+(Members of |
(Appears on: -IngressSpec) +RouteStatus, +ServiceStatus)
-
IngressTLS describes the transport layer security associated with an Ingress.
+RouteStatusFields holds all of the non-duckv1.Status status fields of a Route. +These are defined outline so that we can also inline them into Service, and more easily +copy them.
-hosts
+url
-[]string
+knative.dev/pkg/apis.URL
|
(Optional)
- Hosts is a list of hosts included in the TLS certificate. The values in -this list must match the name/s used in the tlsSecret. Defaults to the -wildcard host setting for the loadbalancer controller fulfilling this -Ingress, if left unspecified. +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} |
-secretName
+domain
string
|
- SecretName is the name of the secret used to terminate SSL traffic. +(Optional) +DeprecatedDomain holds the top-level domain that will distribute traffic over the provided targets. +It generally has the form {route-name}.{route-namespace}.{cluster-level-suffix} |
-secretNamespace
+domainInternal
string
|
- SecretNamespace is the namespace of the secret used to terminate SSL traffic. +(Optional) +DeprecatedDomainInternal holds the top-level domain that will distribute traffic over the provided +targets from inside the cluster. It generally has the form +{route-name}.{route-namespace}.svc.{cluster-domain-name} +DEPRECATED: Use Address instead. |
-serverCertificate
+address
-string
+knative.dev/pkg/apis/duck/v1alpha1.Addressable
|
(Optional)
- ServerCertificate identifies the certificate filename in the secret.
-Defaults to Address holds the information needed for a Route to be the target of an event. |
-privateKey
+traffic
-string
+
+[]TrafficTarget
+
|
(Optional)
- PrivateKey identifies the private key filename in the secret.
-Defaults to 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. |
string
alias)(Appears on: -IngressRule, -IngressSpec) +ServiceSpec)
-
IngressVisibility describes whether the Ingress should be exposed to -public gateways or not.
+RunLatestType contains the options for always having a route to the latest configuration. See +ServiceSpec for more details.
-Field | +Description | +
---|---|
+configuration
+
+
+ConfigurationSpec
+
+
+ |
+
+(Optional)
+ The configuration for this service. + |
+
(Appears on: -LoadBalancerStatus) +Service)
-
LoadBalancerIngressStatus represents the status of a load-balancer ingress point: -traffic intended for the service should be sent to an ingress point.
+ServiceSpec represents the configuration for the Service object. Exactly one +of its members (other than Generation) must be specified. Services can either +track the latest ready revision of a configuration or be pinned to a specific +revision.
-ip
+generation
-string
+int64
|
(Optional)
- IP is set for load-balancer ingress points that are IP based -(typically GCE or OpenStack load-balancers) +DeprecatedGeneration was used prior in Kubernetes versions <1.11 +when metadata.generation was not being incremented by the api server +This property will be dropped in future Knative releases and should +not be used - use metadata.generation +Tracking issue: https://github.com/knative/serving/issues/643 |
-domain
+runLatest
-string
+
+RunLatestType
+
|
(Optional)
- Domain is set for load-balancer ingress points that are DNS based -(typically AWS load-balancers) +DeprecatedRunLatest defines a simple Service. It will automatically +configure a route that keeps the latest ready revision +from the supplied configuration running. |
-domainInternal
+pinned
-string
+
+PinnedType
+
|
(Optional)
- DomainInternal is set if there is a cluster-local DNS name to access the Ingress. -NOTE: This differs from K8s Ingress, since we also desire to have a cluster-local -DNS name to allow routing in case of not having a mesh. +DeprecatedPinned is DEPRECATED in favor of ReleaseType |
-meshOnly
+manual
-bool
+
+ManualType
+
|
(Optional)
- MeshOnly is set if the Ingress is only load-balanced through a Service mesh. +DeprecatedManual mode enables users to start managing the underlying Route and Configuration +resources directly. This advanced usage is intended as a path for users to graduate +from the limited capabilities of Service to the full power of Route. |
-(Appears on: -IngressStatus) -
--
LoadBalancerStatus represents the status of a load-balancer.
- -Field | -Description | -
---|---|
-ingress
+release
-
-[]LoadBalancerIngressStatus
+
+ReleaseType
|
(Optional)
- Ingress is a list containing ingress points for the load-balancer. -Traffic intended for the service should be sent to these ingress points. +Release enables gradual promotion of new revisions by allowing traffic +to be split between two revisions. This type replaces the deprecated Pinned type. |
string
alias)ConfigurationSpec
+
+
+ConfigurationSpec
+
+
+
-(Appears on:
-ServerlessServiceSpec)
+(Members of ConfigurationSpec
are embedded into this type.)
We are moving to a shape where the Configuration and Route specifications +are inlined into the Service, which gives them compatible shapes. We are +staging this change here as a path to this in v1beta1, which drops the +“mode” based specifications above. Ultimately all non-v1beta1 fields will +be deprecated, and then dropped in v1beta1.
+RouteSpec
+
+
+RouteSpec
+
+
+-
ServerlessServiceOperationMode is an enumeration of the modes of operation -for the ServerlessService.
+(Members ofRouteSpec
are embedded into this type.)
-(Appears on: -ServerlessService) +Service)
-
ServerlessServiceSpec describes the ServerlessService.
+ServiceStatus represents the Status stanza of the Service resource.
-mode
+Status
-
-ServerlessServiceOperationMode
-
+knative.dev/pkg/apis/duck/v1.Status
|
- Mode describes the mode of operation of the ServerlessService. +
+(Members of |
-objectRef
+RouteStatusFields
-
-Kubernetes core/v1.ObjectReference
+
+RouteStatusFields
|
- ObjectRef defines the resource that this ServerlessService -is responsible for making “serverless”. +
+(Members of |
-ProtocolType
+ConfigurationStatusFields
-knative.dev/serving/pkg/apis/networking.ProtocolType
+
+ConfigurationStatusFields
+
|
- The application-layer protocol. Matches
+(Members of |
(Appears on: -ServerlessService) +RouteSpec, +RouteStatusFields)
-
ServerlessServiceStatus describes the current state of the ServerlessService.
+TrafficTarget holds a single entry of the routing table for a Route.
-Status
-
-knative.dev/pkg/apis/duck/v1.Status
-
- |
-
-
-(Members of |
-
-serviceName
+name
string
|
(Optional)
- ServiceName holds the name of a core K8s Service resource that -load balances over the pods backing this Revision (activator or revision). +Name is optionally used to expose a dedicated hostname for referencing this +target exclusively. It has the form: {name}.${route.status.domain} |
-privateServiceName
+TrafficTarget
-string
+
+TrafficTarget
+
|
-(Optional)
- PrivateServiceName holds the name of a core K8s Service resource that -load balances over the user service pods backing this Revision. +
+(Members of We inherit most of our fields by inlining the v1 type. +Ultimately all non-v1 fields will be deprecated. |
Resource Types: -
Configuration represents the “floating HEAD” of a linear history of Revisions.
@@ -2161,7 +1917,7 @@ See also: Revision
+
Revision is an immutable snapshot of code and configuration. A revision
@@ -2255,7 +2011,7 @@ Configuration.Revision
-serving.knative.dev/v1
+serving.knative.dev/v1beta1
Route is responsible for configuring ingress over a collection of Revisions.
@@ -2381,7 +2137,7 @@ See also: Service
+
Service acts as a top-level container that manages a Route and Configuration
@@ -2484,7 +2240,7 @@ and Route, reflecting their statuses and conditions as its own.Service
-serving.knative.dev/v1
+serving.knative.dev/v1beta1
-(Appears on: -Configuration, -Configuration, -ServiceSpec)
+Resource Types: + +-
ConfigurationSpec holds the desired state of the Configuration (from the client).
+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
-template
+apiVersion
+string |
+
+
+autoscaling.internal.knative.dev/v1alpha1
+
+ |
+||||||||||
+kind
+string
+ |
+PodAutoscaler |
+||||||||||
+metadata
-
-RevisionTemplateSpec
+
+Kubernetes meta/v1.ObjectMeta
|
(Optional)
- Template holds the latest specification for the Revision to be stamped out. +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). |
-(Appears on: -Configuration, -Configuration) -
--
ConfigurationStatus communicates the observed state of the Configuration (from the controller).
+Metric represents a resource to configure the metric collector with.
Field | -Description | -||||||||
---|---|---|---|---|---|---|---|---|---|
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). ++ +
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. - -
|
||||||||
-latestCreatedRevisionName
+status
-string
+
+MetricStatus
+
|
(Optional)
- LatestCreatedRevisionName is the last revision that was created from this -Configuration. It might not be ready yet, for that use LatestReadyRevisionName. +Status communicates the observed state of the Metric (from the controller). |
(Appears on: -Revision, -Revision, -RevisionSpec, -RevisionTemplateSpec) +Metric)
-
RevisionSpec holds the desired state of the Revision (from the client).
+MetricSpec contains all values a metric collector needs to operate.
-PodSpec
+stableWindow
-
-Kubernetes core/v1.PodSpec
-
+time.Duration
|
-
-(Members of StableWindow is the aggregation window for metrics in a stable state. |
-containerConcurrency
+panicWindow
-int64
+time.Duration
|
-(Optional)
- ContainerConcurrency specifies the maximum allowed in-flight (concurrent)
-requests per container of the Revision. Defaults to PanicWindow is the aggregation window for metrics where quick reactions are needed. |
-timeoutSeconds
+scrapeTarget
-int64
+string
|
-(Optional)
- TimeoutSeconds holds the max duration the instance is allowed for -responding to a request. If unspecified, a system default will -be provided. +ScrapeTarget is the K8s service that publishes the metric endpoint. |
(Appears on: -Revision, -Revision) +Metric)
-
RevisionStatus communicates the observed state of the Revision (from the controller).
+MetricStatus reflects the status of metric collection for this specific entity.
-serviceName
-
-string
-
- |
-
-(Optional)
- ServiceName holds the name of a core Kubernetes Service resource that -load balances over the pods backing this Revision. - |
-
-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)
- ImageDigest 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. - |
-
(Appears on: -ConfigurationSpec) +PodAutoscaler)
-
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
+PodAutoscalerSpec holds the desired state of the PodAutoscaler (from the client).
(Optional)
-Refer to the Kubernetes API documentation for the fields of the
-metadata field.
+DeprecatedGeneration was used prior in Kubernetes versions <1.11 +when metadata.generation was not being incremented by the api server +This property will be dropped in future Knative releases and should +not be used - use metadata.generation +Tracking issue: https://github.com/knative/serving/issues/643 |
|||||||
-spec
+containerConcurrency
-
-RevisionSpec
-
+int64
|
(Optional)
- - -
Reachable specifies whether or not the |
-(Appears on: -Route, -Route, -ServiceSpec) -
--
RouteSpec holds the desired state of the Route (from the client).
- -Field | -Description | -
---|---|
-traffic
+protocolType
-
-[]TrafficTarget
-
+knative.dev/serving/pkg/apis/networking.ProtocolType
|
-(Optional)
- Traffic specifies how to distribute traffic over a collection of -revisions and configurations. +The application-layer protocol. Matches |
(Appears on: -Route, -Route) +PodAutoscaler)
-
RouteStatus communicates the observed state of the Route (from the controller).
+PodAutoscalerStatus communicates the observed state of the PodAutoscaler (from the controller).
-RouteStatusFields
+serviceName
-
-RouteStatusFields
-
+string
|
-
-(Members of 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. |
-(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.
+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.
-url
+metadata
-knative.dev/pkg/apis.URL
+
+Kubernetes meta/v1.ObjectMeta
+
|
-(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} +Refer to the Kubernetes API documentation for the fields of the +metadata field.
|
||||||||
-address
+spec
-knative.dev/pkg/apis/duck/v1.Addressable
+
+PodScalableSpec
+
+
+ |
+
+ + +
ServiceSpec ---(Appears on: -Service, -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. - -
|
||||||||
-RouteSpec
+status
-
-RouteSpec
+
+PodScalableStatus
|
-
-(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). |
(Appears on: -Service, -Service) +PodScalable)
-
ServiceStatus represents the Status stanza of the Service resource.
+PodScalableSpec is the specification for the desired state of a +PodScalable (or at least our shared portion).
-Status
+replicas
-knative.dev/pkg/apis/duck/v1.Status
+int32
|
-
-(Members of |
-ConfigurationStatusFields
+selector
-
-ConfigurationStatusFields
+
+Kubernetes meta/v1.LabelSelector
|
-
-(Members of In addition to inlining ConfigurationSpec, we also inline the fields -specific to ConfigurationStatus. |
-RouteStatusFields
+template
-
-RouteStatusFields
+
+Kubernetes core/v1.PodTemplateSpec
|
+ | +
-(Members of RouteStatusFields
are embedded into this type.)
+(Appears on:
+PodScalable)
In addition to inlining RouteSpec, we also inline the fields -specific to RouteStatus.
++
PodScalableStatus is the observed state of a PodScalable (or at +least our shared portion).
+ +Field | +Description | +
---|---|
+replicas
+
+int32
+
+ |
+
string
alias)(Appears on: -RouteSpec, -RouteStatusFields, -TrafficTarget) +PodAutoscalerSpec)
-
TrafficTarget holds a single entry of the routing table for a Route.
+ReachabilityType is the enumeration type for the different states of reachability
+to the ScaleTarget
of a PodAutoscaler
+
+Resource Types: ++
Certificate is responsible for provisioning a SSL certificate for the +given hosts. It is a Knative abstraction for various SSL certificate +provisioning solutions (such as cert-manager or self-signed SSL certificate).
Field | Description | - - + + +|
---|---|---|
+apiVersion
+string |
+
+
+networking.internal.knative.dev/v1alpha1
+
+ |
+|
-tag
-
+kind
string
-
- |
-
-(Optional)
- Tag is optionally used to expose a dedicated url for referencing -this target exclusively. |
+Certificate |
-revisionName
+metadata
-string
+
+Kubernetes meta/v1.ObjectMeta
+
|
(Optional)
- RevisionName of a specific revision to which to send this portion of -traffic. This is mutually exclusive with ConfigurationName. +Standard object’s metadata. +More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata +Refer to the Kubernetes API documentation for the fields of the +metadata field.
|
|
-configurationName
+spec
-string
+
+CertificateSpec
+
|
(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
+dnsNames
-bool
+[]string
|
-(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. +DNSNames is a list of DNS names the Certificate could support. +The wildcard format of DNSNames (e.g. *.default.example.com) is supported. |
-percent
+secretName
-int64
+string
|
-(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. SecretName is the name of the secret resource to store the SSL certificate in. + |
+
url
+status
-knative.dev/pkg/apis.URL
+
+CertificateStatus
+
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.)
+Status is the current state of the Certificate. +More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status
-
-Resource Types: --
Configuration represents the “floating HEAD” of a linear history of Revisions, -and optionally how the containers those revisions reference are built. -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/master/docs/spec/overview.md#configuration
+Ingress is a collection of rules that allow inbound connections to reach the endpoints defined +by a backend. An Ingress can be configured to give services externally-reachable URLs, load +balance traffic, offer name based virtual hosting, etc.
+This is heavily based on K8s Ingress https://godoc.org/k8s.io/api/networking/v1beta1#Ingress +which some highlighted modifications.
spec
-
-ConfigurationSpec
+
+IngressSpec
|
(Optional)
- Spec holds the desired state of the Configuration (from the client). +Spec is the desired state of the Ingress. +More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status
|
status
-
-ConfigurationStatus
+
+IngressStatus
|
(Optional)
- Status communicates the observed state of the Configuration (from the controller). +Status is the current state of the Ingress. +More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status |
-
Revision is an immutable snapshot of code and configuration. A revision -references a container image, and optionally a build that is responsible for -materializing that container image from source. Revisions are created by -updates to a Configuration.
-See also: https://github.com/knative/serving/blob/master/docs/spec/overview.md#revision
+ServerlessService is a proxy for the K8s service objects containing the +endpoints for the revision, whether those are endpoints of the activator or +revision pods. +See: https://knative.page.link/naxz for details.
-serving.knative.dev/v1alpha1
+networking.internal.knative.dev/v1alpha1
|
-||||||||
-kind
-string
+ | ||||||||
+kind
+string
+ |
+ServerlessService |
+|||||||
+metadata
+
+
+Kubernetes meta/v1.ObjectMeta
+
+
+ |
+
+(Optional)
+ Standard object’s metadata. +More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata +Refer to the Kubernetes API documentation for the fields of the +metadata field.
+ |
+|||||||
+spec
+
+
+ServerlessServiceSpec
+
+
+ |
+
+(Optional)
+ Spec is the desired state of the ServerlessService. +More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status ++ +
|
-Revision |
||||||
-metadata
+status
-
-Kubernetes meta/v1.ObjectMeta
+
+ServerlessServiceStatus
|
(Optional)
-Refer to the Kubernetes API documentation for the fields of the
-metadata field.
+Status is the current state of the ServerlessService. +More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status |
+(Appears on: +Certificate) +
++
CertificateSpec defines the desired state of a Certificate
.
Field | +Description | +||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
-spec
+dnsNames
-
-RevisionSpec
-
+[]string
|
-(Optional)
- Spec holds the desired state of the Revision (from the client). -- -
CertificateStatus +
-(Members of |
+
Field | +Description |
---|---|
-generation
+Status
-int64
+knative.dev/pkg/apis/duck/v1.Status
|
-(Optional)
- DeprecatedGeneration was used prior in Kubernetes versions <1.11 -when metadata.generation was not being incremented by the api server -This property will be dropped in future Knative releases and should -not be used - use metadata.generation -Tracking issue: https://github.com/knative/serving/issues/643 +
+(Members of When Certificate status is ready, it means: +- The target secret exists +- The target secret contains a certificate that has not expired +- The target secret contains a private key valid for the certificate |
-servingState
+notAfter
-
-DeprecatedRevisionServingStateType
+
+Kubernetes meta/v1.Time
|
(Optional)
- DeprecatedServingState holds a value describing the desired state the Kubernetes -resources should be in for this Revision. -Users must not specify this when creating a revision. These values are no longer -updated by the system. +The expiration time of the TLS certificate stored in the secret named +by this resource in spec.secretName. |
-concurrencyModel
+http01Challenges
-
-DeprecatedRevisionRequestConcurrencyModelType
+
+[]HTTP01Challenge
|
-(Optional)
- DeprecatedConcurrencyModel specifies the desired concurrency model -(Single or Multi) for the -Revision. Defaults to Multi. -Deprecated in favor of ContainerConcurrency. +HTTP01Challenges is a list of HTTP01 challenges that need to be fulfilled +in order to get the TLS certificate.. |
+(Appears on: +CertificateStatus) +
++
HTTP01Challenge defines the status of a HTTP01 challenge that a certificate needs +to fulfill.
+ +Field | +Description | +
---|---|
-buildName
+url
-string
+knative.dev/pkg/apis.URL
|
-(Optional)
- DeprecatedBuildName optionally holds the name of the Build responsible for -producing the container image for its Revision. -DEPRECATED: Use DeprecatedBuildRef instead. +URL is the URL that the HTTP01 challenge is expected to serve on. |
-buildRef
+serviceName
-
-Kubernetes core/v1.ObjectReference
-
+string
|
-(Optional)
- DeprecatedBuildRef holds the reference to the build (if there is one) responsible -for producing the container image for this Revision. Otherwise, nil +ServiceName is the name of the service to serve HTTP01 challenge requests. |
-container
+serviceNamespace
-
-Kubernetes core/v1.Container
-
+string
|
-(Optional)
- Container defines the unit of execution for this Revision. -In the context of a Revision, we disallow a number of the fields of -this Container, including: name and lifecycle. -See also the runtime contract for more information about the execution -environment: -https://github.com/knative/serving/blob/master/docs/runtime-contract.md - |
-
ServiceNamespace is the namespace of the service to serve HTTP01 challenge requests.
status
+servicePort
-
-RevisionStatus
-
+k8s.io/apimachinery/pkg/util/intstr.IntOrString
Status communicates the observed state of the Revision (from the controller).
+ServicePort is the port of the service to serve HTTP01 challenge requests.
-
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/master/docs/spec/overview.md#route
+(Appears on: +HTTPIngressRuleValue) + ++
HTTPIngressPath associates a path regex with a backend. Incoming URLs matching +the path are forwarded to the backend.
(Optional)
-Refer to the Kubernetes API documentation for the fields of the
-metadata field.
+Path is an extended POSIX regex as defined by IEEE Std 1003.1, +(i.e this follows the egrep/unix syntax, not the perl syntax) +matched against the path of an incoming request. Currently it can +contain characters disallowed from the conventional “path” +part of a URL as defined by RFC 3986. Paths must begin with +a ‘/’. If unspecified, the path defaults to a catch all sending +traffic to the backend. |
|||||
-spec
+splits
-
-RouteSpec
+
+[]IngressBackendSplit
|
-(Optional)
- Spec holds the desired state of the Route (from the client). -- -
Timeout for HTTP requests. +NOTE: This differs from K8s Ingress which doesn’t allow setting timeouts. |
||||
-status
+retries
-
-RouteStatus
+
+HTTPRetry
|
(Optional)
- Status communicates the observed state of the Route (from the controller). +Retry policy for HTTP requests. +NOTE: This differs from K8s Ingress which doesn’t allow retry settings. |
-
Service acts as a top-level container that manages a set of Routes and -Configurations 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/master/docs/spec/overview.md#service
+(Appears on: +IngressRule) + ++
HTTPIngressRuleValue is a list of http selectors pointing to backends.
+In the example: http://
-apiVersion
-string |
-
-
-serving.knative.dev/v1alpha1
-
- |
-
-kind
-string
- |
-Service |
-
-metadata
+paths
-
-Kubernetes meta/v1.ObjectMeta
+
+[]HTTPIngressPath
|
-(Optional)
-Refer to the Kubernetes API documentation for the fields of the
-metadata field.
+A collection of paths that map requests to backends. +If they are multiple matching paths, the first match takes precendent. |
-spec
-
-
-ServiceSpec
-
-
- |
-
-(Optional)
- - + |
+(Appears on: +HTTPIngressPath) +
++
HTTPRetry describes the retry policy to use when a HTTP request fails.
+Field | +Description | +
---|---|
-generation
+attempts
-int64
+int
|
-(Optional)
- DeprecatedGeneration was used prior in Kubernetes versions <1.11 -when metadata.generation was not being incremented by the api server -This property will be dropped in future Knative releases and should -not be used - use metadata.generation -Tracking issue: https://github.com/knative/serving/issues/643 +Number of retries for a given request. |
-runLatest
+perTryTimeout
-
-RunLatestType
+
+Kubernetes meta/v1.Duration
|
-(Optional)
- DeprecatedRunLatest defines a simple Service. It will automatically -configure a route that keeps the latest ready revision -from the supplied configuration running. +Timeout per retry attempt for a given request. format: 1h/1m/1s/1ms. MUST BE >=1ms. |
+(Appears on: +IngressBackendSplit) +
++
IngressBackend describes all endpoints for a given service and port.
+ +Field | +Description | +
---|---|
-pinned
+serviceNamespace
-
-PinnedType
-
+string
|
-(Optional)
- DeprecatedPinned is DEPRECATED in favor of ReleaseType +Specifies the namespace of the referenced service. +NOTE: This differs from K8s Ingress to allow routing to different namespaces. |
-manual
+serviceName
-
-ManualType
-
+string
|
-(Optional)
- DeprecatedManual mode enables users to start managing the underlying Route and Configuration -resources directly. This advanced usage is intended as a path for users to graduate -from the limited capabilities of Service to the full power of Route. +Specifies the name of the referenced service. |
-release
+servicePort
-
-ReleaseType
-
+k8s.io/apimachinery/pkg/util/intstr.IntOrString
|
-(Optional)
- Release enables gradual promotion of new revisions by allowing traffic -to be split between two revisions. This type replaces the deprecated Pinned type. +Specifies the port of the referenced service. |
+(Appears on: +HTTPIngressPath) +
++
IngressBackendSplit describes all endpoints for a given service and port.
+ +Field | +Description | +
---|---|
-ConfigurationSpec
+IngressBackend
-
-ConfigurationSpec
+
+IngressBackend
|
-(Members of We are moving to a shape where the Configuration and Route specifications -are inlined into the Service, which gives them compatible shapes. We are -staging this change here as a path to this in v1beta1, which drops the -“mode” based specifications above. Ultimately all non-v1beta1 fields will -be deprecated, and then dropped in v1beta1. +Specifies the backend receiving the traffic split. |
-RouteSpec
+percent
-
-RouteSpec
-
+int
|
-
-(Members of |
-
Specifies the split percentage, a number between 0 and 100. If +only one split is specified, we default to 100.
+NOTE: This differs from K8s Ingress to allow percentage split.
status
+appendHeaders
-
-ServiceStatus
-
+map[string]string
AppendHeaders allow specifying additional HTTP headers to add +before forwarding a request to the destination service.
+NOTE: This differs from K8s Ingress which doesn’t allow header appending.
-
CannotConvertError is returned when a field cannot be converted.
+(Appears on: +IngressSpec) + ++
IngressRule represents the rules mapping the paths under a specified host to +the related backend services. Incoming requests are first evaluated for a host +match, then routed to the backend associated with the matching IngressRuleValue.
Field | Description | - - + + +
---|---|
+hosts
+
+[]string
+
+ |
+
+(Optional)
+ Host is the fully qualified domain name of a network host, as defined
+by RFC 3986. Note the following deviations from the “host” part of the
+URI as defined in the RFC:
+1. IPs are not allowed. Currently a rule value can only apply to the
+IP in the Spec of the parent .
+2. The |
+
-Message
+visibility
-string
+
+IngressVisibility
+
|
+(Optional)
+ Visibility signifies whether this rule should |
-Field
+http
-string
+
+HTTPIngressRuleValue
+
|
+ HTTP represents a rule to apply against incoming requests. If the +rule is satisfied, the request is routed to the specified backend. |
(Appears on: -Configuration, -PinnedType, -ReleaseType, -RunLatestType, -ServiceSpec) +Ingress)
-
ConfigurationSpec holds the desired state of the Configuration (from the client).
+IngressSpec describes the Ingress the user wishes to exist.
+In general this follows the same shape as K8s Ingress. +Some notable differences: +- Backends now can have namespace: +- Traffic can be split across multiple backends. +- Timeout & Retry can be configured. +- Headers can be appended.
-build
+tls
-k8s.io/apimachinery/pkg/runtime.RawExtension
+
+[]IngressTLS
+
|
(Optional)
- Build optionally holds the specification for the build to -perform to produce the Revision’s container image. +TLS configuration. Currently Ingress only supports a single TLS +port: 443. If multiple members of this list specify different hosts, they +will be multiplexed on the same port according to the hostname specified +through the SNI TLS extension, if the ingress controller fulfilling the +ingress supports SNI. |
-revisionTemplate
+rules
-
-RevisionTemplateSpec
+
+[]IngressRule
|
(Optional)
- DeprecatedRevisionTemplate holds the latest specification for the Revision to -be stamped out. If a Build specification is provided, then the -DeprecatedRevisionTemplate’s BuildName field will be populated with the name of -the Build object created to produce the container for the Revision. -DEPRECATED Use Template instead. +A list of host rules used to configure the Ingress. |
-template
+visibility
-
-RevisionTemplateSpec
+
+IngressVisibility
|
-(Optional)
- Template holds the latest specification for the Revision to -be stamped out. +Visibility setting. |
(Appears on: -Configuration) +Ingress)
-
ConfigurationStatus communicates the observed state of the Configuration (from the controller).
+IngressStatus describe the current state of the Ingress.
-ConfigurationStatusFields
+loadBalancer
-
-ConfigurationStatusFields
+
+LoadBalancerStatus
|
-
-(Members of LoadBalancer contains the current status of the load-balancer.
+This is to be superseded by the combination of |
+
+publicLoadBalancer
+
+
+LoadBalancerStatus
+
+
+ |
+
+(Optional)
+ PublicLoadBalancer contains the current status of the load-balancer. + |
+
+privateLoadBalancer
+
+
+LoadBalancerStatus
+
+
+ |
+
+(Optional)
+ PrivateLoadBalancer contains the current status of the load-balancer. |
(Appears on: -ConfigurationStatus, -ServiceStatus) +IngressSpec)
-
ConfigurationStatusFields holds all of the non-duckv1.Status status fields of a Route. -These are defined outline so that we can also inline them into Service, and more easily -copy them.
+IngressTLS describes the transport layer security associated with an Ingress.
-latestReadyRevisionName
+hosts
-string
+[]string
|
(Optional)
- LatestReadyRevisionName holds the name of the latest Revision stamped out -from this Configuration that has had its “Ready” condition become “True”. +Hosts is a list of hosts included in the TLS certificate. The values in +this list must match the name/s used in the tlsSecret. Defaults to the +wildcard host setting for the loadbalancer controller fulfilling this +Ingress, if left unspecified. |
-latestCreatedRevisionName
+secretName
string
|
-(Optional)
- LatestCreatedRevisionName is the last revision that was created from this -Configuration. It might not be ready yet, for that use LatestReadyRevisionName. +SecretName is the name of the secret used to terminate SSL traffic. |
string
alias)-(Appears on: -RevisionSpec) -
--
DeprecatedRevisionRequestConcurrencyModelType is an enumeration of the -concurrency models supported by a Revision. -DEPRECATED in favor of an integer based ContainerConcurrency setting. -TODO(vagababov): retire completely in 0.9.
- -string
alias)-(Appears on: -RevisionSpec) -
--
DeprecatedRevisionServingStateType is an enumeration of the levels of serving readiness of the Revision. -See also: https://github.com/knative/serving/blob/master/docs/spec/errors.md#error-conditions-and-reporting
- --(Appears on: -ServiceSpec) -
--
ManualType contains the options for configuring a manual service. See ServiceSpec for -more details.
- --(Appears on: -ServiceSpec) -
--
PinnedType is DEPRECATED. ReleaseType should be used instead. To get the behavior of PinnedType set -ReleaseType.Revisions to []string{PinnedType.RevisionName} and ReleaseType.RolloutPercent to 0.
- -Field | -Description | +
+secretNamespace
+
+string
+
+ |
+
+ SecretNamespace is the namespace of the secret used to terminate SSL traffic. + |
---|---|---|---|
-revisionName
+serverCertificate
string
|
(Optional)
- The revision name to pin this service to until changed -to a different service type. +ServerCertificate identifies the certificate filename in the secret.
+Defaults to |
||
-configuration
+privateKey
-
-ConfigurationSpec
-
+string
|
(Optional)
- The configuration for this service. +PrivateKey identifies the private key filename in the secret.
+Defaults to |
string
alias)+(Appears on: +IngressRule, +IngressSpec) +
++
IngressVisibility describes whether the Ingress should be exposed to +public gateways or not.
+ +(Appears on: -ServiceSpec) +LoadBalancerStatus)
-
ReleaseType contains the options for slowly releasing revisions. See ServiceSpec for -more details.
+LoadBalancerIngressStatus represents the status of a load-balancer ingress point: +traffic intended for the service should be sent to an ingress point.
-revisions
+ip
+
+string
+
+ |
+
+(Optional)
+ IP is set for load-balancer ingress points that are IP based +(typically GCE or OpenStack load-balancers) + |
+
+domain
-[]string
+string
|
(Optional)
- Revisions is an ordered list of 1 or 2 revisions. The first will -have a TrafficTarget with a name of “current” and the second will have -a name of “candidate”. +Domain is set for load-balancer ingress points that are DNS based +(typically AWS load-balancers) |
-rolloutPercent
+domainInternal
-int
+string
|
(Optional)
- RolloutPercent is the percent of traffic that should be sent to the “candidate” -revision. Valid values are between 0 and 99 inclusive. +DomainInternal is set if there is a cluster-local DNS name to access the Ingress. +NOTE: This differs from K8s Ingress, since we also desire to have a cluster-local +DNS name to allow routing in case of not having a mesh. |
-configuration
+meshOnly
-
-ConfigurationSpec
-
+bool
|
(Optional)
- The configuration for this service. All revisions from this service must -come from a single configuration. +MeshOnly is set if the Ingress is only load-balanced through a Service mesh. |
(Appears on: -Revision, -RevisionTemplateSpec) +IngressStatus)
-
RevisionSpec holds the desired state of the Revision (from the client).
+LoadBalancerStatus represents the status of a load-balancer.
-RevisionSpec
+ingress
-
-RevisionSpec
+
+[]LoadBalancerIngressStatus
|
+(Optional)
+ Ingress is a list containing ingress points for the load-balancer. +Traffic intended for the service should be sent to these ingress points. + |
+
string
alias)
-(Members of RevisionSpec
are embedded into this type.)
+(Appears on:
+ServerlessServiceSpec)
+
ServerlessServiceOperationMode is an enumeration of the modes of operation +for the ServerlessService.
+ ++(Appears on: +ServerlessService) +
++
ServerlessServiceSpec describes the ServerlessService.
+ +Field | +Description |
---|---|
-generation
+mode
-int64
+
+ServerlessServiceOperationMode
+
|
-(Optional)
- DeprecatedGeneration was used prior in Kubernetes versions <1.11 -when metadata.generation was not being incremented by the api server -This property will be dropped in future Knative releases and should -not be used - use metadata.generation -Tracking issue: https://github.com/knative/serving/issues/643 +Mode describes the mode of operation of the ServerlessService. |
-servingState
+objectRef
-
-DeprecatedRevisionServingStateType
+
+Kubernetes core/v1.ObjectReference
|
-(Optional)
- DeprecatedServingState holds a value describing the desired state the Kubernetes -resources should be in for this Revision. -Users must not specify this when creating a revision. These values are no longer -updated by the system. +ObjectRef defines the resource that this ServerlessService +is responsible for making “serverless”. |
-concurrencyModel
+ProtocolType
-
-DeprecatedRevisionRequestConcurrencyModelType
-
+knative.dev/serving/pkg/apis/networking.ProtocolType
|
-(Optional)
- DeprecatedConcurrencyModel specifies the desired concurrency model -(Single or Multi) for the -Revision. Defaults to Multi. -Deprecated in favor of ContainerConcurrency. +The application-layer protocol. Matches |
+(Appears on: +ServerlessService) +
++
ServerlessServiceStatus describes the current state of the ServerlessService.
+ +Field | +Description | +
---|---|
-buildName
+Status
-string
+knative.dev/pkg/apis/duck/v1.Status
|
-(Optional)
- DeprecatedBuildName optionally holds the name of the Build responsible for -producing the container image for its Revision. -DEPRECATED: Use DeprecatedBuildRef instead. +
+(Members of |
-buildRef
+serviceName
-
-Kubernetes core/v1.ObjectReference
-
+string
|
(Optional)
- DeprecatedBuildRef holds the reference to the build (if there is one) responsible -for producing the container image for this Revision. Otherwise, nil +ServiceName holds the name of a core K8s Service resource that +load balances over the pods backing this Revision (activator or revision). |
-container
+privateServiceName
-
-Kubernetes core/v1.Container
-
+string
|
(Optional)
- Container defines the unit of execution for this Revision. -In the context of a Revision, we disallow a number of the fields of -this Container, including: name and lifecycle. -See also the runtime contract for more information about the execution -environment: -https://github.com/knative/serving/blob/master/docs/runtime-contract.md +PrivateServiceName holds the name of a core K8s Service resource that +load balances over the user service pods backing this Revision. |
-(Appears on: -Revision)
+Resource Types: +-
RevisionStatus communicates the observed state of the Revision (from the controller).
+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/master/docs/spec/overview.md#configuration
-Status
-
-knative.dev/pkg/apis/duck/v1.Status
-
+apiVersion
+string |
+
+
+serving.knative.dev/v1
+
|
+
-
-(Members of kind
+string
|
+Configuration |
-serviceName
+metadata
-string
+
+Kubernetes meta/v1.ObjectMeta
+
|
(Optional)
- ServiceName holds the name of a core Kubernetes Service resource that -load balances over the pods backing this Revision. +Refer to the Kubernetes API documentation for the fields of the +metadata field.
|
-logUrl
+spec
-string
+
+ConfigurationSpec
+
|
(Optional)
- LogURL specifies the generated logging url for this particular revision -based on the revision url template specified in the controller’s config. - |
-
-imageDigest
+template
-string
+
+RevisionTemplateSpec
+
+
+ |
+
+(Optional)
+ Template holds the latest specification for the Revision to be stamped out. + |
+
status
+
+
+ConfigurationStatus
+
ImageDigest 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.
-(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
+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/master/docs/spec/overview.md#revision
spec
-
+
RevisionSpec
@@ -4613,180 +4615,178 @@ RevisionSpec
|
|
-concurrencyModel
+status
-
-DeprecatedRevisionRequestConcurrencyModelType
+
+RevisionStatus
|
(Optional)
- DeprecatedConcurrencyModel specifies the desired concurrency model -(Single or Multi) for the -Revision. Defaults to Multi. -Deprecated in favor of ContainerConcurrency. |
+
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/master/docs/spec/overview.md#route
+ +Field | +Description | +
---|---|
-buildName
-
-string
-
+apiVersion
+string |
+
+
+serving.knative.dev/v1
+
|
+
-(Optional)
- DeprecatedBuildName optionally holds the name of the Build responsible for -producing the container image for its Revision. -DEPRECATED: Use DeprecatedBuildRef instead. +kind
+string
|
+Route |
-buildRef
+metadata
-
-Kubernetes core/v1.ObjectReference
+
+Kubernetes meta/v1.ObjectMeta
|
(Optional)
- DeprecatedBuildRef holds the reference to the build (if there is one) responsible -for producing the container image for this Revision. Otherwise, nil +Refer to the Kubernetes API documentation for the fields of the +metadata field.
|
-container
+spec
-
-Kubernetes core/v1.Container
+
+RouteSpec
|
(Optional)
- Container defines the unit of execution for this Revision. -In the context of a Revision, we disallow a number of the fields of -this Container, including: name and lifecycle. -See also the runtime contract for more information about the execution -environment: -https://github.com/knative/serving/blob/master/docs/runtime-contract.md - |
-
-(Appears on: -Route, -ServiceSpec) -
--
RouteSpec holds the desired state of the Route (from the client).
- +Spec holds the desired state of the Route (from the client).
+Field | -Description | -
---|---|
-generation
+traffic
-int64
+
+[]TrafficTarget
+
|
(Optional)
- DeprecatedGeneration was used prior in Kubernetes versions <1.11 -when metadata.generation was not being incremented by the api server -This property will be dropped in future Knative releases and should -not be used - use metadata.generation -Tracking issue: https://github.com/knative/serving/issues/643 +Traffic specifies how to distribute traffic over a collection of +revisions and configurations. + |
+
traffic
+status
-
-[]TrafficTarget
+
+RouteStatus
Traffic specifies how to distribute traffic over a collection of Knative Serving Revisions and Configurations.
+Status communicates the observed state of the Route (from the controller).
-(Appears on: -Route) -
--
RouteStatus communicates the observed state of the Route (from the controller).
+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/master/docs/spec/overview.md#service
-Status
-
-knative.dev/pkg/apis/duck/v1.Status
-
- |
-
-
-(Members of |
-
-RouteStatusFields
-
-
-RouteStatusFields
-
-
- |
+
-
-(Members of
+serving.knative.dev/v1
+
|
-(Appears on: -RouteStatus, -ServiceStatus) -
--
RouteStatusFields holds all of the non-duckv1.Status status fields of a Route. -These are defined outline so that we can also inline them into Service, and more easily -copy them.
- -Field | -Description | +
---|---|
+kind
+string
+ |
+Service |
-url
+metadata
-knative.dev/pkg/apis.URL
+
+Kubernetes meta/v1.ObjectMeta
+
|
(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} +Refer to the Kubernetes API documentation for the fields of the +metadata field.
|
-domain
+spec
-string
+
+ServiceSpec
+
|
(Optional)
- DeprecatedDomain holds the top-level domain that will distribute traffic over the provided targets. -It generally has the form {route-name}.{route-namespace}.{cluster-level-suffix} - |
-
-domainInternal
+ConfigurationSpec
-string
+
+ConfigurationSpec
+
|
-(Optional)
- DeprecatedDomainInternal holds the top-level domain that will distribute traffic over the provided -targets from inside the cluster. It generally has the form -{route-name}.{route-namespace}.svc.{cluster-domain-name} -DEPRECATED: Use Address instead. +
+(Members of ServiceSpec inlines an unrestricted ConfigurationSpec. |
-address
+RouteSpec
-knative.dev/pkg/apis/duck/v1alpha1.Addressable
+
+RouteSpec
+
|
-(Optional)
- Address holds the information needed for a Route to be the target of an event. +
+(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). + |
+
traffic
+status
-
-[]TrafficTarget
+
+ServiceStatus
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.
(Appears on: -ServiceSpec) +Configuration, +Configuration, +ServiceSpec)
-
RunLatestType contains the options for always having a route to the latest configuration. See -ServiceSpec for more details.
+ConfigurationSpec holds the desired state of the Configuration (from the client).
-configuration
+template
-
-ConfigurationSpec
+
+RevisionTemplateSpec
|
(Optional)
- The configuration for this service. +Template holds the latest specification for the Revision to be stamped out. |
(Appears on: -Service) +Configuration, +Configuration)
-
ServiceSpec represents the configuration for the Service object. Exactly one -of its members (other than Generation) must be specified. Services can either -track the latest ready revision of a configuration or be pinned to a specific -revision.
+ConfigurationStatus communicates the observed state of the Configuration (from the controller).
-generation
+Status
-int64
+knative.dev/pkg/apis/duck/v1.Status
|
-(Optional)
- DeprecatedGeneration was used prior in Kubernetes versions <1.11 -when metadata.generation was not being incremented by the api server -This property will be dropped in future Knative releases and should -not be used - use metadata.generation -Tracking issue: https://github.com/knative/serving/issues/643 +
+(Members of |
-runLatest
+ConfigurationStatusFields
-
-RunLatestType
+
+ConfigurationStatusFields
|
-(Optional)
- DeprecatedRunLatest defines a simple Service. It will automatically -configure a route that keeps the latest ready revision -from the supplied configuration running. +
+(Members of |
+(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.
+ +
-pinned
-
-
-PinnedType
-
-
- |
-
-(Optional)
- DeprecatedPinned is DEPRECATED in favor of ReleaseType - |
+Field | +Description |
---|---|---|---|
-manual
+latestReadyRevisionName
-
-ManualType
-
+string
|
(Optional)
- DeprecatedManual mode enables users to start managing the underlying Route and Configuration -resources directly. This advanced usage is intended as a path for users to graduate -from the limited capabilities of Service to the full power of Route. +LatestReadyRevisionName holds the name of the latest Revision stamped out +from this Configuration that has had its “Ready” condition become “True”. |
||
-release
+latestCreatedRevisionName
-
-ReleaseType
-
+string
|
(Optional)
- Release enables gradual promotion of new revisions by allowing traffic -to be split between two revisions. This type replaces the deprecated Pinned type. - |
-||
-ConfigurationSpec
-
-
-ConfigurationSpec
-
-
- |
-
-
-(Members of We are moving to a shape where the Configuration and Route specifications -are inlined into the Service, which gives them compatible shapes. We are -staging this change here as a path to this in v1beta1, which drops the -“mode” based specifications above. Ultimately all non-v1beta1 fields will -be deprecated, and then dropped in v1beta1. - |
-||
-RouteSpec
-
-
-RouteSpec
-
-
- |
-
-
-(Members of LatestCreatedRevisionName is the last revision that was created from this +Configuration. It might not be ready yet, for that use LatestReadyRevisionName. |
(Appears on: -Service) +Revision, +Revision, +RevisionSpec, +RevisionTemplateSpec)
-
ServiceStatus represents the Status stanza of the Service resource.
+RevisionSpec holds the desired state of the Revision (from the client).
-Status
+PodSpec
-knative.dev/pkg/apis/duck/v1.Status
+
+Kubernetes core/v1.PodSpec
+
|
-(Members of |
-RouteStatusFields
+containerConcurrency
-
-RouteStatusFields
-
+int64
|
-
-(Members of ContainerConcurrency specifies the maximum allowed in-flight (concurrent)
+requests per container of the Revision. Defaults to |
-ConfigurationStatusFields
+timeoutSeconds
-
-ConfigurationStatusFields
-
+int64
|
-
-(Members of TimeoutSeconds holds the max duration the instance is allowed for +responding to a request. If unspecified, a system default will +be provided. |
(Appears on: -RouteSpec, -RouteStatusFields) +Revision, +Revision)
-
TrafficTarget holds a single entry of the routing table for a Route.
+RevisionStatus communicates the observed state of the Revision (from the controller).
-name
+Status
+
+knative.dev/pkg/apis/duck/v1.Status
+
+ |
+
+
+(Members of |
+
+serviceName
string
|
(Optional)
- Name is optionally used to expose a dedicated hostname for referencing this -target exclusively. It has the form: {name}.${route.status.domain} +ServiceName holds the name of a core Kubernetes Service resource that +load balances over the pods backing this Revision. |
-TrafficTarget
+logUrl
-
-TrafficTarget
-
+string
|
-
-(Members of We inherit most of our fields by inlining the v1 type. -Ultimately all non-v1 fields will be deprecated. +(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)
+ ImageDigest 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. |
+(Appears on: +ConfigurationSpec)
-Resource Types: --
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/master/docs/spec/overview.md#configuration
+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
spec
-
-ConfigurationSpec
+
+RevisionSpec
|
@@ -5277,43 +5216,63 @@ ConfigurationSpec
-template
+PodSpec
-
-RevisionTemplateSpec
+
+Kubernetes core/v1.PodSpec
|
-(Optional)
- Template holds the latest specification for the Revision to be stamped out. +
+(Members of |
containerConcurrency
+
+int64
+
+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.
status
+timeoutSeconds
-
-ConfigurationStatus
-
+int64
TimeoutSeconds holds the max duration the instance is allowed for +responding to a request. If unspecified, a system default will +be provided.
+-
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/master/docs/spec/overview.md#revision
+(Appears on: +Route, +Route, +ServiceSpec) + ++
RouteSpec holds the desired state of the Route (from the client).
-apiVersion
-string |
-
-
-serving.knative.dev/v1beta1
-
- |
-
-kind
-string
- |
-Revision |
-
-metadata
+traffic
-
-Kubernetes meta/v1.ObjectMeta
+
+[]TrafficTarget
|
(Optional)
-Refer to the Kubernetes API documentation for the fields of the
-metadata field.
+Traffic specifies how to distribute traffic over a collection of +revisions and configurations. |
+(Appears on: +Route, +Route) +
++
RouteStatus communicates the observed state of the Route (from the controller).
+ +Field | +Description | +||||||||
---|---|---|---|---|---|---|---|---|---|
-spec
+Status
-
-RevisionSpec
-
+knative.dev/pkg/apis/duck/v1.Status
|
-(Optional)
- - -
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. + +
Address holds the information needed for a Route to be the target of an event. |
||||||||
-status
+traffic
-
-RevisionStatus
+
+[]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. |
-
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/master/docs/spec/overview.md#route
+(Appears on: +Service, +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.
-kind
-string
+
+(Members of ServiceSpec inlines an unrestricted ConfigurationSpec. |
-Route |
-metadata
+RouteSpec
-
-Kubernetes meta/v1.ObjectMeta
+
+RouteSpec
|
-(Optional)
-Refer to the Kubernetes API documentation for the fields of the
-metadata field.
+
+(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). |
+(Appears on: +Service, +Service) +
++
ServiceStatus represents the Status stanza of the Service resource.
+ +Field | +Description | +||
---|---|---|---|
-spec
+Status
-
-RouteSpec
-
+knative.dev/pkg/apis/duck/v1.Status
|
-(Optional)
- Spec holds the desired state of the Route (from the client). -- -
+(Members of In addition to inlining ConfigurationSpec, we also inline the fields +specific to ConfigurationStatus. |
||
-status
+RouteStatusFields
-
-RouteStatus
+
+RouteStatusFields
|
-(Optional)
- Status communicates the observed state of the Route (from the controller). +
+(Members of In addition to inlining RouteSpec, we also inline the fields +specific to RouteStatus. |
-
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/master/docs/spec/overview.md#service
+(Appears on: +RouteSpec, +RouteStatusFields, +TrafficTarget) + ++
TrafficTarget holds a single entry of the routing table for a Route.
-apiVersion
-string |
-
-
-serving.knative.dev/v1beta1
-
+tag
+
+string
+
|
-||||
-kind
-string
+(Optional)
+Tag is optionally used to expose a dedicated url for referencing +this target exclusively. |
-Service |
||||
-metadata
+revisionName
-
-Kubernetes meta/v1.ObjectMeta
-
+string
|
(Optional)
-Refer to the Kubernetes API documentation for the fields of the
-metadata field.
+RevisionName of a specific revision to which to send this portion of +traffic. This is mutually exclusive with ConfigurationName. |
||||
-spec
+configurationName
-
-ServiceSpec
-
+string
|
(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. |
||||
-status
+url
-
-ServiceStatus
-
+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.) |