@@ -61,6 +61,11 @@ pub enum Error {
61
61
FragmentValidationFailure { source : ValidationError } ,
62
62
}
63
63
64
+ /// An HDFS cluster stacklet. This resource is managed by the Stackable operator for Apache Hadoop HDFS.
65
+ /// Find more information on how to use it and the resources that the operator generates in the
66
+ /// [operator documentation](DOCS_BASE_URL_PLACEHOLDER/hdfs/).
67
+ ///
68
+ /// The CRD contains three roles: `nameNodes`, `dataNodes` and `journalNodes`.
64
69
#[ derive( Clone , CustomResource , Debug , Deserialize , JsonSchema , PartialEq , Serialize ) ]
65
70
#[ kube(
66
71
group = "hdfs.stackable.tech" ,
@@ -78,43 +83,63 @@ pub enum Error {
78
83
) ]
79
84
#[ serde( rename_all = "camelCase" ) ]
80
85
pub struct HdfsClusterSpec {
86
+ /// Configuration that applies to all roles and role groups.
87
+ /// This includes settings for authentication, logging and the ZooKeeper cluster to use.
88
+ pub cluster_config : HdfsClusterConfig ,
89
+
90
+ // no doc string - See ProductImage struct
81
91
pub image : ProductImage ,
92
+
93
+ // no doc string - See ClusterOperation struct
94
+ #[ serde( default ) ]
95
+ pub cluster_operation : ClusterOperation ,
96
+
97
+ // no doc string - See Role struct
82
98
#[ serde( default , skip_serializing_if = "Option::is_none" ) ]
83
99
pub name_nodes : Option < Role < NameNodeConfigFragment > > ,
100
+
101
+ // no doc string - See Role struct
84
102
#[ serde( default , skip_serializing_if = "Option::is_none" ) ]
85
103
pub data_nodes : Option < Role < DataNodeConfigFragment > > ,
104
+
105
+ // no doc string - See Role struct
86
106
#[ serde( default , skip_serializing_if = "Option::is_none" ) ]
87
107
pub journal_nodes : Option < Role < JournalNodeConfigFragment > > ,
88
- // Cluster wide configuration
89
- pub cluster_config : HdfsClusterConfig ,
90
- /// Cluster operations like pause reconciliation or cluster stop.
91
- #[ serde( default ) ]
92
- pub cluster_operation : ClusterOperation ,
93
108
}
94
109
95
110
#[ derive( Clone , Debug , Deserialize , Eq , Hash , JsonSchema , PartialEq , Serialize ) ]
96
111
#[ serde( rename_all = "camelCase" ) ]
97
112
pub struct HdfsClusterConfig {
113
+ /// `dfsReplication` is the factor of how many times a file will be replicated to different data nodes.
114
+ /// The default is 3.
115
+ /// You need at least the same amount of data nodes so each file can be replicated correctly, otherwise a warning will be printed.
98
116
#[ serde( default = "default_dfs_replication_factor" ) ]
99
117
pub dfs_replication : u8 ,
100
- /// Name of the Vector aggregator discovery ConfigMap.
118
+
119
+ /// Name of the Vector aggregator [discovery ConfigMap](DOCS_BASE_URL_PLACEHOLDER/concepts/service_discovery).
101
120
/// It must contain the key `ADDRESS` with the address of the Vector aggregator.
121
+ /// Follow the [logging tutorial](DOCS_BASE_URL_PLACEHOLDER/tutorials/logging-vector-aggregator)
122
+ /// to learn how to configure log aggregation with Vector.
102
123
#[ serde( skip_serializing_if = "Option::is_none" ) ]
103
124
pub vector_aggregator_config_map_name : Option < String > ,
104
- /// Name of the ZooKeeper discovery config map.
125
+
126
+ /// Name of the [discovery ConfigMap](DOCS_BASE_URL_PLACEHOLDER/concepts/service_discovery)
127
+ /// for a ZooKeeper cluster.
105
128
pub zookeeper_config_map_name : String ,
129
+
106
130
/// This field controls which type of Service the Operator creates for this HdfsCluster:
107
131
///
108
132
/// * cluster-internal: Use a ClusterIP service
109
133
///
110
134
/// * external-unstable: Use a NodePort service
111
135
///
112
136
/// This is a temporary solution with the goal to keep yaml manifests forward compatible.
113
- /// In the future, this setting will control which ListenerClass <https://docs.stackable.tech/home/stable/ listener-operator/listenerclass.html>
137
+ /// In the future, this setting will control which [ ListenerClass](DOCS_BASE_URL_PLACEHOLDER/ listener-operator/listenerclass.html)
114
138
/// will be used to expose the service, and ListenerClass names will stay the same, allowing for a non-breaking change.
115
139
#[ serde( default ) ]
116
140
pub listener_class : CurrentlySupportedListenerClasses ,
117
- /// Configuration to set up a cluster secured using Kerberos.
141
+
142
+ /// Settings related to user [authentication](DOCS_BASE_URL_PLACEHOLDER/usage-guide/security).
118
143
pub authentication : Option < AuthenticationConfig > ,
119
144
}
120
145
0 commit comments