paasta-tools 1.24.1__py3-none-any.whl → 1.25.1__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.
Files changed (61) hide show
  1. paasta_tools/__init__.py +1 -1
  2. paasta_tools/cleanup_expired_autoscaling_overrides.py +155 -0
  3. paasta_tools/kubernetes_tools.py +43 -0
  4. {paasta_tools-1.24.1.dist-info → paasta_tools-1.25.1.dist-info}/METADATA +2 -2
  5. {paasta_tools-1.24.1.dist-info → paasta_tools-1.25.1.dist-info}/RECORD +61 -60
  6. {paasta_tools-1.24.1.dist-info → paasta_tools-1.25.1.dist-info}/entry_points.txt +1 -0
  7. {paasta_tools-1.24.1.data → paasta_tools-1.25.1.data}/scripts/apply_external_resources.py +0 -0
  8. {paasta_tools-1.24.1.data → paasta_tools-1.25.1.data}/scripts/bounce_log_latency_parser.py +0 -0
  9. {paasta_tools-1.24.1.data → paasta_tools-1.25.1.data}/scripts/check_autoscaler_max_instances.py +0 -0
  10. {paasta_tools-1.24.1.data → paasta_tools-1.25.1.data}/scripts/check_cassandracluster_services_replication.py +0 -0
  11. {paasta_tools-1.24.1.data → paasta_tools-1.25.1.data}/scripts/check_flink_services_health.py +0 -0
  12. {paasta_tools-1.24.1.data → paasta_tools-1.25.1.data}/scripts/check_kubernetes_api.py +0 -0
  13. {paasta_tools-1.24.1.data → paasta_tools-1.25.1.data}/scripts/check_kubernetes_services_replication.py +0 -0
  14. {paasta_tools-1.24.1.data → paasta_tools-1.25.1.data}/scripts/check_manual_oapi_changes.sh +0 -0
  15. {paasta_tools-1.24.1.data → paasta_tools-1.25.1.data}/scripts/check_oom_events.py +0 -0
  16. {paasta_tools-1.24.1.data → paasta_tools-1.25.1.data}/scripts/check_orphans.py +0 -0
  17. {paasta_tools-1.24.1.data → paasta_tools-1.25.1.data}/scripts/check_spark_jobs.py +0 -0
  18. {paasta_tools-1.24.1.data → paasta_tools-1.25.1.data}/scripts/cleanup_kubernetes_cr.py +0 -0
  19. {paasta_tools-1.24.1.data → paasta_tools-1.25.1.data}/scripts/cleanup_kubernetes_crd.py +0 -0
  20. {paasta_tools-1.24.1.data → paasta_tools-1.25.1.data}/scripts/cleanup_kubernetes_jobs.py +0 -0
  21. {paasta_tools-1.24.1.data → paasta_tools-1.25.1.data}/scripts/create_dynamodb_table.py +0 -0
  22. {paasta_tools-1.24.1.data → paasta_tools-1.25.1.data}/scripts/create_paasta_playground.py +0 -0
  23. {paasta_tools-1.24.1.data → paasta_tools-1.25.1.data}/scripts/delete_kubernetes_deployments.py +0 -0
  24. {paasta_tools-1.24.1.data → paasta_tools-1.25.1.data}/scripts/emit_allocated_cpu_metrics.py +0 -0
  25. {paasta_tools-1.24.1.data → paasta_tools-1.25.1.data}/scripts/generate_all_deployments +0 -0
  26. {paasta_tools-1.24.1.data → paasta_tools-1.25.1.data}/scripts/generate_authenticating_services.py +0 -0
  27. {paasta_tools-1.24.1.data → paasta_tools-1.25.1.data}/scripts/generate_deployments_for_service.py +0 -0
  28. {paasta_tools-1.24.1.data → paasta_tools-1.25.1.data}/scripts/generate_services_file.py +0 -0
  29. {paasta_tools-1.24.1.data → paasta_tools-1.25.1.data}/scripts/generate_services_yaml.py +0 -0
  30. {paasta_tools-1.24.1.data → paasta_tools-1.25.1.data}/scripts/get_running_task_allocation.py +0 -0
  31. {paasta_tools-1.24.1.data → paasta_tools-1.25.1.data}/scripts/habitat_fixer.py +0 -0
  32. {paasta_tools-1.24.1.data → paasta_tools-1.25.1.data}/scripts/ide_helper.py +0 -0
  33. {paasta_tools-1.24.1.data → paasta_tools-1.25.1.data}/scripts/is_pod_healthy_in_proxy.py +0 -0
  34. {paasta_tools-1.24.1.data → paasta_tools-1.25.1.data}/scripts/is_pod_healthy_in_smartstack.py +0 -0
  35. {paasta_tools-1.24.1.data → paasta_tools-1.25.1.data}/scripts/kill_bad_containers.py +0 -0
  36. {paasta_tools-1.24.1.data → paasta_tools-1.25.1.data}/scripts/kubernetes_remove_evicted_pods.py +0 -0
  37. {paasta_tools-1.24.1.data → paasta_tools-1.25.1.data}/scripts/mass-deploy-tag.sh +0 -0
  38. {paasta_tools-1.24.1.data → paasta_tools-1.25.1.data}/scripts/mock_patch_checker.py +0 -0
  39. {paasta_tools-1.24.1.data → paasta_tools-1.25.1.data}/scripts/paasta_cleanup_remote_run_resources.py +0 -0
  40. {paasta_tools-1.24.1.data → paasta_tools-1.25.1.data}/scripts/paasta_cleanup_stale_nodes.py +0 -0
  41. {paasta_tools-1.24.1.data → paasta_tools-1.25.1.data}/scripts/paasta_deploy_tron_jobs +0 -0
  42. {paasta_tools-1.24.1.data → paasta_tools-1.25.1.data}/scripts/paasta_execute_docker_command.py +0 -0
  43. {paasta_tools-1.24.1.data → paasta_tools-1.25.1.data}/scripts/paasta_secrets_sync.py +0 -0
  44. {paasta_tools-1.24.1.data → paasta_tools-1.25.1.data}/scripts/paasta_tabcomplete.sh +0 -0
  45. {paasta_tools-1.24.1.data → paasta_tools-1.25.1.data}/scripts/paasta_update_soa_memcpu.py +0 -0
  46. {paasta_tools-1.24.1.data → paasta_tools-1.25.1.data}/scripts/render_template.py +0 -0
  47. {paasta_tools-1.24.1.data → paasta_tools-1.25.1.data}/scripts/rightsizer_soaconfigs_update.py +0 -0
  48. {paasta_tools-1.24.1.data → paasta_tools-1.25.1.data}/scripts/service_shard_remove.py +0 -0
  49. {paasta_tools-1.24.1.data → paasta_tools-1.25.1.data}/scripts/service_shard_update.py +0 -0
  50. {paasta_tools-1.24.1.data → paasta_tools-1.25.1.data}/scripts/setup_istio_mesh.py +0 -0
  51. {paasta_tools-1.24.1.data → paasta_tools-1.25.1.data}/scripts/setup_kubernetes_cr.py +0 -0
  52. {paasta_tools-1.24.1.data → paasta_tools-1.25.1.data}/scripts/setup_kubernetes_crd.py +0 -0
  53. {paasta_tools-1.24.1.data → paasta_tools-1.25.1.data}/scripts/setup_kubernetes_internal_crd.py +0 -0
  54. {paasta_tools-1.24.1.data → paasta_tools-1.25.1.data}/scripts/setup_kubernetes_job.py +0 -0
  55. {paasta_tools-1.24.1.data → paasta_tools-1.25.1.data}/scripts/setup_prometheus_adapter_config.py +0 -0
  56. {paasta_tools-1.24.1.data → paasta_tools-1.25.1.data}/scripts/shared_ip_check.py +0 -0
  57. {paasta_tools-1.24.1.data → paasta_tools-1.25.1.data}/scripts/synapse_srv_namespaces_fact.py +0 -0
  58. {paasta_tools-1.24.1.data → paasta_tools-1.25.1.data}/scripts/timeouts_metrics_prom.py +0 -0
  59. {paasta_tools-1.24.1.dist-info → paasta_tools-1.25.1.dist-info}/LICENSE +0 -0
  60. {paasta_tools-1.24.1.dist-info → paasta_tools-1.25.1.dist-info}/WHEEL +0 -0
  61. {paasta_tools-1.24.1.dist-info → paasta_tools-1.25.1.dist-info}/top_level.txt +0 -0
paasta_tools/__init__.py CHANGED
@@ -17,4 +17,4 @@
17
17
  # setup phase, the dependencies may not exist on disk yet.
18
18
  #
19
19
  # Don't bump version manually. See `make release` docs in ./Makefile
20
- __version__ = "1.24.1"
20
+ __version__ = "1.25.1"
@@ -0,0 +1,155 @@
1
+ import argparse
2
+ import json
3
+ import logging
4
+ import sys
5
+ import time
6
+ from datetime import datetime
7
+ from datetime import timezone
8
+
9
+ from kubernetes.client.rest import ApiException
10
+
11
+ from paasta_tools.kubernetes_tools import AUTOSCALING_OVERRIDES_CONFIGMAP_NAME
12
+ from paasta_tools.kubernetes_tools import AUTOSCALING_OVERRIDES_CONFIGMAP_NAMESPACE
13
+ from paasta_tools.kubernetes_tools import get_namespaced_configmap
14
+ from paasta_tools.kubernetes_tools import KubeClient
15
+ from paasta_tools.kubernetes_tools import replace_namespaced_configmap
16
+
17
+ log = logging.getLogger(__name__)
18
+
19
+
20
+ def parse_args():
21
+ parser = argparse.ArgumentParser(
22
+ description=f"Clean up expired entries from the {AUTOSCALING_OVERRIDES_CONFIGMAP_NAME} configmap"
23
+ )
24
+ parser.add_argument(
25
+ "--dry-run",
26
+ dest="dry_run",
27
+ action="store_true",
28
+ help="Print entries to be removed instead of removing them",
29
+ )
30
+ parser.add_argument(
31
+ "-v", "--verbose", dest="verbose", action="store_true", default=False
32
+ )
33
+ args = parser.parse_args()
34
+ return args
35
+
36
+
37
+ def setup_logging(verbose):
38
+ level = logging.DEBUG if verbose else logging.INFO
39
+ logging.basicConfig(level=level)
40
+ # silence kubernetes client metadata logs since debug ones are pretty noisy
41
+ logging.getLogger("kubernetes.client.rest").setLevel(logging.ERROR)
42
+
43
+
44
+ def main():
45
+ args = parse_args()
46
+ setup_logging(args.verbose)
47
+
48
+ kube_client = KubeClient()
49
+
50
+ try:
51
+ configmap = get_namespaced_configmap(
52
+ name=AUTOSCALING_OVERRIDES_CONFIGMAP_NAME,
53
+ namespace=AUTOSCALING_OVERRIDES_CONFIGMAP_NAMESPACE,
54
+ kube_client=kube_client,
55
+ )
56
+ except ApiException as e:
57
+ if e.status == 404:
58
+ log.debug(
59
+ f"ConfigMap {AUTOSCALING_OVERRIDES_CONFIGMAP_NAME} not found, nothing to clean up"
60
+ )
61
+ sys.exit(0)
62
+ else:
63
+ log.error(f"Error retrieving ConfigMap: {e}")
64
+ sys.exit(1)
65
+
66
+ if configmap is None:
67
+ log.debug(
68
+ f"ConfigMap {AUTOSCALING_OVERRIDES_CONFIGMAP_NAME} not found, nothing to clean up"
69
+ )
70
+ sys.exit(0)
71
+
72
+ if not configmap.data:
73
+ log.debug("ConfigMap has no data, nothing to clean up")
74
+ sys.exit(0)
75
+
76
+ current_timestamp = (
77
+ time.time()
78
+ ) # we'll fix the comparison time to the start of the script execution
79
+ expired_entries = [] # used just for logging
80
+ unexpired_data = {} # used to replace the existing configmap data
81
+
82
+ log.debug(f"Current timestamp: {current_timestamp}")
83
+ for service_instance, override_json in configmap.data.items():
84
+ log.debug(f"Processing entry for {service_instance}")
85
+
86
+ try:
87
+ override_data = json.loads(override_json)
88
+ except json.JSONDecodeError:
89
+ log.exception(
90
+ f"Failed to parse JSON for {service_instance}, removing entry"
91
+ )
92
+ expired_entries.append(service_instance)
93
+ continue
94
+
95
+ if "expire_after" not in override_data:
96
+ log.warning(
97
+ f"Entry for {service_instance} missing expire_after field, removing entry"
98
+ )
99
+ expired_entries.append(service_instance)
100
+ continue
101
+
102
+ try:
103
+ expire_after = float(override_data["expire_after"])
104
+ except (ValueError, TypeError):
105
+ log.exception(
106
+ f"Failed to parse expire_after for {service_instance}, removing entry"
107
+ )
108
+ expired_entries.append(service_instance)
109
+ continue
110
+
111
+ if current_timestamp > expire_after:
112
+ expire_datetime = datetime.fromtimestamp(expire_after, tz=timezone.utc)
113
+ log.debug(
114
+ f"Entry for {service_instance} expired at {expire_after} ({expire_datetime})"
115
+ )
116
+ expired_entries.append(service_instance)
117
+ else:
118
+ expire_datetime = datetime.fromtimestamp(expire_after, tz=timezone.utc)
119
+ log.debug(
120
+ f"Entry for {service_instance} expires at {expire_after} ({expire_datetime}), keeping"
121
+ )
122
+ unexpired_data[service_instance] = override_json
123
+
124
+ if not expired_entries:
125
+ log.info("No expired entries found")
126
+ sys.exit(0)
127
+
128
+ if args.dry_run:
129
+ log.info(
130
+ "Would have removed the following expired entries:\n "
131
+ + "\n ".join(expired_entries)
132
+ )
133
+ sys.exit(0)
134
+
135
+ try:
136
+ configmap.data = (
137
+ unexpired_data # naughtily re-use the existing configmap object
138
+ )
139
+ replace_namespaced_configmap( # NOTE: this is not a patch since you cannot currently remove entries in a patch
140
+ name=AUTOSCALING_OVERRIDES_CONFIGMAP_NAME,
141
+ namespace=AUTOSCALING_OVERRIDES_CONFIGMAP_NAMESPACE,
142
+ body=configmap,
143
+ kube_client=kube_client,
144
+ )
145
+ log.info(
146
+ f"Successfully removed {len(expired_entries)} expired entries:\n "
147
+ + "\n ".join(expired_entries)
148
+ )
149
+ except ApiException as e:
150
+ log.error(f"Failed to update ConfigMap: {e}")
151
+ sys.exit(1)
152
+
153
+
154
+ if __name__ == "__main__":
155
+ main()
@@ -4709,6 +4709,49 @@ def patch_namespaced_configmap(
4709
4709
  raise
4710
4710
 
4711
4711
 
4712
+ def replace_namespaced_configmap(
4713
+ name: str,
4714
+ body: V1ConfigMap,
4715
+ *,
4716
+ namespace: str,
4717
+ kube_client: KubeClient,
4718
+ ) -> V1ConfigMap:
4719
+ """
4720
+ Replaces an existing configmap with the given configmap.
4721
+ """
4722
+ try:
4723
+ return kube_client.core.replace_namespaced_config_map(
4724
+ name=name, namespace=namespace, body=body
4725
+ )
4726
+ except ApiException as e:
4727
+ if e.status == 404:
4728
+ raise ValueError(f"ConfigMap {name} not found in namespace {namespace}")
4729
+ else:
4730
+ raise
4731
+
4732
+
4733
+ def delete_namespaced_configmap(
4734
+ name: str,
4735
+ body: V1ConfigMap,
4736
+ *,
4737
+ namespace: str,
4738
+ kube_client: KubeClient,
4739
+ ) -> V1ConfigMap:
4740
+ """
4741
+ Delete a configmap with the given name in the given namespace.
4742
+ """
4743
+ try:
4744
+ return kube_client.core.delete_namespaced_config_map(
4745
+ name=name,
4746
+ namespace=namespace,
4747
+ )
4748
+ except ApiException as e:
4749
+ if e.status == 404:
4750
+ raise ValueError(f"ConfigMap {name} not found in namespace {namespace}")
4751
+ else:
4752
+ raise
4753
+
4754
+
4712
4755
  def get_or_create_namespaced_configmap(
4713
4756
  configmap: str,
4714
4757
  *,
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: paasta-tools
3
- Version: 1.24.1
3
+ Version: 1.25.1
4
4
  Summary: Tools for Yelps SOA infrastructure
5
5
  Author: Compute Infrastructure @ Yelp
6
6
  Author-email: compute-infra@yelp.com
@@ -59,7 +59,7 @@ Requires-Dist: requests-cache >=0.4.10
59
59
  Requires-Dist: retry
60
60
  Requires-Dist: ruamel.yaml
61
61
  Requires-Dist: sensu-plugin
62
- Requires-Dist: service-configuration-lib >=3.3.3
62
+ Requires-Dist: service-configuration-lib >=3.3.5
63
63
  Requires-Dist: signalfx
64
64
  Requires-Dist: slackclient >=1.2.1
65
65
  Requires-Dist: sticht >=1.1.0
@@ -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=KFUyeMar_6KwU25zzh_tY3-i-Ev3zKwDOQcGfHGqZQQ,865
4
+ paasta_tools/__init__.py,sha256=DchQixGQ0R4t8aTpsJvqZZdNnlkpkzEaal86DR7_wcM,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=ELB2qHP-F2IlMes-kxgy5q9PRUSUTZ-AKw5hQ2K0l_E,3514
@@ -16,6 +16,7 @@ paasta_tools/check_kubernetes_services_replication.py,sha256=UR_dUZ7xSUwMccQrD6n
16
16
  paasta_tools/check_oom_events.py,sha256=z5jsIwpdC_wLHigaYKbJjvAYMVhellLaM9pD2041gCQ,7814
17
17
  paasta_tools/check_services_replication_tools.py,sha256=w6hMyE4x4XUcABQw3LnmOXzTLRV6Tkkj74o51Bj1dsU,11221
18
18
  paasta_tools/check_spark_jobs.py,sha256=oo08IOtRvZMW0Aw7vXUYfJQKTiAdEl2wzm_XCkA-mg0,7330
19
+ paasta_tools/cleanup_expired_autoscaling_overrides.py,sha256=WORimMeULugPwr8soJTi_zAZrL-nPgneiX-Ywt3VJgo,5182
19
20
  paasta_tools/cleanup_kubernetes_cr.py,sha256=cbFvIPt059t2ThwgouzINNC-YPnu3HuYtw9mbLUtOJc,4672
20
21
  paasta_tools/cleanup_kubernetes_crd.py,sha256=O2RbfYeCUbNFEmJlKpzazy4odjAZfm39UKYxhXxbi-U,4491
21
22
  paasta_tools/cleanup_kubernetes_jobs.py,sha256=i7QyR_1pk-UP3lAI2NGqbM_q89yxVo0Kzc-06X6yeIQ,12446
@@ -43,7 +44,7 @@ paasta_tools/generate_services_yaml.py,sha256=BM760XGEOmLeJcEm0ez5nBZ2NmFJWsNXbZ
43
44
  paasta_tools/hacheck.py,sha256=GtQd32G4JoB2bOWqzH9h9NPrkg8a50i-iXAblfYz2p4,2748
44
45
  paasta_tools/iptables.py,sha256=SQ7hutHarfCd13oAknKv_h9rUuln4rf11W6C2HHUy9g,7518
45
46
  paasta_tools/kafkacluster_tools.py,sha256=NMfowdpYhFpXW55MKx_eX6rrQj5Fn-5M_9ryZKd749A,4992
46
- paasta_tools/kubernetes_tools.py,sha256=zR29IQMhBUei1B8W5Oo-XskN91kfbReMzW6JxL4I_0U,181094
47
+ paasta_tools/kubernetes_tools.py,sha256=6exXAaaKLEPMUIYgQJUf3QvbJ-D7wfCdX8SClP7CShs,182172
47
48
  paasta_tools/list_kubernetes_service_instances.py,sha256=UEPiTqNxUAqUgSyPzJlNcrI2W4HBwpngzDM1QD6AAVQ,3910
48
49
  paasta_tools/list_tron_namespaces.py,sha256=wfSkPY9_C-RkORmnon3DWL2lVZ4GNSSDG9VkFrDfY1E,1679
49
50
  paasta_tools/long_running_service_tools.py,sha256=PE4K9opcx16tEc3XxWgQBKCpV4cJYS2JfN-dyTFhmB4,26137
@@ -291,61 +292,61 @@ paasta_tools/tron/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU
291
292
  paasta_tools/tron/client.py,sha256=ypWjM4bZCzQWLn-qe1driqAxvF0ux8dROuFUv63dryA,5562
292
293
  paasta_tools/tron/tron_command_context.py,sha256=c6mph_DAt7pjcE3Uo271haJ0DfxJzfvcRhR2o-UmOeY,5379
293
294
  paasta_tools/tron/tron_timeutils.py,sha256=vDn04K7A3Xbs3lM04EgLuViC8AavOc5qyo8J5MC5nLk,3054
294
- paasta_tools-1.24.1.data/scripts/apply_external_resources.py,sha256=BOIdCQ5Md9RI3enzqbIWQge3clkXhPybAmLE3hqfDwQ,3347
295
- paasta_tools-1.24.1.data/scripts/bounce_log_latency_parser.py,sha256=dC06a0a5LdtPJ8xo88QWe5DMH_vwVB1BNbkFH7kJ3j0,2225
296
- paasta_tools-1.24.1.data/scripts/check_autoscaler_max_instances.py,sha256=2z6ifSU26-ULOK-FXp75b45mCdjSJnuvU8TxvapB8Wk,9423
297
- paasta_tools-1.24.1.data/scripts/check_cassandracluster_services_replication.py,sha256=mKlCK9pRNzxnOt41wA6CtDQIHhcky438i044kA6pbEc,1127
298
- paasta_tools-1.24.1.data/scripts/check_flink_services_health.py,sha256=ElYa1hr6KUcXuu0B8Nf-dt2Vfyo5FrwF5gVV4QBX7Lg,7162
299
- paasta_tools-1.24.1.data/scripts/check_kubernetes_api.py,sha256=BhOqJkkKNJPfonfIPonW5dlIubd1ji-3ppjXHomNwzM,1522
300
- paasta_tools-1.24.1.data/scripts/check_kubernetes_services_replication.py,sha256=LCLlumReRdy9Cw_sPpqanjPcBlbcrJDiECaYYru5Cwk,5751
301
- paasta_tools-1.24.1.data/scripts/check_manual_oapi_changes.sh,sha256=1IdphwXP7xnMNS7huZ3FeEHy67-nY4n3ydHmbojQvJg,879
302
- paasta_tools-1.24.1.data/scripts/check_oom_events.py,sha256=tUr14T2LYEgqwpAq4vkZ_Z0VTPOfQg7yrSSkwGQ86Hg,7801
303
- paasta_tools-1.24.1.data/scripts/check_orphans.py,sha256=zVC5ShFY7LUnPDUytRNsMgvqXkECHvyZlc3qZMpxLko,9985
304
- paasta_tools-1.24.1.data/scripts/check_spark_jobs.py,sha256=pVUdWmZSBuh4CbpW7cZ1Loq8FX0QFS0LQk2b24TGRyE,7317
305
- paasta_tools-1.24.1.data/scripts/cleanup_kubernetes_cr.py,sha256=m-w_wuTuVG9FlwQQkxXYgri5DTGac9Nc2pbK4k1FNDE,4659
306
- paasta_tools-1.24.1.data/scripts/cleanup_kubernetes_crd.py,sha256=p9eLk-0-pU-hcVg-GAM92h1ZdQqlvmYhBzUFCiMPYR8,4478
307
- paasta_tools-1.24.1.data/scripts/cleanup_kubernetes_jobs.py,sha256=7LHB4tsz1kt-zygssIfQbBY6c3LSqXYDUILvHkSfBog,12433
308
- paasta_tools-1.24.1.data/scripts/create_dynamodb_table.py,sha256=9wJftWGgNtvLnpXeUqpoMXBIIep1hNySf0YiQmzpl5c,1167
309
- paasta_tools-1.24.1.data/scripts/create_paasta_playground.py,sha256=jzoE5e1pxWeVXwCEkD9O0jefOhEnIlSa3QMP9PC2f0M,3239
310
- paasta_tools-1.24.1.data/scripts/delete_kubernetes_deployments.py,sha256=de4C-5yqEuCeJXp6zhbc0v-c0LOElr4qabLnOTRcX4o,3124
311
- paasta_tools-1.24.1.data/scripts/emit_allocated_cpu_metrics.py,sha256=Cjd3xoOJoYSP3ciSAlZ7fh6_z678KpYt43Xh-WVCY1M,1859
312
- paasta_tools-1.24.1.data/scripts/generate_all_deployments,sha256=Qr5B0zogTOr8Lcn_7dpORixpGIJcXZ_pWz_ZlWnmsik,248
313
- paasta_tools-1.24.1.data/scripts/generate_authenticating_services.py,sha256=r5AQyquVm8_rbAhBETUU2ZHZvolpqZZTakW3lKFiOqw,2982
314
- paasta_tools-1.24.1.data/scripts/generate_deployments_for_service.py,sha256=FAFzIAtKY7GsA13s-ssCMH7T-_p9B1pBtyyYFzsCZ6k,9822
315
- paasta_tools-1.24.1.data/scripts/generate_services_file.py,sha256=w3Wyyn9ZkjfrvkT0SnTbh5mrTZJnjhTC2JIqLBpb6-g,3583
316
- paasta_tools-1.24.1.data/scripts/generate_services_yaml.py,sha256=XyIUsHa1BPLqeklayaFewX69-6GT_luaSLS_TMDLkQ0,991
317
- paasta_tools-1.24.1.data/scripts/get_running_task_allocation.py,sha256=rV2IFGWU2sEYAVDCwKZgeseOAewFzfDiFeCnsPXdGXY,10890
318
- paasta_tools-1.24.1.data/scripts/habitat_fixer.py,sha256=hCC7fEnxrBOmiCJj4rPwhGlae9JsYg_gltk10l-FwaE,2625
319
- paasta_tools-1.24.1.data/scripts/ide_helper.py,sha256=YxHHqbnrJ88XI9Pmlup2QSvp15qVN5ugLuPYkEsmBCw,12334
320
- paasta_tools-1.24.1.data/scripts/is_pod_healthy_in_proxy.py,sha256=MiY85MJDXcN9oS8d840WG1iYDIzzO9lmk_NC0i_CrQg,4321
321
- paasta_tools-1.24.1.data/scripts/is_pod_healthy_in_smartstack.py,sha256=z3uP9sgwLwg94BubFgBKare2t1L5qhcY48MWsJxjxPY,1697
322
- paasta_tools-1.24.1.data/scripts/kill_bad_containers.py,sha256=oNY5x0Zg0eu34cXhFy60I7WRlqg4PKD_6xWi0eoRTCA,3832
323
- paasta_tools-1.24.1.data/scripts/kubernetes_remove_evicted_pods.py,sha256=D9Ovdc9Xer_Qf3vM5CtPVcKvnMwLiC0H-WQmQGXrBKM,5274
324
- paasta_tools-1.24.1.data/scripts/mass-deploy-tag.sh,sha256=cfPgDDvAOhy3ijTUocklogzoIY8hfoE6T5QI-0aqcfM,1578
325
- paasta_tools-1.24.1.data/scripts/mock_patch_checker.py,sha256=Q6Je8QjmfLzdnv_6JR6ehh2kA5SUxmeZGeLI2WC3BSY,2559
326
- paasta_tools-1.24.1.data/scripts/paasta_cleanup_remote_run_resources.py,sha256=4oN9UwnR7q6aEEyFUhVrT41VSeQJ2YS3upFpbZQXNUI,4558
327
- paasta_tools-1.24.1.data/scripts/paasta_cleanup_stale_nodes.py,sha256=C-DmEVgtienoMgJnIeESvFqWcJOW2SOGoS1l8RXA8NE,6304
328
- paasta_tools-1.24.1.data/scripts/paasta_deploy_tron_jobs,sha256=fFN2aP5FNSm5WfDV3yvLpihXaKkAF65MRXFcN2iD7S4,106
329
- paasta_tools-1.24.1.data/scripts/paasta_execute_docker_command.py,sha256=6kh7h2bleQbNULc37MiRsfnk9MDHqVv30UQdg3rF3kQ,4086
330
- paasta_tools-1.24.1.data/scripts/paasta_secrets_sync.py,sha256=sMdyWMt9BU5CmWHIRwzhpFKve7zxFHkygt_SNTJutWM,28766
331
- paasta_tools-1.24.1.data/scripts/paasta_tabcomplete.sh,sha256=qbQKSriz_L4MogA12L_8i-tg0Lplpshbk_FUMjK6uG0,929
332
- paasta_tools-1.24.1.data/scripts/paasta_update_soa_memcpu.py,sha256=5fShpZYpb7EeoC70cWdICnNHjHAaNU5mTHaAc3mloIs,20813
333
- paasta_tools-1.24.1.data/scripts/render_template.py,sha256=KcKfeSP2a9f6fMDRhnjX7OJaHmFIBtCJcHhUI_B7p9Y,3975
334
- paasta_tools-1.24.1.data/scripts/rightsizer_soaconfigs_update.py,sha256=0UPVtDyX6wXXurv7l5fiKuzXH8VEszKx_V7UqDm6Ck0,10493
335
- paasta_tools-1.24.1.data/scripts/service_shard_remove.py,sha256=WCvCxu3GTYEa3cYnWybTOiuHN14axj0x5_-snVd-mqE,4927
336
- paasta_tools-1.24.1.data/scripts/service_shard_update.py,sha256=AajuRS4s-HXhEcIIYK2dsyBSdCjZbh4x6Po48ipl7M4,13346
337
- paasta_tools-1.24.1.data/scripts/setup_istio_mesh.py,sha256=LbLxeI_DnhNXkyCgG-GxutlNu9_vcIitorYr4I9x4CY,11575
338
- paasta_tools-1.24.1.data/scripts/setup_kubernetes_cr.py,sha256=8Jj362SLgoR6k0ZwzZ4bkJc3RJrxk-f2dpHD5zJXCuo,14625
339
- paasta_tools-1.24.1.data/scripts/setup_kubernetes_crd.py,sha256=QCiFOcSmE0nMEheIb7IUnYMUn0heh1kHyMFBCm7XIRU,4020
340
- paasta_tools-1.24.1.data/scripts/setup_kubernetes_internal_crd.py,sha256=dDyAOKFow7yeHWGa197angYwGTDWNyR7vZ6Cx5JlS6k,4629
341
- paasta_tools-1.24.1.data/scripts/setup_kubernetes_job.py,sha256=2_6UruJvAonuF3PJIumCvdpyOi4C89YYIoPBL1kLrtY,16943
342
- paasta_tools-1.24.1.data/scripts/setup_prometheus_adapter_config.py,sha256=51iFbtMu7MZzv9PVuQftJ59BUVBKdeC7G_zkt9-IXdc,40728
343
- paasta_tools-1.24.1.data/scripts/shared_ip_check.py,sha256=dbMwCwDLy9hCIbVWV1rk0FKuBkZNuQtM59hGVKxV2B4,2464
344
- paasta_tools-1.24.1.data/scripts/synapse_srv_namespaces_fact.py,sha256=HFX0zIXkXIjtAw8zrA7mUiy6NOKR11eBzE39R3aZv_E,1408
345
- paasta_tools-1.24.1.data/scripts/timeouts_metrics_prom.py,sha256=icK1j72-e-hvbUGs3LtcaMn9KBMopD9cGv5UUVo-OSc,2607
346
- paasta_tools-1.24.1.dist-info/LICENSE,sha256=Tcxn8PpeSjHDwUTemLW_thUNxcOOm612dK_no2ebEpo,10837
347
- paasta_tools-1.24.1.dist-info/METADATA,sha256=omnq7tny2YUBC2E8JT8-eTsx4bYI3uDXvPKRnM51PFc,2202
348
- paasta_tools-1.24.1.dist-info/WHEEL,sha256=iAkIy5fosb7FzIOwONchHf19Qu7_1wCWyFNR5gu9nU0,91
349
- paasta_tools-1.24.1.dist-info/entry_points.txt,sha256=5osYZ62iLdhb63d3P8e9ujafe97kisiB3K-geR5IdH8,1076
350
- paasta_tools-1.24.1.dist-info/top_level.txt,sha256=6vZZAZ7bbaDxuXZjNYixDwzkrezpNgDQHpS0ikvFOk4,24
351
- paasta_tools-1.24.1.dist-info/RECORD,,
295
+ paasta_tools-1.25.1.data/scripts/apply_external_resources.py,sha256=BOIdCQ5Md9RI3enzqbIWQge3clkXhPybAmLE3hqfDwQ,3347
296
+ paasta_tools-1.25.1.data/scripts/bounce_log_latency_parser.py,sha256=dC06a0a5LdtPJ8xo88QWe5DMH_vwVB1BNbkFH7kJ3j0,2225
297
+ paasta_tools-1.25.1.data/scripts/check_autoscaler_max_instances.py,sha256=2z6ifSU26-ULOK-FXp75b45mCdjSJnuvU8TxvapB8Wk,9423
298
+ paasta_tools-1.25.1.data/scripts/check_cassandracluster_services_replication.py,sha256=mKlCK9pRNzxnOt41wA6CtDQIHhcky438i044kA6pbEc,1127
299
+ paasta_tools-1.25.1.data/scripts/check_flink_services_health.py,sha256=ElYa1hr6KUcXuu0B8Nf-dt2Vfyo5FrwF5gVV4QBX7Lg,7162
300
+ paasta_tools-1.25.1.data/scripts/check_kubernetes_api.py,sha256=BhOqJkkKNJPfonfIPonW5dlIubd1ji-3ppjXHomNwzM,1522
301
+ paasta_tools-1.25.1.data/scripts/check_kubernetes_services_replication.py,sha256=LCLlumReRdy9Cw_sPpqanjPcBlbcrJDiECaYYru5Cwk,5751
302
+ paasta_tools-1.25.1.data/scripts/check_manual_oapi_changes.sh,sha256=1IdphwXP7xnMNS7huZ3FeEHy67-nY4n3ydHmbojQvJg,879
303
+ paasta_tools-1.25.1.data/scripts/check_oom_events.py,sha256=tUr14T2LYEgqwpAq4vkZ_Z0VTPOfQg7yrSSkwGQ86Hg,7801
304
+ paasta_tools-1.25.1.data/scripts/check_orphans.py,sha256=zVC5ShFY7LUnPDUytRNsMgvqXkECHvyZlc3qZMpxLko,9985
305
+ paasta_tools-1.25.1.data/scripts/check_spark_jobs.py,sha256=pVUdWmZSBuh4CbpW7cZ1Loq8FX0QFS0LQk2b24TGRyE,7317
306
+ paasta_tools-1.25.1.data/scripts/cleanup_kubernetes_cr.py,sha256=m-w_wuTuVG9FlwQQkxXYgri5DTGac9Nc2pbK4k1FNDE,4659
307
+ paasta_tools-1.25.1.data/scripts/cleanup_kubernetes_crd.py,sha256=p9eLk-0-pU-hcVg-GAM92h1ZdQqlvmYhBzUFCiMPYR8,4478
308
+ paasta_tools-1.25.1.data/scripts/cleanup_kubernetes_jobs.py,sha256=7LHB4tsz1kt-zygssIfQbBY6c3LSqXYDUILvHkSfBog,12433
309
+ paasta_tools-1.25.1.data/scripts/create_dynamodb_table.py,sha256=9wJftWGgNtvLnpXeUqpoMXBIIep1hNySf0YiQmzpl5c,1167
310
+ paasta_tools-1.25.1.data/scripts/create_paasta_playground.py,sha256=jzoE5e1pxWeVXwCEkD9O0jefOhEnIlSa3QMP9PC2f0M,3239
311
+ paasta_tools-1.25.1.data/scripts/delete_kubernetes_deployments.py,sha256=de4C-5yqEuCeJXp6zhbc0v-c0LOElr4qabLnOTRcX4o,3124
312
+ paasta_tools-1.25.1.data/scripts/emit_allocated_cpu_metrics.py,sha256=Cjd3xoOJoYSP3ciSAlZ7fh6_z678KpYt43Xh-WVCY1M,1859
313
+ paasta_tools-1.25.1.data/scripts/generate_all_deployments,sha256=Qr5B0zogTOr8Lcn_7dpORixpGIJcXZ_pWz_ZlWnmsik,248
314
+ paasta_tools-1.25.1.data/scripts/generate_authenticating_services.py,sha256=r5AQyquVm8_rbAhBETUU2ZHZvolpqZZTakW3lKFiOqw,2982
315
+ paasta_tools-1.25.1.data/scripts/generate_deployments_for_service.py,sha256=FAFzIAtKY7GsA13s-ssCMH7T-_p9B1pBtyyYFzsCZ6k,9822
316
+ paasta_tools-1.25.1.data/scripts/generate_services_file.py,sha256=w3Wyyn9ZkjfrvkT0SnTbh5mrTZJnjhTC2JIqLBpb6-g,3583
317
+ paasta_tools-1.25.1.data/scripts/generate_services_yaml.py,sha256=XyIUsHa1BPLqeklayaFewX69-6GT_luaSLS_TMDLkQ0,991
318
+ paasta_tools-1.25.1.data/scripts/get_running_task_allocation.py,sha256=rV2IFGWU2sEYAVDCwKZgeseOAewFzfDiFeCnsPXdGXY,10890
319
+ paasta_tools-1.25.1.data/scripts/habitat_fixer.py,sha256=hCC7fEnxrBOmiCJj4rPwhGlae9JsYg_gltk10l-FwaE,2625
320
+ paasta_tools-1.25.1.data/scripts/ide_helper.py,sha256=YxHHqbnrJ88XI9Pmlup2QSvp15qVN5ugLuPYkEsmBCw,12334
321
+ paasta_tools-1.25.1.data/scripts/is_pod_healthy_in_proxy.py,sha256=MiY85MJDXcN9oS8d840WG1iYDIzzO9lmk_NC0i_CrQg,4321
322
+ paasta_tools-1.25.1.data/scripts/is_pod_healthy_in_smartstack.py,sha256=z3uP9sgwLwg94BubFgBKare2t1L5qhcY48MWsJxjxPY,1697
323
+ paasta_tools-1.25.1.data/scripts/kill_bad_containers.py,sha256=oNY5x0Zg0eu34cXhFy60I7WRlqg4PKD_6xWi0eoRTCA,3832
324
+ paasta_tools-1.25.1.data/scripts/kubernetes_remove_evicted_pods.py,sha256=D9Ovdc9Xer_Qf3vM5CtPVcKvnMwLiC0H-WQmQGXrBKM,5274
325
+ paasta_tools-1.25.1.data/scripts/mass-deploy-tag.sh,sha256=cfPgDDvAOhy3ijTUocklogzoIY8hfoE6T5QI-0aqcfM,1578
326
+ paasta_tools-1.25.1.data/scripts/mock_patch_checker.py,sha256=Q6Je8QjmfLzdnv_6JR6ehh2kA5SUxmeZGeLI2WC3BSY,2559
327
+ paasta_tools-1.25.1.data/scripts/paasta_cleanup_remote_run_resources.py,sha256=4oN9UwnR7q6aEEyFUhVrT41VSeQJ2YS3upFpbZQXNUI,4558
328
+ paasta_tools-1.25.1.data/scripts/paasta_cleanup_stale_nodes.py,sha256=C-DmEVgtienoMgJnIeESvFqWcJOW2SOGoS1l8RXA8NE,6304
329
+ paasta_tools-1.25.1.data/scripts/paasta_deploy_tron_jobs,sha256=fFN2aP5FNSm5WfDV3yvLpihXaKkAF65MRXFcN2iD7S4,106
330
+ paasta_tools-1.25.1.data/scripts/paasta_execute_docker_command.py,sha256=6kh7h2bleQbNULc37MiRsfnk9MDHqVv30UQdg3rF3kQ,4086
331
+ paasta_tools-1.25.1.data/scripts/paasta_secrets_sync.py,sha256=sMdyWMt9BU5CmWHIRwzhpFKve7zxFHkygt_SNTJutWM,28766
332
+ paasta_tools-1.25.1.data/scripts/paasta_tabcomplete.sh,sha256=qbQKSriz_L4MogA12L_8i-tg0Lplpshbk_FUMjK6uG0,929
333
+ paasta_tools-1.25.1.data/scripts/paasta_update_soa_memcpu.py,sha256=5fShpZYpb7EeoC70cWdICnNHjHAaNU5mTHaAc3mloIs,20813
334
+ paasta_tools-1.25.1.data/scripts/render_template.py,sha256=KcKfeSP2a9f6fMDRhnjX7OJaHmFIBtCJcHhUI_B7p9Y,3975
335
+ paasta_tools-1.25.1.data/scripts/rightsizer_soaconfigs_update.py,sha256=0UPVtDyX6wXXurv7l5fiKuzXH8VEszKx_V7UqDm6Ck0,10493
336
+ paasta_tools-1.25.1.data/scripts/service_shard_remove.py,sha256=WCvCxu3GTYEa3cYnWybTOiuHN14axj0x5_-snVd-mqE,4927
337
+ paasta_tools-1.25.1.data/scripts/service_shard_update.py,sha256=AajuRS4s-HXhEcIIYK2dsyBSdCjZbh4x6Po48ipl7M4,13346
338
+ paasta_tools-1.25.1.data/scripts/setup_istio_mesh.py,sha256=LbLxeI_DnhNXkyCgG-GxutlNu9_vcIitorYr4I9x4CY,11575
339
+ paasta_tools-1.25.1.data/scripts/setup_kubernetes_cr.py,sha256=8Jj362SLgoR6k0ZwzZ4bkJc3RJrxk-f2dpHD5zJXCuo,14625
340
+ paasta_tools-1.25.1.data/scripts/setup_kubernetes_crd.py,sha256=QCiFOcSmE0nMEheIb7IUnYMUn0heh1kHyMFBCm7XIRU,4020
341
+ paasta_tools-1.25.1.data/scripts/setup_kubernetes_internal_crd.py,sha256=dDyAOKFow7yeHWGa197angYwGTDWNyR7vZ6Cx5JlS6k,4629
342
+ paasta_tools-1.25.1.data/scripts/setup_kubernetes_job.py,sha256=2_6UruJvAonuF3PJIumCvdpyOi4C89YYIoPBL1kLrtY,16943
343
+ paasta_tools-1.25.1.data/scripts/setup_prometheus_adapter_config.py,sha256=51iFbtMu7MZzv9PVuQftJ59BUVBKdeC7G_zkt9-IXdc,40728
344
+ paasta_tools-1.25.1.data/scripts/shared_ip_check.py,sha256=dbMwCwDLy9hCIbVWV1rk0FKuBkZNuQtM59hGVKxV2B4,2464
345
+ paasta_tools-1.25.1.data/scripts/synapse_srv_namespaces_fact.py,sha256=HFX0zIXkXIjtAw8zrA7mUiy6NOKR11eBzE39R3aZv_E,1408
346
+ paasta_tools-1.25.1.data/scripts/timeouts_metrics_prom.py,sha256=icK1j72-e-hvbUGs3LtcaMn9KBMopD9cGv5UUVo-OSc,2607
347
+ paasta_tools-1.25.1.dist-info/LICENSE,sha256=Tcxn8PpeSjHDwUTemLW_thUNxcOOm612dK_no2ebEpo,10837
348
+ paasta_tools-1.25.1.dist-info/METADATA,sha256=vC3IjWflKxjbdRFdmtQUM7TO_26Uln5EzhIe6uVtn6Y,2202
349
+ paasta_tools-1.25.1.dist-info/WHEEL,sha256=iAkIy5fosb7FzIOwONchHf19Qu7_1wCWyFNR5gu9nU0,91
350
+ paasta_tools-1.25.1.dist-info/entry_points.txt,sha256=qokGSdKYA6AjtdMM_BjmCAOMghMsjOpcAdL9e4fY6D8,1179
351
+ paasta_tools-1.25.1.dist-info/top_level.txt,sha256=6vZZAZ7bbaDxuXZjNYixDwzkrezpNgDQHpS0ikvFOk4,24
352
+ paasta_tools-1.25.1.dist-info/RECORD,,
@@ -4,6 +4,7 @@ paasta-api = paasta_tools.api.api:main
4
4
  paasta-deployd = paasta_tools.deployd.master:main
5
5
  paasta-fsm = paasta_tools.cli.fsm_cmd:main
6
6
  paasta_broadcast_log = paasta_tools.broadcast_log_to_services:main
7
+ paasta_cleanup_expired_autoscaling_overrides = paasta_tools.cleanup_expired_autoscaling_overrides:main
7
8
  paasta_cleanup_tron_namespaces = paasta_tools.cleanup_tron_namespaces:main
8
9
  paasta_docker_wrapper = paasta_tools.docker_wrapper:main
9
10
  paasta_dump_locally_running_services = paasta_tools.dump_locally_running_services:main