Skip to content

Commit

Permalink
Add assertions to CSM Observability Test
Browse files Browse the repository at this point in the history
  • Loading branch information
stanley-cheung committed Jan 25, 2024
1 parent 62c8a9e commit c684f55
Show file tree
Hide file tree
Showing 5 changed files with 481 additions and 14 deletions.
23 changes: 23 additions & 0 deletions framework/test_app/runners/k8s/gamma_server_runner.py
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,8 @@ class GammaServerRunner(KubernetesServerRunner):
be_policy: Optional[k8s.GcpBackendPolicy] = None
termination_grace_period_seconds: Optional[int] = None
pre_stop_hook: bool = False
pod_monitoring: Optional[k8s.PodMonitoring] = None
pod_monitoring_name: Optional[str] = None

route_name: str
frontend_service_name: str
Expand Down Expand Up @@ -116,6 +118,8 @@ def run( # pylint: disable=arguments-differ
bootstrap_version: Optional[str] = None,
route_template: str = "gamma/route_http.yaml",
enable_csm_observability: bool = False,
csm_workload_name: str = "",
csm_canonical_service_name: str = "",
) -> List[XdsTestServer]:
if not maintenance_port:
maintenance_port = self._get_default_maintenance_port(secure_mode)
Expand Down Expand Up @@ -208,8 +212,21 @@ def run( # pylint: disable=arguments-differ
termination_grace_period_seconds=self.termination_grace_period_seconds,
pre_stop_hook=self.pre_stop_hook,
enable_csm_observability=enable_csm_observability,
csm_workload_name=csm_workload_name,
csm_canonical_service_name=csm_canonical_service_name,
)

# Create a PodMonitoring resource if CSM Observability is enabled
# This is GMP (Google Managed Prometheus)
if enable_csm_observability:
self.pod_monitoring_name = f"{self.deployment_id}-gmp"
self.pod_monitoring = self._create_pod_monitoring(
"csm/pod-monitoring.yaml",
namespace_name=self.k8s_namespace.name,
deployment_id=self.deployment_id,
pod_monitoring_name=self.pod_monitoring_name,
)

servers = self._make_servers_for_deployment(
replica_count,
test_port=test_port,
Expand Down Expand Up @@ -296,6 +313,12 @@ def cleanup(self, *, force=False, force_namespace=False):
self._delete_service_account(self.service_account_name)
self.service_account = None

# Pod monitoring name is only set when CSM observability is enabled.
if self.pod_monitoring_name and (self.pod_monitoring or force):
self._delete_pod_monitoring(self.pod_monitoring_name)
self.pod_monitoring = None
self.pod_monitoring_name = None

self._cleanup_namespace(force=(force_namespace and force))
finally:
self._stop()
Expand Down
4 changes: 4 additions & 0 deletions framework/test_app/runners/k8s/k8s_xds_client_runner.py
Original file line number Diff line number Diff line change
Expand Up @@ -107,6 +107,8 @@ def run( # pylint: disable=arguments-differ
print_response=False,
log_to_stdout: bool = False,
enable_csm_observability: bool = False,
csm_workload_name: str = "",
csm_canonical_service_name: str = "",
) -> XdsTestClient:
logger.info(
(
Expand Down Expand Up @@ -162,6 +164,8 @@ def run( # pylint: disable=arguments-differ
generate_mesh_id=generate_mesh_id,
print_response=print_response,
enable_csm_observability=enable_csm_observability,
csm_workload_name=csm_workload_name,
csm_canonical_service_name=csm_canonical_service_name,
)

# Create a PodMonitoring resource if CSM Observability is enabled
Expand Down
16 changes: 16 additions & 0 deletions kubernetes-manifests/client.deployment.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -60,6 +60,22 @@ spec:
value: "true"
- name: GRPC_EXPERIMENTAL_XDS_ENABLE_OVERRIDE_HOST
value: "true"
% if enable_csm_observability:
- name: CSM_WORKLOAD_NAME
value: ${csm_workload_name}
- name: CSM_CANONICAL_SERVICE_NAME
value: ${csm_canonical_service_name}
- name: POD_NAME
valueFrom:
fieldRef:
fieldPath: metadata.name
- name: NAMESPACE_NAME
valueFrom:
fieldRef:
fieldPath: metadata.namespace
- name: OTEL_RESOURCE_ATTRIBUTES
value: k8s.pod.name=$(POD_NAME),k8s.namespace.name=$(NAMESPACE_NAME)
% endif
volumeMounts:
- mountPath: /tmp/grpc-xds/
name: grpc-td-conf
Expand Down
16 changes: 16 additions & 0 deletions kubernetes-manifests/server.deployment.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,22 @@ spec:
value: "true"
- name: GRPC_EXPERIMENTAL_XDS_ENABLE_OVERRIDE_HOST
value: "true"
% if enable_csm_observability:
- name: CSM_WORKLOAD_NAME
value: ${csm_workload_name}
- name: CSM_CANONICAL_SERVICE_NAME
value: ${csm_canonical_service_name}
- name: POD_NAME
valueFrom:
fieldRef:
fieldPath: metadata.name
- name: NAMESPACE_NAME
valueFrom:
fieldRef:
fieldPath: metadata.namespace
- name: OTEL_RESOURCE_ATTRIBUTES
value: k8s.pod.name=$(POD_NAME),k8s.namespace.name=$(NAMESPACE_NAME)
% endif
volumeMounts:
- mountPath: /tmp/grpc-xds/
name: grpc-td-conf
Expand Down
Loading

0 comments on commit c684f55

Please sign in to comment.