v1alpha1

package
v0.41.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 24, 2024 License: Apache-2.0 Imports: 14 Imported by: 0

Documentation

Overview

Package v1alpha1 is the v1alpha1 version of the API. +k8s:deepcopy-gen=package +groupName=messaging.knative.dev

Index

Constants

View Source
const (
	// NatsJetStreamChannelConditionReady has status True when all subconditions below have been set to True.
	NatsJetStreamChannelConditionReady = apis.ConditionReady

	// NatsJetStreamChannelConditionDispatcherReady has status True when a Dispatcher deployment is ready
	// Keyed off appsv1.DeploymentAvailable, which means minimum available replicas required are up
	// and running for at least minReadySeconds.
	NatsJetStreamChannelConditionDispatcherReady apis.ConditionType = "DispatcherReady"

	// NatsJetStreamChannelConditionServiceReady has status True when a k8s Service is ready. This
	// basically just means it exists because there's no meaningful status in Service. See Endpoints
	// below.
	NatsJetStreamChannelConditionServiceReady apis.ConditionType = "ServiceReady"

	// NatsJetStreamChannelConditionEndpointsReady has status True when a k8s Service Endpoints are backed
	// by at least one endpoint.
	NatsJetStreamChannelConditionEndpointsReady apis.ConditionType = "EndpointsReady"

	// NatsJetStreamChannelConditionAddressable has status true when this NatsJetStreamChannel meets
	// the Addressable contract and has a non-empty hostname.
	NatsJetStreamChannelConditionAddressable apis.ConditionType = "Addressable"

	// NatsJetStreamChannelConditionChannelServiceReady has status True when a k8s Service representing the channel is ready.
	// Because this uses ExternalName, there are no endpoints to check.
	NatsJetStreamChannelConditionChannelServiceReady apis.ConditionType = "ChannelServiceReady"

	// NatsJetStreamChannelConditionStreamReady has status True when the JetStream stream has been created.
	NatsJetStreamChannelConditionStreamReady apis.ConditionType = "StreamReady"
)

Variables

View Source
var (
	SchemeBuilder = runtime.NewSchemeBuilder(addKnownTypes)
	AddToScheme   = SchemeBuilder.AddToScheme
)
View Source
var SchemeGroupVersion = schema.GroupVersion{Group: messaging.GroupName, Version: "v1alpha1"}

SchemeGroupVersion is group version used to register these objects

Functions

func Kind

func Kind(kind string) schema.GroupKind

Kind takes an unqualified kind and returns back a Group qualified GroupKind

func Resource

func Resource(resource string) schema.GroupResource

Resource takes an unqualified resource and returns a Group qualified GroupResource

Types

type ConsumerConfigTemplate added in v0.30.4

type ConsumerConfigTemplate struct {
	// DeliverPolicy defines the DeliverPolicy for the consumer.
	// +optional
	DeliverPolicy DeliverPolicy `json:"deliverPolicy,omitempty"`

	// OptStartSeq denotes the message sequence number which this consumer should start from. This is only applicable
	// when DeliverPolicy is set to ByStartSequenceDeliverPolicy.
	// +optional
	OptStartSeq uint64 `json:"optStartSeq,omitempty"`

	// OptStartTime configures the consumer to deliver messages from the stream starting at the first message after this
	// timestamp. This is only applicable when DeliverPolicy is set to ByStartTimeDeliverPolicy.
	// +optional
	OptStartTime *metav1.Time `json:"optStartTime,omitempty"`

	// AckWait denotes the duration for which delivered messages should wait for an acknowledgement before attempting
	// redelivery.
	// +optional
	AckWait metav1.Duration `json:"ackWait,omitempty"`

	// MaxDeliver denotes the maximum number of times a message will be redelivered before being dropped (or delivered
	// to the dead-letter queue if configured).
	// +optional
	MaxDeliver int `json:"maxDeliver,omitempty"`

	// FilterSubject configures the source to only include messages matching this subject.
	// +optional
	FilterSubject string `json:"filterSubject,omitempty"`

	// ReplayPolicy defines the ReplayPolicy for the consumer.
	// +optional
	ReplayPolicy ReplayPolicy `json:"replayPolicy"`

	// RateLimitBPS will throttle delivery to the client in bits-per-second.
	// +optional
	RateLimitBPS uint64 `json:"rateLimitBPS,omitempty"`

	// SampleFrequency sets the percentage of acknowledgements that should be sampled for observability. Valid values
	// are in the range 0-100 and, for example, allows both formats of "30" and "30%".
	// +optional
	SampleFrequency string `json:"sampleFrequency,omitempty"`

	// MaxAckPending is the maximum number of messages without an acknowledgement that can be outstanding, once this
	// limit is reached message delivery will be suspended.
	// +optional
	MaxAckPending int `json:"maxAckPending,omitempty"`
}

ConsumerConfigTemplate defines the template for how consumers should be created for each Subscription the channel has. Some options aren't available compared to what's configurable in native JetStream since some features must be fixed for eventing-jetstream to function in a Knative way.

func (*ConsumerConfigTemplate) DeepCopy added in v0.30.4

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ConsumerConfigTemplate.

func (*ConsumerConfigTemplate) DeepCopyInto added in v0.30.4

func (in *ConsumerConfigTemplate) DeepCopyInto(out *ConsumerConfigTemplate)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type DeliverPolicy added in v0.30.4

type DeliverPolicy string

DeliverPolicy defines where in the stream a consumer should start delivering messages

const (
	// AllDeliverPolicy will deliver all messages available messages.
	AllDeliverPolicy DeliverPolicy = "All"

	// LastDeliverPolicy will deliver the last message added to the stream and subsequent messages thereafter.
	LastDeliverPolicy DeliverPolicy = "Last"

	// NewDeliverPolicy will deliver all future messages sent to the stream after the consumer is considered ready.
	NewDeliverPolicy DeliverPolicy = "New"

	// ByStartSequenceDeliverPolicy will deliver messages starting at the sequence specified
	// in ConsumerConfigTemplate.OptStartSeq.
	ByStartSequenceDeliverPolicy DeliverPolicy = "ByStartSequence"

	// ByStartTimeDeliverPolicy will deliver messages starting after the timestamp specified
	// in ConsumerConfigTemplate.OptStartTime
	ByStartTimeDeliverPolicy DeliverPolicy = "ByStartTime"
)

type DiscardPolicy added in v0.30.4

type DiscardPolicy string

DiscardPolicy sets how messages are discarded when the limits configured for a stream are reached.

const (
	// OldDiscardPolicy will remove old messages from a stream when limits are hit, making room for new messages.
	OldDiscardPolicy DiscardPolicy = "Old"

	// NewDiscardPolicy will reject new messages until the stream no longer hits its limits.
	NewDiscardPolicy DiscardPolicy = "New"
)

type JetStreamDispatcherDeploymentTemplate added in v0.37.2

type JetStreamDispatcherDeploymentTemplate struct {
	Annotations  map[string]string           `json:"annotations,omitempty"`
	Labels       map[string]string           `json:"labels,omitempty"`
	NodeSelector map[string]string           `json:"nodeSelector,omitempty"`
	Resources    corev1.ResourceRequirements `json:"resources,omitempty"`
	Affinity     *corev1.Affinity            `json:"affinity,omitempty"`
}

func (*JetStreamDispatcherDeploymentTemplate) DeepCopy added in v0.37.2

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new JetStreamDispatcherDeploymentTemplate.

func (*JetStreamDispatcherDeploymentTemplate) DeepCopyInto added in v0.37.2

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type NatsJetStreamChannel added in v0.26.0

type NatsJetStreamChannel struct {
	metav1.TypeMeta `json:",inline"`
	// +optional
	metav1.ObjectMeta `json:"metadata,omitempty"`

	// Spec defines the desired state of the Channel.
	// +optional
	Spec NatsJetStreamChannelSpec `json:"spec,omitempty"`

	// Status represents the current state of the NatssChannel. This data may be out of
	// date.
	// +optional
	Status NatsJetStreamChannelStatus `json:"status,omitempty"`
}

NatsJetStreamChannel is a resource representing a NATS JetStream Channel.

func (*NatsJetStreamChannel) DeepCopy added in v0.26.0

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NatsJetStreamChannel.

func (*NatsJetStreamChannel) DeepCopyInto added in v0.26.0

func (in *NatsJetStreamChannel) DeepCopyInto(out *NatsJetStreamChannel)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*NatsJetStreamChannel) DeepCopyObject added in v0.26.0

func (in *NatsJetStreamChannel) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

func (*NatsJetStreamChannel) GetConditionSet added in v0.26.0

func (*NatsJetStreamChannel) GetConditionSet() apis.ConditionSet

GetConditionSet retrieves the condition set for this resource. Implements the KRShaped interface.

func (*NatsJetStreamChannel) GetGroupVersionKind added in v0.26.0

func (*NatsJetStreamChannel) GetGroupVersionKind() schema.GroupVersionKind

GetGroupVersionKind returns GroupVersionKind for NatssChannels

func (*NatsJetStreamChannel) GetStatus added in v0.26.0

func (c *NatsJetStreamChannel) GetStatus() *duckv1.Status

GetStatus retrieves the duck status for this resource. Implements the KRShaped interface.

func (*NatsJetStreamChannel) GetUntypedSpec added in v0.26.0

func (c *NatsJetStreamChannel) GetUntypedSpec() interface{}

GetUntypedSpec returns the spec of the InMemoryChannel.

func (*NatsJetStreamChannel) SetDefaults added in v0.26.0

func (c *NatsJetStreamChannel) SetDefaults(ctx context.Context)

func (*NatsJetStreamChannel) Validate added in v0.26.0

type NatsJetStreamChannelList added in v0.26.0

type NatsJetStreamChannelList struct {
	metav1.TypeMeta `json:",inline"`
	// +optional
	metav1.ListMeta `json:"metadata,omitempty"`
	Items           []NatsJetStreamChannel `json:"items"`
}

NatsJetStreamChannelList is a collection of NatssChannels.

func (*NatsJetStreamChannelList) DeepCopy added in v0.26.0

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NatsJetStreamChannelList.

func (*NatsJetStreamChannelList) DeepCopyInto added in v0.26.0

func (in *NatsJetStreamChannelList) DeepCopyInto(out *NatsJetStreamChannelList)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*NatsJetStreamChannelList) DeepCopyObject added in v0.26.0

func (in *NatsJetStreamChannelList) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type NatsJetStreamChannelSpec added in v0.26.0

type NatsJetStreamChannelSpec struct {
	// inherits duck/v1 ChannelableSpec, which currently provides:
	// * SubscribableSpec - List of subscribers
	// * DeliverySpec - contains options controlling the event delivery
	eventingduckv1.ChannelableSpec `json:",inline"`

	// +optional
	Stream Stream `json:"stream,omitempty"`

	// +optional
	ConsumerConfigTemplate *ConsumerConfigTemplate `json:"consumerConfigTemplate,omitempty"`

	// +optional
	DeploymentSpecTemplate *JetStreamDispatcherDeploymentTemplate `json:"deploymentSpecTemplate,omitempty"`
}

NatsJetStreamChannelSpec defines the specification for a NatssChannel.

func (*NatsJetStreamChannelSpec) DeepCopy added in v0.26.0

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NatsJetStreamChannelSpec.

func (*NatsJetStreamChannelSpec) DeepCopyInto added in v0.26.0

func (in *NatsJetStreamChannelSpec) DeepCopyInto(out *NatsJetStreamChannelSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*NatsJetStreamChannelSpec) SetDefaults added in v0.26.0

func (cs *NatsJetStreamChannelSpec) SetDefaults(ctx context.Context)

func (*NatsJetStreamChannelSpec) Validate added in v0.26.0

type NatsJetStreamChannelStatus added in v0.26.0

type NatsJetStreamChannelStatus struct {
	// inherits duck/v1 ChannelableStatus, which currently provides:
	// * ObservedGeneration - the 'Generation' of the Service that was last processed by the controller.
	// * Conditions - the latest available observations of a resource's current state.
	// * AddressStatus is the part where the Channelable fulfills the Addressable contract.
	// * Subscribers is populated with the statuses of each of the Channelable's subscribers.
	eventingduckv1.ChannelableStatus `json:",inline"`
}

NatsJetStreamChannelStatus represents the current state of a NatssChannel.

func (*NatsJetStreamChannelStatus) DeepCopy added in v0.26.0

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NatsJetStreamChannelStatus.

func (*NatsJetStreamChannelStatus) DeepCopyInto added in v0.26.0

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*NatsJetStreamChannelStatus) GetCondition added in v0.26.0

GetCondition returns the condition currently associated with the given type, or nil.

func (*NatsJetStreamChannelStatus) InitializeConditions added in v0.26.0

func (cs *NatsJetStreamChannelStatus) InitializeConditions()

InitializeConditions sets relevant unset conditions to Unknown state.

func (*NatsJetStreamChannelStatus) IsReady added in v0.26.0

func (cs *NatsJetStreamChannelStatus) IsReady() bool

IsReady returns true if the resource is ready overall.

func (*NatsJetStreamChannelStatus) MarkChannelServiceFailed added in v0.26.0

func (cs *NatsJetStreamChannelStatus) MarkChannelServiceFailed(reason, messageFormat string, messageA ...interface{})

func (*NatsJetStreamChannelStatus) MarkChannelServiceTrue added in v0.26.0

func (cs *NatsJetStreamChannelStatus) MarkChannelServiceTrue()

func (*NatsJetStreamChannelStatus) MarkDispatcherFailed added in v0.26.0

func (cs *NatsJetStreamChannelStatus) MarkDispatcherFailed(reason, messageFormat string, messageA ...interface{})

func (*NatsJetStreamChannelStatus) MarkDispatcherTrue added in v0.30.4

func (cs *NatsJetStreamChannelStatus) MarkDispatcherTrue()

func (*NatsJetStreamChannelStatus) MarkDispatcherUnknown added in v0.30.4

func (cs *NatsJetStreamChannelStatus) MarkDispatcherUnknown(reason, messageFormat string, messageA ...interface{})

func (*NatsJetStreamChannelStatus) MarkEndpointsFailed added in v0.26.0

func (cs *NatsJetStreamChannelStatus) MarkEndpointsFailed(reason, messageFormat string, messageA ...interface{})

func (*NatsJetStreamChannelStatus) MarkEndpointsTrue added in v0.26.0

func (cs *NatsJetStreamChannelStatus) MarkEndpointsTrue()

func (*NatsJetStreamChannelStatus) MarkServiceFailed added in v0.26.0

func (cs *NatsJetStreamChannelStatus) MarkServiceFailed(reason, messageFormat string, messageA ...interface{})

func (*NatsJetStreamChannelStatus) MarkServiceTrue added in v0.26.0

func (cs *NatsJetStreamChannelStatus) MarkServiceTrue()

func (*NatsJetStreamChannelStatus) MarkServiceUnknown added in v0.30.4

func (cs *NatsJetStreamChannelStatus) MarkServiceUnknown(reason, messageFormat string, messageA ...interface{})

func (*NatsJetStreamChannelStatus) MarkStreamFailed added in v0.30.4

func (cs *NatsJetStreamChannelStatus) MarkStreamFailed(reason, messageFormat string, messageA ...interface{})

func (*NatsJetStreamChannelStatus) MarkStreamTrue added in v0.30.4

func (cs *NatsJetStreamChannelStatus) MarkStreamTrue()

func (*NatsJetStreamChannelStatus) PropagateDispatcherStatus added in v0.26.0

func (cs *NatsJetStreamChannelStatus) PropagateDispatcherStatus(ds *appsv1.DeploymentStatus)

TODO: Unify this with the ones from Eventing. Say: Broker, Trigger.

func (*NatsJetStreamChannelStatus) SetAddress added in v0.26.0

func (cs *NatsJetStreamChannelStatus) SetAddress(url *apis.URL)

SetAddress sets the address (as part of Addressable contract) and marks the correct condition.

type ReplayPolicy added in v0.30.4

type ReplayPolicy string

ReplayPolicy defines how a consumer should deliver message in relation to time. It is only applicable when the DeliverPolicy is set to AllDeliverPolicy, ByStartSequenceDeliverPolicy or ByStartTimeDeliverPolicy.

const (
	// InstantReplayPolicy will deliver all messages as quickly as possible whilst adhering to the Ack Policy,
	// Max Ack Pending and the client's ability to consume those messages.
	InstantReplayPolicy ReplayPolicy = "Instant"

	// OriginalReplayPolicy will deliver messages at the same rate at which they were received into the stream.
	OriginalReplayPolicy ReplayPolicy = "Original"
)

type RetentionPolicy added in v0.30.4

type RetentionPolicy string

RetentionPolicy defines how messages in a stream should be retained

const (
	// LimitsRetentionPolicy keeps messages in a stream until that stream reaches its limits
	LimitsRetentionPolicy RetentionPolicy = "Limits"

	// InterestRetentionPolicy keeps messages in a stream whilst there are consumers bound to the stream
	InterestRetentionPolicy RetentionPolicy = "Interest"

	// WorkRetentionPolicy keeps messages in a stream until they are consumed by a single observer after which point
	// they are removed
	WorkRetentionPolicy RetentionPolicy = "Work"
)

type Storage added in v0.30.4

type Storage string

Storage sets how messages should be stored in a stream

const (
	// FileStorage will store messages in a stream on disk.
	FileStorage Storage = "File"

	// MemoryStorage will store messages in a stream within memory. Messages will be lost on a server restart.
	MemoryStorage Storage = "Memory"
)

type Stream added in v0.30.4

type Stream struct {
	// OverrideName allows defining a custom stream name, by default a generated name based on the namespace and name
	// of the NatsJetStreamChannel is used.
	// +optional
	OverrideName string `json:"overrideName,omitempty"`

	// Config defines the StreamConfig for the stream.
	// +optional
	Config *StreamConfig `json:"config,omitempty"`
}

Stream provides customization options to how the eventing-jetstream dispatcher creates streams.

func (*Stream) DeepCopy added in v0.30.4

func (in *Stream) DeepCopy() *Stream

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Stream.

func (*Stream) DeepCopyInto added in v0.30.4

func (in *Stream) DeepCopyInto(out *Stream)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type StreamConfig added in v0.30.4

type StreamConfig struct {
	// AdditionalSubjects allows adding additional subjects which this stream will subscribe to. The stream will always
	// subscribe to a generated subject which the eventing-jetstream controller uses internally.
	// +optional
	AdditionalSubjects []string `json:"additionalSubjects,omitempty"`

	// Retention defines the RetentionPolicy for this stream.
	// +optional
	Retention RetentionPolicy `json:"retention,omitempty"`

	// MaxConsumers defines how many consumers this stream can be bound to it.
	// +optional
	MaxConsumers int `json:"maxConsumers,omitempty"`

	// MaxMsgs defines how many messages this stream can store.
	// +optional
	MaxMsgs int64 `json:"maxMsgs,omitempty"`

	// MaxBytes defines how many bytes this stream can store spanning all messages in the stream.
	// +optional
	MaxBytes int64 `json:"maxBytes,omitempty"`

	// Discard defines the DiscardPolicy for this stream.
	// +optional
	Discard DiscardPolicy `json:"discard,omitempty"`

	// MaxAge defines the maximum age of a message which is allowed in the stream.
	// +optional
	MaxAge metav1.Duration `json:"maxAge,omitempty"`

	// MaxMsgSize defines the maximum size in bytes of an individual message. JetStream includes a hard-limit of 1MB so
	// if defined should be less than 2^20=1048576.
	// +optional
	MaxMsgSize int32 `json:"maxMsgSize,omitempty"`

	// Storage defines the Storage mechanism for this stream.
	// +optional
	Storage Storage `json:"storage,omitempty"`

	// Replicas defines how many replicas of each message should be stored. This is only applicable for clustered
	// JetStream instances.
	// +optional
	Replicas int `json:"replicas,omitempty"`

	// NoAck disables acknowledgement of messages when true.
	// +optional
	NoAck bool `json:"noAck,omitempty"`

	// DuplicateWindow defines the duration of which messages should be tracked for detecting duplicates.
	// +optional
	DuplicateWindow metav1.Duration `json:"duplicateWindow,omitempty"`

	// Placement allows configuring which JetStream server the stream should be placed on.
	// +optional
	Placement *StreamPlacement `json:"placement,omitempty"`

	// Mirror configures the stream to mirror another stream.
	// +optional
	Mirror *StreamSource `json:"mirror,omitempty"`

	// Sources allows aggregating messages from other streams into a new stream.
	// +optional
	Sources []StreamSource `json:"sources,omitempty"`
}

func (*StreamConfig) DeepCopy added in v0.30.4

func (in *StreamConfig) DeepCopy() *StreamConfig

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new StreamConfig.

func (*StreamConfig) DeepCopyInto added in v0.30.4

func (in *StreamConfig) DeepCopyInto(out *StreamConfig)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type StreamPlacement added in v0.30.4

type StreamPlacement struct {
	// Cluster denotes the cluster name which this stream should be placed on.
	Cluster string `json:"cluster,omitempty"`

	// Tags will restrict this stream to only be stored on servers matching these tags.
	Tags []string `json:"tags,omitempty"`
}

StreamPlacement is used to guide placement of streams in clustered JetStream.

func (*StreamPlacement) DeepCopy added in v0.30.4

func (in *StreamPlacement) DeepCopy() *StreamPlacement

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new StreamPlacement.

func (*StreamPlacement) DeepCopyInto added in v0.30.4

func (in *StreamPlacement) DeepCopyInto(out *StreamPlacement)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type StreamSource added in v0.30.4

type StreamSource struct {
	// Name is the stream name which this source is referencing
	Name string `json:"name,omitempty"`

	// OptStartSeq denotes the message sequence number which this source should start from. This takes precedence
	// over OptStartTime if defined.
	// +optional
	OptStartSeq uint64 `json:"optStartSeq,omitempty"`

	// OptStartTime configures the source to deliver messages from the stream starting at the first message after this
	// timestamp.
	// +optional
	OptStartTime *metav1.Time `json:"optStartTime,omitempty"`

	// FilterSubject configures the source to only include messages matching this subject.
	// +optional
	FilterSubject string `json:"filterSubject,omitempty"`
}

StreamSource dictates how streams can source from other streams.

func (*StreamSource) DeepCopy added in v0.30.4

func (in *StreamSource) DeepCopy() *StreamSource

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new StreamSource.

func (*StreamSource) DeepCopyInto added in v0.30.4

func (in *StreamSource) DeepCopyInto(out *StreamSource)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL