Skip to content

Commit 0175793

Browse files
authored
ListenerClass docs (#466)
* Updated docstring in code * Added page * regenerate charts and cargo fmt * updated text * updated text
1 parent fff4a2e commit 0175793

File tree

4 files changed

+26
-6
lines changed

4 files changed

+26
-6
lines changed

deploy/helm/druid-operator/crds/crds.yaml

+3-1
Original file line numberDiff line numberDiff line change
@@ -8225,13 +8225,15 @@ spec:
82258225
listenerClass:
82268226
default: cluster-internal
82278227
description: |-
8228-
In the future this setting will control, which ListenerClass <https://docs.stackable.tech/home/stable/listener-operator/listenerclass.html> will be used to expose the service. Currently only a subset of the ListenerClasses are supported by choosing the type of the created Services by looking at the ListenerClass name specified, In a future release support for custom ListenerClasses will be introduced without a breaking change:
8228+
This field controls which type of Service the Operator creates for this DruidCluster:
82298229

82308230
* cluster-internal: Use a ClusterIP service
82318231

82328232
* external-unstable: Use a NodePort service
82338233

82348234
* external-stable: Use a LoadBalancer service
8235+
8236+
This is a temporary solution with the goal to keep yaml manifests forward compatible. In the future, this setting will control which ListenerClass <https://docs.stackable.tech/home/stable/listener-operator/listenerclass.html> will be used to expose the service, and ListenerClass names will stay the same, allowing for a non-breaking change.
82358237
enum:
82368238
- cluster-internal
82378239
- external-unstable
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
= Service exposition with ListenerClasses
2+
3+
Apache Druid offers a web UI and an API, both are exposed by the `router` role. Other roles also expose API endpoints such as the `broker` and `coordinator`. The Operator deploys services called `<name>-<role>` (where `<name>` is the name of the DruidCluster and `<role>` is the role for the Service) through which Druid can be reached.
4+
5+
These services can have three different types: `cluster-internal`, `external-unstable` and `external-stable`. Read more about the types in the xref:concepts:service-exposition.adoc[service exposition] documentation at platform level.
6+
7+
This is how the listener class is configured:
8+
9+
[source,yaml]
10+
----
11+
spec:
12+
clusterConfig:
13+
listenerClass: cluster-internal # <1>
14+
----
15+
<1> The default `cluster-internal` setting.
16+
17+
This setting affects all role Services at once.

docs/modules/druid/partials/nav.adoc

+1
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
** xref:druid:getting_started/first_steps.adoc[]
44
* xref:druid:usage-guide/index.adoc[]
55
** xref:druid:usage-guide/pod-placement.adoc[]
6+
** xref:druid:usage-guide/listenerclass.adoc[]
67
** xref:druid:usage-guide/ingestion.adoc[]
78
** xref:druid:usage-guide/deep-storage.adoc[]
89
** xref:druid:usage-guide/resources-and-storage.adoc[]

rust/crd/src/lib.rs

+5-5
Original file line numberDiff line numberDiff line change
@@ -242,17 +242,17 @@ pub struct DruidClusterConfig {
242242
/// These volumes will be mounted into all pods below `/stackable/userdata/{volumename}`
243243
#[serde(default, skip_serializing_if = "Vec::is_empty")]
244244
pub extra_volumes: Vec<Volume>,
245-
/// In the future this setting will control, which ListenerClass <https://docs.stackable.tech/home/stable/listener-operator/listenerclass.html>
246-
/// will be used to expose the service.
247-
/// Currently only a subset of the ListenerClasses are supported by choosing the type of the created Services
248-
/// by looking at the ListenerClass name specified,
249-
/// In a future release support for custom ListenerClasses will be introduced without a breaking change:
245+
/// This field controls which type of Service the Operator creates for this DruidCluster:
250246
///
251247
/// * cluster-internal: Use a ClusterIP service
252248
///
253249
/// * external-unstable: Use a NodePort service
254250
///
255251
/// * external-stable: Use a LoadBalancer service
252+
///
253+
/// This is a temporary solution with the goal to keep yaml manifests forward compatible.
254+
/// In the future, this setting will control which ListenerClass <https://docs.stackable.tech/home/stable/listener-operator/listenerclass.html>
255+
/// will be used to expose the service, and ListenerClass names will stay the same, allowing for a non-breaking change.
256256
#[serde(default)]
257257
pub listener_class: CurrentlySupportedListenerClasses,
258258
}

0 commit comments

Comments
 (0)