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:

-

autoscaling.internal.knative.dev/v1alpha1

+

serving.knative.dev/v1alpha1

Resource Types: -

PodAutoscaler +

Configuration

-

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

@@ -45,7 +53,7 @@ by multiple definitions. For more information, see the Knative Pluggability pre string @@ -54,7 +62,7 @@ autoscaling.internal.knative.dev/v1alpha1 kind
string - +
-autoscaling.internal.knative.dev/v1alpha1 +serving.knative.dev/v1alpha1
PodAutoscalerConfiguration
@@ -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).



@@ -104,56 +112,48 @@ not be used - use metadata.generation

- - - -
-containerConcurrency
+build
-int64 +k8s.io/apimachinery/pkg/runtime.RawExtension
(Optional) -

ContainerConcurrency specifies the maximum allowed -in-flight (concurrent) requests per container of the Revision. -Defaults to 0 which means unlimited concurrency.

+

Build optionally holds the specification for the build to +perform to produce the Revision’s container image.

-scaleTargetRef
+revisionTemplate
- -Kubernetes core/v1.ObjectReference + +RevisionTemplateSpec
-

ScaleTargetRef defines the /scale-able resource that this PodAutoscaler -is responsible for quickly right-sizing.

+(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.

-reachability
+template
- -ReachabilityType + +RevisionTemplateSpec
(Optional) -

Reachable specifies whether or not the ScaleTargetRef can be reached (ie. has a route). -Defaults to ReachabilityUnknown

-
-protocolType
- -knative.dev/serving/pkg/apis/networking.ProtocolType - -
-

The application-layer protocol. Matches ProtocolType inferred from the revision spec.

+

Template holds the latest specification for the Revision to +be stamped out.

@@ -163,22 +163,26 @@ knative.dev/serving/pkg/apis/networking.ProtocolType
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 +

Revision

-

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

@@ -190,6 +194,23 @@ PodAutoscalerStatus + + + + + + + + - -
+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).



- -
-stableWindow
+RevisionSpec
-time.Duration + +RevisionSpec +
-

StableWindow is the aggregation window for metrics in a stable state.

+

+(Members of RevisionSpec are embedded into this type.) +

-panicWindow
+generation
-time.Duration +int64
-

PanicWindow is the aggregation window for metrics where quick reactions are needed.

+(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

-scrapeTarget
+servingState
-string + +DeprecatedRevisionServingStateType +
-

ScrapeTarget is the K8s service that publishes the metric endpoint.

-
+(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.

-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.

-

MetricSpec -

-

-(Appears on: -Metric) -

-

-

MetricSpec contains all values a metric collector needs to operate.

-

- - - - + + - - + +
FieldDescription +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).

-

MetricStatus +

Route

-(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

@@ -341,116 +391,113 @@ string +apiVersion
+string - -
-Status
- -knative.dev/pkg/apis/duck/v1.Status - -
-

-(Members of Status are embedded into this type.) -

+ +serving.knative.dev/v1alpha1 +
-

PodAutoscalerSpec -

-

-(Appears on: -PodAutoscaler) -

-

-

PodAutoscalerSpec holds the desired state of the PodAutoscaler (from the client).

-

- - - - + + - - - +

Spec holds the desired state of the Route (from the client).

+
+
+
FieldDescription +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 0 which means unlimited concurrency.

-
+ +
-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 ScaleTargetRef can be reached (ie. has a route). -Defaults to ReachabilityUnknown

+

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.

+(Optional) +

Status communicates the observed state of the Route (from the controller).

-

PodAutoscalerStatus +

Service

-(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

@@ -462,141 +509,160 @@ knative.dev/serving/pkg/apis/networking.ProtocolType + + + + - +(Optional) +
+
+
-Status
- -knative.dev/pkg/apis/duck/v1.Status - +apiVersion
+string
+ +serving.knative.dev/v1alpha1 +
-

-(Members of Status are embedded into this type.) -

+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 -

-

-

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.

-

- - - - - - - -
FieldDescription
-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
-
-
- +(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.

+ +
-replicas
+release
-int32 + +ReleaseType +
+(Optional) +

Release enables gradual promotion of new revisions by allowing traffic +to be split between two revisions. This type replaces the deprecated Pinned type.

-selector
+ConfigurationSpec
- -Kubernetes meta/v1.LabelSelector + +ConfigurationSpec
+

+(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.

-template
+RouteSpec
- -Kubernetes core/v1.PodTemplateSpec + +RouteSpec
+

+(Members of RouteSpec are embedded into this type.) +

@@ -606,385 +672,64 @@ Kubernetes core/v1.PodTemplateSpec
status
- -PodScalableStatus + +ServiceStatus
+(Optional)
-

PodScalableSpec +

CannotConvertError

-(Appears on: -PodScalable) -

-

-

PodScalableSpec is the specification for the desired state of a -PodScalable (or at least our shared portion).

-

- - - - - - - - - - - - - - - - - - - - - -
FieldDescription
-replicas
- -int32 - -
-
-selector
- - -Kubernetes meta/v1.LabelSelector - - -
-
-template
- - -Kubernetes core/v1.PodTemplateSpec - - -
-
-

PodScalableStatus -

-

-(Appears on: -PodScalable) -

-

-

PodScalableStatus is the observed state of a PodScalable (or at -least our shared portion).

-

- - - - - - - - - - - - - -
FieldDescription
-replicas
- -int32 - -
-
-

ReachabilityType -(string alias)

-

-(Appears on: -PodAutoscalerSpec) -

-

-

ReachabilityType is the enumeration type for the different states of reachability -to the ScaleTarget of a PodAutoscaler

-

-
-

networking.internal.knative.dev/v1alpha1

-

-

-Resource Types: - -

Certificate -

-

-

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).

-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
FieldDescription
-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

-
-
- - - - - - - - - -
-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.

-
-
-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 -

-

-

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.

- - - - - - - - - - - - - - - - - - - -
FieldDescription
-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

-
-
- - - - - - - - - - - - + + + + - -
-generation
- -int64 - -
-(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

-
-tls
- - -[]IngressTLS - - -
-(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.

-
-rules
- - -[]IngressRule - - -
-(Optional) -

A list of host rules used to configure the Ingress.

-
FieldDescription
-visibility
+Message
- -IngressVisibility - +string
-

Visibility setting.

-
-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 +

ConfigurationSpec

-

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).

@@ -996,163 +741,76 @@ See: https://knative.page.link/naxz - - - - - - - - - - -
-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

-
-
- - - - - - - - - -
-mode
- - -ServerlessServiceOperationMode - - -
-

Mode describes the mode of operation of the ServerlessService.

+

Build optionally holds the specification for the build to +perform to produce the Revision’s container image.

-objectRef
+revisionTemplate
- -Kubernetes core/v1.ObjectReference + +RevisionTemplateSpec
-

ObjectRef defines the resource that this ServerlessService -is responsible for making “serverless”.

-
-ProtocolType
- -knative.dev/serving/pkg/apis/networking.ProtocolType - -
-

The application-layer protocol. Matches RevisionProtocolType set on the owning pa/revision. -serving imports networking, so just use string.

-
+(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.

-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

-
-

CertificateSpec -

-

-(Appears on: -Certificate) -

-

-

CertificateSpec defines the desired state of a Certificate.

-

- - - - - - - - - - - - - - -
FieldDescription
-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.

-

CertificateStatus +

ConfigurationStatus

(Appears on: -Certificate) +Configuration)

-

CertificateStatus defines the observed state of a Certificate.

+

ConfigurationStatus communicates the observed state of the Configuration (from the controller).

@@ -1173,52 +831,36 @@ knative.dev/pkg/apis/duck/v1.Status

(Members of Status are embedded into this type.)

-

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

- - - - -
-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 ConfigurationStatusFields are embedded into this type.) +

-

HTTP01Challenge +

ConfigurationStatusFields

(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.

@@ -1227,62 +869,76 @@ to fulfill.

- - - - - - - - - +
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.

-

HTTPIngressPath +

DeprecatedRevisionRequestConcurrencyModelType +(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.

+

+

DeprecatedRevisionServingStateType +(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

+

+

ManualType

(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.

+

+

PinnedType +

+

+(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.

@@ -1294,94 +950,104 @@ the path are forwarded to the backend.

+ +
-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.

+

ReleaseType +

+

+(Appears on: +ServiceSpec) +

+

+

ReleaseType contains the options for slowly releasing revisions. See ServiceSpec for +more details.

+

+ + + + + + + +
FieldDescription
-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.

-

HTTPIngressRuleValue +

RevisionSpec

(Appears on: -IngressRule) +Revision, +RevisionTemplateSpec)

-

HTTPIngressRuleValue is a list of http selectors pointing to backends. -In the example: http:///? -> backend where -where parts of the url correspond to RFC 3986, this resource will be used -to match against everything after the last ‘/’ and before the first ‘?’ -or ‘#’.

+

RevisionSpec holds the desired state of the Revision (from the client).

@@ -1393,124 +1059,127 @@ or ‘#’.

- - -
-paths
+RevisionSpec
- -[]HTTPIngressPath + +RevisionSpec
-

A collection of paths that map requests to backends.

-

If they are multiple matching paths, the first match takes precendent.

-
-

HTTPRetry -

-

-(Appears on: -HTTPIngressPath) -

-

HTTPRetry describes the retry policy to use when a HTTP request fails.

+(Members of RevisionSpec are embedded into this type.)

- - - - - + - - - -
FieldDescription
-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.

-

IngressBackend -

-

-(Appears on: -IngressBackendSplit) -

-

-

IngressBackend describes all endpoints for a given service and port.

-

- - - - + + - -
FieldDescription +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

-

IngressBackendSplit +

RevisionStatus

(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).

@@ -1522,59 +1191,70 @@ k8s.io/apimachinery/pkg/util/intstr.IntOrString + + + +
-IngressBackend
+Status
- -IngressBackend - +knative.dev/pkg/apis/duck/v1.Status

-(Members of IngressBackend are embedded into this type.) +(Members of Status are embedded into this type.)

-

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.

-

IngressRule +

RevisionTemplateSpec

(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

@@ -1586,81 +1266,48 @@ match, then routed to the backend associated with the matching IngressRuleValue. - +
+
+
-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 : delimiter is not respected because ports are not allowed. -Currently the port of an Ingress is implicitly :80 for http and -:443 for https. -Both these may change in the future. -If the host is unspecified, the Ingress routes all traffic based on the -specified IngressRuleValue. -If multiple matching Hosts were provided, the first rule will take precedent.

+Refer to the Kubernetes API documentation for the fields of the +metadata field.
-visibility
+spec
- -IngressVisibility + +RevisionSpec
(Optional) -

Visibility signifies whether this rule should ClusterLocal. If it’s not -specified then it defaults to ExternalIP.

-
- - -
-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.

-
-

IngressSpec -

-

-(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 of RevisionSpec are embedded into this type.)

- - - - - + - - + + + + + + + + + +
FieldDescription
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

+
-

IngressStatus +

RouteSpec

(Appears on: -Ingress) +Route, +ServiceSpec)

-

IngressStatus describe the current state of the Ingress.

+

RouteSpec holds the desired state of the Route (from the client).

@@ -1743,70 +1431,94 @@ IngressVisibility + +
-Status
+generation
-knative.dev/pkg/apis/duck/v1.Status +int64
-

-(Members of Status are embedded into this type.) -

+(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

-loadBalancer
+traffic
- -LoadBalancerStatus + +[]TrafficTarget
(Optional) -

LoadBalancer contains the current status of the load-balancer. -This is to be superseded by the combination of PublicLoadBalancer and PrivateLoadBalancer

+

Traffic specifies how to distribute traffic over a collection of Knative Serving Revisions and Configurations.

+

RouteStatus +

+

+(Appears on: +Route) +

+

+

RouteStatus communicates the observed state of the Route (from the controller).

+

+ + + + + + + +
FieldDescription
-publicLoadBalancer
+Status
- -LoadBalancerStatus - +knative.dev/pkg/apis/duck/v1.Status
-(Optional) -

PublicLoadBalancer contains the current status of the load-balancer.

+

+(Members of Status are embedded into this type.) +

-privateLoadBalancer
+RouteStatusFields
- -LoadBalancerStatus + +RouteStatusFields
-(Optional) -

PrivateLoadBalancer contains the current status of the load-balancer.

+

+(Members of RouteStatusFields are embedded into this type.) +

-

IngressTLS +

RouteStatusFields

(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.

@@ -1818,89 +1530,121 @@ LoadBalancerStatus
-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 tls.crt.

+

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 tls.key.

+

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.

-

IngressVisibility -(string alias)

+

RunLatestType +

(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.

-

LoadBalancerIngressStatus + + + + + + + + + + + + + +
FieldDescription
+configuration
+ + +ConfigurationSpec + + +
+(Optional) +

The configuration for this service.

+
+

ServiceSpec

(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.

@@ -1912,110 +1656,126 @@ traffic intended for the service should be sent to an ingress point.

- -
-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.

-

LoadBalancerStatus -

-

-(Appears on: -IngressStatus) -

-

-

LoadBalancerStatus represents the status of a load-balancer.

-

- - - - - - - - - -
FieldDescription
-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.

-

ServerlessServiceOperationMode -(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 of RouteSpec are embedded into this type.)

-

ServerlessServiceSpec + + + + +

ServiceStatus

(Appears on: -ServerlessService) +Service)

-

ServerlessServiceSpec describes the ServerlessService.

+

ServiceStatus represents the Status stanza of the Service resource.

@@ -2027,53 +1787,58 @@ for the ServerlessService.

-mode
+Status
- -ServerlessServiceOperationMode - +knative.dev/pkg/apis/duck/v1.Status
-

Mode describes the mode of operation of the ServerlessService.

+

+(Members of Status are embedded into this type.) +

-objectRef
+RouteStatusFields
- -Kubernetes core/v1.ObjectReference + +RouteStatusFields
-

ObjectRef defines the resource that this ServerlessService -is responsible for making “serverless”.

+

+(Members of RouteStatusFields are embedded into this type.) +

-ProtocolType
+ConfigurationStatusFields
-knative.dev/serving/pkg/apis/networking.ProtocolType + +ConfigurationStatusFields +
-

The application-layer protocol. Matches RevisionProtocolType set on the owning pa/revision. -serving imports networking, so just use string.

+

+(Members of ConfigurationStatusFields are embedded into this type.) +

-

ServerlessServiceStatus +

TrafficTarget

(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.

@@ -2085,60 +1850,51 @@ serving imports networking, so just use string.

- - - -
-Status
- -knative.dev/pkg/apis/duck/v1.Status - -
-

-(Members of Status are embedded into this type.) -

-
-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 TrafficTarget are embedded into this type.) +

+

We inherit most of our fields by inlining the v1 type. +Ultimately all non-v1 fields will be deprecated.


-

serving.knative.dev/v1

+

serving.knative.dev/v1beta1

Resource Types: -

Configuration +

Configuration

Configuration represents the “floating HEAD” of a linear history of Revisions. @@ -2161,7 +1917,7 @@ See also: Revision +

Revision

Revision is an immutable snapshot of code and configuration. A revision @@ -2255,7 +2011,7 @@ Configuration.

string -serving.knative.dev/v1 +serving.knative.dev/v1beta1 @@ -2357,7 +2113,7 @@ RevisionStatus -

Route +

Route

Route is responsible for configuring ingress over a collection of Revisions. @@ -2381,7 +2137,7 @@ See also: Service +

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.

string -serving.knative.dev/v1 +serving.knative.dev/v1beta1 @@ -2577,16 +2333,21 @@ ServiceStatus -

ConfigurationSpec -

+
+

autoscaling.internal.knative.dev/v1alpha1

-(Appears on: -Configuration, -Configuration, -ServiceSpec)

+Resource Types: + +

PodAutoscaler +

-

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

@@ -2598,127 +2359,243 @@ ServiceStatus + + + + + + + + + + + + + + + +
-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).

+
+
+ + + + + + + + + + + + + + + + + + + + + +
+generation
+ +int64 + +
+(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

+
+containerConcurrency
+ +int64 + +
+(Optional) +

ContainerConcurrency specifies the maximum allowed +in-flight (concurrent) requests per container of the Revision. +Defaults to 0 which means unlimited concurrency.

+
+scaleTargetRef
+ + +Kubernetes core/v1.ObjectReference + + +
+

ScaleTargetRef defines the /scale-able resource that this PodAutoscaler +is responsible for quickly right-sizing.

+
+reachability
+ + +ReachabilityType + + +
+(Optional) +

Reachable specifies whether or not the ScaleTargetRef can be reached (ie. has a route). +Defaults to ReachabilityUnknown

+
+protocolType
+ +knative.dev/serving/pkg/apis/networking.ProtocolType + +
+

The application-layer protocol. Matches ProtocolType inferred from the revision spec.

+
+
+status
+ + +PodAutoscalerStatus + + +
+(Optional) +

Status communicates the observed state of the PodAutoscaler (from the controller).

-

ConfigurationStatus +

Metric

-(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.

- - - - - - - + + + + + + + + + + + + + +
FieldDescription
FieldDescription
+metadata
+ + +Kubernetes meta/v1.ObjectMeta + + +
+(Optional) +Refer to the Kubernetes API documentation for the fields of the +metadata field. +
+spec
+ + +MetricSpec + + +
+(Optional) +

Spec holds the desired state of the Metric (from the client).

+
+
+ - -
-Status
+stableWindow
-knative.dev/pkg/apis/duck/v1.Status +time.Duration
-

-(Members of Status are embedded into this type.) -

+

StableWindow is the aggregation window for metrics in a stable state.

-ConfigurationStatusFields
+panicWindow
- -ConfigurationStatusFields - +time.Duration
-

-(Members of ConfigurationStatusFields are embedded into this type.) -

+

PanicWindow is the aggregation window for metrics where quick reactions are needed.

-

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.

-

- - - - - - - - + +
FieldDescription
-latestReadyRevisionName
+scrapeTarget
string
-(Optional) -

LatestReadyRevisionName holds the name of the latest Revision stamped out -from this Configuration that has had its “Ready” condition become “True”.

+

ScrapeTarget is the K8s service that publishes the metric endpoint.

+
-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).

-

RevisionSpec +

MetricSpec

(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.

@@ -2730,59 +2607,47 @@ Configuration. It might not be ready yet, for that use LatestReadyRevisionName.<
-PodSpec
+stableWindow
- -Kubernetes core/v1.PodSpec - +time.Duration
-

-(Members of PodSpec are embedded into this type.) -

+

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 0 which means -concurrency to the application is not limited, and the system decides the -target concurrency for the autoscaler.

+

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.

-

RevisionStatus +

MetricStatus

(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.

@@ -2805,59 +2670,16 @@ knative.dev/pkg/apis/duck/v1.Status

- - - - - - - - - - - -
-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.

-
-

RevisionTemplateSpec +

PodAutoscalerSpec

(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).

@@ -2869,127 +2691,84 @@ Based on: -Kubernetes meta/v1.ObjectMeta - +int64 - -
(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) -
-
- - - - - -
-PodSpec
- - -Kubernetes core/v1.PodSpec - - -
-

-(Members of PodSpec are embedded into this type.) -

+

ContainerConcurrency specifies the maximum allowed +in-flight (concurrent) requests per container of the Revision. +Defaults to 0 which means unlimited concurrency.

-containerConcurrency
+scaleTargetRef
-int64 + +Kubernetes core/v1.ObjectReference +
-(Optional) -

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.

+

ScaleTargetRef defines the /scale-able resource that this PodAutoscaler +is responsible for quickly right-sizing.

-timeoutSeconds
+reachability
-int64 + +ReachabilityType +
(Optional) -

TimeoutSeconds holds the max duration the instance is allowed for -responding to a request. If unspecified, a system default will -be provided.

-
+

Reachable specifies whether or not the ScaleTargetRef can be reached (ie. has a route). +Defaults to ReachabilityUnknown

-

RouteSpec -

-

-(Appears on: -Route, -Route, -ServiceSpec) -

-

-

RouteSpec holds the desired state of the Route (from the client).

-

- - - - - - - -
FieldDescription
-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 ProtocolType inferred from the revision spec.

-

RouteStatus +

PodAutoscalerStatus

(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).

@@ -3014,32 +2793,60 @@ knative.dev/pkg/apis/duck/v1.Status + + + + + + + + + + + +
-RouteStatusFields
+serviceName
- -RouteStatusFields - +string
-

-(Members of RouteStatusFields are embedded into this type.) -

+

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.

-

RouteStatusFields +

PodScalable

-(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.

@@ -3051,118 +2858,91 @@ other types can readily consume these fields via duck typing.

+
-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 + + +
+
+
+ + + - -
+replicas
+ +int32
-(Optional) -

Address holds the information needed for a Route to be the target of an event.

-traffic
+selector
- -[]TrafficTarget + +Kubernetes meta/v1.LabelSelector
-(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.

-

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.

-

- - - - - - - - + +
FieldDescription
-ConfigurationSpec
+template
- -ConfigurationSpec + +Kubernetes core/v1.PodTemplateSpec
-

-(Members of ConfigurationSpec are embedded into this type.) -

-

ServiceSpec inlines an unrestricted ConfigurationSpec.

+
-RouteSpec
+status
- -RouteSpec + +PodScalableStatus
-

-(Members of RouteSpec are embedded into this type.) -

-

ServiceSpec inlines RouteSpec and restricts/defaults its fields -via webhook. In particular, this spec can only reference this -Service’s configuration and revisions (which also influences -defaults).

-

ServiceStatus +

PodScalableSpec

(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).

@@ -3174,63 +2954,98 @@ defaults).

+ + +
-Status
+replicas
-knative.dev/pkg/apis/duck/v1.Status +int32
-

-(Members of Status are embedded into this type.) -

-ConfigurationStatusFields
+selector
- -ConfigurationStatusFields + +Kubernetes meta/v1.LabelSelector
-

-(Members of ConfigurationStatusFields are embedded into this type.) -

-

In addition to inlining ConfigurationSpec, we also inline the fields -specific to ConfigurationStatus.

-RouteStatusFields
+template
- -RouteStatusFields + +Kubernetes core/v1.PodTemplateSpec
+
+

PodScalableStatus +

-(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).

+

+ + + + + + + + + + +
FieldDescription
+replicas
+ +int32 + +
-

TrafficTarget -

+

ReachabilityType +(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

+

+
+

networking.internal.knative.dev/v1alpha1

+

+

+Resource Types: + +

Certificate +

+

+

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).

@@ -3238,124 +3053,109 @@ specific to RouteStatus.

- - + + + + + + - + - +

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

+
+
+
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. 0 (zero) mean no traffic, 100 means all -traffic. -When percentage based routing is being used the follow rules apply: -- the sum of all percent values must equal 100 -- when not specified, the implied value for percent is zero for -that particular 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 + (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.)

+

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

-
-

serving.knative.dev/v1alpha1

-

-

-Resource Types: - -

Configuration +

Ingress

-

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.

@@ -3371,7 +3171,7 @@ See also: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata

Refer to the Kubernetes API documentation for the fields of the metadata field. @@ -3401,14 +3203,15 @@ Refer to the Kubernetes API documentation for the fields of the
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



@@ -3430,48 +3233,47 @@ not be used - use metadata.generation

-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.

@@ -3481,26 +3283,26 @@ be stamped out.

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 +

ServerlessService

-

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.

@@ -3516,188 +3318,289 @@ updates to a Configuration.

string - - + + + + + + + + + + - + +
-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

+
+
+ + + + + + + + + + + + + +
+mode
+ + +ServerlessServiceOperationMode + + +
+

Mode describes the mode of operation of the ServerlessService.

+
+objectRef
+ + +Kubernetes core/v1.ObjectReference + + +
+

ObjectRef defines the resource that this ServerlessService +is responsible for making “serverless”.

+
+ProtocolType
+ +knative.dev/serving/pkg/apis/networking.ProtocolType + +
+

The application-layer protocol. Matches RevisionProtocolType set on the owning pa/revision. +serving imports networking, so just use string.

+
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

+

CertificateSpec +

+

+(Appears on: +Certificate) +

+

+

CertificateSpec defines the desired state of a Certificate.

+

+ + + + + + + + +

+

CertificateStatus defines the observed state of a Certificate.

+

+
FieldDescription
-spec
+dnsNames
- -RevisionSpec - +[]string
-(Optional) -

Spec holds the desired state of the Revision (from the client).

-
-
- +

DNSNames is a list of DNS names the Certificate could support. +The wildcard format of DNSNames (e.g. *.default.example.com) is supported.

+ + + + +
-RevisionSpec
+secretName
- -RevisionSpec - +string
+

SecretName is the name of the secret resource to store the SSL certificate in.

+
+

CertificateStatus +

-(Members of RevisionSpec are embedded into this type.) +(Appears on: +Certificate)

-
+ + + + + + + +
FieldDescription
-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 Status are embedded into this type.) +

+

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..

+

HTTP01Challenge +

+

+(Appears on: +CertificateStatus) +

+

+

HTTP01Challenge defines the status of a HTTP01 challenge that a certificate needs +to fulfill.

+

+ + + + + + + + - -
FieldDescription
-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 -(Optional) -

Status communicates the observed state of the Revision (from the controller).

+

ServicePort is the port of the service to serve HTTP01 challenge requests.

-

Route +

HTTPIngressPath

-

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.

@@ -3709,113 +3612,94 @@ See also: -Kubernetes meta/v1.ObjectMeta - +string
(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).

-
-
- +

Splits defines the referenced service endpoints to which the traffic +will be forwarded to.

+ + - -
-generation
+appendHeaders
-int64 +map[string]string
(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

+

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.

-traffic
+timeout
- -[]TrafficTarget + +Kubernetes meta/v1.Duration
(Optional) -

Traffic specifies how to distribute traffic over a collection of Knative Serving Revisions and Configurations.

-
+

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 +

HTTPIngressRuleValue

-

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:///? -> backend where +where parts of the url correspond to RFC 3986, this resource will be used +to match against everything after the last ‘/’ and before the first ‘?’ +or ‘#’.

@@ -3827,184 +3711,188 @@ and Route, reflecting their statuses and conditions as its own.

- - - - - - - - - - - +
-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) -
-
+
+

HTTPRetry +

+

+(Appears on: +HTTPIngressPath) +

+

+

HTTPRetry describes the retry policy to use when a HTTP request fails.

+

+ + + + + + + + +
FieldDescription
-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.

+

IngressBackend +

+

+(Appears on: +IngressBackendSplit) +

+

+

IngressBackend describes all endpoints for a given service and port.

+

+ + + + + + + + + +
FieldDescription
-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.

+

IngressBackendSplit +

+

+(Appears on: +HTTPIngressPath) +

+

+

IngressBackendSplit describes all endpoints for a given service and port.

+

+ + + + + + + + - -
FieldDescription
-ConfigurationSpec
+IngressBackend
- -ConfigurationSpec + +IngressBackend

-(Members of ConfigurationSpec are embedded into this type.) +(Members of IngressBackend 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.

+

Specifies the backend receiving the traffic split.

-RouteSpec
+percent
- -RouteSpec - +int
-

-(Members of RouteSpec are embedded into this type.) -

-
+

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 (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.

-

CannotConvertError +

IngressRule

-

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.

@@ -4012,42 +3900,76 @@ ServiceStatus - - + + + + + +
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 : delimiter is not respected because ports are not allowed. +Currently the port of an Ingress is implicitly :80 for http and +:443 for https. +Both these may change in the future. +If the host is unspecified, the Ingress routes all traffic based on the +specified IngressRuleValue. +If multiple matching Hosts were provided, the first rule will take precedent.

+
-Message
+visibility
-string + +IngressVisibility +
+(Optional) +

Visibility signifies whether this rule should ClusterLocal. If it’s not +specified then it defaults to ExternalIP.

-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.

-

ConfigurationSpec +

IngressSpec

(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.

@@ -4075,60 +3997,59 @@ not be used - use metadata.generation

-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.

-

ConfigurationStatus +

IngressStatus

(Appears on: -Configuration) +Ingress)

-

ConfigurationStatus communicates the observed state of the Configuration (from the controller).

+

IngressStatus describe the current state of the Ingress.

@@ -4153,32 +4074,57 @@ knative.dev/pkg/apis/duck/v1.Status + + + + + + + +
-ConfigurationStatusFields
+loadBalancer
- -ConfigurationStatusFields + +LoadBalancerStatus
-

-(Members of ConfigurationStatusFields are embedded into this type.) -

+(Optional) +

LoadBalancer contains the current status of the load-balancer. +This is to be superseded by the combination of PublicLoadBalancer and PrivateLoadBalancer

+
+publicLoadBalancer
+ + +LoadBalancerStatus + + +
+(Optional) +

PublicLoadBalancer contains the current status of the load-balancer.

+
+privateLoadBalancer
+ + +LoadBalancerStatus + + +
+(Optional) +

PrivateLoadBalancer contains the current status of the load-balancer.

-

ConfigurationStatusFields +

IngressTLS

(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.

@@ -4190,120 +4136,89 @@ copy them.

- -
-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.

-

DeprecatedRevisionRequestConcurrencyModelType -(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.

-

-

DeprecatedRevisionServingStateType -(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

-

-

ManualType -

-

-(Appears on: -ServiceSpec) -

-

-

ManualType contains the options for configuring a manual service. See ServiceSpec for -more details.

-

-

PinnedType -

-

-(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.

-

- - - - + + - -
FieldDescription +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 tls.crt.

-configuration
+privateKey
- -ConfigurationSpec - +string
(Optional) -

The configuration for this service.

+

PrivateKey identifies the private key filename in the secret. +Defaults to tls.key.

-

ReleaseType +

IngressVisibility +(string alias)

+

+(Appears on: +IngressRule, +IngressSpec) +

+

+

IngressVisibility describes whether the Ingress should be exposed to +public gateways or not.

+

+

LoadBalancerIngressStatus

(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.

@@ -4315,57 +4230,66 @@ more details.

+ + + +
-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.

-

RevisionSpec +

LoadBalancerStatus

(Appears on: -Revision, -RevisionTemplateSpec) +IngressStatus)

-

RevisionSpec holds the desired state of the Revision (from the client).

+

LoadBalancerStatus represents the status of a load-balancer.

@@ -4377,127 +4301,169 @@ come from a single configuration.

+ + +
-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.

+
+

ServerlessServiceOperationMode +(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.

+

+

ServerlessServiceSpec +

+

+(Appears on: +ServerlessService) +

+

+

ServerlessServiceSpec describes the ServerlessService.

+

+ + + + + + + + +
FieldDescription
-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 RevisionProtocolType set on the owning pa/revision. +serving imports networking, so just use string.

+

ServerlessServiceStatus +

+

+(Appears on: +ServerlessService) +

+

+

ServerlessServiceStatus describes the current state of the ServerlessService.

+

+ + + + + + + +
FieldDescription
-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 Status are embedded into this type.) +

-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.

-

RevisionStatus -

+
+

serving.knative.dev/v1

-(Appears on: -Revision)

+Resource Types: + +

Configuration +

-

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

@@ -4509,70 +4475,89 @@ environment: + + + + - +
+
+
-Status
- -knative.dev/pkg/apis/duck/v1.Status - +apiVersion
+string
+ +serving.knative.dev/v1 +
-

-(Members of Status are embedded into this type.) -

+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 + (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.

-

RevisionTemplateSpec +

Revision

-(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

@@ -4584,6 +4569,23 @@ Based on: @@ -4601,7 +4603,7 @@ Refer to the Kubernetes API documentation for the fields of the + +
spec
- + RevisionSpec @@ -4613,180 +4615,178 @@ RevisionSpec + +
-RevisionSpec
+PodSpec
- -RevisionSpec + +Kubernetes core/v1.PodSpec

-(Members of RevisionSpec are embedded into this type.) +(Members of PodSpec are embedded into this type.)

-generation
+containerConcurrency
int64
(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

+

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.

-servingState
+timeoutSeconds
- -DeprecatedRevisionServingStateType - +int64
(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.

+

TimeoutSeconds holds the max duration the instance is allowed for +responding to a request. If unspecified, a system default will +be provided.

+
-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 +

+

+

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

+

+ + + + + + + + + + + + - -
FieldDescription
-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

-
- - - - -

RouteSpec -

-

-(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).

+
+
- - - - - - - + +
FieldDescription
-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 (Optional) -

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).

-

RouteStatus +

Service

-(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

@@ -4798,135 +4798,113 @@ not be used - use metadata.generation

- - - - +apiVersion
+string - -
-Status
- -knative.dev/pkg/apis/duck/v1.Status - -
-

-(Members of Status are embedded into this type.) -

-
-RouteStatusFields
- - -RouteStatusFields - - -
-

-(Members of RouteStatusFields are embedded into this type.) -

+ +serving.knative.dev/v1 +
-

RouteStatusFields -

-

-(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.

-

- - - - - + + + - - - +
+
+
FieldDescription
+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 ConfigurationSpec are embedded into this type.) +

+

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 RouteSpec are embedded into this type.) +

+

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 (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.

-

RunLatestType +

ConfigurationSpec

(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).

@@ -4938,31 +4916,29 @@ ServiceSpec for more details.

-configuration
+template
- -ConfigurationSpec + +RevisionTemplateSpec
(Optional) -

The configuration for this service.

+

Template holds the latest specification for the Revision to be stamped out.

-

ServiceSpec +

ConfigurationStatus

(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).

@@ -4974,126 +4950,93 @@ revision.

+ +
-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 Status are embedded into this type.) +

-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 ConfigurationStatusFields are embedded into this type.) +

+

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.

+

+ + - - + + + + - - - - - - - -
-pinned
- - -PinnedType - - -
-(Optional) -

DeprecatedPinned is DEPRECATED in favor of ReleaseType

-
FieldDescription
-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 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 - - -
-

-(Members of RouteSpec are embedded into this type.) -

+

LatestCreatedRevisionName is the last revision that was created from this +Configuration. It might not be ready yet, for that use LatestReadyRevisionName.

-

ServiceStatus +

RevisionSpec

(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).

@@ -5105,58 +5048,59 @@ RouteSpec
-Status
+PodSpec
-knative.dev/pkg/apis/duck/v1.Status + +Kubernetes core/v1.PodSpec +

-(Members of Status are embedded into this type.) +(Members of PodSpec are embedded into this type.)

-RouteStatusFields
+containerConcurrency
- -RouteStatusFields - +int64
-

-(Members of RouteStatusFields are embedded into this type.) -

+(Optional) +

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.

-ConfigurationStatusFields
+timeoutSeconds
- -ConfigurationStatusFields - +int64
-

-(Members of ConfigurationStatusFields are embedded into this type.) -

+(Optional) +

TimeoutSeconds holds the max duration the instance is allowed for +responding to a request. If unspecified, a system default will +be provided.

-

TrafficTarget +

RevisionStatus

(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).

@@ -5168,58 +5112,70 @@ ConfigurationStatusFields + + + + + + + +
-name
+Status
+ +knative.dev/pkg/apis/duck/v1.Status + +
+

+(Members of Status are embedded into this type.) +

+
+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 TrafficTarget are embedded into this type.) -

-

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.

-
-

serving.knative.dev/v1beta1

+

RevisionTemplateSpec +

+(Appears on: +ConfigurationSpec)

-Resource Types: - -

Configuration -

-

Configuration represents the “floating HEAD” of a linear history of Revisions. -Users create new Revisions by updating the Configuration’s spec. -The “latest created” revision’s name is available under status, as is the -“latest ready” revision’s name. -See also: https://github.com/knative/serving/blob/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

@@ -5231,23 +5187,6 @@ See also: @@ -5265,8 +5204,8 @@ Refer to the Kubernetes API documentation for the fields of the @@ -5277,43 +5216,63 @@ ConfigurationSpec
spec
- -ConfigurationSpec + +RevisionSpec
-
-template
+PodSpec
- -RevisionTemplateSpec + +Kubernetes core/v1.PodSpec
-(Optional) -

Template holds the latest specification for the Revision to be stamped out.

+

+(Members of PodSpec are embedded into this type.) +

+ + +containerConcurrency
+ +int64 + + + +(Optional) +

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 (Optional) +

TimeoutSeconds holds the max duration the instance is allowed for +responding to a request. If unspecified, a system default will +be provided.

+ + + -

Revision +

RouteSpec

-

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).

@@ -5325,121 +5284,148 @@ Configuration.

- - - - - - - - + +
-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.

+

RouteStatus +

+

+(Appears on: +Route, +Route) +

+

+

RouteStatus communicates the observed state of the Route (from the controller).

+

+ + + + + + + +
FieldDescription
-spec
+Status
- -RevisionSpec - +knative.dev/pkg/apis/duck/v1.Status
-(Optional) -
-
- +

+(Members of Status are embedded into this type.) +

+ + + +
-PodSpec
+RouteStatusFields
- -Kubernetes core/v1.PodSpec + +RouteStatusFields

-(Members of PodSpec are embedded into this type.) +(Members of RouteStatusFields are embedded into this type.)

+

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.

+

+ + + + + + + + - -
FieldDescription
-containerConcurrency
+url
-int64 +knative.dev/pkg/apis.URL
-(Optional) -

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.

+(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}

-timeoutSeconds
+address
-int64 +knative.dev/pkg/apis/duck/v1.Addressable
(Optional) -

TimeoutSeconds holds the max duration the instance is allowed for -responding to a request. If unspecified, a system default will -be provided.

-
+

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 +

ServiceSpec

-

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.

@@ -5451,98 +5437,118 @@ See also: +ConfigurationSpec + + - - - + +
-kind
-string +

+(Members of ConfigurationSpec are embedded into this type.) +

+

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 RouteSpec are embedded into this type.) +

+

ServiceSpec inlines RouteSpec and restricts/defaults its fields +via webhook. In particular, this spec can only reference this +Service’s configuration and revisions (which also influences +defaults).

+

ServiceStatus +

+

+(Appears on: +Service, +Service) +

+

+

ServiceStatus represents the Status stanza of the Service resource.

+

+ + + + + + + +
FieldDescription
-spec
+Status
- -RouteSpec - +knative.dev/pkg/apis/duck/v1.Status
-(Optional) -

Spec holds the desired state of the Route (from the client).

-
-
- +

+(Members of Status are embedded into this type.) +

+ + - -
-traffic
+ConfigurationStatusFields
- -[]TrafficTarget + +ConfigurationStatusFields
-(Optional) -

Traffic specifies how to distribute traffic over a collection of -revisions and configurations.

-
+

+(Members of ConfigurationStatusFields are embedded into this type.) +

+

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 RouteStatusFields are embedded into this type.) +

+

In addition to inlining RouteSpec, we also inline the fields +specific to RouteStatus.

-

Service +

TrafficTarget

-

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.

@@ -5554,99 +5560,93 @@ and Route, reflecting their statuses and conditions as its own.

- - - - @@ -5654,5 +5654,5 @@ ServiceStatus

Generated with gen-crd-api-reference-docs -on git commit bf0a84876. +on git commit 804b3bb85.

-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) -
-
- +

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.

+ + - -
-ConfigurationSpec
+latestRevision
- -ConfigurationSpec - +bool
-

-(Members of ConfigurationSpec are embedded into this type.) -

-

ServiceSpec inlines an unrestricted ConfigurationSpec.

+(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.

-RouteSpec
+percent
- -RouteSpec - +int64
-

-(Members of RouteSpec are embedded into this type.) -

-

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).

-
+(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. 0 (zero) mean no traffic, 100 means all +traffic. +When percentage based routing is being used the follow rules apply: +- the sum of all percent values must equal 100 +- when not specified, the implied value for percent is zero for +that particular 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.)