diff --git a/config/channels/in-memory-channel/300-in-memory-channel.yaml b/config/channels/in-memory-channel/300-in-memory-channel.yaml index 4448289f476..1f57a454b44 100644 --- a/config/channels/in-memory-channel/300-in-memory-channel.yaml +++ b/config/channels/in-memory-channel/300-in-memory-channel.yaml @@ -26,7 +26,7 @@ spec: - &version name: v1beta1 served: true - storage: true + storage: false subresources: status: {} schema: @@ -53,7 +53,7 @@ spec: - << : *version name: v1 served: true - storage: false + storage: true names: kind: InMemoryChannel plural: inmemorychannels diff --git a/config/core/resources/channel.yaml b/config/core/resources/channel.yaml index 9517e54abff..bf785634672 100644 --- a/config/core/resources/channel.yaml +++ b/config/core/resources/channel.yaml @@ -27,7 +27,7 @@ spec: - &version name: v1beta1 served: true - storage: true + storage: false subresources: status: {} additionalPrinterColumns: @@ -239,7 +239,7 @@ spec: - << : *version name: v1 served: true - storage: false + storage: true # the schema of v1 is exactly the same as v1beta1 schema schema: openAPIV3Schema: diff --git a/config/pre-install/v0.18.0/channel.yaml b/config/pre-install/v0.18.0/channel.yaml new file mode 100644 index 00000000000..bf785634672 --- /dev/null +++ b/config/pre-install/v0.18.0/channel.yaml @@ -0,0 +1,266 @@ +# Copyright 2020 The Knative Authors +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + name: channels.messaging.knative.dev + labels: + eventing.knative.dev/release: devel + knative.dev/crd-install: "true" + messaging.knative.dev/subscribable: "true" + duck.knative.dev/addressable: "true" +spec: + group: messaging.knative.dev + versions: + - &version + name: v1beta1 + served: true + storage: false + subresources: + status: {} + additionalPrinterColumns: + - name: URL + type: string + jsonPath: .status.address.url + - name: Age + type: date + jsonPath: .metadata.creationTimestamp + - name: Ready + type: string + jsonPath: ".status.conditions[?(@.type==\"Ready\")].status" + - name: Reason + type: string + jsonPath: ".status.conditions[?(@.type==\"Ready\")].reason" + schema: + openAPIV3Schema: &openAPIV3Schema + type: object + properties: + spec: + description: Spec defines the desired state of the Channel. + type: object + properties: + channelTemplate: + description: ChannelTemplate specifies which Channel CRD to use to + create the CRD Channel backing this Channel. This is immutable + after creation. Normally this is set by the Channel defaulter, + not directly by the user. + type: object + 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 + spec: + description: Spec defines the Spec to use for each channel + created. Passed in verbatim to the Channel CRD as Spec + section. + type: string + delivery: &deliverySpec + description: DeliverySpec contains options controlling the event delivery + type: object + properties: + backoffDelay: + description: 'BackoffDelay is the delay before retrying. More + information on Duration format: - https://www.iso.org/iso-8601-date-and-time-format.html + - https://en.wikipedia.org/wiki/ISO_8601 For linear policy, + backoff delay is the time interval between retries. For + exponential policy , backoff delay is backoffDelay*2^.' + type: string + backoffPolicy: + description: BackoffPolicy is the retry backoff policy (linear, + exponential). + type: string + deadLetterSink: + description: DeadLetterSink is the sink receiving event that + could not be sent to a destination. + type: object + properties: + ref: + description: Ref points to an Addressable. + type: object + properties: &referentProperties + apiVersion: + description: API version of the referent. + type: string + kind: + description: 'Kind of the referent. More info: + https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + type: string + name: + description: 'Name of the referent. More info: + https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' + type: string + namespace: + description: 'Namespace of the referent. More + info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/ + This is optional field, it gets defaulted + to the object holding it if left out.' + type: string + uri: + description: URI can be an absolute URL(non-empty + scheme and non-empty host) pointing to the target + or a relative URI. Relative URIs will be resolved + using the base URI retrieved from Ref. + type: string + retry: + description: Retry is the minimum number of retries the sender + should attempt when sending an event before moving it + to the dead letter sink. + type: integer + format: int32 + subscribers: + description: This is the list of subscriptions for this subscribable. + type: array + items: + type: object + properties: + delivery: + <<: *deliverySpec + generation: + description: Generation of the origin of the subscriber + with uid:UID. + type: integer + format: int64 + replyUri: + description: ReplyURI is the endpoint for the reply + type: string + subscriberUri: + description: SubscriberURI is the endpoint for the subscriber + type: string + uid: + description: UID is used to understand the origin of the + subscriber. + type: string + status: + description: Status represents the current state of the Channel. This data + may be out of date. + type: object + properties: + address: + type: object + properties: + url: + type: string + annotations: + 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 + x-kubernetes-preserve-unknown-fields: true + channel: + description: Channel is an KReference to the Channel CRD backing this + Channel. + type: object + properties: + <<: *referentProperties + conditions: + description: Conditions the latest available observations of a resource's + current state. + type: array + items: + type: object + x-kubernetes-preserve-unknown-fields: true + properties: + 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 + deadLetterChannel: + description: DeadLetterChannel is a KReference and is set by the channel + when it supports native error handling via a channel Failed messages + are delivered here. + type: object + properties: + <<: *referentProperties + observedGeneration: + description: ObservedGeneration is the 'Generation' of the Service + that was last processed by the controller. + type: integer + format: int64 + subscribers: + description: This is the list of subscription's statuses for this + channel. + type: array + items: + type: object + properties: + message: + description: A human readable message indicating details + of Ready status. + type: string + observedGeneration: + description: Generation of the origin of the subscriber + with uid:UID. + type: integer + format: int64 + ready: + description: Status of the subscriber. + type: string + uid: + description: UID is used to understand the origin of the + subscriber. + type: string + - << : *version + name: v1 + served: true + storage: true + # the schema of v1 is exactly the same as v1beta1 schema + schema: + openAPIV3Schema: + << : *openAPIV3Schema + names: + kind: Channel + plural: channels + singular: channel + categories: + - all + - knative + - messaging + - channel + shortNames: + - ch + scope: Namespaced + conversion: + strategy: Webhook + webhook: + conversionReviewVersions: ["v1", "v1beta1"] + clientConfig: + service: + name: eventing-webhook + namespace: knative-eventing diff --git a/config/pre-install/v0.18.0/clusterrole.yaml b/config/pre-install/v0.18.0/clusterrole.yaml index bfa98b1c38a..b80fa65e81e 100644 --- a/config/pre-install/v0.18.0/clusterrole.yaml +++ b/config/pre-install/v0.18.0/clusterrole.yaml @@ -58,3 +58,16 @@ rules: - "delete" - "patch" - "watch" + - apiGroups: + - "messaging.knative.dev" + resources: + - "channels" + - "inmemorychannels" + verbs: + - "get" + - "list" + - "create" + - "update" + - "delete" + - "patch" + - "watch" diff --git a/config/pre-install/v0.18.0/in-memory-channel.yaml b/config/pre-install/v0.18.0/in-memory-channel.yaml new file mode 100644 index 00000000000..1f57a454b44 --- /dev/null +++ b/config/pre-install/v0.18.0/in-memory-channel.yaml @@ -0,0 +1,76 @@ +# Copyright 2019 The Knative Authors +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + name: inmemorychannels.messaging.knative.dev + labels: + eventing.knative.dev/release: devel + knative.dev/crd-install: "true" + messaging.knative.dev/subscribable: "true" + duck.knative.dev/addressable: "true" +spec: + group: messaging.knative.dev + versions: + - &version + name: v1beta1 + served: true + storage: false + subresources: + status: {} + schema: + openAPIV3Schema: + type: object + # this is a work around so we don't need to flush out the + # schema for each version at this time + # + # see issue: https://github.com/knative/serving/issues/912 + x-kubernetes-preserve-unknown-fields: true + additionalPrinterColumns: + - name: URL + type: string + jsonPath: .status.address.url + - name: Age + type: date + jsonPath: .metadata.creationTimestamp + - name: Ready + type: string + jsonPath: ".status.conditions[?(@.type==\"Ready\")].status" + - name: Reason + type: string + jsonPath: ".status.conditions[?(@.type==\"Ready\")].reason" + - << : *version + name: v1 + served: true + storage: true + names: + kind: InMemoryChannel + plural: inmemorychannels + singular: inmemorychannel + categories: + - all + - knative + - messaging + - channel + shortNames: + - imc + scope: Namespaced + conversion: + strategy: Webhook + webhook: + conversionReviewVersions: ["v1", "v1beta1"] + clientConfig: + service: + name: eventing-webhook + namespace: knative-eventing diff --git a/config/pre-install/v0.18.0/storage-version-migration.yaml b/config/pre-install/v0.18.0/storage-version-migration.yaml index 394e21a292a..29eed16f74c 100644 --- a/config/pre-install/v0.18.0/storage-version-migration.yaml +++ b/config/pre-install/v0.18.0/storage-version-migration.yaml @@ -42,3 +42,5 @@ spec: - "sinkbindings.sources.knative.dev" - "brokers.sources.knative.dev" - "triggers.sources.knative.dev" + - "channels.messaging.knative.dev" + - "inmemorychannels.messaging.knative.dev"