v1alpha1

package
v0.7.0 Latest Latest
Warning

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

Go to latest
Published: Dec 6, 2024 License: Apache-2.0 Imports: 11 Imported by: 1

Documentation

Overview

Package v1alpha1 contains API Schema definitions for the resource v1alpha1 API group +kubebuilder:object:generate=true +groupName=resource.streamnative.io

Index

Constants

View Source
const (
	// ConditionReady indicates status condition ready
	ConditionReady string = "Ready"
	// ConditionTopicPolicyReady indicates the topic policy ready
	ConditionTopicPolicyReady string = "PolicyReady"
	// FinalizerName is the finalizer string that add to object
	FinalizerName string = "cloud.streamnative.io/finalizer"

	// AuthPluginToken indicates the authentication pulgin type token
	AuthPluginToken string = "org.apache.pulsar.client.impl.auth.AuthenticationToken" // #nosec G101
	// AuthPluginOAuth2 indicates the authentication pulgin type oauth2
	AuthPluginOAuth2 string = "org.apache.pulsar.client.impl.auth.oauth2.AuthenticationOAuth2"
)

Variables

View Source
var (
	// GroupVersion is group version used to register these objects
	GroupVersion = schema.GroupVersion{Group: "resource.streamnative.io", Version: "v1alpha1"}

	// SchemeBuilder is used to add go types to the GroupVersionKind scheme
	SchemeBuilder = &scheme.Builder{GroupVersion: GroupVersion}

	// AddToScheme adds the types in this group-version to the given scheme.
	AddToScheme = SchemeBuilder.AddToScheme
)

Functions

func IsPulsarResourceReady

func IsPulsarResourceReady(instance reconciler.Object) bool

IsPulsarResourceReady returns true if resource satisfies with these condition 1. The instance is not deleted 2. Status ObservedGeneration is equal with meta.ObservedGeneration 3. StatusCondition Ready is true

Types

type AutoFailoverPolicyType added in v0.6.3

type AutoFailoverPolicyType string
const (
	MinAvailable AutoFailoverPolicyType = "min_available"
)

type BatchSourceConfig added in v0.5.0

type BatchSourceConfig struct {
	// +optional
	DiscoveryTriggererClassName string `json:"discoveryTriggererClassName,omitempty" yaml:"discoveryTriggererClassName"`

	// +optional
	DiscoveryTriggererConfig *apiextensionsv1.JSON `json:"discoveryTriggererConfig,omitempty" yaml:"discoveryTriggererConfig"`
}

BatchSourceConfig represents the batch source config of the PulsarSource

func (*BatchSourceConfig) DeepCopy added in v0.5.0

func (in *BatchSourceConfig) DeepCopy() *BatchSourceConfig

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

func (*BatchSourceConfig) DeepCopyInto added in v0.5.0

func (in *BatchSourceConfig) DeepCopyInto(out *BatchSourceConfig)

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

type BookieAffinityGroupData added in v0.6.3

type BookieAffinityGroupData struct {
	BookkeeperAffinityGroupPrimary string `json:"bookkeeperAffinityGroupPrimary"`

	// +optional
	BookkeeperAffinityGroupSecondary string `json:"bookkeeperAffinityGroupSecondary,omitempty"`
}

func (*BookieAffinityGroupData) DeepCopy added in v0.6.3

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

func (*BookieAffinityGroupData) DeepCopyInto added in v0.6.3

func (in *BookieAffinityGroupData) DeepCopyInto(out *BookieAffinityGroupData)

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

type ClusterInfo added in v0.3.0

type ClusterInfo struct {
	// Name is the pulsar cluster name
	Name string `json:"name,omitempty"`
	// ConnectionRef is the connection reference that can connect to the pulsar cluster
	ConnectionRef corev1.LocalObjectReference `json:"connectionRef"`
}

ClusterInfo indicates the cluster info that will be used in the setup of GEO replication.

func (*ClusterInfo) DeepCopy added in v0.3.0

func (in *ClusterInfo) DeepCopy() *ClusterInfo

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

func (*ClusterInfo) DeepCopyInto added in v0.3.0

func (in *ClusterInfo) DeepCopyInto(out *ClusterInfo)

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

type ConsumerConfig added in v0.5.0

type ConsumerConfig struct {
	// +optional
	SchemaType string `json:"schemaType,omitempty" yaml:"schemaType"`

	// +optional
	SerdeClassName string `json:"serdeClassName,omitempty" yaml:"serdeClassName"`

	// +optional
	RegexPattern bool `json:"regexPattern,omitempty" yaml:"regexPattern"`

	// +optional
	ReceiverQueueSize int `json:"receiverQueueSize,omitempty" yaml:"receiverQueueSize"`

	// +optional
	SchemaProperties map[string]string `json:"schemaProperties,omitempty" yaml:"schemaProperties"`

	// +optional
	ConsumerProperties map[string]string `json:"consumerProperties,omitempty" yaml:"consumerProperties"`

	// +optional
	CryptoConfig *CryptoConfig `json:"cryptoConfig,omitempty" yaml:"cryptoConfig"`

	// +optional
	PoolMessages bool `json:"poolMessages,omitempty" yaml:"poolMessages"`
}

ConsumerConfig represents the configuration for the consumer of the pulsar functions and connectors

func (*ConsumerConfig) DeepCopy added in v0.5.0

func (in *ConsumerConfig) DeepCopy() *ConsumerConfig

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

func (*ConsumerConfig) DeepCopyInto added in v0.5.0

func (in *ConsumerConfig) DeepCopyInto(out *ConsumerConfig)

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

type CryptoConfig added in v0.5.0

type CryptoConfig struct {

	// +optional
	CryptoKeyReaderClassName string `json:"cryptoKeyReaderClassName,omitempty" yaml:"cryptoKeyReaderClassName"`

	// +optional
	CryptoKeyReaderConfig map[string]string `json:"cryptoKeyReaderConfig,omitempty" yaml:"cryptoKeyReaderConfig"`

	// +optional
	EncryptionKeys []string `json:"encryptionKeys,omitempty" yaml:"encryptionKeys"`

	// +optional
	ProducerCryptoFailureAction string `json:"producerCryptoFailureAction,omitempty" yaml:"producerCryptoFailureAction"`

	// +optional
	ConsumerCryptoFailureAction string `json:"consumerCryptoFailureAction,omitempty" yaml:"consumerCryptoFailureAction"`
}

CryptoConfig represents the configuration for the crypto of the pulsar functions and connectors

func (*CryptoConfig) DeepCopy added in v0.5.0

func (in *CryptoConfig) DeepCopy() *CryptoConfig

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

func (*CryptoConfig) DeepCopyInto added in v0.5.0

func (in *CryptoConfig) DeepCopyInto(out *CryptoConfig)

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

type FunctionSecretKeyRef added in v0.5.4

type FunctionSecretKeyRef struct {
	Path string `json:"path"`
	Key  string `json:"key"`
}

FunctionSecretKeyRef indicates a secret name and key

func (*FunctionSecretKeyRef) DeepCopy added in v0.5.4

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

func (*FunctionSecretKeyRef) DeepCopyInto added in v0.5.4

func (in *FunctionSecretKeyRef) DeepCopyInto(out *FunctionSecretKeyRef)

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

type PackageContentRef added in v0.5.0

type PackageContentRef struct {

	// +optional
	URL string `json:"url,omitempty"`
}

PackageContentRef indicates the package content reference

func (*PackageContentRef) DeepCopy added in v0.5.0

func (in *PackageContentRef) DeepCopy() *PackageContentRef

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

func (*PackageContentRef) DeepCopyInto added in v0.5.0

func (in *PackageContentRef) DeepCopyInto(out *PackageContentRef)

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

type ProducerConfig added in v0.5.0

type ProducerConfig struct {
	// +optional
	MaxPendingMessages int `json:"maxPendingMessages,omitempty" yaml:"maxPendingMessages"`

	// +optional
	MaxPendingMessagesAcrossPartitions int `json:"maxPendingMessagesAcrossPartitions,omitempty" yaml:"maxPendingMessagesAcrossPartitions"`

	// +optional
	UseThreadLocalProducers bool `json:"useThreadLocalProducers,omitempty" yaml:"useThreadLocalProducers"`

	// +optional
	CryptoConfig *CryptoConfig `json:"cryptoConfig,omitempty" yaml:"cryptoConfig"`

	// +optional
	BatchBuilder string `json:"batchBuilder,omitempty" yaml:"batchBuilder"`

	// +optional
	CompressionType string `json:"compressionType,omitempty" yaml:"compressionType"`
}

ProducerConfig represents the configuration for the producer of the pulsar functions and connectors

func (*ProducerConfig) DeepCopy added in v0.5.0

func (in *ProducerConfig) DeepCopy() *ProducerConfig

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

func (*ProducerConfig) DeepCopyInto added in v0.5.0

func (in *ProducerConfig) DeepCopyInto(out *ProducerConfig)

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

type PulsarAuthentication

type PulsarAuthentication struct {
	// Token specifies the configuration for token-based authentication.
	// This can be either a direct token value or a reference to a secret containing the token.
	// If using a secret, the token should be stored under the specified key in the secret.
	// +optional
	Token *ValueOrSecretRef `json:"token,omitempty"`

	// OAuth2 specifies the configuration for OAuth2-based authentication.
	// This includes all necessary parameters for setting up OAuth2 authentication with Pulsar.
	// For detailed information on the OAuth2 fields, refer to the PulsarAuthenticationOAuth2 struct.
	// +optional
	OAuth2 *PulsarAuthenticationOAuth2 `json:"oauth2,omitempty"`
}

PulsarAuthentication defines the authentication configuration for Pulsar resources. It supports two authentication methods: Token-based and OAuth2-based. Only one authentication method should be specified at a time.

func (*PulsarAuthentication) DeepCopy

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

func (*PulsarAuthentication) DeepCopyInto

func (in *PulsarAuthentication) DeepCopyInto(out *PulsarAuthentication)

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

type PulsarAuthenticationOAuth2

type PulsarAuthenticationOAuth2 struct {
	// IssuerEndpoint is the URL of the OAuth2 authorization server.
	// This is typically the base URL of your identity provider's OAuth2 service.
	IssuerEndpoint string `json:"issuerEndpoint"`

	// ClientID is the OAuth2 client identifier issued to the client during the registration process.
	ClientID string `json:"clientID"`

	// Audience is the intended recipient of the token. In Pulsar's context, this is usually
	// the URL of your Pulsar cluster or a specific identifier for your Pulsar service.
	Audience string `json:"audience"`

	// Key is either the client secret or the path to a JSON credentials file.
	// For confidential clients, this would be the client secret.
	// For public clients using JWT authentication, this would be the path to the JSON credentials file.
	Key *ValueOrSecretRef `json:"key"`

	// Scope is an optional field to request specific permissions from the OAuth2 server.
	// If not specified, the default scope defined by the OAuth2 server will be used.
	Scope string `json:"scope,omitempty"`
}

PulsarAuthenticationOAuth2 represents the configuration for Pulsar OAuth2 authentication. This struct aligns with Pulsar's OAuth2 authentication mechanism as described in https://pulsar.apache.org/docs/3.3.x/security-oauth2/ and https://docs.streamnative.io/docs/access-cloud-clusters-oauth

func (*PulsarAuthenticationOAuth2) DeepCopy

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

func (*PulsarAuthenticationOAuth2) DeepCopyInto

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

type PulsarConnection

type PulsarConnection struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata,omitempty"`

	Spec   PulsarConnectionSpec   `json:"spec,omitempty"`
	Status PulsarConnectionStatus `json:"status,omitempty"`
}

PulsarConnection is the Schema for the pulsarconnections API It represents a connection to a Pulsar cluster and includes both the desired state (Spec) and the observed state (Status) of the connection.

func (*PulsarConnection) DeepCopy

func (in *PulsarConnection) DeepCopy() *PulsarConnection

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

func (*PulsarConnection) DeepCopyInto

func (in *PulsarConnection) DeepCopyInto(out *PulsarConnection)

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

func (*PulsarConnection) DeepCopyObject

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

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

type PulsarConnectionList

type PulsarConnectionList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`
	Items           []PulsarConnection `json:"items"`
}

PulsarConnectionList contains a list of PulsarConnection This type is used by the Kubernetes API to return multiple PulsarConnection objects.

func (*PulsarConnectionList) DeepCopy

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

func (*PulsarConnectionList) DeepCopyInto

func (in *PulsarConnectionList) DeepCopyInto(out *PulsarConnectionList)

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

func (*PulsarConnectionList) DeepCopyObject

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

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

type PulsarConnectionSpec

type PulsarConnectionSpec struct {

	// AdminServiceURL is the HTTP(S) URL for the Pulsar cluster's admin service.
	// This URL is used for administrative operations.
	// +optional
	// +kubebuilder:validation:Pattern="^https?://.+$"
	AdminServiceURL string `json:"adminServiceURL"`

	// Authentication defines the authentication configuration for connecting to the Pulsar cluster.
	// It supports both token-based and OAuth2-based authentication methods.
	// +optional
	Authentication *PulsarAuthentication `json:"authentication,omitempty"`

	// BrokerServiceURL is the non-TLS URL for connecting to Pulsar brokers.
	// Use this for non-secure connections to the Pulsar cluster.
	// +optional
	// +kubebuilder:validation:Pattern="^pulsar?://.+$"
	BrokerServiceURL string `json:"brokerServiceURL,omitempty"`

	// BrokerServiceSecureURL is the TLS-enabled URL for secure connections to Pulsar brokers.
	// Use this for encrypted communications with the Pulsar cluster.
	// +optional
	// +kubebuilder:validation:Pattern="^pulsar\\+ssl://.+$"
	BrokerServiceSecureURL string `json:"brokerServiceSecureURL,omitempty"`

	// AdminServiceSecureURL is the HTTPS URL for secure connections to the Pulsar admin service.
	// Use this for encrypted administrative operations.
	// +optional
	// +kubebuilder:validation:Pattern="^https://.+$"
	AdminServiceSecureURL string `json:"adminServiceSecureURL,omitempty"`

	// BrokerClientTrustCertsFilePath is the file path to the trusted TLS certificate
	// for outgoing connections to Pulsar brokers. This is used for TLS verification.
	// +optional
	BrokerClientTrustCertsFilePath string `json:"brokerClientTrustCertsFilePath,omitempty"`

	// ClusterName specifies the name of the local Pulsar cluster.
	// When setting up Geo-Replication between Pulsar instances, this should be enabled to identify the cluster.
	// +optional
	ClusterName string `json:"clusterName,omitempty"`
}

PulsarConnectionSpec defines the desired state of PulsarConnection It specifies the configuration for connecting to a Pulsar cluster.

For plaintext (non-TLS) Pulsar clusters: - Set AdminServiceURL to "http://<admin-service-host>:<port>" - Set BrokerServiceURL to "pulsar://<broker-service-host>:<port>"

For TLS-enabled Pulsar clusters: - Set AdminServiceSecureURL to "https://<admin-service-host>:<port>" - Set BrokerServiceSecureURL to "pulsar+ssl://<broker-service-host>:<port>" - Optionally set BrokerClientTrustCertsFilePath if using custom CA certificates

func (*PulsarConnectionSpec) DeepCopy

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

func (*PulsarConnectionSpec) DeepCopyInto

func (in *PulsarConnectionSpec) DeepCopyInto(out *PulsarConnectionSpec)

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

type PulsarConnectionStatus

type PulsarConnectionStatus struct {

	// ObservedGeneration is the most recent generation observed for this resource.
	// It corresponds to the metadata generation, which is updated on mutation by the API Server.
	// This field is used to track whether the controller has processed the latest changes.
	// +optional
	ObservedGeneration int64 `json:"observedGeneration,omitempty"`

	// SecretKeyHash is the hash of the secret reference used for authentication.
	// This is used to detect changes in the secret without exposing sensitive information.
	// The controller should update this hash when the secret changes.
	// +optional
	SecretKeyHash string `json:"secretKeyHash,omitempty"`

	// Conditions represent the latest available observations of the connection's current state.
	// It follows the Kubernetes conventions for condition types and status.
	// The "Ready" condition type is typically used to indicate the overall status.
	// +patchMergeKey=type
	// +patchStrategy=merge
	// +listType=map
	// +listMapKey=type
	// +optional
	Conditions []metav1.Condition `json:"conditions,omitempty" patchStrategy:"merge" patchMergeKey:"type"`
}

PulsarConnectionStatus defines the observed state of PulsarConnection. It provides information about the current status of the Pulsar connection.

func (*PulsarConnectionStatus) DeepCopy

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

func (*PulsarConnectionStatus) DeepCopyInto

func (in *PulsarConnectionStatus) DeepCopyInto(out *PulsarConnectionStatus)

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

type PulsarFunction added in v0.5.0

type PulsarFunction struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata,omitempty"`

	Spec   PulsarFunctionSpec   `json:"spec,omitempty"`
	Status PulsarFunctionStatus `json:"status,omitempty"`
}

PulsarFunction is the Schema for the pulsar functions API

func (*PulsarFunction) DeepCopy added in v0.5.0

func (in *PulsarFunction) DeepCopy() *PulsarFunction

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

func (*PulsarFunction) DeepCopyInto added in v0.5.0

func (in *PulsarFunction) DeepCopyInto(out *PulsarFunction)

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

func (*PulsarFunction) DeepCopyObject added in v0.5.0

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

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

type PulsarFunctionList added in v0.5.0

type PulsarFunctionList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`
	Items           []PulsarFunction `json:"items"`
}

PulsarFunctionList contains a list of PulsarFunction

func (*PulsarFunctionList) DeepCopy added in v0.5.0

func (in *PulsarFunctionList) DeepCopy() *PulsarFunctionList

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

func (*PulsarFunctionList) DeepCopyInto added in v0.5.0

func (in *PulsarFunctionList) DeepCopyInto(out *PulsarFunctionList)

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

func (*PulsarFunctionList) DeepCopyObject added in v0.5.0

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

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

type PulsarFunctionSpec added in v0.5.0

type PulsarFunctionSpec struct {

	// TimeoutMs is the function timeout in milliseconds
	// +optional
	TimeoutMs *int64 `json:"timeoutMs,omitempty"`

	// TopicsPattern is the topics pattern that the function subscribes to
	// +optional
	TopicsPattern *string `json:"topicsPattern,omitempty"`

	// CleanupSubscription is the flag to indicate whether the subscription should be cleaned up when the function is deleted
	// +optional
	CleanupSubscription bool `json:"cleanupSubscription"`

	// RetainOrdering is the flag to indicate whether the function should retain ordering
	// +optional
	RetainOrdering bool `json:"retainOrdering"`

	// RetainKeyOrdering is the flag to indicate whether the function should retain key ordering
	// +optional
	RetainKeyOrdering bool `json:"retainKeyOrdering"`

	// BatchBuilder is the batch builder that the function uses
	// +optional
	BatchBuilder *string `json:"batchBuilder,omitempty"`

	// ForwardSourceMessageProperty is the flag to indicate whether the function should forward source message properties
	// +optional
	ForwardSourceMessageProperty bool `json:"forwardSourceMessageProperty"`

	// AutoAck is the flag to indicate whether the function should auto ack
	// +optional
	AutoAck bool `json:"autoAck"`

	// Parallelism is the parallelism of the function
	// +optional
	Parallelism int `json:"parallelism,omitempty"`

	// MaxMessageRetries is the max message retries of the function
	// +optional
	MaxMessageRetries *int `json:"maxMessageRetries,omitempty"`

	// Output is the output of the function
	// +optional
	Output string `json:"output,omitempty"`

	// ProducerConfig is the producer config of the function
	// +optional
	ProducerConfig *ProducerConfig `json:"producerConfig,omitempty"`

	// CustomSchemaOutputs is the custom schema outputs of the function
	// +optional
	CustomSchemaOutputs map[string]string `json:"customSchemaOutputs,omitempty"`

	// OutputSerdeClassName is the output serde class name of the function
	// +optional
	OutputSerdeClassName string `json:"outputSerdeClassName,omitempty"`

	// LogTopic is the log topic of the function
	// +optional
	LogTopic string `json:"logTopic,omitempty"`

	// ProcessingGuarantees is the processing guarantees of the function
	// +optional
	ProcessingGuarantees string `json:"processingGuarantees,omitempty"`

	// OutputSchemaType is the output schema type of the function
	// +optional
	OutputSchemaType string `json:"outputSchemaType,omitempty"`

	// OutputTypeClassName is the output type class name of the function
	// +optional
	OutputTypeClassName string `json:"outputTypeClassName,omitempty"`

	// DeadLetterTopic is the dead letter topic of the function
	// +optional
	DeadLetterTopic string `json:"deadLetterTopic,omitempty"`

	// SubName is the sub name of the function
	// +optional
	SubName string `json:"subName,omitempty"`

	// Jar is the jar of the function
	// +optional
	Jar *PackageContentRef `json:"jar,omitempty"`

	// Py is the py of the function
	// +optional
	Py *PackageContentRef `json:"py,omitempty"`

	// Go is the go of the function
	// +optional
	Go *PackageContentRef `json:"go,omitempty"`

	// RuntimeFlags is the runtime flags of the function
	// +optional
	RuntimeFlags string `json:"runtimeFlags,omitempty"`

	// Tenant is the tenant of the function
	// +optional
	Tenant string `json:"tenant,omitempty"`

	// Namespace is the namespace of the function
	// +optional
	Namespace string `json:"namespace,omitempty"`

	// Name is the name of the function
	// +optional
	Name string `json:"name,omitempty"`

	// ClassName is the class name of the function
	// +optional
	ClassName string `json:"className,omitempty"`

	// Resources is the resources of the function
	// +optional
	Resources *Resources `json:"resources,omitempty"`

	// WindowConfig is the window config of the function
	// +optional
	WindowConfig *WindowConfig `json:"windowConfig,omitempty"`

	// Inputs is the inputs of the function
	// +optional
	Inputs []string `json:"inputs,omitempty"`

	// UserConfig is the user config of the function
	// +optional
	UserConfig *apiextensionsv1.JSON `json:"userConfig,omitempty"`

	// CustomSerdeInputs is the custom serde inputs of the function
	// +optional
	CustomSerdeInputs map[string]string `json:"customSerdeInputs,omitempty"`

	// CustomSchemaInputs is the custom schema inputs of the function
	// +optional
	CustomSchemaInputs map[string]string `json:"customSchemaInputs,omitempty"`

	// InputSpecs is the input specs of the function
	// +optional
	InputSpecs map[string]ConsumerConfig `json:"inputSpecs,omitempty"`

	// InputTypeClassName is the input type class name of the function
	// +optional
	InputTypeClassName string `json:"inputTypeClassName,omitempty"`

	// CustomRuntimeOptions is the custom runtime options of the function
	// +optional
	CustomRuntimeOptions *apiextensionsv1.JSON `json:"customRuntimeOptions,omitempty"`

	// Secrets is the secrets of the function
	// +optional
	Secrets map[string]FunctionSecretKeyRef `json:"secrets,omitempty"`

	// MaxPendingAsyncRequests is the max pending async requests of the function
	// +optional
	MaxPendingAsyncRequests int `json:"maxPendingAsyncRequests,omitempty"`

	// ExposePulsarAdminClientEnabled is the flag to indicate whether the function should expose pulsar admin client
	// +optional
	ExposePulsarAdminClientEnabled bool `json:"exposePulsarAdminClientEnabled"`

	// SkipToLatest is the flag to indicate whether the function should skip to latest
	// +optional
	SkipToLatest bool `json:"skipToLatest"`

	// SubscriptionPosition is the subscription position of the function
	// +optional
	SubscriptionPosition string `json:"subscriptionPosition,omitempty"`

	// ConnectionRef is the reference to the PulsarConnection resource
	ConnectionRef corev1.LocalObjectReference `json:"connectionRef"`

	// +kubebuilder:validation:Enum=CleanUpAfterDeletion;KeepAfterDeletion
	// +optional
	LifecyclePolicy PulsarResourceLifeCyclePolicy `json:"lifecyclePolicy,omitempty"`
}

PulsarFunctionSpec defines the desired state of PulsarFunction

func (*PulsarFunctionSpec) DeepCopy added in v0.5.0

func (in *PulsarFunctionSpec) DeepCopy() *PulsarFunctionSpec

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

func (*PulsarFunctionSpec) DeepCopyInto added in v0.5.0

func (in *PulsarFunctionSpec) DeepCopyInto(out *PulsarFunctionSpec)

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

type PulsarFunctionStatus added in v0.5.0

type PulsarFunctionStatus struct {

	// ObservedGeneration is the most recent generation observed for this resource.
	// It corresponds to the metadata generation, which is updated on mutation by the API Server.
	// +optional
	ObservedGeneration int64 `json:"observedGeneration,omitempty"`

	// Represents the observations of a connection's current state.
	// +patchMergeKey=type
	// +patchStrategy=merge
	// +listType=map
	// +listMapKey=type
	// +optional
	Conditions []metav1.Condition `json:"conditions,omitempty" patchStrategy:"merge" patchMergeKey:"type"`
}

PulsarFunctionStatus defines the observed state of PulsarFunction

func (*PulsarFunctionStatus) DeepCopy added in v0.5.0

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

func (*PulsarFunctionStatus) DeepCopyInto added in v0.5.0

func (in *PulsarFunctionStatus) DeepCopyInto(out *PulsarFunctionStatus)

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

type PulsarGeoReplication added in v0.3.0

type PulsarGeoReplication struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata,omitempty"`

	Spec   PulsarGeoReplicationSpec   `json:"spec,omitempty"`
	Status PulsarGeoReplicationStatus `json:"status,omitempty"`
}

PulsarGeoReplication is the Schema for the pulsargeoreplications API

func (*PulsarGeoReplication) DeepCopy added in v0.3.0

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

func (*PulsarGeoReplication) DeepCopyInto added in v0.3.0

func (in *PulsarGeoReplication) DeepCopyInto(out *PulsarGeoReplication)

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

func (*PulsarGeoReplication) DeepCopyObject added in v0.3.0

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

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

type PulsarGeoReplicationList added in v0.3.0

type PulsarGeoReplicationList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`
	Items           []PulsarGeoReplication `json:"items"`
}

PulsarGeoReplicationList contains a list of PulsarGeoReplication

func (*PulsarGeoReplicationList) DeepCopy added in v0.3.0

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

func (*PulsarGeoReplicationList) DeepCopyInto added in v0.3.0

func (in *PulsarGeoReplicationList) DeepCopyInto(out *PulsarGeoReplicationList)

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

func (*PulsarGeoReplicationList) DeepCopyObject added in v0.3.0

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

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

type PulsarGeoReplicationSpec added in v0.3.0

type PulsarGeoReplicationSpec struct {

	// ConnectionRef is the reference to the source PulsarConnection
	ConnectionRef corev1.LocalObjectReference `json:"connectionRef"`

	// DestinationConnectionRef is the connection reference to the remote cluster
	DestinationConnectionRef corev1.LocalObjectReference `json:"destinationConnectionRef"`

	// +kubebuilder:validation:Enum=CleanUpAfterDeletion;KeepAfterDeletion
	// +optional
	LifecyclePolicy PulsarResourceLifeCyclePolicy `json:"lifecyclePolicy,omitempty"`
}

PulsarGeoReplicationSpec defines the desired state of PulsarGeoReplication

func (*PulsarGeoReplicationSpec) DeepCopy added in v0.3.0

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

func (*PulsarGeoReplicationSpec) DeepCopyInto added in v0.3.0

func (in *PulsarGeoReplicationSpec) DeepCopyInto(out *PulsarGeoReplicationSpec)

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

type PulsarGeoReplicationStatus added in v0.3.0

type PulsarGeoReplicationStatus struct {

	// ObservedGeneration is the most recent generation observed for this resource.
	// It corresponds to the metadata generation, which is updated on mutation by the API Server.
	// +optional
	ObservedGeneration int64 `json:"observedGeneration,omitempty"`

	// Conditions Represents the observations of a connection's current state.
	// +patchMergeKey=type
	// +patchStrategy=merge
	// +listType=map
	// +listMapKey=type
	// +optional
	Conditions []metav1.Condition `json:"conditions,omitempty" patchStrategy:"merge" patchMergeKey:"type"`
}

PulsarGeoReplicationStatus defines the observed state of PulsarGeoReplication

func (*PulsarGeoReplicationStatus) DeepCopy added in v0.3.0

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

func (*PulsarGeoReplicationStatus) DeepCopyInto added in v0.3.0

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

type PulsarNSIsolationPolicy added in v0.6.3

type PulsarNSIsolationPolicy struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata,omitempty"`

	Spec   PulsarNSIsolationPolicySpec   `json:"spec,omitempty"`
	Status PulsarNSIsolationPolicyStatus `json:"status,omitempty"`
}

PulsarNSIsolationPolicy is the Schema for the pulsar ns-isolation-policy API It represents a Pulsar NsIsolationPolicy in the Kubernetes cluster and includes both the desired state (Spec) and the observed state (Status) of the policy.

func (*PulsarNSIsolationPolicy) DeepCopy added in v0.6.3

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

func (*PulsarNSIsolationPolicy) DeepCopyInto added in v0.6.3

func (in *PulsarNSIsolationPolicy) DeepCopyInto(out *PulsarNSIsolationPolicy)

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

func (*PulsarNSIsolationPolicy) DeepCopyObject added in v0.6.3

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

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

type PulsarNSIsolationPolicyList added in v0.6.3

type PulsarNSIsolationPolicyList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`
	Items           []PulsarNSIsolationPolicy `json:"items"`
}

PulsarNSIsolationPolicyList contains a list of PulsarNSIsolationPolicy resources. It is used by the Kubernetes API to return multiple PulsarNSIsolationPolicy objects.

func (*PulsarNSIsolationPolicyList) DeepCopy added in v0.6.3

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

func (*PulsarNSIsolationPolicyList) DeepCopyInto added in v0.6.3

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

func (*PulsarNSIsolationPolicyList) DeepCopyObject added in v0.6.3

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

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

type PulsarNSIsolationPolicySpec added in v0.6.3

type PulsarNSIsolationPolicySpec struct {

	// Name is the policy name
	// +kubebuilder:validation:Required
	Name string `json:"name"`

	// Cluster is the name of the Pulsar Cluster
	// +kubebuilder:validation:Required
	Cluster string `json:"cluster"`

	// ConnectionRef is the reference to the PulsarConnection resource
	// used to connect to the Pulsar cluster for this ns-isolation-policy.
	ConnectionRef corev1.LocalObjectReference `json:"connectionRef"`

	// Namespaces namespaces-regex list
	// +kubebuilder:validation:Required
	Namespaces []string `json:"namespaces"`

	// Primary primary-broker-regex list
	// +kubebuilder:validation:Required
	Primary []string `json:"primary"`

	// Secondary secondary-broker-regex list, optional
	// +optional
	Secondary []string `json:"secondary,omitempty"`

	// AutoFailoverPolicyType auto failover policy type name, only support min_available now
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:Enum=min_available
	AutoFailoverPolicyType AutoFailoverPolicyType `json:"autoFailoverPolicyType"`

	// AutoFailoverPolicyParams auto failover policy parameters
	// +kubebuilder:validation:Required
	AutoFailoverPolicyParams map[string]string `json:"autoFailoverPolicyParams"`
}

PulsarNSIsolationPolicySpec defines the desired state of a Pulsar namespace isolation policy. It corresponds to the configuration options available in Pulsar's namespaceIsolationPolicies admin API.

func (*PulsarNSIsolationPolicySpec) DeepCopy added in v0.6.3

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

func (*PulsarNSIsolationPolicySpec) DeepCopyInto added in v0.6.3

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

type PulsarNSIsolationPolicyStatus added in v0.6.3

type PulsarNSIsolationPolicyStatus struct {

	// ObservedGeneration is the most recent generation observed for this resource.
	// It corresponds to the metadata generation, which is updated on mutation by the API Server.
	// This field is used to track whether the controller has processed the latest changes.
	// +optional
	ObservedGeneration int64 `json:"observedGeneration,omitempty"`

	// Conditions represent the latest available observations of the ns-isolation-policy's current state.
	// It follows the Kubernetes conventions for condition types and status.
	// The "Ready" condition type is typically used to indicate the overall status of the ns-isolation-policy.
	// +patchMergeKey=type
	// +patchStrategy=merge
	// +listType=map
	// +listMapKey=type
	// +optional
	Conditions []metav1.Condition `json:"conditions,omitempty" patchStrategy:"merge" patchMergeKey:"type"`
}

PulsarNSIsolationPolicyStatus defines the observed state of PulsarNSIsolationPolicy

func (*PulsarNSIsolationPolicyStatus) DeepCopy added in v0.6.3

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

func (*PulsarNSIsolationPolicyStatus) DeepCopyInto added in v0.6.3

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

type PulsarNamespace

type PulsarNamespace struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata,omitempty"`

	Spec   PulsarNamespaceSpec   `json:"spec,omitempty"`
	Status PulsarNamespaceStatus `json:"status,omitempty"`
}

PulsarNamespace is the Schema for the pulsarnamespaces API It represents a Pulsar namespace in the Kubernetes cluster and includes both the desired state (Spec) and the observed state (Status) of the namespace.

func (*PulsarNamespace) DeepCopy

func (in *PulsarNamespace) DeepCopy() *PulsarNamespace

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

func (*PulsarNamespace) DeepCopyInto

func (in *PulsarNamespace) DeepCopyInto(out *PulsarNamespace)

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

func (*PulsarNamespace) DeepCopyObject

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

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

type PulsarNamespaceList

type PulsarNamespaceList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`
	Items           []PulsarNamespace `json:"items"`
}

PulsarNamespaceList contains a list of PulsarNamespace resources. It is used by the Kubernetes API to return multiple PulsarNamespace objects.

func (*PulsarNamespaceList) DeepCopy

func (in *PulsarNamespaceList) DeepCopy() *PulsarNamespaceList

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

func (*PulsarNamespaceList) DeepCopyInto

func (in *PulsarNamespaceList) DeepCopyInto(out *PulsarNamespaceList)

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

func (*PulsarNamespaceList) DeepCopyObject

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

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

type PulsarNamespaceSpec

type PulsarNamespaceSpec struct {

	// Name is the fully qualified namespace name in the format "tenant/namespace".
	Name string `json:"name"`

	// Bundles specifies the number of bundles to split the namespace into.
	// This affects how the namespace is distributed across the cluster.
	Bundles *int32 `json:"bundles,omitempty"`

	// ConnectionRef is the reference to the PulsarConnection resource
	// used to connect to the Pulsar cluster for this namespace.
	ConnectionRef corev1.LocalObjectReference `json:"connectionRef"`

	// LifecyclePolicy determines whether to keep or delete the Pulsar namespace
	// when the Kubernetes resource is deleted.
	// +kubebuilder:validation:Enum=CleanUpAfterDeletion;KeepAfterDeletion
	// +optional
	LifecyclePolicy PulsarResourceLifeCyclePolicy `json:"lifecyclePolicy,omitempty"`

	// MaxProducersPerTopic sets the maximum number of producers allowed on a single topic in the namespace.
	// +optional
	MaxProducersPerTopic *int32 `json:"maxProducersPerTopic,omitempty"`

	// MaxConsumersPerTopic sets the maximum number of consumers allowed on a single topic in the namespace.
	// +optional
	MaxConsumersPerTopic *int32 `json:"maxConsumersPerTopic,omitempty"`

	// MaxConsumersPerSubscription sets the maximum number of consumers allowed on a single subscription in the namespace.
	// +optional
	MaxConsumersPerSubscription *int32 `json:"maxConsumersPerSubscription,omitempty"`

	// MessageTTL specifies the Time to Live (TTL) for messages in the namespace.
	// Messages older than this TTL will be automatically marked as consumed.
	// +optional
	MessageTTL *utils.Duration `json:"messageTTL,omitempty"`

	// RetentionTime specifies the minimum time to retain messages in the namespace.
	// Should be set in conjunction with RetentionSize for effective retention policy.
	// Retention Quota must exceed configured backlog quota for namespace
	// +optional
	RetentionTime *utils.Duration `json:"retentionTime,omitempty"`

	// RetentionSize specifies the maximum size of backlog retained in the namespace.
	// Should be set in conjunction with RetentionTime for effective retention policy.
	// +optional
	RetentionSize *resource.Quantity `json:"retentionSize,omitempty"`

	// BacklogQuotaLimitTime specifies the time limit for message backlog.
	// Messages older than this limit will be removed or handled according to the retention policy.
	// +optional
	BacklogQuotaLimitTime *utils.Duration `json:"backlogQuotaLimitTime,omitempty"`

	// BacklogQuotaLimitSize specifies the size limit for message backlog.
	// When the limit is reached, older messages will be removed or handled according to the retention policy.
	// +optional
	BacklogQuotaLimitSize *resource.Quantity `json:"backlogQuotaLimitSize,omitempty"`

	// BacklogQuotaRetentionPolicy specifies the retention policy for messages when backlog quota is exceeded.
	// Valid values are "producer_request_hold", "producer_exception", or "consumer_backlog_eviction".
	// +optional
	BacklogQuotaRetentionPolicy *string `json:"backlogQuotaRetentionPolicy,omitempty"`

	// BacklogQuotaType controls how the backlog quota is enforced.
	// "destination_storage" limits backlog by size (in bytes), while "message_age" limits by time.
	// +kubebuilder:validation:Enum=destination_storage;message_age
	// +optional
	BacklogQuotaType *string `json:"backlogQuotaType,omitempty"`

	// OffloadThresholdTime specifies the time limit for message offloading.
	// Messages older than this limit will be offloaded to the tiered storage.
	// +optional
	OffloadThresholdTime *utils.Duration `json:"offloadThresholdTime,omitempty"`

	// OffloadThresholdSize specifies the size limit for message offloading.
	// When the limit is reached, older messages will be offloaded to the tiered storage.
	// +optional
	OffloadThresholdSize *resource.Quantity `json:"offloadThresholdSize,omitempty"`

	// GeoReplicationRefs is a list of references to PulsarGeoReplication resources,
	// used to configure geo-replication for this namespace.
	// This is **ONLY** used when you are using PulsarGeoReplication for setting up geo-replication
	// between two Pulsar instances.
	// Please use `ReplicationClusters` instead if you are replicating clusters within the same Pulsar instance.
	// +optional
	GeoReplicationRefs []*corev1.LocalObjectReference `json:"geoReplicationRefs,omitempty"`

	// ReplicationClusters is the list of clusters to which the namespace is replicated
	// This is **ONLY** used if you are replicating clusters within the same Pulsar instance.
	// Please use `GeoReplicationRefs` instead if you are setting up geo-replication
	// between two Pulsar instances.
	// +optional
	ReplicationClusters []string `json:"replicationClusters,omitempty"`

	// Deduplication controls whether to enable message deduplication for the namespace.
	// +optional
	Deduplication *bool `json:"deduplication,omitempty"`

	// BookieAffinityGroup is the name of the namespace isolation policy to apply to the namespace.
	BookieAffinityGroup *BookieAffinityGroupData `json:"bookieAffinityGroup,omitempty"`
}

PulsarNamespaceSpec defines the desired state of a Pulsar namespace. It corresponds to the configuration options available in Pulsar's namespace admin API.

func (*PulsarNamespaceSpec) DeepCopy

func (in *PulsarNamespaceSpec) DeepCopy() *PulsarNamespaceSpec

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

func (*PulsarNamespaceSpec) DeepCopyInto

func (in *PulsarNamespaceSpec) DeepCopyInto(out *PulsarNamespaceSpec)

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

type PulsarNamespaceStatus

type PulsarNamespaceStatus struct {

	// ObservedGeneration is the most recent generation observed for this resource.
	// It corresponds to the metadata generation, which is updated on mutation by the API Server.
	// This field is used to track whether the controller has processed the latest changes.
	// +optional
	ObservedGeneration int64 `json:"observedGeneration,omitempty"`

	// Conditions represent the latest available observations of the namespace's current state.
	// It follows the Kubernetes conventions for condition types and status.
	// The "Ready" condition type is typically used to indicate the overall status of the namespace.
	// +patchMergeKey=type
	// +patchStrategy=merge
	// +listType=map
	// +listMapKey=type
	// +optional
	Conditions []metav1.Condition `json:"conditions,omitempty" patchStrategy:"merge" patchMergeKey:"type"`

	// GeoReplicationEnabled indicates whether geo-replication between two Pulsar instances (via PulsarGeoReplication)
	// is enabled for the namespace
	// +optional
	GeoReplicationEnabled bool `json:"geoReplicationEnabled,omitempty"`
}

PulsarNamespaceStatus defines the observed state of PulsarNamespace

func (*PulsarNamespaceStatus) DeepCopy

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

func (*PulsarNamespaceStatus) DeepCopyInto

func (in *PulsarNamespaceStatus) DeepCopyInto(out *PulsarNamespaceStatus)

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

type PulsarPackage added in v0.5.0

type PulsarPackage struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata,omitempty"`

	Spec   PulsarPackageSpec   `json:"spec,omitempty"`
	Status PulsarPackageStatus `json:"status,omitempty"`
}

PulsarPackage is the Schema for the pulsar package management service's package API

func (*PulsarPackage) DeepCopy added in v0.5.0

func (in *PulsarPackage) DeepCopy() *PulsarPackage

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

func (*PulsarPackage) DeepCopyInto added in v0.5.0

func (in *PulsarPackage) DeepCopyInto(out *PulsarPackage)

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

func (*PulsarPackage) DeepCopyObject added in v0.5.0

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

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

type PulsarPackageList added in v0.5.0

type PulsarPackageList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`
	Items           []PulsarPackage `json:"items"`
}

PulsarPackageList contains a list of PulsarPackage

func (*PulsarPackageList) DeepCopy added in v0.5.0

func (in *PulsarPackageList) DeepCopy() *PulsarPackageList

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

func (*PulsarPackageList) DeepCopyInto added in v0.5.0

func (in *PulsarPackageList) DeepCopyInto(out *PulsarPackageList)

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

func (*PulsarPackageList) DeepCopyObject added in v0.5.0

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

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

type PulsarPackageSpec added in v0.5.0

type PulsarPackageSpec struct {

	// PackageURL is the Pulsar Package URL, in format of type://tenant/namespace/package@version
	// +kubebuilder:validation:Required
	PackageURL string `json:"packageURL"`

	// FileURL is the download-able URL of the package from http or https protocol
	// +kubebuilder:validation:Required
	FileURL string `json:"fileURL"`

	// ConnectionRef is the reference to the PulsarConnection resource
	ConnectionRef corev1.LocalObjectReference `json:"connectionRef"`

	// +optional
	Description string `json:"description,omitempty"`

	// +optional
	Contact string `json:"contact,omitempty"`

	// +optional
	Properties map[string]string `json:"properties,omitempty"`

	// +kubebuilder:validation:Enum=CleanUpAfterDeletion;KeepAfterDeletion
	// +optional
	LifecyclePolicy PulsarResourceLifeCyclePolicy `json:"lifecyclePolicy,omitempty"`
}

PulsarPackageSpec defines the desired state of PulsarPackage

func (*PulsarPackageSpec) DeepCopy added in v0.5.0

func (in *PulsarPackageSpec) DeepCopy() *PulsarPackageSpec

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

func (*PulsarPackageSpec) DeepCopyInto added in v0.5.0

func (in *PulsarPackageSpec) DeepCopyInto(out *PulsarPackageSpec)

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

type PulsarPackageStatus added in v0.5.0

type PulsarPackageStatus struct {

	// ObservedGeneration is the most recent generation observed for this resource.
	// It corresponds to the metadata generation, which is updated on mutation by the API Server.
	// +optional
	ObservedGeneration int64 `json:"observedGeneration,omitempty"`

	// Represents the observations of a connection's current state.
	// +patchMergeKey=type
	// +patchStrategy=merge
	// +listType=map
	// +listMapKey=type
	// +optional
	Conditions []metav1.Condition `json:"conditions,omitempty" patchStrategy:"merge" patchMergeKey:"type"`
}

PulsarPackageStatus defines the observed state of PulsarPackage

func (*PulsarPackageStatus) DeepCopy added in v0.5.0

func (in *PulsarPackageStatus) DeepCopy() *PulsarPackageStatus

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

func (*PulsarPackageStatus) DeepCopyInto added in v0.5.0

func (in *PulsarPackageStatus) DeepCopyInto(out *PulsarPackageStatus)

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

type PulsarPermission

type PulsarPermission struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata,omitempty"`

	Spec   PulsarPermissionSpec   `json:"spec,omitempty"`
	Status PulsarPermissionStatus `json:"status,omitempty"`
}

PulsarPermission is the Schema for the pulsarpermissions API. It represents a set of permissions granted to specific roles for a Pulsar resource (namespace or topic).

func (*PulsarPermission) DeepCopy

func (in *PulsarPermission) DeepCopy() *PulsarPermission

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

func (*PulsarPermission) DeepCopyInto

func (in *PulsarPermission) DeepCopyInto(out *PulsarPermission)

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

func (*PulsarPermission) DeepCopyObject

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

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

type PulsarPermissionList

type PulsarPermissionList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`
	Items           []PulsarPermission `json:"items"`
}

PulsarPermissionList contains a list of PulsarPermission resources. It is used by the Kubernetes API to return multiple PulsarPermission objects.

func (*PulsarPermissionList) DeepCopy

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

func (*PulsarPermissionList) DeepCopyInto

func (in *PulsarPermissionList) DeepCopyInto(out *PulsarPermissionList)

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

func (*PulsarPermissionList) DeepCopyObject

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

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

type PulsarPermissionSpec

type PulsarPermissionSpec struct {

	// ConnectionRef is the reference to the PulsarConnection resource
	// used to connect to the Pulsar cluster for this permission.
	ConnectionRef corev1.LocalObjectReference `json:"connectionRef"`

	// ResourceName is the name of the target resource (namespace or topic)
	// to which the permissions will be granted.
	ResourceName string `json:"resourceName"`

	// ResourceType indicates whether the permission is for a namespace or a topic.
	// +kubebuilder:validation:Enum=namespace;topic
	ResoureType PulsarResourceType `json:"resourceType"`

	// Roles is a list of role names that will be granted the specified permissions
	// for the target resource.
	Roles []string `json:"roles"`

	// Actions is a list of permissions to grant.
	// Valid options include "produce", "consume", and "functions".
	// +optional
	Actions []string `json:"actions,omitempty"`

	// LifecyclePolicy determines how to handle the Pulsar permissions
	// when the PulsarPermission resource is deleted.
	// +optional
	LifecyclePolicy PulsarResourceLifeCyclePolicy `json:"lifecyclePolicy,omitempty"`
}

PulsarPermissionSpec defines the desired state of PulsarPermission. It specifies the configuration for granting permissions to Pulsar resources.

func (*PulsarPermissionSpec) DeepCopy

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

func (*PulsarPermissionSpec) DeepCopyInto

func (in *PulsarPermissionSpec) DeepCopyInto(out *PulsarPermissionSpec)

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

type PulsarPermissionStatus

type PulsarPermissionStatus struct {

	// ObservedGeneration is the most recent generation observed for this resource.
	// It corresponds to the metadata generation, which is updated on mutation by the API Server.
	// This field is used to track whether the controller has processed the latest changes.
	// +optional
	ObservedGeneration int64 `json:"observedGeneration,omitempty"`

	// Conditions represent the latest available observations of the PulsarPermission's current state.
	// It follows the Kubernetes conventions for condition types and status.
	// The "Ready" condition type is typically used to indicate the overall status of the permission configuration.
	// +patchMergeKey=type
	// +patchStrategy=merge
	// +listType=map
	// +listMapKey=type
	// +optional
	Conditions []metav1.Condition `json:"conditions,omitempty" patchStrategy:"merge" patchMergeKey:"type"`
}

PulsarPermissionStatus defines the observed state of PulsarPermission. It provides information about the current status of the Pulsar permission configuration.

func (*PulsarPermissionStatus) DeepCopy

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

func (*PulsarPermissionStatus) DeepCopyInto

func (in *PulsarPermissionStatus) DeepCopyInto(out *PulsarPermissionStatus)

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

type PulsarResourceLifeCyclePolicy

type PulsarResourceLifeCyclePolicy string

PulsarResourceLifeCyclePolicy defines the behavior for managing Pulsar resources when the corresponding custom resource (CR) is deleted from the Kubernetes cluster. This policy allows users to control whether Pulsar resources should be retained or removed from the Pulsar cluster after the CR is deleted.

const (
	// KeepAfterDeletion instructs the operator to retain the Pulsar resource
	// in the Pulsar cluster even after the corresponding CR is deleted from Kubernetes.
	// Use this option when:
	// - You want to preserve data or configurations in Pulsar for backup or future use.
	// - You're performing temporary maintenance on Kubernetes resources without affecting Pulsar.
	// - You need to migrate or recreate Kubernetes resources without losing Pulsar data.
	KeepAfterDeletion PulsarResourceLifeCyclePolicy = "KeepAfterDeletion"

	// CleanUpAfterDeletion instructs the operator to remove the Pulsar resource
	// from the Pulsar cluster when the corresponding CR is deleted from Kubernetes.
	// Use this option when:
	// - You want to ensure complete removal of resources to free up Pulsar cluster capacity.
	// - You're decommissioning services or environments and need to clean up all associated resources.
	// - You want to maintain strict synchronization between Kubernetes and Pulsar resources.
	CleanUpAfterDeletion PulsarResourceLifeCyclePolicy = "CleanUpAfterDeletion"
)

type PulsarResourceType

type PulsarResourceType string

PulsarResourceType indicates the type of Pulsar resource for which permissions can be granted. Currently, it supports namespace and topic level permissions.

const (
	// PulsarResourceTypeNamespace represents a Pulsar namespace resource.
	// Use this when granting permissions at the namespace level.
	PulsarResourceTypeNamespace PulsarResourceType = "namespace"

	// PulsarResourceTypeTopic represents a Pulsar topic resource.
	// Use this when granting permissions at the individual topic level.
	PulsarResourceTypeTopic PulsarResourceType = "topic"
)

type PulsarSink added in v0.5.0

type PulsarSink struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata,omitempty"`

	Spec   PulsarSinkSpec   `json:"spec,omitempty"`
	Status PulsarSinkStatus `json:"status,omitempty"`
}

PulsarSink is the Schema for the pulsar functions API

func (*PulsarSink) DeepCopy added in v0.5.0

func (in *PulsarSink) DeepCopy() *PulsarSink

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

func (*PulsarSink) DeepCopyInto added in v0.5.0

func (in *PulsarSink) DeepCopyInto(out *PulsarSink)

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

func (*PulsarSink) DeepCopyObject added in v0.5.0

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

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

type PulsarSinkList added in v0.5.0

type PulsarSinkList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`
	Items           []PulsarSink `json:"items"`
}

PulsarSinkList contains a list of PulsarSink

func (*PulsarSinkList) DeepCopy added in v0.5.0

func (in *PulsarSinkList) DeepCopy() *PulsarSinkList

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

func (*PulsarSinkList) DeepCopyInto added in v0.5.0

func (in *PulsarSinkList) DeepCopyInto(out *PulsarSinkList)

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

func (*PulsarSinkList) DeepCopyObject added in v0.5.0

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

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

type PulsarSinkSpec added in v0.5.0

type PulsarSinkSpec struct {

	// TopicsPattern is the pattern of topics to consume from Pulsar
	// +optional
	TopicsPattern *string `json:"topicsPattern,omitempty"`

	// Resources is the resource requirements for the PulsarSink
	// +optional
	Resources *Resources `json:"resources,omitempty"`

	// TimeoutMs is the timeout in milliseconds for the PulsarSink
	// +optional
	TimeoutMs *int64 `json:"timeoutMs,omitempty"`

	// CleanupSubscription is the flag to enable or disable the cleanup of subscription
	// +optional
	CleanupSubscription bool `json:"cleanupSubscription,omitempty"`

	// RetainOrdering is the flag to enable or disable the retain ordering
	// +optional
	RetainOrdering bool `json:"retainOrdering,omitempty"`

	// RetainKeyOrdering is the flag to enable or disable the retain key ordering
	// +optional
	RetainKeyOrdering bool `json:"retainKeyOrdering,omitempty"`

	// AutoAck is the flag to enable or disable the auto ack
	// +optional
	AutoAck bool `json:"autoAck,omitempty"`

	// Parallelism is the parallelism of the PulsarSink
	// +optional
	Parallelism int `json:"parallelism,omitempty"`

	// Tenant is the tenant of the PulsarSink
	// +optional
	Tenant string `json:"tenant,omitempty"`

	// Namespace is the namespace of the PulsarSink
	// +optional
	Namespace string `json:"namespace,omitempty"`

	// Name is the name of the PulsarSink
	// +optional
	Name string `json:"name,omitempty"`

	// ClassName is the class name of the PulsarSink
	// +optional
	ClassName string `json:"className,omitempty"`

	// SinkType is the type of the PulsarSink
	// +optional
	SinkType string `json:"sinkType,omitempty"`

	// Archive is the archive of the PulsarSink
	// +optional
	Archive *PackageContentRef `json:"archive,omitempty"`

	// ProcessingGuarantees is the processing guarantees of the PulsarSink
	// +optional
	ProcessingGuarantees string `json:"processingGuarantees,omitempty"`

	// SourceSubscriptionName is the source subscription name of the PulsarSink
	// +optional
	SourceSubscriptionName string `json:"sourceSubscriptionName,omitempty"`

	// SourceSubscriptionPosition is the source subscription position of the PulsarSink
	// +optional
	SourceSubscriptionPosition string `json:"sourceSubscriptionPosition,omitempty"`

	// RuntimeFlags is the runtime flags of the PulsarSink
	// +optional
	RuntimeFlags string `json:"runtimeFlags,omitempty"`

	// Inputs is the list of inputs of the PulsarSink
	// +optional
	Inputs []string `json:"inputs,omitempty"`

	// TopicToSerdeClassName is the map of topic to serde class name of the PulsarSink
	// +optional
	TopicToSerdeClassName map[string]string `json:"topicToSerdeClassName,omitempty"`

	// TopicToSchemaType is the map of topic to schema type of the PulsarSink
	// +optional
	TopicToSchemaType map[string]string `json:"topicToSchemaType,omitempty"`

	// InputSpecs is the map of input specs of the PulsarSink
	// +optional
	InputSpecs map[string]ConsumerConfig `json:"inputSpecs,omitempty"`

	// Configs is the map of configs of the PulsarSink
	// +optional
	Configs *apiextensionsv1.JSON `json:"configs,omitempty"`

	// TopicToSchemaProperties is the map of topic to schema properties of the PulsarSink
	// +optional
	TopicToSchemaProperties map[string]string `json:"topicToSchemaProperties,omitempty"`

	// CustomRuntimeOptions is the custom runtime options of the PulsarSink
	// +optional
	CustomRuntimeOptions *apiextensionsv1.JSON `json:"customRuntimeOptions,omitempty"`

	// Secrets is the map of secrets of the PulsarSink
	// +optional
	Secrets map[string]FunctionSecretKeyRef `json:"secrets,omitempty"`

	// MaxMessageRetries is the max message retries of the PulsarSink
	// +optional
	MaxMessageRetries int `json:"maxMessageRetries,omitempty"`

	// DeadLetterTopic is the dead letter topic of the PulsarSink
	// +optional
	DeadLetterTopic string `json:"deadLetterTopic,omitempty"`

	// NegativeAckRedeliveryDelayMs is the negative ack redelivery delay in milliseconds of the PulsarSink
	// +optional
	NegativeAckRedeliveryDelayMs int64 `json:"negativeAckRedeliveryDelayMs,omitempty"`

	// TransformFunction is the transform function of the PulsarSink
	// +optional
	TransformFunction string `json:"transformFunction,omitempty"`

	// TransformFunctionClassName is the transform function class name of the PulsarSink
	// +optional
	TransformFunctionClassName string `json:"transformFunctionClassName,omitempty"`

	// TransformFunctionConfig is the transform function config of the PulsarSink
	// +optional
	TransformFunctionConfig string `json:"transformFunctionConfig,omitempty"`

	// ConnectionRef is the reference to the PulsarConnection resource
	ConnectionRef corev1.LocalObjectReference `json:"connectionRef"`

	// +kubebuilder:validation:Enum=CleanUpAfterDeletion;KeepAfterDeletion
	// +optional
	LifecyclePolicy PulsarResourceLifeCyclePolicy `json:"lifecyclePolicy,omitempty"`
}

PulsarSinkSpec defines the desired state of PulsarSink

func (*PulsarSinkSpec) DeepCopy added in v0.5.0

func (in *PulsarSinkSpec) DeepCopy() *PulsarSinkSpec

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

func (*PulsarSinkSpec) DeepCopyInto added in v0.5.0

func (in *PulsarSinkSpec) DeepCopyInto(out *PulsarSinkSpec)

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

type PulsarSinkStatus added in v0.5.0

type PulsarSinkStatus struct {

	// ObservedGeneration is the most recent generation observed for this resource.
	// It corresponds to the metadata generation, which is updated on mutation by the API Server.
	// +optional
	ObservedGeneration int64 `json:"observedGeneration,omitempty"`

	// Represents the observations of a connection's current state.
	// +patchMergeKey=type
	// +patchStrategy=merge
	// +listType=map
	// +listMapKey=type
	// +optional
	Conditions []metav1.Condition `json:"conditions,omitempty" patchStrategy:"merge" patchMergeKey:"type"`
}

PulsarSinkStatus defines the observed state of PulsarSink

func (*PulsarSinkStatus) DeepCopy added in v0.5.0

func (in *PulsarSinkStatus) DeepCopy() *PulsarSinkStatus

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

func (*PulsarSinkStatus) DeepCopyInto added in v0.5.0

func (in *PulsarSinkStatus) DeepCopyInto(out *PulsarSinkStatus)

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

type PulsarSource added in v0.5.0

type PulsarSource struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata,omitempty"`

	Spec   PulsarSourceSpec   `json:"spec,omitempty"`
	Status PulsarSourceStatus `json:"status,omitempty"`
}

PulsarSource is the Schema for the pulsar functions API

func (*PulsarSource) DeepCopy added in v0.5.0

func (in *PulsarSource) DeepCopy() *PulsarSource

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

func (*PulsarSource) DeepCopyInto added in v0.5.0

func (in *PulsarSource) DeepCopyInto(out *PulsarSource)

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

func (*PulsarSource) DeepCopyObject added in v0.5.0

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

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

type PulsarSourceList added in v0.5.0

type PulsarSourceList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`
	Items           []PulsarSource `json:"items"`
}

PulsarSourceList contains a list of PulsarSource

func (*PulsarSourceList) DeepCopy added in v0.5.0

func (in *PulsarSourceList) DeepCopy() *PulsarSourceList

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

func (*PulsarSourceList) DeepCopyInto added in v0.5.0

func (in *PulsarSourceList) DeepCopyInto(out *PulsarSourceList)

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

func (*PulsarSourceList) DeepCopyObject added in v0.5.0

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

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

type PulsarSourceSpec added in v0.5.0

type PulsarSourceSpec struct {

	// Tenant is the tenant of the PulsarSource
	// +optional
	Tenant string `json:"tenant,omitempty"`

	// Namespace is the namespace of the PulsarSource
	// +optional
	Namespace string `json:"namespace,omitempty"`

	// Name is the name of the PulsarSource
	// +optional
	Name string `json:"name,omitempty"`

	// ClassName is the class name of the
	// +optional
	ClassName string `json:"className,omitempty"`

	// ProducerConfig is the producer config of the PulsarSource
	// +optional
	ProducerConfig *ProducerConfig `json:"producerConfig,omitempty"`

	// TopicName is the topic name of the PulsarSource
	// +optional
	TopicName string `json:"topicName,omitempty"`

	// SerdeClassName is the serde class name of the PulsarSource
	// +optional
	SerdeClassName string `json:"serdeClassName,omitempty"`

	// SchemaType is the schema type of the PulsarSource
	// +optional
	SchemaType string `json:"schemaType,omitempty"`

	// Configs is the map of configs of the PulsarSource
	// +optional
	Configs *apiextensionsv1.JSON `json:"configs,omitempty"`

	// Secrets is the map of secrets of the PulsarSource
	// +optional
	Secrets map[string]FunctionSecretKeyRef `json:"secrets,omitempty"`

	// Parallelism is the parallelism of the PulsarSource
	// +optional
	Parallelism int `json:"parallelism,omitempty"`

	// ProcessingGuarantees is the processing guarantees of the PulsarSource
	// +optional
	ProcessingGuarantees string `json:"processingGuarantees,omitempty"`

	// Resources is the resources of the PulsarSource
	// +optional
	Resources *Resources `json:"resources,omitempty"`

	// Archive is the archive of the PulsarSource
	// +optional
	Archive *PackageContentRef `json:"archive,omitempty"`

	// RuntimeFlags is the runtime flags of the PulsarSource
	// +optional
	RuntimeFlags string `json:"runtimeFlags,omitempty"`

	// CustomRuntimeOptions is the custom runtime options of the PulsarSource
	// +optional
	CustomRuntimeOptions *apiextensionsv1.JSON `json:"customRuntimeOptions,omitempty"`

	// BatchSourceConfig is the batch source config of the PulsarSource
	// +optional
	BatchSourceConfig *BatchSourceConfig `json:"batchSourceConfig,omitempty"`

	// BatchBuilder is the batch builder of the PulsarSource
	// +optional
	BatchBuilder string `json:"batchBuilder,omitempty"`

	// ConnectionRef is the reference to the PulsarConnection resource
	ConnectionRef corev1.LocalObjectReference `json:"connectionRef"`

	// +kubebuilder:validation:Enum=CleanUpAfterDeletion;KeepAfterDeletion
	// +optional
	LifecyclePolicy PulsarResourceLifeCyclePolicy `json:"lifecyclePolicy,omitempty"`
}

PulsarSourceSpec defines the desired state of PulsarSource

func (*PulsarSourceSpec) DeepCopy added in v0.5.0

func (in *PulsarSourceSpec) DeepCopy() *PulsarSourceSpec

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

func (*PulsarSourceSpec) DeepCopyInto added in v0.5.0

func (in *PulsarSourceSpec) DeepCopyInto(out *PulsarSourceSpec)

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

type PulsarSourceStatus added in v0.5.0

type PulsarSourceStatus struct {

	// ObservedGeneration is the most recent generation observed for this resource.
	// It corresponds to the metadata generation, which is updated on mutation by the API Server.
	// +optional
	ObservedGeneration int64 `json:"observedGeneration,omitempty"`

	// Represents the observations of a connection's current state.
	// +patchMergeKey=type
	// +patchStrategy=merge
	// +listType=map
	// +listMapKey=type
	// +optional
	Conditions []metav1.Condition `json:"conditions,omitempty" patchStrategy:"merge" patchMergeKey:"type"`
}

PulsarSourceStatus defines the observed state of PulsarSource

func (*PulsarSourceStatus) DeepCopy added in v0.5.0

func (in *PulsarSourceStatus) DeepCopy() *PulsarSourceStatus

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

func (*PulsarSourceStatus) DeepCopyInto added in v0.5.0

func (in *PulsarSourceStatus) DeepCopyInto(out *PulsarSourceStatus)

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

type PulsarTenant

type PulsarTenant struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata,omitempty"`

	Spec   PulsarTenantSpec   `json:"spec,omitempty"`
	Status PulsarTenantStatus `json:"status,omitempty"`
}

PulsarTenant is the Schema for the pulsartenants API

func (*PulsarTenant) DeepCopy

func (in *PulsarTenant) DeepCopy() *PulsarTenant

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

func (*PulsarTenant) DeepCopyInto

func (in *PulsarTenant) DeepCopyInto(out *PulsarTenant)

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

func (*PulsarTenant) DeepCopyObject

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

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

type PulsarTenantList

type PulsarTenantList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`
	Items           []PulsarTenant `json:"items"`
}

PulsarTenantList contains a list of PulsarTenant

func (*PulsarTenantList) DeepCopy

func (in *PulsarTenantList) DeepCopy() *PulsarTenantList

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

func (*PulsarTenantList) DeepCopyInto

func (in *PulsarTenantList) DeepCopyInto(out *PulsarTenantList)

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

func (*PulsarTenantList) DeepCopyObject

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

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

type PulsarTenantSpec

type PulsarTenantSpec struct {

	// Name is the tenant name.
	// This field is required and must be unique within the Pulsar cluster.
	Name string `json:"name"`

	// ConnectionRef is the reference to the PulsarConnection resource
	// used to connect to the Pulsar cluster for this tenant.
	ConnectionRef corev1.LocalObjectReference `json:"connectionRef"`

	// AdminRoles is a list of roles that have administrative privileges for this tenant.
	// These roles can perform actions like creating namespaces, topics, and managing permissions.
	// +optional
	AdminRoles []string `json:"adminRoles,omitempty"`

	// AllowedClusters is a list of clusters that this tenant is allowed to access.
	// This field is optional and can be used to restrict the clusters a tenant can connect to.
	// Please use `GeoReplicationRefs` instead if you are setting up geo-replication
	// between multiple Pulsar instances.
	// +optional
	AllowedClusters []string `json:"allowedClusters,omitempty"`

	// LifecyclePolicy determines whether to keep or delete the Pulsar tenant
	// when the Kubernetes resource is deleted.
	// +kubebuilder:validation:Enum=CleanUpAfterDeletion;KeepAfterDeletion
	// +optional
	LifecyclePolicy PulsarResourceLifeCyclePolicy `json:"lifecyclePolicy,omitempty"`

	// GeoReplicationRefs is a list of references to PulsarGeoReplication resources,
	// used to configure geo-replication for this tenant across multiple Pulsar instances.
	// This is **ONLY** used when you are using PulsarGeoReplication for setting up geo-replication
	// between multiple Pulsar instances.
	// Please use `AllowedClusters` instead if you are allowing a tenant to be available within
	// specific clusters in a same Pulsar instance.
	// +optional
	GeoReplicationRefs []*corev1.LocalObjectReference `json:"geoReplicationRefs,omitempty"`
}

PulsarTenantSpec defines the desired state of PulsarTenant. It corresponds to the configuration options available in Pulsar's tenant admin API.

func (*PulsarTenantSpec) DeepCopy

func (in *PulsarTenantSpec) DeepCopy() *PulsarTenantSpec

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

func (*PulsarTenantSpec) DeepCopyInto

func (in *PulsarTenantSpec) DeepCopyInto(out *PulsarTenantSpec)

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

type PulsarTenantStatus

type PulsarTenantStatus struct {

	// ObservedGeneration is the most recent generation observed for this resource.
	// It corresponds to the metadata generation, which is updated on mutation by the API Server.
	// This field is used to track whether the controller has processed the latest changes.
	// +optional
	ObservedGeneration int64 `json:"observedGeneration,omitempty"`

	// Conditions represent the latest available observations of the PulsarTenant's current state.
	// It follows the Kubernetes conventions for condition types and status.
	// The "Ready" condition type is typically used to indicate the overall status of the tenant.
	// Other condition types may be used to provide more detailed status information.
	// +patchMergeKey=type
	// +patchStrategy=merge
	// +listType=map
	// +listMapKey=type
	// +optional
	Conditions []metav1.Condition `json:"conditions,omitempty" patchStrategy:"merge" patchMergeKey:"type"`
}

PulsarTenantStatus defines the observed state of PulsarTenant. It contains information about the current state of the Pulsar tenant.

func (*PulsarTenantStatus) DeepCopy

func (in *PulsarTenantStatus) DeepCopy() *PulsarTenantStatus

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

func (*PulsarTenantStatus) DeepCopyInto

func (in *PulsarTenantStatus) DeepCopyInto(out *PulsarTenantStatus)

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

type PulsarTopic

type PulsarTopic struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata,omitempty"`

	Spec   PulsarTopicSpec   `json:"spec,omitempty"`
	Status PulsarTopicStatus `json:"status,omitempty"`
}

PulsarTopic is the Schema for the pulsartopics API It represents a Pulsar topic in the Kubernetes cluster and includes both the desired state (Spec) and the observed state (Status) of the topic.

func (*PulsarTopic) DeepCopy

func (in *PulsarTopic) DeepCopy() *PulsarTopic

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

func (*PulsarTopic) DeepCopyInto

func (in *PulsarTopic) DeepCopyInto(out *PulsarTopic)

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

func (*PulsarTopic) DeepCopyObject

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

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

type PulsarTopicList

type PulsarTopicList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`
	Items           []PulsarTopic `json:"items"`
}

PulsarTopicList contains a list of PulsarTopic resources. It is used by the Kubernetes API to return multiple PulsarTopic objects.

func (*PulsarTopicList) DeepCopy

func (in *PulsarTopicList) DeepCopy() *PulsarTopicList

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

func (*PulsarTopicList) DeepCopyInto

func (in *PulsarTopicList) DeepCopyInto(out *PulsarTopicList)

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

func (*PulsarTopicList) DeepCopyObject

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

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

type PulsarTopicSpec

type PulsarTopicSpec struct {

	// Name is the topic name
	Name string `json:"name"`

	// Persistent determines if the topic is persistent (true) or non-persistent (false).
	// Defaults to true if not specified.
	// +kubebuilder:default=true
	// +optional
	Persistent *bool `json:"persistent,omitempty"`

	// Partitions specifies the number of partitions for a partitioned topic.
	// Set to 0 for a non-partitioned topic.
	// +kubebuilder:default=0
	// +optional
	Partitions *int32 `json:"partitions,omitempty"`

	// ConnectionRef is the reference to the PulsarConnection resource
	// used to connect to the Pulsar cluster for this topic.
	ConnectionRef corev1.LocalObjectReference `json:"connectionRef"`

	// LifecyclePolicy determines whether to keep or delete the Pulsar topic
	// when the Kubernetes resource is deleted.
	// +kubebuilder:validation:Enum=CleanUpAfterDeletion;KeepAfterDeletion
	// +optional
	LifecyclePolicy PulsarResourceLifeCyclePolicy `json:"lifecyclePolicy,omitempty"`

	// MaxProducers sets the maximum number of producers allowed on the topic.
	// +optional
	MaxProducers *int32 `json:"maxProducers,omitempty"`

	// MaxConsumers sets the maximum number of consumers allowed on the topic.
	// +optional
	MaxConsumers *int32 `json:"maxConsumers,omitempty"`

	// MessageTTL specifies the Time to Live (TTL) for messages on the topic.
	// Messages older than this TTL will be automatically marked as deleted.
	// +optional
	MessageTTL *utils.Duration `json:"messageTTL,omitempty"`

	// MaxUnAckedMessagesPerConsumer sets the maximum number of unacknowledged
	// messages allowed for a consumer before it's blocked from receiving more messages.
	// +optional
	MaxUnAckedMessagesPerConsumer *int32 `json:"maxUnAckedMessagesPerConsumer,omitempty"`

	// MaxUnAckedMessagesPerSubscription sets the maximum number of unacknowledged
	// messages allowed for a subscription before it's blocked from receiving more messages.
	// +optional
	MaxUnAckedMessagesPerSubscription *int32 `json:"maxUnAckedMessagesPerSubscription,omitempty"`

	// RetentionTime specifies the minimum time to retain messages on the topic.
	// Should be set in conjunction with RetentionSize for effective retention policy.
	// Retention Quota must exceed configured backlog quota for topic
	// +optional
	RetentionTime *utils.Duration `json:"retentionTime,omitempty"`

	// RetentionSize specifies the maximum size of backlog retained on the topic.
	// Should be set in conjunction with RetentionTime for effective retention policy.
	// Retention Quota must exceed configured backlog quota for topic
	// +optional
	RetentionSize *resource.Quantity `json:"retentionSize,omitempty"`

	// BacklogQuotaLimitTime specifies the time limit for message backlog.
	// Messages older than this limit will be removed or handled according to the retention policy.
	// +optional
	BacklogQuotaLimitTime *utils.Duration `json:"backlogQuotaLimitTime,omitempty"`

	// BacklogQuotaLimitSize specifies the size limit for message backlog.
	// When the limit is reached, older messages will be removed or handled according to the retention policy.
	// +optional
	BacklogQuotaLimitSize *resource.Quantity `json:"backlogQuotaLimitSize,omitempty"`

	// BacklogQuotaRetentionPolicy specifies the retention policy for messages when backlog quota is exceeded.
	// Valid values are "producer_request_hold", "producer_exception", or "consumer_backlog_eviction".
	// +optional
	BacklogQuotaRetentionPolicy *string `json:"backlogQuotaRetentionPolicy,omitempty"`

	// SchemaInfo defines the schema for the topic, if any.
	// +optional
	SchemaInfo *SchemaInfo `json:"schemaInfo,omitempty"`

	// GeoReplicationRefs is a list of references to PulsarGeoReplication resources,
	// used to configure geo-replication for this topic across multiple Pulsar instances.
	// This is **ONLY** used when you are using PulsarGeoReplication for setting up geo-replication
	// between two Pulsar instances.
	// +optional
	GeoReplicationRefs []*corev1.LocalObjectReference `json:"geoReplicationRefs,omitempty"`

	// ReplicationClusters is the list of clusters to which the topic is replicated
	// This is **ONLY** used if you are replicating clusters within the same Pulsar instance.
	// Please use `GeoReplicationRefs` instead if you are setting up geo-replication
	// between two Pulsar instances.
	// +optional
	ReplicationClusters []string `json:"replicationClusters,omitempty"`

	// Deduplication controls whether to enable message deduplication for the topic.
	// +optional
	Deduplication *bool `json:"deduplication,omitempty"`
}

PulsarTopicSpec defines the desired state of PulsarTopic. It corresponds to the configuration options available in Pulsar's topic admin API.

func (*PulsarTopicSpec) DeepCopy

func (in *PulsarTopicSpec) DeepCopy() *PulsarTopicSpec

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

func (*PulsarTopicSpec) DeepCopyInto

func (in *PulsarTopicSpec) DeepCopyInto(out *PulsarTopicSpec)

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

type PulsarTopicStatus

type PulsarTopicStatus struct {

	// ObservedGeneration is the most recent generation observed for this resource.
	// It corresponds to the metadata generation, which is updated on mutation by the API Server.
	// This field is used to track whether the controller has processed the latest changes.
	// +optional
	ObservedGeneration int64 `json:"observedGeneration,omitempty"`

	// Conditions represent the latest available observations of the PulsarTopic's current state.
	// It follows the Kubernetes conventions for condition types and status.
	// The "Ready" condition type indicates the overall status of the topic.
	// The "PolicyReady" condition type indicates whether the topic policies have been successfully applied.
	// +patchMergeKey=type
	// +patchStrategy=merge
	// +listType=map
	// +listMapKey=type
	// +optional
	Conditions []metav1.Condition `json:"conditions,omitempty" patchStrategy:"merge" patchMergeKey:"type"`

	// GeoReplicationEnabled indicates whether geo-replication is enabled for this topic.
	// This is set to true when GeoReplicationRefs are configured in the spec and successfully applied.
	// +optional
	GeoReplicationEnabled bool `json:"geoReplicationEnabled,omitempty"`
}

PulsarTopicStatus defines the observed state of PulsarTopic

func (*PulsarTopicStatus) DeepCopy

func (in *PulsarTopicStatus) DeepCopy() *PulsarTopicStatus

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

func (*PulsarTopicStatus) DeepCopyInto

func (in *PulsarTopicStatus) DeepCopyInto(out *PulsarTopicStatus)

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

type Resources added in v0.5.0

type Resources struct {
	// +optional
	CPU string `json:"cpu,omitempty"`

	// +optional
	Disk int64 `json:"disk,omitempty"`

	// +optional
	RAM int64 `json:"ram,omitempty"`
}

Resources indicates the resources for the pulsar functions and connectors

func (*Resources) DeepCopy added in v0.5.0

func (in *Resources) DeepCopy() *Resources

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

func (*Resources) DeepCopyInto added in v0.5.0

func (in *Resources) DeepCopyInto(out *Resources)

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

type SchemaInfo added in v0.2.0

type SchemaInfo struct {
	// Type determines how to interpret the schema data.
	// Valid values include: "AVRO", "JSON", "PROTOBUF", "PROTOBUF_NATIVE", "KEY_VALUE", "BYTES", or "NONE".
	// For KEY_VALUE schemas, use the format "KEY_VALUE(KeyType,ValueType)" where KeyType and ValueType
	// are one of the other schema types.
	Type string `json:"type,omitempty"`

	// Schema contains the actual schema definition.
	// For AVRO and JSON schemas, this should be a JSON string of the schema definition.
	// For PROTOBUF schemas, this should be the protobuf definition string.
	// For BYTES or NONE schemas, this field can be empty.
	Schema string `json:"schema,omitempty"`

	// Properties is a map of user-defined properties associated with the schema.
	// These can be used to store additional metadata about the schema.
	Properties map[string]string `json:"properties,omitempty"`
}

SchemaInfo defines the Pulsar Schema for a topic. It is stored and enforced on a per-topic basis and cannot be stored at the namespace or tenant level.

func (*SchemaInfo) DeepCopy added in v0.2.0

func (in *SchemaInfo) DeepCopy() *SchemaInfo

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

func (*SchemaInfo) DeepCopyInto added in v0.2.0

func (in *SchemaInfo) DeepCopyInto(out *SchemaInfo)

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

type SecretKeyRef

type SecretKeyRef struct {
	Name string `json:"name"`
	Key  string `json:"key"`
}

SecretKeyRef indicates a secret name and key

func (*SecretKeyRef) DeepCopy

func (in *SecretKeyRef) DeepCopy() *SecretKeyRef

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

func (*SecretKeyRef) DeepCopyInto

func (in *SecretKeyRef) DeepCopyInto(out *SecretKeyRef)

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

type ValueOrSecretRef

type ValueOrSecretRef struct {
	// +optional
	Value *string `json:"value,omitempty"`

	// +optional
	SecretRef *SecretKeyRef `json:"secretRef,omitempty"`
}

ValueOrSecretRef is a string or a secret reference of the authentication

func (*ValueOrSecretRef) DeepCopy

func (in *ValueOrSecretRef) DeepCopy() *ValueOrSecretRef

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

func (*ValueOrSecretRef) DeepCopyInto

func (in *ValueOrSecretRef) DeepCopyInto(out *ValueOrSecretRef)

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

type WindowConfig added in v0.5.0

type WindowConfig struct {
	// +optional
	WindowLengthCount *int `json:"windowLengthCount,omitempty" yaml:"windowLengthCount"`

	// +optional
	WindowLengthDurationMs *int64 `json:"windowLengthDurationMs,omitempty" yaml:"windowLengthDurationMs"`

	// +optional
	SlidingIntervalCount *int `json:"slidingIntervalCount,omitempty" yaml:"slidingIntervalCount"`

	// +optional
	SlidingIntervalDurationMs *int64 `json:"slidingIntervalDurationMs,omitempty" yaml:"slidingIntervalDurationMs"`

	// +optional
	LateDataTopic *string `json:"lateDataTopic,omitempty" yaml:"lateDataTopic"`

	// +optional
	MaxLagMs *int64 `json:"maxLagMs,omitempty" yaml:"maxLagMs"`

	// +optional
	WatermarkEmitIntervalMs *int64 `json:"watermarkEmitIntervalMs,omitempty" yaml:"watermarkEmitIntervalMs"`

	// +optional
	TimestampExtractorClassName *string `json:"timestampExtractorClassName,omitempty" yaml:"timestampExtractorClassName"`

	// +optional
	ActualWindowFunctionClassName *string `json:"actualWindowFunctionClassName,omitempty" yaml:"actualWindowFunctionClassName"`

	// +optional
	ProcessingGuarantees *string `json:"processingGuarantees,omitempty" yaml:"processingGuarantees"`
}

WindowConfig defines the window config of the function

func (*WindowConfig) DeepCopy added in v0.5.0

func (in *WindowConfig) DeepCopy() *WindowConfig

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

func (*WindowConfig) DeepCopyInto added in v0.5.0

func (in *WindowConfig) DeepCopyInto(out *WindowConfig)

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