apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
annotations:
kubectl.kubernetes.io/last-applied-configuration: '{"apiVersion":"apiextensions.k8s.io/v1","kind":"CustomResourceDefinition","metadata":{"labels":{"duck.knative.dev/addressable":"true","knative.dev/crd-install":"true","serving.knative.dev/release":"v0.24.0"},"name":"routes.serving.knative.dev"},"spec":{"group":"serving.knative.dev","names":{"categories":["all","knative","serving"],"kind":"Route","plural":"routes","shortNames":["rt"],"singular":"route"},"scope":"Namespaced","versions":[{"additionalPrinterColumns":[{"jsonPath":".status.url","name":"URL","type":"string"},{"jsonPath":".status.conditions[?(@.type==''Ready'')].status","name":"Ready","type":"string"},{"jsonPath":".status.conditions[?(@.type==''Ready'')].reason","name":"Reason","type":"string"}],"name":"v1","schema":{"openAPIV3Schema":{"description":"Route
is responsible for configuring ingress over a collection of Revisions. Some
of the Revisions a Route distributes traffic over may be specified by referencing
the Configuration responsible for creating them; in these cases the Route is
additionally responsible for monitoring the Configuration for \"latest ready
revision\" changes, and smoothly rolling out latest revisions. See also: https://github.com/knative/serving/blob/main/docs/spec/overview.md#route","properties":{"apiVersion":{"description":"APIVersion
defines the versioned schema of this representation of an object. Servers should
convert recognized schemas to the latest internal value, and may reject unrecognized
values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources","type":"string"},"kind":{"description":"Kind
is a string value representing the REST resource this object represents. Servers
may infer this from the endpoint the client submits requests to. Cannot be updated.
In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds","type":"string"},"metadata":{"type":"object"},"spec":{"description":"Spec
holds the desired state of the Route (from the client).","properties":{"traffic":{"description":"Traffic
specifies how to distribute traffic over a collection of revisions and configurations.","items":{"description":"TrafficTarget
holds a single entry of the routing table for a Route.","properties":{"configurationName":{"description":"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.","type":"string"},"latestRevision":{"description":"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.","type":"boolean"},"percent":{"description":"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","format":"int64","type":"integer"},"revisionName":{"description":"RevisionName
of a specific revision to which to send this portion of traffic. This is mutually
exclusive with ConfigurationName.","type":"string"},"tag":{"description":"Tag
is optionally used to expose a dedicated url for referencing this target exclusively.","type":"string"},"url":{"description":"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.)","type":"string"}},"type":"object"},"type":"array"}},"type":"object"},"status":{"description":"Status
communicates the observed state of the Route (from the controller).","properties":{"address":{"description":"Address
holds the information needed for a Route to be the target of an event.","properties":{"url":{"type":"string"}},"type":"object"},"annotations":{"additionalProperties":{"type":"string"},"description":"Annotations
is additional Status fields for the Resource to save some additional State as
well as convey more information to the user. This is roughly akin to Annotations
on any k8s resource, just the reconciler conveying richer information outwards.","type":"object"},"conditions":{"description":"Conditions
the latest available observations of a resource''s current state.","items":{"description":"Condition
defines a readiness condition for a Knative resource. See: https://github.com/kubernetes/community/blob/master/contributors/devel/sig-architecture/api-conventions.md#typical-status-properties","properties":{"lastTransitionTime":{"description":"LastTransitionTime
is the last time the condition transitioned from one status to another. We use
VolatileTime in place of metav1.Time to exclude this from creating equality.Semantic
differences (all other things held constant).","format":"date-time","type":"string"},"message":{"description":"A
human readable message indicating details about the transition.","type":"string"},"reason":{"description":"The
reason for the condition''s last transition.","type":"string"},"severity":{"description":"Severity
with which to treat failures of this type of condition. When this is not specified,
it defaults to Error.","type":"string"},"status":{"description":"Status of the
condition, one of True, False, Unknown.","type":"string"},"type":{"description":"Type
of condition.","type":"string"}},"required":["status","type"],"type":"object"},"type":"array"},"observedGeneration":{"description":"ObservedGeneration
is the ''Generation'' of the Service that was last processed by the controller.","format":"int64","type":"integer"},"traffic":{"description":"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.","items":{"description":"TrafficTarget
holds a single entry of the routing table for a Route.","properties":{"configurationName":{"description":"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.","type":"string"},"latestRevision":{"description":"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.","type":"boolean"},"percent":{"description":"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","format":"int64","type":"integer"},"revisionName":{"description":"RevisionName
of a specific revision to which to send this portion of traffic. This is mutually
exclusive with ConfigurationName.","type":"string"},"tag":{"description":"Tag
is optionally used to expose a dedicated url for referencing this target exclusively.","type":"string"},"url":{"description":"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.)","type":"string"}},"type":"object"},"type":"array"},"url":{"description":"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}","type":"string"}},"type":"object"}},"type":"object"}},"served":true,"storage":true,"subresources":{"status":{}}}]}}
'
creationTimestamp: '2021-08-30T18:59:46Z'
generation: 1
labels:
duck.knative.dev/addressable: 'true'
knative.dev/crd-install: 'true'
serving.knative.dev/release: v0.24.0
managedFields:
- apiVersion: apiextensions.k8s.io/v1
fieldsType: FieldsV1
fieldsV1:
f:status:
f:acceptedNames:
f:categories: {}
f:kind: {}
f:listKind: {}
f:plural: {}
f:shortNames: {}
f:singular: {}
f:conditions:
k:{"type":"Established"}:
.: {}
f:lastTransitionTime: {}
f:message: {}
f:reason: {}
f:status: {}
f:type: {}
k:{"type":"NamesAccepted"}:
.: {}
f:lastTransitionTime: {}
f:message: {}
f:reason: {}
f:status: {}
f:type: {}
manager: k3s
operation: Update
time: '2021-08-30T18:59:46Z'
- apiVersion: apiextensions.k8s.io/v1
fieldsType: FieldsV1
fieldsV1:
f:metadata:
f:annotations:
.: {}
f:kubectl.kubernetes.io/last-applied-configuration: {}
f:labels:
.: {}
f:duck.knative.dev/addressable: {}
f:knative.dev/crd-install: {}
f:serving.knative.dev/release: {}
f:spec:
f:conversion:
.: {}
f:strategy: {}
f:group: {}
f:names:
f:categories: {}
f:kind: {}
f:listKind: {}
f:plural: {}
f:shortNames: {}
f:singular: {}
f:scope: {}
f:versions: {}
manager: manifestival
operation: Update
time: '2021-08-30T18:59:49Z'
name: routes.serving.knative.dev
resourceVersion: '5625'
uid: 14610b1d-d768-4913-8e1b-bd7a4d39c7eb
spec:
conversion:
strategy: None
group: serving.knative.dev
names:
categories:
- all
- knative
- serving
kind: Route
listKind: RouteList
plural: routes
shortNames:
- rt
singular: route
scope: Namespaced
versions:
- additionalPrinterColumns:
- jsonPath: .status.url
name: URL
type: string
- jsonPath: .status.conditions[?(@.type=='Ready')].status
name: Ready
type: string
- jsonPath: .status.conditions[?(@.type=='Ready')].reason
name: Reason
type: string
name: v1
schema:
openAPIV3Schema:
description: 'Route is responsible for configuring ingress over a collection
of Revisions. Some of the Revisions a Route distributes traffic over may
be specified by referencing the Configuration responsible for creating them;
in these cases the Route is additionally responsible for monitoring the
Configuration for "latest ready revision" changes, and smoothly rolling
out latest revisions. See also: https://github.com/knative/serving/blob/main/docs/spec/overview.md#route'
properties:
apiVersion:
description: 'APIVersion defines the versioned schema of this representation
of an object. Servers should convert recognized schemas to the latest
internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
type: string
kind:
description: 'Kind is a string value representing the REST resource this
object represents. Servers may infer this from the endpoint the client
submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
type: string
metadata:
type: object
spec:
description: Spec holds the desired state of the Route (from the client).
properties:
traffic:
description: Traffic specifies how to distribute traffic over a collection
of revisions and configurations.
items:
description: TrafficTarget holds a single entry of the routing table
for a Route.
properties:
configurationName:
description: 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.
type: string
latestRevision:
description: 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.
type: boolean
percent:
description: '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'
format: int64
type: integer
revisionName:
description: RevisionName of a specific revision to which to
send this portion of traffic. This is mutually exclusive
with ConfigurationName.
type: string
tag:
description: Tag is optionally used to expose a dedicated url
for referencing this target exclusively.
type: string
url:
description: 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.)
type: string
type: object
type: array
type: object
status:
description: Status communicates the observed state of the Route (from
the controller).
properties:
address:
description: Address holds the information needed for a Route to be
the target of an event.
properties:
url:
type: string
type: object
annotations:
additionalProperties:
type: string
description: Annotations is additional Status fields for the Resource
to save some additional State as well as convey more information
to the user. This is roughly akin to Annotations on any k8s resource,
just the reconciler conveying richer information outwards.
type: object
conditions:
description: Conditions the latest available observations of a resource's
current state.
items:
description: 'Condition defines a readiness condition for a Knative
resource. See: https://github.com/kubernetes/community/blob/master/contributors/devel/sig-architecture/api-conventions.md#typical-status-properties'
properties:
lastTransitionTime:
description: LastTransitionTime is the last time the condition
transitioned from one status to another. We use VolatileTime
in place of metav1.Time to exclude this from creating equality.Semantic
differences (all other things held constant).
format: date-time
type: string
message:
description: A human readable message indicating details about
the transition.
type: string
reason:
description: The reason for the condition's last transition.
type: string
severity:
description: Severity with which to treat failures of this type
of condition. When this is not specified, it defaults to Error.
type: string
status:
description: Status of the condition, one of True, False, Unknown.
type: string
type:
description: Type of condition.
type: string
required:
- status
- type
type: object
type: array
observedGeneration:
description: ObservedGeneration is the 'Generation' of the Service
that was last processed by the controller.
format: int64
type: integer
traffic:
description: 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.
items:
description: TrafficTarget holds a single entry of the routing table
for a Route.
properties:
configurationName:
description: 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.
type: string
latestRevision:
description: 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.
type: boolean
percent:
description: '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'
format: int64
type: integer
revisionName:
description: RevisionName of a specific revision to which to
send this portion of traffic. This is mutually exclusive
with ConfigurationName.
type: string
tag:
description: Tag is optionally used to expose a dedicated url
for referencing this target exclusively.
type: string
url:
description: 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.)
type: string
type: object
type: array
url:
description: 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}
type: string
type: object
type: object
served: true
storage: true
subresources:
status: {}
status:
acceptedNames:
categories:
- all
- knative
- serving
kind: Route
listKind: RouteList
plural: routes
shortNames:
- rt
singular: route
conditions:
- lastTransitionTime: '2021-08-30T18:59:46Z'
message: no conflicts found
reason: NoConflicts
status: 'True'
type: NamesAccepted
- lastTransitionTime: '2021-08-30T18:59:46Z'
message: the initial names have been accepted
reason: InitialNamesAccepted
status: 'True'
type: Established
storedVersions:
- v1