paasta-tools 1.30.14__py3-none-any.whl → 1.31.0__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- paasta_tools/__init__.py +1 -1
- paasta_tools/cli/schemas/autoscaling_schema.json +2 -1
- paasta_tools/kubernetes_tools.py +19 -8
- paasta_tools/long_running_service_tools.py +3 -0
- paasta_tools/setup_prometheus_adapter_config.py +82 -0
- {paasta_tools-1.30.14.data → paasta_tools-1.31.0.data}/scripts/setup_prometheus_adapter_config.py +82 -0
- {paasta_tools-1.30.14.dist-info → paasta_tools-1.31.0.dist-info}/METADATA +1 -1
- {paasta_tools-1.30.14.dist-info → paasta_tools-1.31.0.dist-info}/RECORD +63 -63
- {paasta_tools-1.30.14.data → paasta_tools-1.31.0.data}/scripts/apply_external_resources.py +0 -0
- {paasta_tools-1.30.14.data → paasta_tools-1.31.0.data}/scripts/bounce_log_latency_parser.py +0 -0
- {paasta_tools-1.30.14.data → paasta_tools-1.31.0.data}/scripts/check_autoscaler_max_instances.py +0 -0
- {paasta_tools-1.30.14.data → paasta_tools-1.31.0.data}/scripts/check_cassandracluster_services_replication.py +0 -0
- {paasta_tools-1.30.14.data → paasta_tools-1.31.0.data}/scripts/check_flink_services_health.py +0 -0
- {paasta_tools-1.30.14.data → paasta_tools-1.31.0.data}/scripts/check_kubernetes_api.py +0 -0
- {paasta_tools-1.30.14.data → paasta_tools-1.31.0.data}/scripts/check_kubernetes_services_replication.py +0 -0
- {paasta_tools-1.30.14.data → paasta_tools-1.31.0.data}/scripts/check_manual_oapi_changes.sh +0 -0
- {paasta_tools-1.30.14.data → paasta_tools-1.31.0.data}/scripts/check_oom_events.py +0 -0
- {paasta_tools-1.30.14.data → paasta_tools-1.31.0.data}/scripts/check_orphans.py +0 -0
- {paasta_tools-1.30.14.data → paasta_tools-1.31.0.data}/scripts/check_spark_jobs.py +0 -0
- {paasta_tools-1.30.14.data → paasta_tools-1.31.0.data}/scripts/cleanup_kubernetes_cr.py +0 -0
- {paasta_tools-1.30.14.data → paasta_tools-1.31.0.data}/scripts/cleanup_kubernetes_crd.py +0 -0
- {paasta_tools-1.30.14.data → paasta_tools-1.31.0.data}/scripts/cleanup_kubernetes_jobs.py +0 -0
- {paasta_tools-1.30.14.data → paasta_tools-1.31.0.data}/scripts/create_dynamodb_table.py +0 -0
- {paasta_tools-1.30.14.data → paasta_tools-1.31.0.data}/scripts/create_paasta_playground.py +0 -0
- {paasta_tools-1.30.14.data → paasta_tools-1.31.0.data}/scripts/delete_kubernetes_deployments.py +0 -0
- {paasta_tools-1.30.14.data → paasta_tools-1.31.0.data}/scripts/emit_allocated_cpu_metrics.py +0 -0
- {paasta_tools-1.30.14.data → paasta_tools-1.31.0.data}/scripts/generate_all_deployments +0 -0
- {paasta_tools-1.30.14.data → paasta_tools-1.31.0.data}/scripts/generate_authenticating_services.py +0 -0
- {paasta_tools-1.30.14.data → paasta_tools-1.31.0.data}/scripts/generate_deployments_for_service.py +0 -0
- {paasta_tools-1.30.14.data → paasta_tools-1.31.0.data}/scripts/generate_services_file.py +0 -0
- {paasta_tools-1.30.14.data → paasta_tools-1.31.0.data}/scripts/generate_services_yaml.py +0 -0
- {paasta_tools-1.30.14.data → paasta_tools-1.31.0.data}/scripts/get_running_task_allocation.py +0 -0
- {paasta_tools-1.30.14.data → paasta_tools-1.31.0.data}/scripts/habitat_fixer.py +0 -0
- {paasta_tools-1.30.14.data → paasta_tools-1.31.0.data}/scripts/ide_helper.py +0 -0
- {paasta_tools-1.30.14.data → paasta_tools-1.31.0.data}/scripts/is_pod_healthy_in_proxy.py +0 -0
- {paasta_tools-1.30.14.data → paasta_tools-1.31.0.data}/scripts/is_pod_healthy_in_smartstack.py +0 -0
- {paasta_tools-1.30.14.data → paasta_tools-1.31.0.data}/scripts/kill_bad_containers.py +0 -0
- {paasta_tools-1.30.14.data → paasta_tools-1.31.0.data}/scripts/kubernetes_remove_evicted_pods.py +0 -0
- {paasta_tools-1.30.14.data → paasta_tools-1.31.0.data}/scripts/mass-deploy-tag.sh +0 -0
- {paasta_tools-1.30.14.data → paasta_tools-1.31.0.data}/scripts/mock_patch_checker.py +0 -0
- {paasta_tools-1.30.14.data → paasta_tools-1.31.0.data}/scripts/paasta_cleanup_remote_run_resources.py +0 -0
- {paasta_tools-1.30.14.data → paasta_tools-1.31.0.data}/scripts/paasta_cleanup_stale_nodes.py +0 -0
- {paasta_tools-1.30.14.data → paasta_tools-1.31.0.data}/scripts/paasta_deploy_tron_jobs +0 -0
- {paasta_tools-1.30.14.data → paasta_tools-1.31.0.data}/scripts/paasta_execute_docker_command.py +0 -0
- {paasta_tools-1.30.14.data → paasta_tools-1.31.0.data}/scripts/paasta_secrets_sync.py +0 -0
- {paasta_tools-1.30.14.data → paasta_tools-1.31.0.data}/scripts/paasta_tabcomplete.sh +0 -0
- {paasta_tools-1.30.14.data → paasta_tools-1.31.0.data}/scripts/paasta_update_soa_memcpu.py +0 -0
- {paasta_tools-1.30.14.data → paasta_tools-1.31.0.data}/scripts/render_template.py +0 -0
- {paasta_tools-1.30.14.data → paasta_tools-1.31.0.data}/scripts/rightsizer_soaconfigs_update.py +0 -0
- {paasta_tools-1.30.14.data → paasta_tools-1.31.0.data}/scripts/service_shard_remove.py +0 -0
- {paasta_tools-1.30.14.data → paasta_tools-1.31.0.data}/scripts/service_shard_update.py +0 -0
- {paasta_tools-1.30.14.data → paasta_tools-1.31.0.data}/scripts/setup_istio_mesh.py +0 -0
- {paasta_tools-1.30.14.data → paasta_tools-1.31.0.data}/scripts/setup_kubernetes_cr.py +0 -0
- {paasta_tools-1.30.14.data → paasta_tools-1.31.0.data}/scripts/setup_kubernetes_crd.py +0 -0
- {paasta_tools-1.30.14.data → paasta_tools-1.31.0.data}/scripts/setup_kubernetes_internal_crd.py +0 -0
- {paasta_tools-1.30.14.data → paasta_tools-1.31.0.data}/scripts/setup_kubernetes_job.py +0 -0
- {paasta_tools-1.30.14.data → paasta_tools-1.31.0.data}/scripts/shared_ip_check.py +0 -0
- {paasta_tools-1.30.14.data → paasta_tools-1.31.0.data}/scripts/synapse_srv_namespaces_fact.py +0 -0
- {paasta_tools-1.30.14.data → paasta_tools-1.31.0.data}/scripts/timeouts_metrics_prom.py +0 -0
- {paasta_tools-1.30.14.dist-info → paasta_tools-1.31.0.dist-info}/WHEEL +0 -0
- {paasta_tools-1.30.14.dist-info → paasta_tools-1.31.0.dist-info}/entry_points.txt +0 -0
- {paasta_tools-1.30.14.dist-info → paasta_tools-1.31.0.dist-info}/licenses/LICENSE +0 -0
- {paasta_tools-1.30.14.dist-info → paasta_tools-1.31.0.dist-info}/top_level.txt +0 -0
paasta_tools/__init__.py
CHANGED
paasta_tools/kubernetes_tools.py
CHANGED
|
@@ -151,6 +151,7 @@ from paasta_tools.long_running_service_tools import METRICS_PROVIDER_PISCINA
|
|
|
151
151
|
from paasta_tools.long_running_service_tools import METRICS_PROVIDER_PROMQL
|
|
152
152
|
from paasta_tools.long_running_service_tools import METRICS_PROVIDER_UWSGI
|
|
153
153
|
from paasta_tools.long_running_service_tools import METRICS_PROVIDER_UWSGI_V2
|
|
154
|
+
from paasta_tools.long_running_service_tools import METRICS_PROVIDER_WORKER_LOAD
|
|
154
155
|
from paasta_tools.long_running_service_tools import ServiceNamespaceConfig
|
|
155
156
|
from paasta_tools.secret_tools import get_secret_name_from_ref
|
|
156
157
|
from paasta_tools.secret_tools import is_secret_ref
|
|
@@ -874,7 +875,10 @@ class KubernetesDeploymentConfig(LongRunningServiceConfig):
|
|
|
874
875
|
),
|
|
875
876
|
),
|
|
876
877
|
)
|
|
877
|
-
elif provider["type"]
|
|
878
|
+
elif provider["type"] in {
|
|
879
|
+
METRICS_PROVIDER_UWSGI_V2,
|
|
880
|
+
METRICS_PROVIDER_WORKER_LOAD,
|
|
881
|
+
}:
|
|
878
882
|
return V2MetricSpec(
|
|
879
883
|
type="Object",
|
|
880
884
|
object=V2ObjectMetricSource(
|
|
@@ -2445,22 +2449,29 @@ class KubernetesDeploymentConfig(LongRunningServiceConfig):
|
|
|
2445
2449
|
|
|
2446
2450
|
# not all services use autoscaling, so we label those that do in order to have
|
|
2447
2451
|
# prometheus selectively discover/scrape them
|
|
2448
|
-
|
|
2449
|
-
|
|
2450
|
-
|
|
2451
|
-
|
|
2452
|
+
metrics_providers_needing_deploy_group = [
|
|
2453
|
+
METRICS_PROVIDER_UWSGI,
|
|
2454
|
+
METRICS_PROVIDER_PISCINA,
|
|
2455
|
+
METRICS_PROVIDER_GUNICORN,
|
|
2456
|
+
METRICS_PROVIDER_WORKER_LOAD,
|
|
2457
|
+
]
|
|
2458
|
+
|
|
2459
|
+
if any(
|
|
2460
|
+
self.should_use_metrics_provider(provider)
|
|
2461
|
+
for provider in metrics_providers_needing_deploy_group
|
|
2462
|
+
):
|
|
2463
|
+
# Deploy group is needed for Prometheus relabeling properly
|
|
2464
|
+
# This should probably eventually be made into a default label,
|
|
2452
2465
|
# but for now we're fine with it being behind these feature toggles.
|
|
2453
|
-
#
|
|
2466
|
+
# Ideally, we'd also have the docker image here for ease-of-use
|
|
2454
2467
|
# in Prometheus relabeling, but that information is over the
|
|
2455
2468
|
# character limit for k8s labels (63 chars)
|
|
2456
2469
|
labels["paasta.yelp.com/deploy_group"] = self.get_deploy_group()
|
|
2457
2470
|
|
|
2458
2471
|
if self.should_use_metrics_provider(METRICS_PROVIDER_PISCINA):
|
|
2459
|
-
labels["paasta.yelp.com/deploy_group"] = self.get_deploy_group()
|
|
2460
2472
|
labels["paasta.yelp.com/scrape_piscina_prometheus"] = "true"
|
|
2461
2473
|
|
|
2462
2474
|
if self.should_use_metrics_provider(METRICS_PROVIDER_GUNICORN):
|
|
2463
|
-
labels["paasta.yelp.com/deploy_group"] = self.get_deploy_group()
|
|
2464
2475
|
labels["paasta.yelp.com/scrape_gunicorn_prometheus"] = "true"
|
|
2465
2476
|
|
|
2466
2477
|
# the default AWS LB Controller behavior is to enable this by-namespace
|
|
@@ -41,6 +41,7 @@ DEFAULT_ACTIVE_REQUESTS_AUTOSCALING_MOVING_AVERAGE_WINDOW = 1800
|
|
|
41
41
|
DEFAULT_UWSGI_AUTOSCALING_MOVING_AVERAGE_WINDOW = 1800
|
|
42
42
|
DEFAULT_PISCINA_AUTOSCALING_MOVING_AVERAGE_WINDOW = 1800
|
|
43
43
|
DEFAULT_GUNICORN_AUTOSCALING_MOVING_AVERAGE_WINDOW = 1800
|
|
44
|
+
DEFAULT_WORKER_LOAD_AUTOSCALING_MOVING_AVERAGE_WINDOW = 1800
|
|
44
45
|
|
|
45
46
|
METRICS_PROVIDER_CPU = "cpu"
|
|
46
47
|
METRICS_PROVIDER_UWSGI = "uwsgi"
|
|
@@ -49,6 +50,7 @@ METRICS_PROVIDER_GUNICORN = "gunicorn"
|
|
|
49
50
|
METRICS_PROVIDER_PISCINA = "piscina"
|
|
50
51
|
METRICS_PROVIDER_ACTIVE_REQUESTS = "active-requests"
|
|
51
52
|
METRICS_PROVIDER_PROMQL = "arbitrary-promql"
|
|
53
|
+
METRICS_PROVIDER_WORKER_LOAD = "worker-load"
|
|
52
54
|
|
|
53
55
|
ALL_METRICS_PROVIDERS = [
|
|
54
56
|
METRICS_PROVIDER_CPU,
|
|
@@ -58,6 +60,7 @@ ALL_METRICS_PROVIDERS = [
|
|
|
58
60
|
METRICS_PROVIDER_PISCINA,
|
|
59
61
|
METRICS_PROVIDER_ACTIVE_REQUESTS,
|
|
60
62
|
METRICS_PROVIDER_PROMQL,
|
|
63
|
+
METRICS_PROVIDER_WORKER_LOAD,
|
|
61
64
|
]
|
|
62
65
|
|
|
63
66
|
|
|
@@ -53,6 +53,9 @@ from paasta_tools.long_running_service_tools import (
|
|
|
53
53
|
from paasta_tools.long_running_service_tools import (
|
|
54
54
|
DEFAULT_UWSGI_AUTOSCALING_MOVING_AVERAGE_WINDOW,
|
|
55
55
|
)
|
|
56
|
+
from paasta_tools.long_running_service_tools import (
|
|
57
|
+
DEFAULT_WORKER_LOAD_AUTOSCALING_MOVING_AVERAGE_WINDOW,
|
|
58
|
+
)
|
|
56
59
|
from paasta_tools.long_running_service_tools import METRICS_PROVIDER_ACTIVE_REQUESTS
|
|
57
60
|
from paasta_tools.long_running_service_tools import METRICS_PROVIDER_CPU
|
|
58
61
|
from paasta_tools.long_running_service_tools import METRICS_PROVIDER_GUNICORN
|
|
@@ -60,6 +63,7 @@ from paasta_tools.long_running_service_tools import METRICS_PROVIDER_PISCINA
|
|
|
60
63
|
from paasta_tools.long_running_service_tools import METRICS_PROVIDER_PROMQL
|
|
61
64
|
from paasta_tools.long_running_service_tools import METRICS_PROVIDER_UWSGI
|
|
62
65
|
from paasta_tools.long_running_service_tools import METRICS_PROVIDER_UWSGI_V2
|
|
66
|
+
from paasta_tools.long_running_service_tools import METRICS_PROVIDER_WORKER_LOAD
|
|
63
67
|
from paasta_tools.paasta_service_config_loader import PaastaServiceConfigLoader
|
|
64
68
|
from paasta_tools.utils import DEFAULT_SOA_DIR
|
|
65
69
|
from paasta_tools.utils import get_services_for_cluster
|
|
@@ -214,6 +218,10 @@ def create_instance_scaling_rule(
|
|
|
214
218
|
return create_instance_uwsgi_v2_scaling_rule(
|
|
215
219
|
service, instance_config, metrics_provider_config, paasta_cluster
|
|
216
220
|
)
|
|
221
|
+
if metrics_provider_config["type"] == METRICS_PROVIDER_WORKER_LOAD:
|
|
222
|
+
return create_instance_worker_load_scaling_rule(
|
|
223
|
+
service, instance_config, metrics_provider_config, paasta_cluster
|
|
224
|
+
)
|
|
217
225
|
if metrics_provider_config["type"] == METRICS_PROVIDER_PISCINA:
|
|
218
226
|
return create_instance_piscina_scaling_rule(
|
|
219
227
|
service, instance_config, metrics_provider_config, paasta_cluster
|
|
@@ -523,6 +531,80 @@ def create_instance_uwsgi_v2_scaling_rule(
|
|
|
523
531
|
}
|
|
524
532
|
|
|
525
533
|
|
|
534
|
+
def create_instance_worker_load_scaling_rule(
|
|
535
|
+
service: str,
|
|
536
|
+
instance_config: KubernetesDeploymentConfig,
|
|
537
|
+
metrics_provider_config: MetricsProviderDict,
|
|
538
|
+
paasta_cluster: str,
|
|
539
|
+
) -> PrometheusAdapterRule:
|
|
540
|
+
"""
|
|
541
|
+
Creates a Prometheus adapter rule config for a given service instance using generic worker_busy metric.
|
|
542
|
+
"""
|
|
543
|
+
instance = instance_config.instance
|
|
544
|
+
moving_average_window = metrics_provider_config.get(
|
|
545
|
+
"moving_average_window_seconds",
|
|
546
|
+
DEFAULT_WORKER_LOAD_AUTOSCALING_MOVING_AVERAGE_WINDOW,
|
|
547
|
+
)
|
|
548
|
+
deployment_name = get_kubernetes_app_name(service=service, instance=instance)
|
|
549
|
+
|
|
550
|
+
# In order for autoscaling to work safely while a service migrates from one namespace to another, the HPA needs to
|
|
551
|
+
# make sure that the deployment in the new namespace is scaled up enough to handle _all_ the load.
|
|
552
|
+
# This is because once the new deployment is 100% healthy, cleanup_kubernetes_job will delete the deployment out of
|
|
553
|
+
# the old namespace all at once, suddenly putting all the load onto the deployment in the new namespace.
|
|
554
|
+
# To ensure this, we must NOT filter on namespace in worker_filter_terms (which is used when calculating total_load.
|
|
555
|
+
# This makes sure that desired_instances includes load from all namespaces.
|
|
556
|
+
worker_filter_terms = f"paasta_cluster='{paasta_cluster}',paasta_service='{service}',paasta_instance='{instance}'"
|
|
557
|
+
|
|
558
|
+
# k8s:deployment:pods_status_ready is a metric created by summing kube_pod_status_ready
|
|
559
|
+
# over paasta service/instance/cluster. it counts the number of ready pods in a paasta
|
|
560
|
+
# deployment.
|
|
561
|
+
ready_pods = f"""
|
|
562
|
+
(sum(
|
|
563
|
+
k8s:deployment:pods_status_ready{{{worker_filter_terms}}} >= 0
|
|
564
|
+
or
|
|
565
|
+
max_over_time(
|
|
566
|
+
k8s:deployment:pods_status_ready{{{worker_filter_terms}}}[{DEFAULT_EXTRAPOLATION_TIME}s]
|
|
567
|
+
)
|
|
568
|
+
) by (kube_deployment))
|
|
569
|
+
"""
|
|
570
|
+
load_per_instance = f"""
|
|
571
|
+
avg(
|
|
572
|
+
worker_busy{{{worker_filter_terms}}}
|
|
573
|
+
) by (kube_pod, kube_deployment)
|
|
574
|
+
"""
|
|
575
|
+
missing_instances = f"""
|
|
576
|
+
clamp_min(
|
|
577
|
+
{ready_pods} - count({load_per_instance}) by (kube_deployment),
|
|
578
|
+
0
|
|
579
|
+
)
|
|
580
|
+
"""
|
|
581
|
+
total_load = f"""
|
|
582
|
+
(
|
|
583
|
+
sum(
|
|
584
|
+
{load_per_instance}
|
|
585
|
+
) by (kube_deployment)
|
|
586
|
+
+
|
|
587
|
+
{missing_instances}
|
|
588
|
+
)
|
|
589
|
+
"""
|
|
590
|
+
total_load_smoothed = f"""
|
|
591
|
+
avg_over_time(
|
|
592
|
+
(
|
|
593
|
+
{total_load}
|
|
594
|
+
)[{moving_average_window}s:]
|
|
595
|
+
)
|
|
596
|
+
"""
|
|
597
|
+
|
|
598
|
+
metric_name = f"{deployment_name}-worker-load-prom"
|
|
599
|
+
|
|
600
|
+
return {
|
|
601
|
+
"name": {"as": metric_name},
|
|
602
|
+
"seriesQuery": f"worker_busy{{{worker_filter_terms}}}",
|
|
603
|
+
"resources": {"template": "kube_<<.Resource>>"},
|
|
604
|
+
"metricsQuery": _minify_promql(total_load_smoothed),
|
|
605
|
+
}
|
|
606
|
+
|
|
607
|
+
|
|
526
608
|
def create_instance_piscina_scaling_rule(
|
|
527
609
|
service: str,
|
|
528
610
|
instance_config: KubernetesDeploymentConfig,
|
{paasta_tools-1.30.14.data → paasta_tools-1.31.0.data}/scripts/setup_prometheus_adapter_config.py
RENAMED
|
@@ -53,6 +53,9 @@ from paasta_tools.long_running_service_tools import (
|
|
|
53
53
|
from paasta_tools.long_running_service_tools import (
|
|
54
54
|
DEFAULT_UWSGI_AUTOSCALING_MOVING_AVERAGE_WINDOW,
|
|
55
55
|
)
|
|
56
|
+
from paasta_tools.long_running_service_tools import (
|
|
57
|
+
DEFAULT_WORKER_LOAD_AUTOSCALING_MOVING_AVERAGE_WINDOW,
|
|
58
|
+
)
|
|
56
59
|
from paasta_tools.long_running_service_tools import METRICS_PROVIDER_ACTIVE_REQUESTS
|
|
57
60
|
from paasta_tools.long_running_service_tools import METRICS_PROVIDER_CPU
|
|
58
61
|
from paasta_tools.long_running_service_tools import METRICS_PROVIDER_GUNICORN
|
|
@@ -60,6 +63,7 @@ from paasta_tools.long_running_service_tools import METRICS_PROVIDER_PISCINA
|
|
|
60
63
|
from paasta_tools.long_running_service_tools import METRICS_PROVIDER_PROMQL
|
|
61
64
|
from paasta_tools.long_running_service_tools import METRICS_PROVIDER_UWSGI
|
|
62
65
|
from paasta_tools.long_running_service_tools import METRICS_PROVIDER_UWSGI_V2
|
|
66
|
+
from paasta_tools.long_running_service_tools import METRICS_PROVIDER_WORKER_LOAD
|
|
63
67
|
from paasta_tools.paasta_service_config_loader import PaastaServiceConfigLoader
|
|
64
68
|
from paasta_tools.utils import DEFAULT_SOA_DIR
|
|
65
69
|
from paasta_tools.utils import get_services_for_cluster
|
|
@@ -214,6 +218,10 @@ def create_instance_scaling_rule(
|
|
|
214
218
|
return create_instance_uwsgi_v2_scaling_rule(
|
|
215
219
|
service, instance_config, metrics_provider_config, paasta_cluster
|
|
216
220
|
)
|
|
221
|
+
if metrics_provider_config["type"] == METRICS_PROVIDER_WORKER_LOAD:
|
|
222
|
+
return create_instance_worker_load_scaling_rule(
|
|
223
|
+
service, instance_config, metrics_provider_config, paasta_cluster
|
|
224
|
+
)
|
|
217
225
|
if metrics_provider_config["type"] == METRICS_PROVIDER_PISCINA:
|
|
218
226
|
return create_instance_piscina_scaling_rule(
|
|
219
227
|
service, instance_config, metrics_provider_config, paasta_cluster
|
|
@@ -523,6 +531,80 @@ def create_instance_uwsgi_v2_scaling_rule(
|
|
|
523
531
|
}
|
|
524
532
|
|
|
525
533
|
|
|
534
|
+
def create_instance_worker_load_scaling_rule(
|
|
535
|
+
service: str,
|
|
536
|
+
instance_config: KubernetesDeploymentConfig,
|
|
537
|
+
metrics_provider_config: MetricsProviderDict,
|
|
538
|
+
paasta_cluster: str,
|
|
539
|
+
) -> PrometheusAdapterRule:
|
|
540
|
+
"""
|
|
541
|
+
Creates a Prometheus adapter rule config for a given service instance using generic worker_busy metric.
|
|
542
|
+
"""
|
|
543
|
+
instance = instance_config.instance
|
|
544
|
+
moving_average_window = metrics_provider_config.get(
|
|
545
|
+
"moving_average_window_seconds",
|
|
546
|
+
DEFAULT_WORKER_LOAD_AUTOSCALING_MOVING_AVERAGE_WINDOW,
|
|
547
|
+
)
|
|
548
|
+
deployment_name = get_kubernetes_app_name(service=service, instance=instance)
|
|
549
|
+
|
|
550
|
+
# In order for autoscaling to work safely while a service migrates from one namespace to another, the HPA needs to
|
|
551
|
+
# make sure that the deployment in the new namespace is scaled up enough to handle _all_ the load.
|
|
552
|
+
# This is because once the new deployment is 100% healthy, cleanup_kubernetes_job will delete the deployment out of
|
|
553
|
+
# the old namespace all at once, suddenly putting all the load onto the deployment in the new namespace.
|
|
554
|
+
# To ensure this, we must NOT filter on namespace in worker_filter_terms (which is used when calculating total_load.
|
|
555
|
+
# This makes sure that desired_instances includes load from all namespaces.
|
|
556
|
+
worker_filter_terms = f"paasta_cluster='{paasta_cluster}',paasta_service='{service}',paasta_instance='{instance}'"
|
|
557
|
+
|
|
558
|
+
# k8s:deployment:pods_status_ready is a metric created by summing kube_pod_status_ready
|
|
559
|
+
# over paasta service/instance/cluster. it counts the number of ready pods in a paasta
|
|
560
|
+
# deployment.
|
|
561
|
+
ready_pods = f"""
|
|
562
|
+
(sum(
|
|
563
|
+
k8s:deployment:pods_status_ready{{{worker_filter_terms}}} >= 0
|
|
564
|
+
or
|
|
565
|
+
max_over_time(
|
|
566
|
+
k8s:deployment:pods_status_ready{{{worker_filter_terms}}}[{DEFAULT_EXTRAPOLATION_TIME}s]
|
|
567
|
+
)
|
|
568
|
+
) by (kube_deployment))
|
|
569
|
+
"""
|
|
570
|
+
load_per_instance = f"""
|
|
571
|
+
avg(
|
|
572
|
+
worker_busy{{{worker_filter_terms}}}
|
|
573
|
+
) by (kube_pod, kube_deployment)
|
|
574
|
+
"""
|
|
575
|
+
missing_instances = f"""
|
|
576
|
+
clamp_min(
|
|
577
|
+
{ready_pods} - count({load_per_instance}) by (kube_deployment),
|
|
578
|
+
0
|
|
579
|
+
)
|
|
580
|
+
"""
|
|
581
|
+
total_load = f"""
|
|
582
|
+
(
|
|
583
|
+
sum(
|
|
584
|
+
{load_per_instance}
|
|
585
|
+
) by (kube_deployment)
|
|
586
|
+
+
|
|
587
|
+
{missing_instances}
|
|
588
|
+
)
|
|
589
|
+
"""
|
|
590
|
+
total_load_smoothed = f"""
|
|
591
|
+
avg_over_time(
|
|
592
|
+
(
|
|
593
|
+
{total_load}
|
|
594
|
+
)[{moving_average_window}s:]
|
|
595
|
+
)
|
|
596
|
+
"""
|
|
597
|
+
|
|
598
|
+
metric_name = f"{deployment_name}-worker-load-prom"
|
|
599
|
+
|
|
600
|
+
return {
|
|
601
|
+
"name": {"as": metric_name},
|
|
602
|
+
"seriesQuery": f"worker_busy{{{worker_filter_terms}}}",
|
|
603
|
+
"resources": {"template": "kube_<<.Resource>>"},
|
|
604
|
+
"metricsQuery": _minify_promql(total_load_smoothed),
|
|
605
|
+
}
|
|
606
|
+
|
|
607
|
+
|
|
526
608
|
def create_instance_piscina_scaling_rule(
|
|
527
609
|
service: str,
|
|
528
610
|
instance_config: KubernetesDeploymentConfig,
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
k8s_itests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
2
2
|
k8s_itests/test_autoscaling.py,sha256=gX30L1wG1sDBaM0wE2aYR4OqHPSLvQBZ6LV0mLTrXZA,536
|
|
3
3
|
k8s_itests/utils.py,sha256=PNibpYR0-g8Jcts9CjpkNb3oVzmdk9tZQrrNRuATCCM,966
|
|
4
|
-
paasta_tools/__init__.py,sha256=
|
|
4
|
+
paasta_tools/__init__.py,sha256=5oWQ9-SfD86EFieursy4cqsuHv-xyUSV8nIz054otA8,865
|
|
5
5
|
paasta_tools/adhoc_tools.py,sha256=OfhyZwilB93kNX8r4Nq_KyZCvsZ4rNX-FBcQAi41KCM,4751
|
|
6
6
|
paasta_tools/apply_external_resources.py,sha256=DHZJ8zkGQKTBR6Ku2lNxnrdHo8rD7PD0rZEN2yloOn8,3375
|
|
7
7
|
paasta_tools/async_utils.py,sha256=LOpYxaN-8u7js6IlibPRGq9OtgWFig59LGeIFgW9PsA,3591
|
|
@@ -44,10 +44,10 @@ paasta_tools/generate_services_yaml.py,sha256=BM760XGEOmLeJcEm0ez5nBZ2NmFJWsNXbZ
|
|
|
44
44
|
paasta_tools/hacheck.py,sha256=GtQd32G4JoB2bOWqzH9h9NPrkg8a50i-iXAblfYz2p4,2748
|
|
45
45
|
paasta_tools/iptables.py,sha256=SQ7hutHarfCd13oAknKv_h9rUuln4rf11W6C2HHUy9g,7518
|
|
46
46
|
paasta_tools/kafkacluster_tools.py,sha256=NMfowdpYhFpXW55MKx_eX6rrQj5Fn-5M_9ryZKd749A,4992
|
|
47
|
-
paasta_tools/kubernetes_tools.py,sha256
|
|
47
|
+
paasta_tools/kubernetes_tools.py,sha256=rKbYziz4AAuAqtGaGMiPeshS71Q-k4Sg7G9RCyv0zPg,181665
|
|
48
48
|
paasta_tools/list_kubernetes_service_instances.py,sha256=UEPiTqNxUAqUgSyPzJlNcrI2W4HBwpngzDM1QD6AAVQ,3910
|
|
49
49
|
paasta_tools/list_tron_namespaces.py,sha256=wfSkPY9_C-RkORmnon3DWL2lVZ4GNSSDG9VkFrDfY1E,1679
|
|
50
|
-
paasta_tools/long_running_service_tools.py,sha256=
|
|
50
|
+
paasta_tools/long_running_service_tools.py,sha256=RphI6rDE4BK2zN2bfM900abuj7kDn7YXUcMq4pQVyO4,26400
|
|
51
51
|
paasta_tools/mac_address.py,sha256=YWEXbRSBwJXrH--iDDFqBV0BWjRH9DedbPcKFPk36A0,1324
|
|
52
52
|
paasta_tools/marathon_dashboard.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
53
53
|
paasta_tools/mesos_tools.py,sha256=WWRC4bGuEXqF1Y0MR3_EjvgaFSPBRlPYXI419CWnNKY,35540
|
|
@@ -71,7 +71,7 @@ paasta_tools/setup_kubernetes_cr.py,sha256=s7oOAKopjs_RzmKMptlkEKTDCvLbvCLO1ilYw
|
|
|
71
71
|
paasta_tools/setup_kubernetes_crd.py,sha256=kDpZKbpQa8niY-dhEKf_Q5IE5h7yDRES_Wg-2atJ6kY,4033
|
|
72
72
|
paasta_tools/setup_kubernetes_internal_crd.py,sha256=bkc4t2hUM9JoTIVDnfZWsVkoQ-IlRoTI-E_FISLGpk4,4642
|
|
73
73
|
paasta_tools/setup_kubernetes_job.py,sha256=uWXOwG_c-vnoeCmQC1Ode-zBQRz3655qVNy6aGHidXo,19108
|
|
74
|
-
paasta_tools/setup_prometheus_adapter_config.py,sha256=
|
|
74
|
+
paasta_tools/setup_prometheus_adapter_config.py,sha256=gNqwpCpXiMp9TIjQn2b71MGYqn14Rtsbivr-9TaJiCI,43975
|
|
75
75
|
paasta_tools/setup_tron_namespace.py,sha256=SnXD98BdC0gyqH2Ii_J10Xvy9i9zpPMzmvmZAN35q0Y,9743
|
|
76
76
|
paasta_tools/slack.py,sha256=WEJsTcr2vCdftG4bVkePNBFaC2hzEzMDwglHA0UC0s8,2700
|
|
77
77
|
paasta_tools/smartstack_tools.py,sha256=J0mPialC9KFW9mW0fOUCj040VyowEjQgBI_s13fzEgE,25557
|
|
@@ -148,7 +148,7 @@ paasta_tools/cli/fsm/template/{{cookiecutter.service}}/monitoring.yaml,sha256=GF
|
|
|
148
148
|
paasta_tools/cli/fsm/template/{{cookiecutter.service}}/service.yaml,sha256=3wnLrysDet3ohGjzJB0Mp8wKBBggqkUEPvYpCeX1Nu0,319
|
|
149
149
|
paasta_tools/cli/fsm/template/{{cookiecutter.service}}/smartstack.yaml,sha256=wumi_bbh3fwz8UngyV6tL5ntMzbDNJn7StXyYpr6Weg,129
|
|
150
150
|
paasta_tools/cli/schemas/adhoc_schema.json,sha256=AYQ-yt_E7Px2JXLIInyEVCtEHT6UaWwIt_UuhGyqNFQ,6996
|
|
151
|
-
paasta_tools/cli/schemas/autoscaling_schema.json,sha256
|
|
151
|
+
paasta_tools/cli/schemas/autoscaling_schema.json,sha256=-JzNBjfEqynrMyWwb7X6h6RHsd_DoghsiH6gqxxQWcE,2842
|
|
152
152
|
paasta_tools/cli/schemas/deploy_schema.json,sha256=NwxiTm-rncX4n5ql3mJ09pj2zfG5pDfFJnANP7A0XSM,5301
|
|
153
153
|
paasta_tools/cli/schemas/eks_schema.json,sha256=ED9dgIBTDFe57AXcuNqEomv2oqhVmS-Ohuz5rNaqOxM,40763
|
|
154
154
|
paasta_tools/cli/schemas/kubernetes_schema.json,sha256=ED9dgIBTDFe57AXcuNqEomv2oqhVmS-Ohuz5rNaqOxM,40763
|
|
@@ -287,61 +287,61 @@ paasta_tools/tron/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU
|
|
|
287
287
|
paasta_tools/tron/client.py,sha256=ypWjM4bZCzQWLn-qe1driqAxvF0ux8dROuFUv63dryA,5562
|
|
288
288
|
paasta_tools/tron/tron_command_context.py,sha256=c6mph_DAt7pjcE3Uo271haJ0DfxJzfvcRhR2o-UmOeY,5379
|
|
289
289
|
paasta_tools/tron/tron_timeutils.py,sha256=vDn04K7A3Xbs3lM04EgLuViC8AavOc5qyo8J5MC5nLk,3054
|
|
290
|
-
paasta_tools-1.
|
|
291
|
-
paasta_tools-1.
|
|
292
|
-
paasta_tools-1.
|
|
293
|
-
paasta_tools-1.
|
|
294
|
-
paasta_tools-1.
|
|
295
|
-
paasta_tools-1.
|
|
296
|
-
paasta_tools-1.
|
|
297
|
-
paasta_tools-1.
|
|
298
|
-
paasta_tools-1.
|
|
299
|
-
paasta_tools-1.
|
|
300
|
-
paasta_tools-1.
|
|
301
|
-
paasta_tools-1.
|
|
302
|
-
paasta_tools-1.
|
|
303
|
-
paasta_tools-1.
|
|
304
|
-
paasta_tools-1.
|
|
305
|
-
paasta_tools-1.
|
|
306
|
-
paasta_tools-1.
|
|
307
|
-
paasta_tools-1.
|
|
308
|
-
paasta_tools-1.
|
|
309
|
-
paasta_tools-1.
|
|
310
|
-
paasta_tools-1.
|
|
311
|
-
paasta_tools-1.
|
|
312
|
-
paasta_tools-1.
|
|
313
|
-
paasta_tools-1.
|
|
314
|
-
paasta_tools-1.
|
|
315
|
-
paasta_tools-1.
|
|
316
|
-
paasta_tools-1.
|
|
317
|
-
paasta_tools-1.
|
|
318
|
-
paasta_tools-1.
|
|
319
|
-
paasta_tools-1.
|
|
320
|
-
paasta_tools-1.
|
|
321
|
-
paasta_tools-1.
|
|
322
|
-
paasta_tools-1.
|
|
323
|
-
paasta_tools-1.
|
|
324
|
-
paasta_tools-1.
|
|
325
|
-
paasta_tools-1.
|
|
326
|
-
paasta_tools-1.
|
|
327
|
-
paasta_tools-1.
|
|
328
|
-
paasta_tools-1.
|
|
329
|
-
paasta_tools-1.
|
|
330
|
-
paasta_tools-1.
|
|
331
|
-
paasta_tools-1.
|
|
332
|
-
paasta_tools-1.
|
|
333
|
-
paasta_tools-1.
|
|
334
|
-
paasta_tools-1.
|
|
335
|
-
paasta_tools-1.
|
|
336
|
-
paasta_tools-1.
|
|
337
|
-
paasta_tools-1.
|
|
338
|
-
paasta_tools-1.
|
|
339
|
-
paasta_tools-1.
|
|
340
|
-
paasta_tools-1.
|
|
341
|
-
paasta_tools-1.
|
|
342
|
-
paasta_tools-1.
|
|
343
|
-
paasta_tools-1.
|
|
344
|
-
paasta_tools-1.
|
|
345
|
-
paasta_tools-1.
|
|
346
|
-
paasta_tools-1.
|
|
347
|
-
paasta_tools-1.
|
|
290
|
+
paasta_tools-1.31.0.data/scripts/apply_external_resources.py,sha256=BOIdCQ5Md9RI3enzqbIWQge3clkXhPybAmLE3hqfDwQ,3347
|
|
291
|
+
paasta_tools-1.31.0.data/scripts/bounce_log_latency_parser.py,sha256=dC06a0a5LdtPJ8xo88QWe5DMH_vwVB1BNbkFH7kJ3j0,2225
|
|
292
|
+
paasta_tools-1.31.0.data/scripts/check_autoscaler_max_instances.py,sha256=2z6ifSU26-ULOK-FXp75b45mCdjSJnuvU8TxvapB8Wk,9423
|
|
293
|
+
paasta_tools-1.31.0.data/scripts/check_cassandracluster_services_replication.py,sha256=mKlCK9pRNzxnOt41wA6CtDQIHhcky438i044kA6pbEc,1127
|
|
294
|
+
paasta_tools-1.31.0.data/scripts/check_flink_services_health.py,sha256=ElYa1hr6KUcXuu0B8Nf-dt2Vfyo5FrwF5gVV4QBX7Lg,7162
|
|
295
|
+
paasta_tools-1.31.0.data/scripts/check_kubernetes_api.py,sha256=BhOqJkkKNJPfonfIPonW5dlIubd1ji-3ppjXHomNwzM,1522
|
|
296
|
+
paasta_tools-1.31.0.data/scripts/check_kubernetes_services_replication.py,sha256=LCLlumReRdy9Cw_sPpqanjPcBlbcrJDiECaYYru5Cwk,5751
|
|
297
|
+
paasta_tools-1.31.0.data/scripts/check_manual_oapi_changes.sh,sha256=1IdphwXP7xnMNS7huZ3FeEHy67-nY4n3ydHmbojQvJg,879
|
|
298
|
+
paasta_tools-1.31.0.data/scripts/check_oom_events.py,sha256=tUr14T2LYEgqwpAq4vkZ_Z0VTPOfQg7yrSSkwGQ86Hg,7801
|
|
299
|
+
paasta_tools-1.31.0.data/scripts/check_orphans.py,sha256=9PmzRUZ1HwCcmTm4J1xTznz7hZl8fKsu1wdXUDufXJs,9984
|
|
300
|
+
paasta_tools-1.31.0.data/scripts/check_spark_jobs.py,sha256=W4HUIbX_ylxl4DlqcdmoRWDbKYgPEr04OM-DLvfnXE8,7316
|
|
301
|
+
paasta_tools-1.31.0.data/scripts/cleanup_kubernetes_cr.py,sha256=m-w_wuTuVG9FlwQQkxXYgri5DTGac9Nc2pbK4k1FNDE,4659
|
|
302
|
+
paasta_tools-1.31.0.data/scripts/cleanup_kubernetes_crd.py,sha256=p9eLk-0-pU-hcVg-GAM92h1ZdQqlvmYhBzUFCiMPYR8,4478
|
|
303
|
+
paasta_tools-1.31.0.data/scripts/cleanup_kubernetes_jobs.py,sha256=7LHB4tsz1kt-zygssIfQbBY6c3LSqXYDUILvHkSfBog,12433
|
|
304
|
+
paasta_tools-1.31.0.data/scripts/create_dynamodb_table.py,sha256=9wJftWGgNtvLnpXeUqpoMXBIIep1hNySf0YiQmzpl5c,1167
|
|
305
|
+
paasta_tools-1.31.0.data/scripts/create_paasta_playground.py,sha256=jzoE5e1pxWeVXwCEkD9O0jefOhEnIlSa3QMP9PC2f0M,3239
|
|
306
|
+
paasta_tools-1.31.0.data/scripts/delete_kubernetes_deployments.py,sha256=de4C-5yqEuCeJXp6zhbc0v-c0LOElr4qabLnOTRcX4o,3124
|
|
307
|
+
paasta_tools-1.31.0.data/scripts/emit_allocated_cpu_metrics.py,sha256=Cjd3xoOJoYSP3ciSAlZ7fh6_z678KpYt43Xh-WVCY1M,1859
|
|
308
|
+
paasta_tools-1.31.0.data/scripts/generate_all_deployments,sha256=Qr5B0zogTOr8Lcn_7dpORixpGIJcXZ_pWz_ZlWnmsik,248
|
|
309
|
+
paasta_tools-1.31.0.data/scripts/generate_authenticating_services.py,sha256=r5AQyquVm8_rbAhBETUU2ZHZvolpqZZTakW3lKFiOqw,2982
|
|
310
|
+
paasta_tools-1.31.0.data/scripts/generate_deployments_for_service.py,sha256=FAFzIAtKY7GsA13s-ssCMH7T-_p9B1pBtyyYFzsCZ6k,9822
|
|
311
|
+
paasta_tools-1.31.0.data/scripts/generate_services_file.py,sha256=w3Wyyn9ZkjfrvkT0SnTbh5mrTZJnjhTC2JIqLBpb6-g,3583
|
|
312
|
+
paasta_tools-1.31.0.data/scripts/generate_services_yaml.py,sha256=XyIUsHa1BPLqeklayaFewX69-6GT_luaSLS_TMDLkQ0,991
|
|
313
|
+
paasta_tools-1.31.0.data/scripts/get_running_task_allocation.py,sha256=NGYO2td42XQOduUmvgz0CZw0ir36bY6fUe3VOR1Ln6E,10876
|
|
314
|
+
paasta_tools-1.31.0.data/scripts/habitat_fixer.py,sha256=hCC7fEnxrBOmiCJj4rPwhGlae9JsYg_gltk10l-FwaE,2625
|
|
315
|
+
paasta_tools-1.31.0.data/scripts/ide_helper.py,sha256=QUVWxIeh54IhTn3HEhBrmJKvtgw6RDv9smoJ-6pZA4c,12348
|
|
316
|
+
paasta_tools-1.31.0.data/scripts/is_pod_healthy_in_proxy.py,sha256=MiY85MJDXcN9oS8d840WG1iYDIzzO9lmk_NC0i_CrQg,4321
|
|
317
|
+
paasta_tools-1.31.0.data/scripts/is_pod_healthy_in_smartstack.py,sha256=z3uP9sgwLwg94BubFgBKare2t1L5qhcY48MWsJxjxPY,1697
|
|
318
|
+
paasta_tools-1.31.0.data/scripts/kill_bad_containers.py,sha256=oNY5x0Zg0eu34cXhFy60I7WRlqg4PKD_6xWi0eoRTCA,3832
|
|
319
|
+
paasta_tools-1.31.0.data/scripts/kubernetes_remove_evicted_pods.py,sha256=D9Ovdc9Xer_Qf3vM5CtPVcKvnMwLiC0H-WQmQGXrBKM,5274
|
|
320
|
+
paasta_tools-1.31.0.data/scripts/mass-deploy-tag.sh,sha256=cfPgDDvAOhy3ijTUocklogzoIY8hfoE6T5QI-0aqcfM,1578
|
|
321
|
+
paasta_tools-1.31.0.data/scripts/mock_patch_checker.py,sha256=Q6Je8QjmfLzdnv_6JR6ehh2kA5SUxmeZGeLI2WC3BSY,2559
|
|
322
|
+
paasta_tools-1.31.0.data/scripts/paasta_cleanup_remote_run_resources.py,sha256=4oN9UwnR7q6aEEyFUhVrT41VSeQJ2YS3upFpbZQXNUI,4558
|
|
323
|
+
paasta_tools-1.31.0.data/scripts/paasta_cleanup_stale_nodes.py,sha256=C-DmEVgtienoMgJnIeESvFqWcJOW2SOGoS1l8RXA8NE,6304
|
|
324
|
+
paasta_tools-1.31.0.data/scripts/paasta_deploy_tron_jobs,sha256=fFN2aP5FNSm5WfDV3yvLpihXaKkAF65MRXFcN2iD7S4,106
|
|
325
|
+
paasta_tools-1.31.0.data/scripts/paasta_execute_docker_command.py,sha256=6kh7h2bleQbNULc37MiRsfnk9MDHqVv30UQdg3rF3kQ,4086
|
|
326
|
+
paasta_tools-1.31.0.data/scripts/paasta_secrets_sync.py,sha256=sMdyWMt9BU5CmWHIRwzhpFKve7zxFHkygt_SNTJutWM,28766
|
|
327
|
+
paasta_tools-1.31.0.data/scripts/paasta_tabcomplete.sh,sha256=qbQKSriz_L4MogA12L_8i-tg0Lplpshbk_FUMjK6uG0,929
|
|
328
|
+
paasta_tools-1.31.0.data/scripts/paasta_update_soa_memcpu.py,sha256=5fShpZYpb7EeoC70cWdICnNHjHAaNU5mTHaAc3mloIs,20813
|
|
329
|
+
paasta_tools-1.31.0.data/scripts/render_template.py,sha256=KcKfeSP2a9f6fMDRhnjX7OJaHmFIBtCJcHhUI_B7p9Y,3975
|
|
330
|
+
paasta_tools-1.31.0.data/scripts/rightsizer_soaconfigs_update.py,sha256=0UPVtDyX6wXXurv7l5fiKuzXH8VEszKx_V7UqDm6Ck0,10493
|
|
331
|
+
paasta_tools-1.31.0.data/scripts/service_shard_remove.py,sha256=WCvCxu3GTYEa3cYnWybTOiuHN14axj0x5_-snVd-mqE,4927
|
|
332
|
+
paasta_tools-1.31.0.data/scripts/service_shard_update.py,sha256=AajuRS4s-HXhEcIIYK2dsyBSdCjZbh4x6Po48ipl7M4,13346
|
|
333
|
+
paasta_tools-1.31.0.data/scripts/setup_istio_mesh.py,sha256=LbLxeI_DnhNXkyCgG-GxutlNu9_vcIitorYr4I9x4CY,11575
|
|
334
|
+
paasta_tools-1.31.0.data/scripts/setup_kubernetes_cr.py,sha256=xsZJ_X1YpQ0NExyY1cXFH8KW2_vAgctCwdrW0bu102s,14931
|
|
335
|
+
paasta_tools-1.31.0.data/scripts/setup_kubernetes_crd.py,sha256=QCiFOcSmE0nMEheIb7IUnYMUn0heh1kHyMFBCm7XIRU,4020
|
|
336
|
+
paasta_tools-1.31.0.data/scripts/setup_kubernetes_internal_crd.py,sha256=dDyAOKFow7yeHWGa197angYwGTDWNyR7vZ6Cx5JlS6k,4629
|
|
337
|
+
paasta_tools-1.31.0.data/scripts/setup_kubernetes_job.py,sha256=H2VuRaCpBj-J2Qc3DmIMutGuDL8nlfabshEiCGNNqmY,19095
|
|
338
|
+
paasta_tools-1.31.0.data/scripts/setup_prometheus_adapter_config.py,sha256=JzvztaJ__5MOAV6pD5Vj3mamARh6TZUCzYdlqhWDOOY,43962
|
|
339
|
+
paasta_tools-1.31.0.data/scripts/shared_ip_check.py,sha256=dbMwCwDLy9hCIbVWV1rk0FKuBkZNuQtM59hGVKxV2B4,2464
|
|
340
|
+
paasta_tools-1.31.0.data/scripts/synapse_srv_namespaces_fact.py,sha256=HFX0zIXkXIjtAw8zrA7mUiy6NOKR11eBzE39R3aZv_E,1408
|
|
341
|
+
paasta_tools-1.31.0.data/scripts/timeouts_metrics_prom.py,sha256=icK1j72-e-hvbUGs3LtcaMn9KBMopD9cGv5UUVo-OSc,2607
|
|
342
|
+
paasta_tools-1.31.0.dist-info/licenses/LICENSE,sha256=Tcxn8PpeSjHDwUTemLW_thUNxcOOm612dK_no2ebEpo,10837
|
|
343
|
+
paasta_tools-1.31.0.dist-info/METADATA,sha256=NP7dEbQr2d5Z9LhGua4pqMXhKSQv6EkLu6c9IDuNTy8,2259
|
|
344
|
+
paasta_tools-1.31.0.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
345
|
+
paasta_tools-1.31.0.dist-info/entry_points.txt,sha256=qokGSdKYA6AjtdMM_BjmCAOMghMsjOpcAdL9e4fY6D8,1179
|
|
346
|
+
paasta_tools-1.31.0.dist-info/top_level.txt,sha256=6vZZAZ7bbaDxuXZjNYixDwzkrezpNgDQHpS0ikvFOk4,24
|
|
347
|
+
paasta_tools-1.31.0.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
{paasta_tools-1.30.14.data → paasta_tools-1.31.0.data}/scripts/check_autoscaler_max_instances.py
RENAMED
|
File without changes
|
|
File without changes
|
{paasta_tools-1.30.14.data → paasta_tools-1.31.0.data}/scripts/check_flink_services_health.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{paasta_tools-1.30.14.data → paasta_tools-1.31.0.data}/scripts/delete_kubernetes_deployments.py
RENAMED
|
File without changes
|
{paasta_tools-1.30.14.data → paasta_tools-1.31.0.data}/scripts/emit_allocated_cpu_metrics.py
RENAMED
|
File without changes
|
|
File without changes
|
{paasta_tools-1.30.14.data → paasta_tools-1.31.0.data}/scripts/generate_authenticating_services.py
RENAMED
|
File without changes
|
{paasta_tools-1.30.14.data → paasta_tools-1.31.0.data}/scripts/generate_deployments_for_service.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{paasta_tools-1.30.14.data → paasta_tools-1.31.0.data}/scripts/get_running_task_allocation.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{paasta_tools-1.30.14.data → paasta_tools-1.31.0.data}/scripts/is_pod_healthy_in_smartstack.py
RENAMED
|
File without changes
|
|
File without changes
|
{paasta_tools-1.30.14.data → paasta_tools-1.31.0.data}/scripts/kubernetes_remove_evicted_pods.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{paasta_tools-1.30.14.data → paasta_tools-1.31.0.data}/scripts/paasta_cleanup_stale_nodes.py
RENAMED
|
File without changes
|
|
File without changes
|
{paasta_tools-1.30.14.data → paasta_tools-1.31.0.data}/scripts/paasta_execute_docker_command.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{paasta_tools-1.30.14.data → paasta_tools-1.31.0.data}/scripts/rightsizer_soaconfigs_update.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{paasta_tools-1.30.14.data → paasta_tools-1.31.0.data}/scripts/setup_kubernetes_internal_crd.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{paasta_tools-1.30.14.data → paasta_tools-1.31.0.data}/scripts/synapse_srv_namespaces_fact.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|