pub struct RivvenTopicSpec {
pub cluster_ref: ClusterReference,
pub partitions: i32,
pub replication_factor: i32,
pub config: TopicConfig,
pub acls: Vec<TopicAcl>,
pub delete_on_remove: bool,
pub topic_labels: BTreeMap<String, String>,
}Expand description
RivvenTopic custom resource for declarative topic management
This CRD allows users to define topics as Kubernetes resources, enabling GitOps workflows for topic lifecycle management.
§Example
apiVersion: rivven.hupe1980.github.io/v1alpha1
kind: RivvenTopic
metadata:
name: orders-events
namespace: production
spec:
clusterRef:
name: my-rivven-cluster
partitions: 12
replicationFactor: 3
config:
retentionMs: 604800000 # 7 days
cleanupPolicy: delete
compressionType: lz4
acls:
- principal: "user:order-service"
operations: ["Read", "Write"]
- principal: "user:analytics"
operations: ["Read"]Fields§
§cluster_ref: ClusterReferenceReference to the RivvenCluster this topic belongs to
partitions: i32Number of partitions for the topic (1-10000) Cannot be decreased after creation
replication_factor: i32Replication factor for the topic (1-10) Must not exceed the number of brokers in the cluster
config: TopicConfigTopic configuration parameters
acls: Vec<TopicAcl>Access control list entries for the topic
delete_on_remove: boolWhether to delete the topic from Rivven when the CRD is deleted Default: true (topic is deleted when CRD is removed)
topic_labels: BTreeMap<String, String>Labels to apply to the topic metadata
Trait Implementations§
Source§impl Clone for RivvenTopicSpec
impl Clone for RivvenTopicSpec
Source§fn clone(&self) -> RivvenTopicSpec
fn clone(&self) -> RivvenTopicSpec
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for RivvenTopicSpec
impl Debug for RivvenTopicSpec
Source§impl<'de> Deserialize<'de> for RivvenTopicSpec
impl<'de> Deserialize<'de> for RivvenTopicSpec
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
Source§impl JsonSchema for RivvenTopicSpec
impl JsonSchema for RivvenTopicSpec
Source§fn schema_name() -> String
fn schema_name() -> String
The name of the generated JSON Schema. Read more
Source§fn schema_id() -> Cow<'static, str>
fn schema_id() -> Cow<'static, str>
Returns a string that uniquely identifies the schema produced by this type. Read more
Source§fn json_schema(generator: &mut SchemaGenerator) -> Schema
fn json_schema(generator: &mut SchemaGenerator) -> Schema
Generates a JSON Schema for this type. Read more
Source§fn is_referenceable() -> bool
fn is_referenceable() -> bool
Whether JSON Schemas generated for this type should be re-used where possible using the
$ref keyword. Read moreSource§impl Serialize for RivvenTopicSpec
impl Serialize for RivvenTopicSpec
Source§impl Validate for RivvenTopicSpec
impl Validate for RivvenTopicSpec
Source§impl<'v_a> ValidateArgs<'v_a> for RivvenTopicSpec
impl<'v_a> ValidateArgs<'v_a> for RivvenTopicSpec
Auto Trait Implementations§
impl Freeze for RivvenTopicSpec
impl RefUnwindSafe for RivvenTopicSpec
impl Send for RivvenTopicSpec
impl Sync for RivvenTopicSpec
impl Unpin for RivvenTopicSpec
impl UnwindSafe for RivvenTopicSpec
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more