paasta-tools 1.23.0__py3-none-any.whl → 1.23.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.
- paasta_tools/__init__.py +1 -1
- paasta_tools/contrib/paasta_update_soa_memcpu.py +82 -19
- paasta_tools/kubernetes_tools.py +23 -5
- {paasta_tools-1.23.0.data → paasta_tools-1.23.1.data}/scripts/paasta_update_soa_memcpu.py +82 -19
- {paasta_tools-1.23.0.dist-info → paasta_tools-1.23.1.dist-info}/METADATA +1 -1
- {paasta_tools-1.23.0.dist-info → paasta_tools-1.23.1.dist-info}/RECORD +61 -61
- {paasta_tools-1.23.0.data → paasta_tools-1.23.1.data}/scripts/apply_external_resources.py +0 -0
- {paasta_tools-1.23.0.data → paasta_tools-1.23.1.data}/scripts/bounce_log_latency_parser.py +0 -0
- {paasta_tools-1.23.0.data → paasta_tools-1.23.1.data}/scripts/check_autoscaler_max_instances.py +0 -0
- {paasta_tools-1.23.0.data → paasta_tools-1.23.1.data}/scripts/check_cassandracluster_services_replication.py +0 -0
- {paasta_tools-1.23.0.data → paasta_tools-1.23.1.data}/scripts/check_flink_services_health.py +0 -0
- {paasta_tools-1.23.0.data → paasta_tools-1.23.1.data}/scripts/check_kubernetes_api.py +0 -0
- {paasta_tools-1.23.0.data → paasta_tools-1.23.1.data}/scripts/check_kubernetes_services_replication.py +0 -0
- {paasta_tools-1.23.0.data → paasta_tools-1.23.1.data}/scripts/check_manual_oapi_changes.sh +0 -0
- {paasta_tools-1.23.0.data → paasta_tools-1.23.1.data}/scripts/check_oom_events.py +0 -0
- {paasta_tools-1.23.0.data → paasta_tools-1.23.1.data}/scripts/check_orphans.py +0 -0
- {paasta_tools-1.23.0.data → paasta_tools-1.23.1.data}/scripts/check_spark_jobs.py +0 -0
- {paasta_tools-1.23.0.data → paasta_tools-1.23.1.data}/scripts/cleanup_kubernetes_cr.py +0 -0
- {paasta_tools-1.23.0.data → paasta_tools-1.23.1.data}/scripts/cleanup_kubernetes_crd.py +0 -0
- {paasta_tools-1.23.0.data → paasta_tools-1.23.1.data}/scripts/cleanup_kubernetes_jobs.py +0 -0
- {paasta_tools-1.23.0.data → paasta_tools-1.23.1.data}/scripts/create_dynamodb_table.py +0 -0
- {paasta_tools-1.23.0.data → paasta_tools-1.23.1.data}/scripts/create_paasta_playground.py +0 -0
- {paasta_tools-1.23.0.data → paasta_tools-1.23.1.data}/scripts/delete_kubernetes_deployments.py +0 -0
- {paasta_tools-1.23.0.data → paasta_tools-1.23.1.data}/scripts/emit_allocated_cpu_metrics.py +0 -0
- {paasta_tools-1.23.0.data → paasta_tools-1.23.1.data}/scripts/generate_all_deployments +0 -0
- {paasta_tools-1.23.0.data → paasta_tools-1.23.1.data}/scripts/generate_authenticating_services.py +0 -0
- {paasta_tools-1.23.0.data → paasta_tools-1.23.1.data}/scripts/generate_deployments_for_service.py +0 -0
- {paasta_tools-1.23.0.data → paasta_tools-1.23.1.data}/scripts/generate_services_file.py +0 -0
- {paasta_tools-1.23.0.data → paasta_tools-1.23.1.data}/scripts/generate_services_yaml.py +0 -0
- {paasta_tools-1.23.0.data → paasta_tools-1.23.1.data}/scripts/get_running_task_allocation.py +0 -0
- {paasta_tools-1.23.0.data → paasta_tools-1.23.1.data}/scripts/habitat_fixer.py +0 -0
- {paasta_tools-1.23.0.data → paasta_tools-1.23.1.data}/scripts/ide_helper.py +0 -0
- {paasta_tools-1.23.0.data → paasta_tools-1.23.1.data}/scripts/is_pod_healthy_in_proxy.py +0 -0
- {paasta_tools-1.23.0.data → paasta_tools-1.23.1.data}/scripts/is_pod_healthy_in_smartstack.py +0 -0
- {paasta_tools-1.23.0.data → paasta_tools-1.23.1.data}/scripts/kill_bad_containers.py +0 -0
- {paasta_tools-1.23.0.data → paasta_tools-1.23.1.data}/scripts/kubernetes_remove_evicted_pods.py +0 -0
- {paasta_tools-1.23.0.data → paasta_tools-1.23.1.data}/scripts/mass-deploy-tag.sh +0 -0
- {paasta_tools-1.23.0.data → paasta_tools-1.23.1.data}/scripts/mock_patch_checker.py +0 -0
- {paasta_tools-1.23.0.data → paasta_tools-1.23.1.data}/scripts/paasta_cleanup_remote_run_resources.py +0 -0
- {paasta_tools-1.23.0.data → paasta_tools-1.23.1.data}/scripts/paasta_cleanup_stale_nodes.py +0 -0
- {paasta_tools-1.23.0.data → paasta_tools-1.23.1.data}/scripts/paasta_deploy_tron_jobs +0 -0
- {paasta_tools-1.23.0.data → paasta_tools-1.23.1.data}/scripts/paasta_execute_docker_command.py +0 -0
- {paasta_tools-1.23.0.data → paasta_tools-1.23.1.data}/scripts/paasta_secrets_sync.py +0 -0
- {paasta_tools-1.23.0.data → paasta_tools-1.23.1.data}/scripts/paasta_tabcomplete.sh +0 -0
- {paasta_tools-1.23.0.data → paasta_tools-1.23.1.data}/scripts/render_template.py +0 -0
- {paasta_tools-1.23.0.data → paasta_tools-1.23.1.data}/scripts/rightsizer_soaconfigs_update.py +0 -0
- {paasta_tools-1.23.0.data → paasta_tools-1.23.1.data}/scripts/service_shard_remove.py +0 -0
- {paasta_tools-1.23.0.data → paasta_tools-1.23.1.data}/scripts/service_shard_update.py +0 -0
- {paasta_tools-1.23.0.data → paasta_tools-1.23.1.data}/scripts/setup_istio_mesh.py +0 -0
- {paasta_tools-1.23.0.data → paasta_tools-1.23.1.data}/scripts/setup_kubernetes_cr.py +0 -0
- {paasta_tools-1.23.0.data → paasta_tools-1.23.1.data}/scripts/setup_kubernetes_crd.py +0 -0
- {paasta_tools-1.23.0.data → paasta_tools-1.23.1.data}/scripts/setup_kubernetes_internal_crd.py +0 -0
- {paasta_tools-1.23.0.data → paasta_tools-1.23.1.data}/scripts/setup_kubernetes_job.py +0 -0
- {paasta_tools-1.23.0.data → paasta_tools-1.23.1.data}/scripts/setup_prometheus_adapter_config.py +0 -0
- {paasta_tools-1.23.0.data → paasta_tools-1.23.1.data}/scripts/shared_ip_check.py +0 -0
- {paasta_tools-1.23.0.data → paasta_tools-1.23.1.data}/scripts/synapse_srv_namespaces_fact.py +0 -0
- {paasta_tools-1.23.0.data → paasta_tools-1.23.1.data}/scripts/timeouts_metrics_prom.py +0 -0
- {paasta_tools-1.23.0.dist-info → paasta_tools-1.23.1.dist-info}/LICENSE +0 -0
- {paasta_tools-1.23.0.dist-info → paasta_tools-1.23.1.dist-info}/WHEEL +0 -0
- {paasta_tools-1.23.0.dist-info → paasta_tools-1.23.1.dist-info}/entry_points.txt +0 -0
- {paasta_tools-1.23.0.dist-info → paasta_tools-1.23.1.dist-info}/top_level.txt +0 -0
paasta_tools/__init__.py
CHANGED
|
@@ -135,6 +135,11 @@ def cwd(path):
|
|
|
135
135
|
os.chdir(pwd)
|
|
136
136
|
|
|
137
137
|
|
|
138
|
+
def _force_str_to_int(value: str) -> int:
|
|
139
|
+
"""Force convert strings into ints - even if they're technically floats."""
|
|
140
|
+
return int(float(value))
|
|
141
|
+
|
|
142
|
+
|
|
138
143
|
def get_report_from_splunk(creds, app, filename, criteria_filter):
|
|
139
144
|
"""Expect a table containing at least the following fields:
|
|
140
145
|
criteria (<service> kubernetes-<cluster_name> <instance>)
|
|
@@ -165,29 +170,87 @@ def get_report_from_splunk(creds, app, filename, criteria_filter):
|
|
|
165
170
|
resp_text = [x for x in resp_text if x]
|
|
166
171
|
resp_text = [json.loads(x) for x in resp_text]
|
|
167
172
|
services_to_update = {}
|
|
173
|
+
|
|
168
174
|
for d in resp_text:
|
|
169
175
|
if "result" not in d:
|
|
170
176
|
raise ValueError(f"Splunk request didn't return any results: {resp_text}")
|
|
171
177
|
criteria = d["result"]["criteria"]
|
|
172
|
-
|
|
173
|
-
serv
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
178
|
+
|
|
179
|
+
serv = {
|
|
180
|
+
"cluster": criteria.split(" ")[1],
|
|
181
|
+
"date": d["result"]["_time"].split(" ")[0],
|
|
182
|
+
"instance": criteria.split(" ")[2],
|
|
183
|
+
"money": d["result"].get("estimated_monthly_savings", 0),
|
|
184
|
+
"owner": d["result"].get("service_owner", "Unavailable"),
|
|
185
|
+
"project": d["result"].get("project", "Unavailable"),
|
|
186
|
+
"service": criteria.split(" ")[0],
|
|
187
|
+
# only mergeable fields below
|
|
188
|
+
"cpu_burst_add": d["result"].get("suggested_cpu_burst_add"),
|
|
189
|
+
"cpus": d["result"].get("suggested_cpus"),
|
|
190
|
+
"disk": d["result"].get("suggested_disk"),
|
|
191
|
+
"hacheck_cpus": d["result"].get("suggested_hacheck_cpus"),
|
|
192
|
+
"max_instances": d["result"].get("suggested_max_instances"),
|
|
193
|
+
"mem": d["result"].get("suggested_mem"),
|
|
194
|
+
"min_instances": d["result"].get("suggested_min_instances"),
|
|
195
|
+
"old_cpus": d["result"].get("current_cpus"),
|
|
196
|
+
"old_disk": d["result"].get("current_disk"),
|
|
197
|
+
"old_mem": d["result"].get("current_mem"),
|
|
198
|
+
}
|
|
199
|
+
|
|
200
|
+
# the report we get is all strings, so we need to convert them to the right types
|
|
201
|
+
field_conversions = {
|
|
202
|
+
"current_cpus": float,
|
|
203
|
+
"suggested_cpu_burst_add": float,
|
|
204
|
+
"suggested_cpus": float,
|
|
205
|
+
"suggested_disk": int,
|
|
206
|
+
"suggested_hacheck_cpus": float,
|
|
207
|
+
"suggested_max_instances": int,
|
|
208
|
+
"suggested_mem": int,
|
|
209
|
+
"suggested_min_instances": int,
|
|
210
|
+
# not quite sure why these are floats...they're ints in soaconfigs
|
|
211
|
+
"current_disk": _force_str_to_int,
|
|
212
|
+
"current_mem": _force_str_to_int,
|
|
213
|
+
}
|
|
214
|
+
|
|
215
|
+
# merge results if we've already seen rows for this service
|
|
216
|
+
# NOTE: this is necessary since the Splunk search can return multiple rows
|
|
217
|
+
# for the same (service, cluster, instance) tuple as the autotune query
|
|
218
|
+
# treats certain cpu allocation changes as if the tuple was entirely different.
|
|
219
|
+
# this is ostensibly due to a theory that if you update resource allocation, existing
|
|
220
|
+
# autotune data is potentially invalidated - but in practice this ends up hampering
|
|
221
|
+
# autotune for services with highly variable resource allocation - e.g., we have some services
|
|
222
|
+
# that have their cpu allocation tweaked by +/-.1 cpu pretty frequently, but then min/max autotune
|
|
223
|
+
# is never updated.
|
|
224
|
+
if criteria in services_to_update:
|
|
225
|
+
for key in serv:
|
|
226
|
+
# we probably don't want to merge any other fields since they're going to be strings :p
|
|
227
|
+
if key not in field_conversions:
|
|
228
|
+
continue
|
|
229
|
+
|
|
230
|
+
last_proposed_suggestion = services_to_update[criteria][key]
|
|
231
|
+
proposed_suggestion = serv[key]
|
|
232
|
+
|
|
233
|
+
# if both are non-null, take the max of the two
|
|
234
|
+
if (
|
|
235
|
+
last_proposed_suggestion is not None
|
|
236
|
+
and proposed_suggestion is not None
|
|
237
|
+
):
|
|
238
|
+
services_to_update[criteria][key] = max(
|
|
239
|
+
last_proposed_suggestion,
|
|
240
|
+
proposed_suggestion,
|
|
241
|
+
key=field_conversions[key],
|
|
242
|
+
)
|
|
243
|
+
# otherwise, if only one of these is non-null, use that one
|
|
244
|
+
elif last_proposed_suggestion is not None:
|
|
245
|
+
services_to_update[criteria][key] = last_proposed_suggestion
|
|
246
|
+
elif proposed_suggestion is not None:
|
|
247
|
+
services_to_update[criteria][key] = proposed_suggestion
|
|
248
|
+
# otherwise, if we didn't enter any of the above branches, we're essentially leaving in place the
|
|
249
|
+
# existing None
|
|
250
|
+
|
|
251
|
+
# otherwise, simply add the service to the final report
|
|
252
|
+
else:
|
|
253
|
+
services_to_update[criteria] = serv
|
|
191
254
|
|
|
192
255
|
return {
|
|
193
256
|
"search": search,
|
paasta_tools/kubernetes_tools.py
CHANGED
|
@@ -4334,21 +4334,39 @@ def ensure_service_account(
|
|
|
4334
4334
|
kube_client: KubeClient,
|
|
4335
4335
|
k8s_role: Optional[str] = None,
|
|
4336
4336
|
) -> None:
|
|
4337
|
+
role_annotation = "eks.amazonaws.com/role-arn"
|
|
4337
4338
|
sa_name = get_service_account_name(iam_role, k8s_role)
|
|
4338
4339
|
|
|
4339
|
-
|
|
4340
|
-
|
|
4341
|
-
|
|
4342
|
-
|
|
4340
|
+
existing_sa = None
|
|
4341
|
+
for sa in get_all_service_accounts(kube_client, namespace):
|
|
4342
|
+
if sa.metadata and sa.metadata.name == sa_name:
|
|
4343
|
+
existing_sa = sa
|
|
4344
|
+
break
|
|
4345
|
+
else:
|
|
4343
4346
|
sa = V1ServiceAccount(
|
|
4344
4347
|
kind="ServiceAccount",
|
|
4345
4348
|
metadata=V1ObjectMeta(
|
|
4346
4349
|
name=sa_name,
|
|
4347
4350
|
namespace=namespace,
|
|
4348
|
-
annotations={
|
|
4351
|
+
annotations={role_annotation: iam_role},
|
|
4349
4352
|
),
|
|
4350
4353
|
)
|
|
4351
4354
|
kube_client.core.create_namespaced_service_account(namespace=namespace, body=sa)
|
|
4355
|
+
if existing_sa:
|
|
4356
|
+
if (
|
|
4357
|
+
not sa.metadata.annotations
|
|
4358
|
+
or sa.metadata.annotations.get(role_annotation, None) != iam_role
|
|
4359
|
+
):
|
|
4360
|
+
# NOTE: we don't annotate SAs apart with anything other
|
|
4361
|
+
# than the pod identity role ARN, so this will remove
|
|
4362
|
+
# any annotations that folks may have manually added
|
|
4363
|
+
sa.metadata.annotations = {role_annotation: iam_role}
|
|
4364
|
+
kube_client.core.patch_namespaced_service_account(
|
|
4365
|
+
namespace=namespace, body=sa, name=sa.metadata.name
|
|
4366
|
+
)
|
|
4367
|
+
log.info(
|
|
4368
|
+
f"Updated ServiceAccount {sa.metadata.name} iam_role to {iam_role}"
|
|
4369
|
+
)
|
|
4352
4370
|
|
|
4353
4371
|
# we're expecting that any Role dynamically associated with a Service Account already exists.
|
|
4354
4372
|
# at Yelp, this means that we have a version-controlled resource for the Role in Puppet.
|
|
@@ -135,6 +135,11 @@ def cwd(path):
|
|
|
135
135
|
os.chdir(pwd)
|
|
136
136
|
|
|
137
137
|
|
|
138
|
+
def _force_str_to_int(value: str) -> int:
|
|
139
|
+
"""Force convert strings into ints - even if they're technically floats."""
|
|
140
|
+
return int(float(value))
|
|
141
|
+
|
|
142
|
+
|
|
138
143
|
def get_report_from_splunk(creds, app, filename, criteria_filter):
|
|
139
144
|
"""Expect a table containing at least the following fields:
|
|
140
145
|
criteria (<service> kubernetes-<cluster_name> <instance>)
|
|
@@ -165,29 +170,87 @@ def get_report_from_splunk(creds, app, filename, criteria_filter):
|
|
|
165
170
|
resp_text = [x for x in resp_text if x]
|
|
166
171
|
resp_text = [json.loads(x) for x in resp_text]
|
|
167
172
|
services_to_update = {}
|
|
173
|
+
|
|
168
174
|
for d in resp_text:
|
|
169
175
|
if "result" not in d:
|
|
170
176
|
raise ValueError(f"Splunk request didn't return any results: {resp_text}")
|
|
171
177
|
criteria = d["result"]["criteria"]
|
|
172
|
-
|
|
173
|
-
serv
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
178
|
+
|
|
179
|
+
serv = {
|
|
180
|
+
"cluster": criteria.split(" ")[1],
|
|
181
|
+
"date": d["result"]["_time"].split(" ")[0],
|
|
182
|
+
"instance": criteria.split(" ")[2],
|
|
183
|
+
"money": d["result"].get("estimated_monthly_savings", 0),
|
|
184
|
+
"owner": d["result"].get("service_owner", "Unavailable"),
|
|
185
|
+
"project": d["result"].get("project", "Unavailable"),
|
|
186
|
+
"service": criteria.split(" ")[0],
|
|
187
|
+
# only mergeable fields below
|
|
188
|
+
"cpu_burst_add": d["result"].get("suggested_cpu_burst_add"),
|
|
189
|
+
"cpus": d["result"].get("suggested_cpus"),
|
|
190
|
+
"disk": d["result"].get("suggested_disk"),
|
|
191
|
+
"hacheck_cpus": d["result"].get("suggested_hacheck_cpus"),
|
|
192
|
+
"max_instances": d["result"].get("suggested_max_instances"),
|
|
193
|
+
"mem": d["result"].get("suggested_mem"),
|
|
194
|
+
"min_instances": d["result"].get("suggested_min_instances"),
|
|
195
|
+
"old_cpus": d["result"].get("current_cpus"),
|
|
196
|
+
"old_disk": d["result"].get("current_disk"),
|
|
197
|
+
"old_mem": d["result"].get("current_mem"),
|
|
198
|
+
}
|
|
199
|
+
|
|
200
|
+
# the report we get is all strings, so we need to convert them to the right types
|
|
201
|
+
field_conversions = {
|
|
202
|
+
"current_cpus": float,
|
|
203
|
+
"suggested_cpu_burst_add": float,
|
|
204
|
+
"suggested_cpus": float,
|
|
205
|
+
"suggested_disk": int,
|
|
206
|
+
"suggested_hacheck_cpus": float,
|
|
207
|
+
"suggested_max_instances": int,
|
|
208
|
+
"suggested_mem": int,
|
|
209
|
+
"suggested_min_instances": int,
|
|
210
|
+
# not quite sure why these are floats...they're ints in soaconfigs
|
|
211
|
+
"current_disk": _force_str_to_int,
|
|
212
|
+
"current_mem": _force_str_to_int,
|
|
213
|
+
}
|
|
214
|
+
|
|
215
|
+
# merge results if we've already seen rows for this service
|
|
216
|
+
# NOTE: this is necessary since the Splunk search can return multiple rows
|
|
217
|
+
# for the same (service, cluster, instance) tuple as the autotune query
|
|
218
|
+
# treats certain cpu allocation changes as if the tuple was entirely different.
|
|
219
|
+
# this is ostensibly due to a theory that if you update resource allocation, existing
|
|
220
|
+
# autotune data is potentially invalidated - but in practice this ends up hampering
|
|
221
|
+
# autotune for services with highly variable resource allocation - e.g., we have some services
|
|
222
|
+
# that have their cpu allocation tweaked by +/-.1 cpu pretty frequently, but then min/max autotune
|
|
223
|
+
# is never updated.
|
|
224
|
+
if criteria in services_to_update:
|
|
225
|
+
for key in serv:
|
|
226
|
+
# we probably don't want to merge any other fields since they're going to be strings :p
|
|
227
|
+
if key not in field_conversions:
|
|
228
|
+
continue
|
|
229
|
+
|
|
230
|
+
last_proposed_suggestion = services_to_update[criteria][key]
|
|
231
|
+
proposed_suggestion = serv[key]
|
|
232
|
+
|
|
233
|
+
# if both are non-null, take the max of the two
|
|
234
|
+
if (
|
|
235
|
+
last_proposed_suggestion is not None
|
|
236
|
+
and proposed_suggestion is not None
|
|
237
|
+
):
|
|
238
|
+
services_to_update[criteria][key] = max(
|
|
239
|
+
last_proposed_suggestion,
|
|
240
|
+
proposed_suggestion,
|
|
241
|
+
key=field_conversions[key],
|
|
242
|
+
)
|
|
243
|
+
# otherwise, if only one of these is non-null, use that one
|
|
244
|
+
elif last_proposed_suggestion is not None:
|
|
245
|
+
services_to_update[criteria][key] = last_proposed_suggestion
|
|
246
|
+
elif proposed_suggestion is not None:
|
|
247
|
+
services_to_update[criteria][key] = proposed_suggestion
|
|
248
|
+
# otherwise, if we didn't enter any of the above branches, we're essentially leaving in place the
|
|
249
|
+
# existing None
|
|
250
|
+
|
|
251
|
+
# otherwise, simply add the service to the final report
|
|
252
|
+
else:
|
|
253
|
+
services_to_update[criteria] = serv
|
|
191
254
|
|
|
192
255
|
return {
|
|
193
256
|
"search": search,
|
|
@@ -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=n0D4kQV7j4p__FY8f7_Hd88wZ3obadBB9UXlYdqsmTk,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
|
|
@@ -43,7 +43,7 @@ paasta_tools/generate_services_yaml.py,sha256=BM760XGEOmLeJcEm0ez5nBZ2NmFJWsNXbZ
|
|
|
43
43
|
paasta_tools/hacheck.py,sha256=GtQd32G4JoB2bOWqzH9h9NPrkg8a50i-iXAblfYz2p4,2748
|
|
44
44
|
paasta_tools/iptables.py,sha256=SQ7hutHarfCd13oAknKv_h9rUuln4rf11W6C2HHUy9g,7518
|
|
45
45
|
paasta_tools/kafkacluster_tools.py,sha256=NMfowdpYhFpXW55MKx_eX6rrQj5Fn-5M_9ryZKd749A,4992
|
|
46
|
-
paasta_tools/kubernetes_tools.py,sha256=
|
|
46
|
+
paasta_tools/kubernetes_tools.py,sha256=zR29IQMhBUei1B8W5Oo-XskN91kfbReMzW6JxL4I_0U,181094
|
|
47
47
|
paasta_tools/list_kubernetes_service_instances.py,sha256=UEPiTqNxUAqUgSyPzJlNcrI2W4HBwpngzDM1QD6AAVQ,3910
|
|
48
48
|
paasta_tools/list_tron_namespaces.py,sha256=wfSkPY9_C-RkORmnon3DWL2lVZ4GNSSDG9VkFrDfY1E,1679
|
|
49
49
|
paasta_tools/long_running_service_tools.py,sha256=PE4K9opcx16tEc3XxWgQBKCpV4cJYS2JfN-dyTFhmB4,26137
|
|
@@ -174,7 +174,7 @@ paasta_tools/contrib/is_pod_healthy_in_smartstack.py,sha256=CWNIiwm-1FpXT5hpmZFA
|
|
|
174
174
|
paasta_tools/contrib/kill_bad_containers.py,sha256=DVpemHWcH_gxlXK_9KS5pGOLbgbpwqN04lx1qyC0_Yk,3861
|
|
175
175
|
paasta_tools/contrib/mass-deploy-tag.sh,sha256=cfPgDDvAOhy3ijTUocklogzoIY8hfoE6T5QI-0aqcfM,1578
|
|
176
176
|
paasta_tools/contrib/mock_patch_checker.py,sha256=Y_kpCYrfxhkdMTf8KTvObtwD9hk1Cre9xhYMS5JxxEg,2575
|
|
177
|
-
paasta_tools/contrib/paasta_update_soa_memcpu.py,sha256=
|
|
177
|
+
paasta_tools/contrib/paasta_update_soa_memcpu.py,sha256=RTFlg1VNJqj0etKLcQPuhlNfuZjbQuXiF2slKOvCXFw,20827
|
|
178
178
|
paasta_tools/contrib/render_template.py,sha256=NWMFcWJ4ddV6rQsTVsINYhyVUh9kheR2Rtam-LJ5IsY,3991
|
|
179
179
|
paasta_tools/contrib/rightsizer_soaconfigs_update.py,sha256=0UPVtDyX6wXXurv7l5fiKuzXH8VEszKx_V7UqDm6Ck0,10493
|
|
180
180
|
paasta_tools/contrib/service_shard_remove.py,sha256=WCvCxu3GTYEa3cYnWybTOiuHN14axj0x5_-snVd-mqE,4927
|
|
@@ -290,61 +290,61 @@ paasta_tools/tron/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU
|
|
|
290
290
|
paasta_tools/tron/client.py,sha256=ypWjM4bZCzQWLn-qe1driqAxvF0ux8dROuFUv63dryA,5562
|
|
291
291
|
paasta_tools/tron/tron_command_context.py,sha256=c6mph_DAt7pjcE3Uo271haJ0DfxJzfvcRhR2o-UmOeY,5379
|
|
292
292
|
paasta_tools/tron/tron_timeutils.py,sha256=vDn04K7A3Xbs3lM04EgLuViC8AavOc5qyo8J5MC5nLk,3054
|
|
293
|
-
paasta_tools-1.23.
|
|
294
|
-
paasta_tools-1.23.
|
|
295
|
-
paasta_tools-1.23.
|
|
296
|
-
paasta_tools-1.23.
|
|
297
|
-
paasta_tools-1.23.
|
|
298
|
-
paasta_tools-1.23.
|
|
299
|
-
paasta_tools-1.23.
|
|
300
|
-
paasta_tools-1.23.
|
|
301
|
-
paasta_tools-1.23.
|
|
302
|
-
paasta_tools-1.23.
|
|
303
|
-
paasta_tools-1.23.
|
|
304
|
-
paasta_tools-1.23.
|
|
305
|
-
paasta_tools-1.23.
|
|
306
|
-
paasta_tools-1.23.
|
|
307
|
-
paasta_tools-1.23.
|
|
308
|
-
paasta_tools-1.23.
|
|
309
|
-
paasta_tools-1.23.
|
|
310
|
-
paasta_tools-1.23.
|
|
311
|
-
paasta_tools-1.23.
|
|
312
|
-
paasta_tools-1.23.
|
|
313
|
-
paasta_tools-1.23.
|
|
314
|
-
paasta_tools-1.23.
|
|
315
|
-
paasta_tools-1.23.
|
|
316
|
-
paasta_tools-1.23.
|
|
317
|
-
paasta_tools-1.23.
|
|
318
|
-
paasta_tools-1.23.
|
|
319
|
-
paasta_tools-1.23.
|
|
320
|
-
paasta_tools-1.23.
|
|
321
|
-
paasta_tools-1.23.
|
|
322
|
-
paasta_tools-1.23.
|
|
323
|
-
paasta_tools-1.23.
|
|
324
|
-
paasta_tools-1.23.
|
|
325
|
-
paasta_tools-1.23.
|
|
326
|
-
paasta_tools-1.23.
|
|
327
|
-
paasta_tools-1.23.
|
|
328
|
-
paasta_tools-1.23.
|
|
329
|
-
paasta_tools-1.23.
|
|
330
|
-
paasta_tools-1.23.
|
|
331
|
-
paasta_tools-1.23.
|
|
332
|
-
paasta_tools-1.23.
|
|
333
|
-
paasta_tools-1.23.
|
|
334
|
-
paasta_tools-1.23.
|
|
335
|
-
paasta_tools-1.23.
|
|
336
|
-
paasta_tools-1.23.
|
|
337
|
-
paasta_tools-1.23.
|
|
338
|
-
paasta_tools-1.23.
|
|
339
|
-
paasta_tools-1.23.
|
|
340
|
-
paasta_tools-1.23.
|
|
341
|
-
paasta_tools-1.23.
|
|
342
|
-
paasta_tools-1.23.
|
|
343
|
-
paasta_tools-1.23.
|
|
344
|
-
paasta_tools-1.23.
|
|
345
|
-
paasta_tools-1.23.
|
|
346
|
-
paasta_tools-1.23.
|
|
347
|
-
paasta_tools-1.23.
|
|
348
|
-
paasta_tools-1.23.
|
|
349
|
-
paasta_tools-1.23.
|
|
350
|
-
paasta_tools-1.23.
|
|
293
|
+
paasta_tools-1.23.1.data/scripts/apply_external_resources.py,sha256=BOIdCQ5Md9RI3enzqbIWQge3clkXhPybAmLE3hqfDwQ,3347
|
|
294
|
+
paasta_tools-1.23.1.data/scripts/bounce_log_latency_parser.py,sha256=dC06a0a5LdtPJ8xo88QWe5DMH_vwVB1BNbkFH7kJ3j0,2225
|
|
295
|
+
paasta_tools-1.23.1.data/scripts/check_autoscaler_max_instances.py,sha256=2z6ifSU26-ULOK-FXp75b45mCdjSJnuvU8TxvapB8Wk,9423
|
|
296
|
+
paasta_tools-1.23.1.data/scripts/check_cassandracluster_services_replication.py,sha256=mKlCK9pRNzxnOt41wA6CtDQIHhcky438i044kA6pbEc,1127
|
|
297
|
+
paasta_tools-1.23.1.data/scripts/check_flink_services_health.py,sha256=ElYa1hr6KUcXuu0B8Nf-dt2Vfyo5FrwF5gVV4QBX7Lg,7162
|
|
298
|
+
paasta_tools-1.23.1.data/scripts/check_kubernetes_api.py,sha256=BhOqJkkKNJPfonfIPonW5dlIubd1ji-3ppjXHomNwzM,1522
|
|
299
|
+
paasta_tools-1.23.1.data/scripts/check_kubernetes_services_replication.py,sha256=LCLlumReRdy9Cw_sPpqanjPcBlbcrJDiECaYYru5Cwk,5751
|
|
300
|
+
paasta_tools-1.23.1.data/scripts/check_manual_oapi_changes.sh,sha256=1IdphwXP7xnMNS7huZ3FeEHy67-nY4n3ydHmbojQvJg,879
|
|
301
|
+
paasta_tools-1.23.1.data/scripts/check_oom_events.py,sha256=tUr14T2LYEgqwpAq4vkZ_Z0VTPOfQg7yrSSkwGQ86Hg,7801
|
|
302
|
+
paasta_tools-1.23.1.data/scripts/check_orphans.py,sha256=zVC5ShFY7LUnPDUytRNsMgvqXkECHvyZlc3qZMpxLko,9985
|
|
303
|
+
paasta_tools-1.23.1.data/scripts/check_spark_jobs.py,sha256=pVUdWmZSBuh4CbpW7cZ1Loq8FX0QFS0LQk2b24TGRyE,7317
|
|
304
|
+
paasta_tools-1.23.1.data/scripts/cleanup_kubernetes_cr.py,sha256=m-w_wuTuVG9FlwQQkxXYgri5DTGac9Nc2pbK4k1FNDE,4659
|
|
305
|
+
paasta_tools-1.23.1.data/scripts/cleanup_kubernetes_crd.py,sha256=p9eLk-0-pU-hcVg-GAM92h1ZdQqlvmYhBzUFCiMPYR8,4478
|
|
306
|
+
paasta_tools-1.23.1.data/scripts/cleanup_kubernetes_jobs.py,sha256=7LHB4tsz1kt-zygssIfQbBY6c3LSqXYDUILvHkSfBog,12433
|
|
307
|
+
paasta_tools-1.23.1.data/scripts/create_dynamodb_table.py,sha256=9wJftWGgNtvLnpXeUqpoMXBIIep1hNySf0YiQmzpl5c,1167
|
|
308
|
+
paasta_tools-1.23.1.data/scripts/create_paasta_playground.py,sha256=jzoE5e1pxWeVXwCEkD9O0jefOhEnIlSa3QMP9PC2f0M,3239
|
|
309
|
+
paasta_tools-1.23.1.data/scripts/delete_kubernetes_deployments.py,sha256=de4C-5yqEuCeJXp6zhbc0v-c0LOElr4qabLnOTRcX4o,3124
|
|
310
|
+
paasta_tools-1.23.1.data/scripts/emit_allocated_cpu_metrics.py,sha256=Cjd3xoOJoYSP3ciSAlZ7fh6_z678KpYt43Xh-WVCY1M,1859
|
|
311
|
+
paasta_tools-1.23.1.data/scripts/generate_all_deployments,sha256=Qr5B0zogTOr8Lcn_7dpORixpGIJcXZ_pWz_ZlWnmsik,248
|
|
312
|
+
paasta_tools-1.23.1.data/scripts/generate_authenticating_services.py,sha256=r5AQyquVm8_rbAhBETUU2ZHZvolpqZZTakW3lKFiOqw,2982
|
|
313
|
+
paasta_tools-1.23.1.data/scripts/generate_deployments_for_service.py,sha256=FAFzIAtKY7GsA13s-ssCMH7T-_p9B1pBtyyYFzsCZ6k,9822
|
|
314
|
+
paasta_tools-1.23.1.data/scripts/generate_services_file.py,sha256=w3Wyyn9ZkjfrvkT0SnTbh5mrTZJnjhTC2JIqLBpb6-g,3583
|
|
315
|
+
paasta_tools-1.23.1.data/scripts/generate_services_yaml.py,sha256=XyIUsHa1BPLqeklayaFewX69-6GT_luaSLS_TMDLkQ0,991
|
|
316
|
+
paasta_tools-1.23.1.data/scripts/get_running_task_allocation.py,sha256=rV2IFGWU2sEYAVDCwKZgeseOAewFzfDiFeCnsPXdGXY,10890
|
|
317
|
+
paasta_tools-1.23.1.data/scripts/habitat_fixer.py,sha256=hCC7fEnxrBOmiCJj4rPwhGlae9JsYg_gltk10l-FwaE,2625
|
|
318
|
+
paasta_tools-1.23.1.data/scripts/ide_helper.py,sha256=YxHHqbnrJ88XI9Pmlup2QSvp15qVN5ugLuPYkEsmBCw,12334
|
|
319
|
+
paasta_tools-1.23.1.data/scripts/is_pod_healthy_in_proxy.py,sha256=MiY85MJDXcN9oS8d840WG1iYDIzzO9lmk_NC0i_CrQg,4321
|
|
320
|
+
paasta_tools-1.23.1.data/scripts/is_pod_healthy_in_smartstack.py,sha256=z3uP9sgwLwg94BubFgBKare2t1L5qhcY48MWsJxjxPY,1697
|
|
321
|
+
paasta_tools-1.23.1.data/scripts/kill_bad_containers.py,sha256=oNY5x0Zg0eu34cXhFy60I7WRlqg4PKD_6xWi0eoRTCA,3832
|
|
322
|
+
paasta_tools-1.23.1.data/scripts/kubernetes_remove_evicted_pods.py,sha256=D9Ovdc9Xer_Qf3vM5CtPVcKvnMwLiC0H-WQmQGXrBKM,5274
|
|
323
|
+
paasta_tools-1.23.1.data/scripts/mass-deploy-tag.sh,sha256=cfPgDDvAOhy3ijTUocklogzoIY8hfoE6T5QI-0aqcfM,1578
|
|
324
|
+
paasta_tools-1.23.1.data/scripts/mock_patch_checker.py,sha256=Q6Je8QjmfLzdnv_6JR6ehh2kA5SUxmeZGeLI2WC3BSY,2559
|
|
325
|
+
paasta_tools-1.23.1.data/scripts/paasta_cleanup_remote_run_resources.py,sha256=4oN9UwnR7q6aEEyFUhVrT41VSeQJ2YS3upFpbZQXNUI,4558
|
|
326
|
+
paasta_tools-1.23.1.data/scripts/paasta_cleanup_stale_nodes.py,sha256=C-DmEVgtienoMgJnIeESvFqWcJOW2SOGoS1l8RXA8NE,6304
|
|
327
|
+
paasta_tools-1.23.1.data/scripts/paasta_deploy_tron_jobs,sha256=fFN2aP5FNSm5WfDV3yvLpihXaKkAF65MRXFcN2iD7S4,106
|
|
328
|
+
paasta_tools-1.23.1.data/scripts/paasta_execute_docker_command.py,sha256=6kh7h2bleQbNULc37MiRsfnk9MDHqVv30UQdg3rF3kQ,4086
|
|
329
|
+
paasta_tools-1.23.1.data/scripts/paasta_secrets_sync.py,sha256=sMdyWMt9BU5CmWHIRwzhpFKve7zxFHkygt_SNTJutWM,28766
|
|
330
|
+
paasta_tools-1.23.1.data/scripts/paasta_tabcomplete.sh,sha256=qbQKSriz_L4MogA12L_8i-tg0Lplpshbk_FUMjK6uG0,929
|
|
331
|
+
paasta_tools-1.23.1.data/scripts/paasta_update_soa_memcpu.py,sha256=5fShpZYpb7EeoC70cWdICnNHjHAaNU5mTHaAc3mloIs,20813
|
|
332
|
+
paasta_tools-1.23.1.data/scripts/render_template.py,sha256=KcKfeSP2a9f6fMDRhnjX7OJaHmFIBtCJcHhUI_B7p9Y,3975
|
|
333
|
+
paasta_tools-1.23.1.data/scripts/rightsizer_soaconfigs_update.py,sha256=0UPVtDyX6wXXurv7l5fiKuzXH8VEszKx_V7UqDm6Ck0,10493
|
|
334
|
+
paasta_tools-1.23.1.data/scripts/service_shard_remove.py,sha256=WCvCxu3GTYEa3cYnWybTOiuHN14axj0x5_-snVd-mqE,4927
|
|
335
|
+
paasta_tools-1.23.1.data/scripts/service_shard_update.py,sha256=AajuRS4s-HXhEcIIYK2dsyBSdCjZbh4x6Po48ipl7M4,13346
|
|
336
|
+
paasta_tools-1.23.1.data/scripts/setup_istio_mesh.py,sha256=LbLxeI_DnhNXkyCgG-GxutlNu9_vcIitorYr4I9x4CY,11575
|
|
337
|
+
paasta_tools-1.23.1.data/scripts/setup_kubernetes_cr.py,sha256=8Jj362SLgoR6k0ZwzZ4bkJc3RJrxk-f2dpHD5zJXCuo,14625
|
|
338
|
+
paasta_tools-1.23.1.data/scripts/setup_kubernetes_crd.py,sha256=QCiFOcSmE0nMEheIb7IUnYMUn0heh1kHyMFBCm7XIRU,4020
|
|
339
|
+
paasta_tools-1.23.1.data/scripts/setup_kubernetes_internal_crd.py,sha256=dDyAOKFow7yeHWGa197angYwGTDWNyR7vZ6Cx5JlS6k,4629
|
|
340
|
+
paasta_tools-1.23.1.data/scripts/setup_kubernetes_job.py,sha256=iGuGjDoevjpmdV3SXnAg65AwljkqC_c5yzTVvEsJ1xc,16929
|
|
341
|
+
paasta_tools-1.23.1.data/scripts/setup_prometheus_adapter_config.py,sha256=51iFbtMu7MZzv9PVuQftJ59BUVBKdeC7G_zkt9-IXdc,40728
|
|
342
|
+
paasta_tools-1.23.1.data/scripts/shared_ip_check.py,sha256=dbMwCwDLy9hCIbVWV1rk0FKuBkZNuQtM59hGVKxV2B4,2464
|
|
343
|
+
paasta_tools-1.23.1.data/scripts/synapse_srv_namespaces_fact.py,sha256=HFX0zIXkXIjtAw8zrA7mUiy6NOKR11eBzE39R3aZv_E,1408
|
|
344
|
+
paasta_tools-1.23.1.data/scripts/timeouts_metrics_prom.py,sha256=icK1j72-e-hvbUGs3LtcaMn9KBMopD9cGv5UUVo-OSc,2607
|
|
345
|
+
paasta_tools-1.23.1.dist-info/LICENSE,sha256=Tcxn8PpeSjHDwUTemLW_thUNxcOOm612dK_no2ebEpo,10837
|
|
346
|
+
paasta_tools-1.23.1.dist-info/METADATA,sha256=_wHfbWhMpiO20i9t_rWx-njbHJHSVEsA_OByYKlgKAQ,2169
|
|
347
|
+
paasta_tools-1.23.1.dist-info/WHEEL,sha256=iAkIy5fosb7FzIOwONchHf19Qu7_1wCWyFNR5gu9nU0,91
|
|
348
|
+
paasta_tools-1.23.1.dist-info/entry_points.txt,sha256=5osYZ62iLdhb63d3P8e9ujafe97kisiB3K-geR5IdH8,1076
|
|
349
|
+
paasta_tools-1.23.1.dist-info/top_level.txt,sha256=6vZZAZ7bbaDxuXZjNYixDwzkrezpNgDQHpS0ikvFOk4,24
|
|
350
|
+
paasta_tools-1.23.1.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
{paasta_tools-1.23.0.data → paasta_tools-1.23.1.data}/scripts/check_autoscaler_max_instances.py
RENAMED
|
File without changes
|
|
File without changes
|
{paasta_tools-1.23.0.data → paasta_tools-1.23.1.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.23.0.data → paasta_tools-1.23.1.data}/scripts/delete_kubernetes_deployments.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{paasta_tools-1.23.0.data → paasta_tools-1.23.1.data}/scripts/generate_authenticating_services.py
RENAMED
|
File without changes
|
{paasta_tools-1.23.0.data → paasta_tools-1.23.1.data}/scripts/generate_deployments_for_service.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{paasta_tools-1.23.0.data → paasta_tools-1.23.1.data}/scripts/get_running_task_allocation.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{paasta_tools-1.23.0.data → paasta_tools-1.23.1.data}/scripts/is_pod_healthy_in_smartstack.py
RENAMED
|
File without changes
|
|
File without changes
|
{paasta_tools-1.23.0.data → paasta_tools-1.23.1.data}/scripts/kubernetes_remove_evicted_pods.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{paasta_tools-1.23.0.data → paasta_tools-1.23.1.data}/scripts/paasta_cleanup_remote_run_resources.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{paasta_tools-1.23.0.data → paasta_tools-1.23.1.data}/scripts/paasta_execute_docker_command.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{paasta_tools-1.23.0.data → paasta_tools-1.23.1.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.23.0.data → paasta_tools-1.23.1.data}/scripts/setup_kubernetes_internal_crd.py
RENAMED
|
File without changes
|
|
File without changes
|
{paasta_tools-1.23.0.data → paasta_tools-1.23.1.data}/scripts/setup_prometheus_adapter_config.py
RENAMED
|
File without changes
|
|
File without changes
|
{paasta_tools-1.23.0.data → paasta_tools-1.23.1.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
|