Documentation
¶
Overview ¶
Package v1alpha1 contains API Schema definitions for the resource v1alpha1 API group +kubebuilder:object:generate=true +groupName=resource.streamnative.io
Index ¶
- Constants
- Variables
- func IsPulsarResourceReady(instance reconciler.Object) bool
- type BatchSourceConfig
- type ClusterInfo
- type ConsumerConfig
- type CryptoConfig
- type FunctionSecretKeyRef
- type PackageContentRef
- type ProducerConfig
- type PulsarAuthentication
- type PulsarAuthenticationOAuth2
- type PulsarConnection
- type PulsarConnectionList
- type PulsarConnectionSpec
- type PulsarConnectionStatus
- type PulsarFunction
- type PulsarFunctionList
- type PulsarFunctionSpec
- type PulsarFunctionStatus
- type PulsarGeoReplication
- type PulsarGeoReplicationList
- type PulsarGeoReplicationSpec
- type PulsarGeoReplicationStatus
- type PulsarNamespace
- type PulsarNamespaceList
- type PulsarNamespaceSpec
- type PulsarNamespaceStatus
- type PulsarPackage
- type PulsarPackageList
- type PulsarPackageSpec
- type PulsarPackageStatus
- type PulsarPermission
- type PulsarPermissionList
- type PulsarPermissionSpec
- type PulsarPermissionStatus
- type PulsarResourceLifeCyclePolicy
- type PulsarResourceType
- type PulsarSink
- type PulsarSinkList
- type PulsarSinkSpec
- type PulsarSinkStatus
- type PulsarSource
- type PulsarSourceList
- type PulsarSourceSpec
- type PulsarSourceStatus
- type PulsarTenant
- type PulsarTenantList
- type PulsarTenantSpec
- type PulsarTenantStatus
- type PulsarTopic
- type PulsarTopicList
- type PulsarTopicSpec
- type PulsarTopicStatus
- type Resources
- type SchemaInfo
- type SecretKeyRef
- type ValueOrSecretRef
- type WindowConfig
Constants ¶
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 ¶
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 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 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
FunctionSecretKeyRef indicates a secret name and key
func (*FunctionSecretKeyRef) DeepCopy ¶ added in v0.5.4
func (in *FunctionSecretKeyRef) DeepCopy() *FunctionSecretKeyRef
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 ¶
func (in *PulsarAuthentication) DeepCopy() *PulsarAuthentication
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 ¶
func (in *PulsarAuthenticationOAuth2) DeepCopy() *PulsarAuthenticationOAuth2
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PulsarAuthenticationOAuth2.
func (*PulsarAuthenticationOAuth2) DeepCopyInto ¶
func (in *PulsarAuthenticationOAuth2) DeepCopyInto(out *PulsarAuthenticationOAuth2)
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 ¶
func (in *PulsarConnectionList) DeepCopy() *PulsarConnectionList
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 ¶
func (in *PulsarConnectionSpec) DeepCopy() *PulsarConnectionSpec
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 ¶
func (in *PulsarConnectionStatus) DeepCopy() *PulsarConnectionStatus
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
func (in *PulsarFunctionStatus) DeepCopy() *PulsarFunctionStatus
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
func (in *PulsarGeoReplication) DeepCopy() *PulsarGeoReplication
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
func (in *PulsarGeoReplicationList) DeepCopy() *PulsarGeoReplicationList
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
func (in *PulsarGeoReplicationSpec) DeepCopy() *PulsarGeoReplicationSpec
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
func (in *PulsarGeoReplicationStatus) DeepCopy() *PulsarGeoReplicationStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PulsarGeoReplicationStatus.
func (*PulsarGeoReplicationStatus) DeepCopyInto ¶ added in v0.3.0
func (in *PulsarGeoReplicationStatus) DeepCopyInto(out *PulsarGeoReplicationStatus)
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"`
}
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 ¶
func (in *PulsarNamespaceStatus) DeepCopy() *PulsarNamespaceStatus
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 ¶
func (in *PulsarPermissionList) DeepCopy() *PulsarPermissionList
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 ¶
func (in *PulsarPermissionSpec) DeepCopy() *PulsarPermissionSpec
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 ¶
func (in *PulsarPermissionStatus) DeepCopy() *PulsarPermissionStatus
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
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Resources.
func (*Resources) DeepCopyInto ¶ added in v0.5.0
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 ¶
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.