|
24 | 24 | import filecmp
|
25 | 25 | import pytest
|
26 | 26 | import os
|
| 27 | +import yaml |
27 | 28 |
|
28 | 29 | parent = Path(__file__).resolve().parents[4] # project directory
|
29 | 30 | expected_clusters_dir = f"{parent}/tests/test_cluster_yamls"
|
@@ -85,7 +86,11 @@ def test_config_creation_all_parameters(mocker):
|
85 | 86 | assert cluster.config.worker_memory_requests == "12G"
|
86 | 87 | assert cluster.config.worker_memory_limits == "16G"
|
87 | 88 | assert cluster.config.appwrapper == False
|
88 |
| - assert cluster.config.envs == {"key1": "value1", "key2": "value2"} |
| 89 | + assert cluster.config.envs == { |
| 90 | + "key1": "value1", |
| 91 | + "key2": "value2", |
| 92 | + "RAY_USAGE_STATS_ENABLED": "0", |
| 93 | + } |
89 | 94 | assert cluster.config.image == "example/ray:tag"
|
90 | 95 | assert cluster.config.image_pull_secrets == ["secret1", "secret2"]
|
91 | 96 | assert cluster.config.write_to_file == True
|
@@ -206,6 +211,46 @@ def test_gcs_fault_tolerance_config_validation():
|
206 | 211 | )
|
207 | 212 |
|
208 | 213 |
|
| 214 | +def test_ray_usage_stats_default(mocker): |
| 215 | + mocker.patch("kubernetes.client.ApisApi.get_api_versions") |
| 216 | + mocker.patch("kubernetes.client.CustomObjectsApi.list_namespaced_custom_object") |
| 217 | + |
| 218 | + cluster = Cluster( |
| 219 | + ClusterConfiguration(name="default-usage-stats-cluster", namespace="ns") |
| 220 | + ) |
| 221 | + |
| 222 | + # Verify that usage stats are disabled by default |
| 223 | + assert cluster.config.envs["RAY_USAGE_STATS_ENABLED"] == "0" |
| 224 | + |
| 225 | + # Check that the environment variable is set in the YAML |
| 226 | + head_container = cluster.resource_yaml["spec"]["headGroupSpec"]["template"]["spec"][ |
| 227 | + "containers" |
| 228 | + ][0] |
| 229 | + env_vars = {env["name"]: env["value"] for env in head_container["env"]} |
| 230 | + assert env_vars["RAY_USAGE_STATS_ENABLED"] == "0" |
| 231 | + |
| 232 | + |
| 233 | +def test_ray_usage_stats_enabled(mocker): |
| 234 | + mocker.patch("kubernetes.client.ApisApi.get_api_versions") |
| 235 | + mocker.patch("kubernetes.client.CustomObjectsApi.list_namespaced_custom_object") |
| 236 | + |
| 237 | + cluster = Cluster( |
| 238 | + ClusterConfiguration( |
| 239 | + name="usage-stats-enabled-cluster", |
| 240 | + namespace="ns", |
| 241 | + envs={"RAY_USAGE_STATS_ENABLED": "1"}, |
| 242 | + ) |
| 243 | + ) |
| 244 | + |
| 245 | + assert cluster.config.envs["RAY_USAGE_STATS_ENABLED"] == "1" |
| 246 | + |
| 247 | + head_container = cluster.resource_yaml["spec"]["headGroupSpec"]["template"]["spec"][ |
| 248 | + "containers" |
| 249 | + ][0] |
| 250 | + env_vars = {env["name"]: env["value"] for env in head_container["env"]} |
| 251 | + assert env_vars["RAY_USAGE_STATS_ENABLED"] == "1" |
| 252 | + |
| 253 | + |
209 | 254 | # Make sure to always keep this function last
|
210 | 255 | def test_cleanup():
|
211 | 256 | os.remove(f"{aw_dir}test-all-params.yaml")
|
|
0 commit comments