Skip to content

Commit 61613f1

Browse files
committed
changes in line with decision 51: metrics exposed separately, no extra suffix for node service
1 parent 80a5fcf commit 61613f1

File tree

4 files changed

+44
-56
lines changed

4 files changed

+44
-56
lines changed

rust/operator-binary/src/crd/mod.rs

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -486,7 +486,7 @@ impl v1alpha1::SupersetCluster {
486486
/// The UI will use this group listener so that only one load balancer
487487
/// is needed (per role group).
488488
pub fn group_listener_name(&self, rolegroup: &RoleGroupRef<Self>) -> String {
489-
format!("{rolegroup}-group", rolegroup = rolegroup.object_name())
489+
rolegroup.object_name()
490490
}
491491

492492
pub fn get_role(&self, role: &SupersetRole) -> Option<&Role<v1alpha1::SupersetConfigFragment>> {
@@ -495,11 +495,6 @@ impl v1alpha1::SupersetCluster {
495495
}
496496
}
497497

498-
/// The name of the role-level load-balanced Kubernetes `Service`
499-
pub fn node_role_service_name(&self) -> Option<String> {
500-
self.metadata.name.clone()
501-
}
502-
503498
/// Metadata about a node rolegroup
504499
pub fn node_rolegroup_ref(
505500
&self,

rust/operator-binary/src/superset_controller.rs

Lines changed: 39 additions & 46 deletions
Original file line numberDiff line numberDiff line change
@@ -621,55 +621,48 @@ fn build_node_rolegroup_service(
621621
resolved_product_image: &ResolvedProductImage,
622622
rolegroup: &RoleGroupRef<SupersetCluster>,
623623
) -> Result<Service> {
624-
Ok(Service {
625-
metadata: ObjectMetaBuilder::new()
626-
.name_and_namespace(superset)
627-
.name(rolegroup.object_name())
628-
.ownerreference_from_resource(superset, None, Some(true))
629-
.context(ObjectMissingMetadataForOwnerRefSnafu)?
630-
.with_recommended_labels(build_recommended_labels(
631-
superset,
632-
SUPERSET_CONTROLLER_NAME,
633-
&resolved_product_image.app_version_label,
634-
&rolegroup.role,
635-
&rolegroup.role_group,
636-
))
637-
.context(MetadataBuildSnafu)?
638-
.with_label(Label::try_from(("prometheus.io/scrape", "true")).context(LabelBuildSnafu)?)
639-
.build(),
640-
spec: Some(ServiceSpec {
641-
// Internal communication does not need to be exposed
642-
type_: Some("ClusterIP".to_owned()),
643-
cluster_ip: Some("None".to_owned()),
644-
ports: Some(vec![
645-
ServicePort {
646-
name: Some(APP_PORT_NAME.to_owned()),
647-
port: APP_PORT.into(),
648-
protocol: Some("TCP".to_owned()),
649-
..ServicePort::default()
650-
},
651-
ServicePort {
652-
name: Some(METRICS_PORT_NAME.to_owned()),
653-
port: METRICS_PORT.into(),
654-
protocol: Some("TCP".to_owned()),
655-
..ServicePort::default()
656-
},
657-
]),
658-
selector: Some(
659-
Labels::role_group_selector(
660-
superset,
661-
APP_NAME,
662-
&rolegroup.role,
663-
&rolegroup.role_group,
664-
)
624+
let metadata = ObjectMetaBuilder::new()
625+
.name_and_namespace(superset)
626+
.name(format!("{name}-metrics", name = rolegroup.object_name()))
627+
.ownerreference_from_resource(superset, None, Some(true))
628+
.context(ObjectMissingMetadataForOwnerRefSnafu)?
629+
.with_recommended_labels(build_recommended_labels(
630+
superset,
631+
SUPERSET_CONTROLLER_NAME,
632+
&resolved_product_image.app_version_label,
633+
&rolegroup.role,
634+
&rolegroup.role_group,
635+
))
636+
.context(MetadataBuildSnafu)?
637+
.with_label(Label::try_from(("prometheus.io/scrape", "true")).context(LabelBuildSnafu)?)
638+
.build();
639+
640+
let spec = Some(ServiceSpec {
641+
// Internal communication does not need to be exposed
642+
type_: Some("ClusterIP".to_owned()),
643+
cluster_ip: Some("None".to_owned()),
644+
ports: Some(vec![ServicePort {
645+
name: Some(METRICS_PORT_NAME.to_owned()),
646+
port: METRICS_PORT.into(),
647+
protocol: Some("TCP".to_owned()),
648+
..ServicePort::default()
649+
}]),
650+
selector: Some(
651+
Labels::role_group_selector(superset, APP_NAME, &rolegroup.role, &rolegroup.role_group)
665652
.context(LabelBuildSnafu)?
666653
.into(),
667-
),
668-
publish_not_ready_addresses: Some(true),
669-
..ServiceSpec::default()
670-
}),
654+
),
655+
publish_not_ready_addresses: Some(true),
656+
..ServiceSpec::default()
657+
});
658+
659+
let service = Service {
660+
metadata,
661+
spec,
671662
status: None,
672-
})
663+
};
664+
665+
Ok(service)
673666
}
674667

675668
pub fn build_group_listener(

tests/templates/kuttl/external-access/30-assert.yaml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -43,20 +43,20 @@ status:
4343
apiVersion: v1
4444
kind: Service
4545
metadata:
46-
name: superset-node-cluster-internal-group
46+
name: superset-node-cluster-internal
4747
spec:
4848
type: ClusterIP # cluster-internal
4949
---
5050
apiVersion: v1
5151
kind: Service
5252
metadata:
53-
name: superset-node-default-group
53+
name: superset-node-default
5454
spec:
5555
type: NodePort # external-stable
5656
---
5757
apiVersion: v1
5858
kind: Service
5959
metadata:
60-
name: superset-node-external-unstable-group
60+
name: superset-node-external-unstable
6161
spec:
6262
type: NodePort # external-unstable

tests/templates/kuttl/smoke/metrics.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
# Wait for the counter to be consumed by the statsd-exporter
99
time.sleep(2)
1010

11-
metrics_response = requests.get("http://superset-node-default:9102/metrics")
11+
metrics_response = requests.get("http://superset-node-default-metrics:9102/metrics")
1212
assert metrics_response.status_code == 200, "Metrics could not be retrieved."
1313

1414
assert "superset_welcome" in metrics_response.text, (

0 commit comments

Comments
 (0)