paasta-tools 1.6.4__tar.gz → 1.7.0__tar.gz
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-1.6.4/paasta_tools.egg-info → paasta-tools-1.7.0}/PKG-INFO +1 -1
- {paasta-tools-1.6.4 → paasta-tools-1.7.0}/paasta_tools/__init__.py +1 -1
- {paasta-tools-1.6.4 → paasta-tools-1.7.0}/paasta_tools/cli/cmds/logs.py +6 -0
- {paasta-tools-1.6.4 → paasta-tools-1.7.0}/paasta_tools/cli/cmds/spark_run.py +2 -2
- {paasta-tools-1.6.4 → paasta-tools-1.7.0}/paasta_tools/contrib/service_shard_update.py +89 -4
- {paasta-tools-1.6.4 → paasta-tools-1.7.0}/paasta_tools/setup_tron_namespace.py +1 -1
- {paasta-tools-1.6.4 → paasta-tools-1.7.0}/paasta_tools/spark_tools.py +20 -13
- {paasta-tools-1.6.4 → paasta-tools-1.7.0}/paasta_tools/tron_tools.py +11 -8
- {paasta-tools-1.6.4 → paasta-tools-1.7.0/paasta_tools.egg-info}/PKG-INFO +1 -1
- {paasta-tools-1.6.4 → paasta-tools-1.7.0}/MANIFEST.in +0 -0
- {paasta-tools-1.6.4 → paasta-tools-1.7.0}/README.md +0 -0
- {paasta-tools-1.6.4 → paasta-tools-1.7.0}/k8s_itests/__init__.py +0 -0
- {paasta-tools-1.6.4 → paasta-tools-1.7.0}/k8s_itests/test_autoscaling.py +0 -0
- {paasta-tools-1.6.4 → paasta-tools-1.7.0}/k8s_itests/utils.py +0 -0
- {paasta-tools-1.6.4 → paasta-tools-1.7.0}/paasta_tools/adhoc_tools.py +0 -0
- {paasta-tools-1.6.4 → paasta-tools-1.7.0}/paasta_tools/api/__init__.py +0 -0
- {paasta-tools-1.6.4 → paasta-tools-1.7.0}/paasta_tools/api/api.py +0 -0
- {paasta-tools-1.6.4 → paasta-tools-1.7.0}/paasta_tools/api/api_docs/swagger.json +0 -0
- {paasta-tools-1.6.4 → paasta-tools-1.7.0}/paasta_tools/api/client.py +0 -0
- {paasta-tools-1.6.4 → paasta-tools-1.7.0}/paasta_tools/api/settings.py +0 -0
- {paasta-tools-1.6.4 → paasta-tools-1.7.0}/paasta_tools/api/tweens/__init__.py +0 -0
- {paasta-tools-1.6.4 → paasta-tools-1.7.0}/paasta_tools/api/tweens/profiling.py +0 -0
- {paasta-tools-1.6.4 → paasta-tools-1.7.0}/paasta_tools/api/tweens/request_logger.py +0 -0
- {paasta-tools-1.6.4 → paasta-tools-1.7.0}/paasta_tools/api/views/__init__.py +0 -0
- {paasta-tools-1.6.4 → paasta-tools-1.7.0}/paasta_tools/api/views/autoscaler.py +0 -0
- {paasta-tools-1.6.4 → paasta-tools-1.7.0}/paasta_tools/api/views/exception.py +0 -0
- {paasta-tools-1.6.4 → paasta-tools-1.7.0}/paasta_tools/api/views/flink.py +0 -0
- {paasta-tools-1.6.4 → paasta-tools-1.7.0}/paasta_tools/api/views/instance.py +0 -0
- {paasta-tools-1.6.4 → paasta-tools-1.7.0}/paasta_tools/api/views/pause_autoscaler.py +0 -0
- {paasta-tools-1.6.4 → paasta-tools-1.7.0}/paasta_tools/api/views/resources.py +0 -0
- {paasta-tools-1.6.4 → paasta-tools-1.7.0}/paasta_tools/api/views/service.py +0 -0
- {paasta-tools-1.6.4 → paasta-tools-1.7.0}/paasta_tools/api/views/version.py +0 -0
- {paasta-tools-1.6.4 → paasta-tools-1.7.0}/paasta_tools/apply_external_resources.py +0 -0
- {paasta-tools-1.6.4 → paasta-tools-1.7.0}/paasta_tools/async_utils.py +0 -0
- {paasta-tools-1.6.4 → paasta-tools-1.7.0}/paasta_tools/autoscaling/__init__.py +0 -0
- {paasta-tools-1.6.4 → paasta-tools-1.7.0}/paasta_tools/autoscaling/autoscaling_service_lib.py +0 -0
- {paasta-tools-1.6.4 → paasta-tools-1.7.0}/paasta_tools/autoscaling/forecasting.py +0 -0
- {paasta-tools-1.6.4 → paasta-tools-1.7.0}/paasta_tools/autoscaling/max_all_k8s_services.py +0 -0
- {paasta-tools-1.6.4 → paasta-tools-1.7.0}/paasta_tools/autoscaling/pause_service_autoscaler.py +0 -0
- {paasta-tools-1.6.4 → paasta-tools-1.7.0}/paasta_tools/autoscaling/utils.py +0 -0
- {paasta-tools-1.6.4 → paasta-tools-1.7.0}/paasta_tools/bounce_lib.py +0 -0
- {paasta-tools-1.6.4 → paasta-tools-1.7.0}/paasta_tools/broadcast_log_to_services.py +0 -0
- {paasta-tools-1.6.4 → paasta-tools-1.7.0}/paasta_tools/cassandracluster_tools.py +0 -0
- {paasta-tools-1.6.4 → paasta-tools-1.7.0}/paasta_tools/check_autoscaler_max_instances.py +0 -0
- {paasta-tools-1.6.4 → paasta-tools-1.7.0}/paasta_tools/check_cassandracluster_services_replication.py +0 -0
- {paasta-tools-1.6.4 → paasta-tools-1.7.0}/paasta_tools/check_flink_services_health.py +0 -0
- {paasta-tools-1.6.4 → paasta-tools-1.7.0}/paasta_tools/check_kubernetes_api.py +0 -0
- {paasta-tools-1.6.4 → paasta-tools-1.7.0}/paasta_tools/check_kubernetes_services_replication.py +0 -0
- {paasta-tools-1.6.4 → paasta-tools-1.7.0}/paasta_tools/check_oom_events.py +0 -0
- {paasta-tools-1.6.4 → paasta-tools-1.7.0}/paasta_tools/check_services_replication_tools.py +0 -0
- {paasta-tools-1.6.4 → paasta-tools-1.7.0}/paasta_tools/check_spark_jobs.py +0 -0
- {paasta-tools-1.6.4 → paasta-tools-1.7.0}/paasta_tools/cleanup_kubernetes_cr.py +0 -0
- {paasta-tools-1.6.4 → paasta-tools-1.7.0}/paasta_tools/cleanup_kubernetes_crd.py +0 -0
- {paasta-tools-1.6.4 → paasta-tools-1.7.0}/paasta_tools/cleanup_kubernetes_jobs.py +0 -0
- {paasta-tools-1.6.4 → paasta-tools-1.7.0}/paasta_tools/cleanup_tron_namespaces.py +0 -0
- {paasta-tools-1.6.4 → paasta-tools-1.7.0}/paasta_tools/cli/__init__.py +0 -0
- {paasta-tools-1.6.4 → paasta-tools-1.7.0}/paasta_tools/cli/cli.py +0 -0
- {paasta-tools-1.6.4 → paasta-tools-1.7.0}/paasta_tools/cli/cmds/__init__.py +0 -0
- {paasta-tools-1.6.4 → paasta-tools-1.7.0}/paasta_tools/cli/cmds/autoscale.py +0 -0
- {paasta-tools-1.6.4 → paasta-tools-1.7.0}/paasta_tools/cli/cmds/check.py +0 -0
- {paasta-tools-1.6.4 → paasta-tools-1.7.0}/paasta_tools/cli/cmds/cook_image.py +0 -0
- {paasta-tools-1.6.4 → paasta-tools-1.7.0}/paasta_tools/cli/cmds/get_docker_image.py +0 -0
- {paasta-tools-1.6.4 → paasta-tools-1.7.0}/paasta_tools/cli/cmds/get_image_version.py +0 -0
- {paasta-tools-1.6.4 → paasta-tools-1.7.0}/paasta_tools/cli/cmds/get_latest_deployment.py +0 -0
- {paasta-tools-1.6.4 → paasta-tools-1.7.0}/paasta_tools/cli/cmds/info.py +0 -0
- {paasta-tools-1.6.4 → paasta-tools-1.7.0}/paasta_tools/cli/cmds/itest.py +0 -0
- {paasta-tools-1.6.4 → paasta-tools-1.7.0}/paasta_tools/cli/cmds/list.py +0 -0
- {paasta-tools-1.6.4 → paasta-tools-1.7.0}/paasta_tools/cli/cmds/list_clusters.py +0 -0
- {paasta-tools-1.6.4 → paasta-tools-1.7.0}/paasta_tools/cli/cmds/list_deploy_queue.py +0 -0
- {paasta-tools-1.6.4 → paasta-tools-1.7.0}/paasta_tools/cli/cmds/local_run.py +0 -0
- {paasta-tools-1.6.4 → paasta-tools-1.7.0}/paasta_tools/cli/cmds/mark_for_deployment.py +0 -0
- {paasta-tools-1.6.4 → paasta-tools-1.7.0}/paasta_tools/cli/cmds/mesh_status.py +0 -0
- {paasta-tools-1.6.4 → paasta-tools-1.7.0}/paasta_tools/cli/cmds/pause_service_autoscaler.py +0 -0
- {paasta-tools-1.6.4 → paasta-tools-1.7.0}/paasta_tools/cli/cmds/push_to_registry.py +0 -0
- {paasta-tools-1.6.4 → paasta-tools-1.7.0}/paasta_tools/cli/cmds/remote_run.py +0 -0
- {paasta-tools-1.6.4 → paasta-tools-1.7.0}/paasta_tools/cli/cmds/rollback.py +0 -0
- {paasta-tools-1.6.4 → paasta-tools-1.7.0}/paasta_tools/cli/cmds/secret.py +0 -0
- {paasta-tools-1.6.4 → paasta-tools-1.7.0}/paasta_tools/cli/cmds/security_check.py +0 -0
- {paasta-tools-1.6.4 → paasta-tools-1.7.0}/paasta_tools/cli/cmds/start_stop_restart.py +0 -0
- {paasta-tools-1.6.4 → paasta-tools-1.7.0}/paasta_tools/cli/cmds/status.py +0 -0
- {paasta-tools-1.6.4 → paasta-tools-1.7.0}/paasta_tools/cli/cmds/validate.py +0 -0
- {paasta-tools-1.6.4 → paasta-tools-1.7.0}/paasta_tools/cli/cmds/wait_for_deployment.py +0 -0
- {paasta-tools-1.6.4 → paasta-tools-1.7.0}/paasta_tools/cli/fsm/__init__.py +0 -0
- {paasta-tools-1.6.4 → paasta-tools-1.7.0}/paasta_tools/cli/fsm/autosuggest.py +0 -0
- {paasta-tools-1.6.4 → paasta-tools-1.7.0}/paasta_tools/cli/fsm/template/README.md +0 -0
- {paasta-tools-1.6.4 → paasta-tools-1.7.0}/paasta_tools/cli/fsm/template/cookiecutter.json +0 -0
- {paasta-tools-1.6.4 → paasta-tools-1.7.0}/paasta_tools/cli/fsm/template/{{cookiecutter.service}}/kubernetes-PROD.yaml +0 -0
- {paasta-tools-1.6.4 → paasta-tools-1.7.0}/paasta_tools/cli/fsm/template/{{cookiecutter.service}}/monitoring.yaml +0 -0
- {paasta-tools-1.6.4 → paasta-tools-1.7.0}/paasta_tools/cli/fsm/template/{{cookiecutter.service}}/service.yaml +0 -0
- {paasta-tools-1.6.4 → paasta-tools-1.7.0}/paasta_tools/cli/fsm/template/{{cookiecutter.service}}/smartstack.yaml +0 -0
- {paasta-tools-1.6.4 → paasta-tools-1.7.0}/paasta_tools/cli/fsm_cmd.py +0 -0
- {paasta-tools-1.6.4 → paasta-tools-1.7.0}/paasta_tools/cli/paasta_tabcomplete.sh +0 -0
- {paasta-tools-1.6.4 → paasta-tools-1.7.0}/paasta_tools/cli/schemas/adhoc_schema.json +0 -0
- {paasta-tools-1.6.4 → paasta-tools-1.7.0}/paasta_tools/cli/schemas/autoscaling_schema.json +0 -0
- {paasta-tools-1.6.4 → paasta-tools-1.7.0}/paasta_tools/cli/schemas/autotuned_defaults/cassandracluster_schema.json +0 -0
- {paasta-tools-1.6.4 → paasta-tools-1.7.0}/paasta_tools/cli/schemas/autotuned_defaults/kubernetes_schema.json +0 -0
- {paasta-tools-1.6.4 → paasta-tools-1.7.0}/paasta_tools/cli/schemas/deploy_schema.json +0 -0
- {paasta-tools-1.6.4 → paasta-tools-1.7.0}/paasta_tools/cli/schemas/eks_schema.json +0 -0
- {paasta-tools-1.6.4 → paasta-tools-1.7.0}/paasta_tools/cli/schemas/kubernetes_schema.json +0 -0
- {paasta-tools-1.6.4 → paasta-tools-1.7.0}/paasta_tools/cli/schemas/rollback_schema.json +0 -0
- {paasta-tools-1.6.4 → paasta-tools-1.7.0}/paasta_tools/cli/schemas/service_schema.json +0 -0
- {paasta-tools-1.6.4 → paasta-tools-1.7.0}/paasta_tools/cli/schemas/smartstack_schema.json +0 -0
- {paasta-tools-1.6.4 → paasta-tools-1.7.0}/paasta_tools/cli/schemas/tron_schema.json +0 -0
- {paasta-tools-1.6.4 → paasta-tools-1.7.0}/paasta_tools/cli/utils.py +0 -0
- {paasta-tools-1.6.4 → paasta-tools-1.7.0}/paasta_tools/clusterman.py +0 -0
- {paasta-tools-1.6.4 → paasta-tools-1.7.0}/paasta_tools/config_utils.py +0 -0
- {paasta-tools-1.6.4 → paasta-tools-1.7.0}/paasta_tools/contrib/__init__.py +0 -0
- {paasta-tools-1.6.4 → paasta-tools-1.7.0}/paasta_tools/contrib/bounce_log_latency_parser.py +0 -0
- {paasta-tools-1.6.4 → paasta-tools-1.7.0}/paasta_tools/contrib/check_manual_oapi_changes.sh +0 -0
- {paasta-tools-1.6.4 → paasta-tools-1.7.0}/paasta_tools/contrib/check_orphans.py +0 -0
- {paasta-tools-1.6.4 → paasta-tools-1.7.0}/paasta_tools/contrib/create_dynamodb_table.py +0 -0
- {paasta-tools-1.6.4 → paasta-tools-1.7.0}/paasta_tools/contrib/create_paasta_playground.py +0 -0
- {paasta-tools-1.6.4 → paasta-tools-1.7.0}/paasta_tools/contrib/emit_allocated_cpu_metrics.py +0 -0
- {paasta-tools-1.6.4 → paasta-tools-1.7.0}/paasta_tools/contrib/get_running_task_allocation.py +0 -0
- {paasta-tools-1.6.4 → paasta-tools-1.7.0}/paasta_tools/contrib/habitat_fixer.py +0 -0
- {paasta-tools-1.6.4 → paasta-tools-1.7.0}/paasta_tools/contrib/ide_helper.py +0 -0
- {paasta-tools-1.6.4 → paasta-tools-1.7.0}/paasta_tools/contrib/is_pod_healthy_in_proxy.py +0 -0
- {paasta-tools-1.6.4 → paasta-tools-1.7.0}/paasta_tools/contrib/is_pod_healthy_in_smartstack.py +0 -0
- {paasta-tools-1.6.4 → paasta-tools-1.7.0}/paasta_tools/contrib/kill_bad_containers.py +0 -0
- {paasta-tools-1.6.4 → paasta-tools-1.7.0}/paasta_tools/contrib/mass-deploy-tag.sh +0 -0
- {paasta-tools-1.6.4 → paasta-tools-1.7.0}/paasta_tools/contrib/mock_patch_checker.py +0 -0
- {paasta-tools-1.6.4 → paasta-tools-1.7.0}/paasta_tools/contrib/paasta_update_soa_memcpu.py +0 -0
- {paasta-tools-1.6.4 → paasta-tools-1.7.0}/paasta_tools/contrib/render_template.py +0 -0
- {paasta-tools-1.6.4 → paasta-tools-1.7.0}/paasta_tools/contrib/rightsizer_soaconfigs_update.py +0 -0
- {paasta-tools-1.6.4 → paasta-tools-1.7.0}/paasta_tools/contrib/service_shard_remove.py +0 -0
- {paasta-tools-1.6.4 → paasta-tools-1.7.0}/paasta_tools/contrib/shared_ip_check.py +0 -0
- {paasta-tools-1.6.4 → paasta-tools-1.7.0}/paasta_tools/contrib/timeouts_metrics_prom.py +0 -0
- {paasta-tools-1.6.4 → paasta-tools-1.7.0}/paasta_tools/delete_kubernetes_deployments.py +0 -0
- {paasta-tools-1.6.4 → paasta-tools-1.7.0}/paasta_tools/deployment_utils.py +0 -0
- {paasta-tools-1.6.4 → paasta-tools-1.7.0}/paasta_tools/docker_wrapper.py +0 -0
- {paasta-tools-1.6.4 → paasta-tools-1.7.0}/paasta_tools/docker_wrapper_imports.py +0 -0
- {paasta-tools-1.6.4 → paasta-tools-1.7.0}/paasta_tools/drain_lib.py +0 -0
- {paasta-tools-1.6.4 → paasta-tools-1.7.0}/paasta_tools/dump_locally_running_services.py +0 -0
- {paasta-tools-1.6.4 → paasta-tools-1.7.0}/paasta_tools/eks_tools.py +0 -0
- {paasta-tools-1.6.4 → paasta-tools-1.7.0}/paasta_tools/envoy_tools.py +0 -0
- {paasta-tools-1.6.4 → paasta-tools-1.7.0}/paasta_tools/firewall.py +0 -0
- {paasta-tools-1.6.4 → paasta-tools-1.7.0}/paasta_tools/firewall_logging.py +0 -0
- {paasta-tools-1.6.4 → paasta-tools-1.7.0}/paasta_tools/firewall_update.py +0 -0
- {paasta-tools-1.6.4 → paasta-tools-1.7.0}/paasta_tools/flink_tools.py +0 -0
- {paasta-tools-1.6.4 → paasta-tools-1.7.0}/paasta_tools/flinkeks_tools.py +0 -0
- {paasta-tools-1.6.4 → paasta-tools-1.7.0}/paasta_tools/frameworks/__init__.py +0 -0
- {paasta-tools-1.6.4 → paasta-tools-1.7.0}/paasta_tools/frameworks/adhoc_scheduler.py +0 -0
- {paasta-tools-1.6.4 → paasta-tools-1.7.0}/paasta_tools/frameworks/constraints.py +0 -0
- {paasta-tools-1.6.4 → paasta-tools-1.7.0}/paasta_tools/frameworks/native_scheduler.py +0 -0
- {paasta-tools-1.6.4 → paasta-tools-1.7.0}/paasta_tools/frameworks/native_service_config.py +0 -0
- {paasta-tools-1.6.4 → paasta-tools-1.7.0}/paasta_tools/frameworks/task_store.py +0 -0
- {paasta-tools-1.6.4 → paasta-tools-1.7.0}/paasta_tools/generate_all_deployments +0 -0
- {paasta-tools-1.6.4 → paasta-tools-1.7.0}/paasta_tools/generate_authenticating_services.py +0 -0
- {paasta-tools-1.6.4 → paasta-tools-1.7.0}/paasta_tools/generate_deployments_for_service.py +0 -0
- {paasta-tools-1.6.4 → paasta-tools-1.7.0}/paasta_tools/generate_services_file.py +0 -0
- {paasta-tools-1.6.4 → paasta-tools-1.7.0}/paasta_tools/generate_services_yaml.py +0 -0
- {paasta-tools-1.6.4 → paasta-tools-1.7.0}/paasta_tools/hacheck.py +0 -0
- {paasta-tools-1.6.4 → paasta-tools-1.7.0}/paasta_tools/instance/__init__.py +0 -0
- {paasta-tools-1.6.4 → paasta-tools-1.7.0}/paasta_tools/instance/hpa_metrics_parser.py +0 -0
- {paasta-tools-1.6.4 → paasta-tools-1.7.0}/paasta_tools/instance/kubernetes.py +0 -0
- {paasta-tools-1.6.4 → paasta-tools-1.7.0}/paasta_tools/iptables.py +0 -0
- {paasta-tools-1.6.4 → paasta-tools-1.7.0}/paasta_tools/kafkacluster_tools.py +0 -0
- {paasta-tools-1.6.4 → paasta-tools-1.7.0}/paasta_tools/kubernetes/__init__.py +0 -0
- {paasta-tools-1.6.4 → paasta-tools-1.7.0}/paasta_tools/kubernetes/application/__init__.py +0 -0
- {paasta-tools-1.6.4 → paasta-tools-1.7.0}/paasta_tools/kubernetes/application/controller_wrappers.py +0 -0
- {paasta-tools-1.6.4 → paasta-tools-1.7.0}/paasta_tools/kubernetes/application/tools.py +0 -0
- {paasta-tools-1.6.4 → paasta-tools-1.7.0}/paasta_tools/kubernetes/bin/__init__.py +0 -0
- {paasta-tools-1.6.4 → paasta-tools-1.7.0}/paasta_tools/kubernetes/bin/kubernetes_remove_evicted_pods.py +0 -0
- {paasta-tools-1.6.4 → paasta-tools-1.7.0}/paasta_tools/kubernetes/bin/paasta_cleanup_stale_nodes.py +0 -0
- {paasta-tools-1.6.4 → paasta-tools-1.7.0}/paasta_tools/kubernetes/bin/paasta_secrets_sync.py +0 -0
- {paasta-tools-1.6.4 → paasta-tools-1.7.0}/paasta_tools/kubernetes_tools.py +0 -0
- {paasta-tools-1.6.4 → paasta-tools-1.7.0}/paasta_tools/list_kubernetes_service_instances.py +0 -0
- {paasta-tools-1.6.4 → paasta-tools-1.7.0}/paasta_tools/list_tron_namespaces.py +0 -0
- {paasta-tools-1.6.4 → paasta-tools-1.7.0}/paasta_tools/log_task_lifecycle_events.py +0 -0
- {paasta-tools-1.6.4 → paasta-tools-1.7.0}/paasta_tools/long_running_service_tools.py +0 -0
- {paasta-tools-1.6.4 → paasta-tools-1.7.0}/paasta_tools/mac_address.py +0 -0
- {paasta-tools-1.6.4 → paasta-tools-1.7.0}/paasta_tools/marathon_dashboard.py +0 -0
- {paasta-tools-1.6.4 → paasta-tools-1.7.0}/paasta_tools/mesos/__init__.py +0 -0
- {paasta-tools-1.6.4 → paasta-tools-1.7.0}/paasta_tools/mesos/cfg.py +0 -0
- {paasta-tools-1.6.4 → paasta-tools-1.7.0}/paasta_tools/mesos/cluster.py +0 -0
- {paasta-tools-1.6.4 → paasta-tools-1.7.0}/paasta_tools/mesos/exceptions.py +0 -0
- {paasta-tools-1.6.4 → paasta-tools-1.7.0}/paasta_tools/mesos/framework.py +0 -0
- {paasta-tools-1.6.4 → paasta-tools-1.7.0}/paasta_tools/mesos/log.py +0 -0
- {paasta-tools-1.6.4 → paasta-tools-1.7.0}/paasta_tools/mesos/master.py +0 -0
- {paasta-tools-1.6.4 → paasta-tools-1.7.0}/paasta_tools/mesos/mesos_file.py +0 -0
- {paasta-tools-1.6.4 → paasta-tools-1.7.0}/paasta_tools/mesos/parallel.py +0 -0
- {paasta-tools-1.6.4 → paasta-tools-1.7.0}/paasta_tools/mesos/slave.py +0 -0
- {paasta-tools-1.6.4 → paasta-tools-1.7.0}/paasta_tools/mesos/task.py +0 -0
- {paasta-tools-1.6.4 → paasta-tools-1.7.0}/paasta_tools/mesos/util.py +0 -0
- {paasta-tools-1.6.4 → paasta-tools-1.7.0}/paasta_tools/mesos/zookeeper.py +0 -0
- {paasta-tools-1.6.4 → paasta-tools-1.7.0}/paasta_tools/mesos_maintenance.py +0 -0
- {paasta-tools-1.6.4 → paasta-tools-1.7.0}/paasta_tools/mesos_tools.py +0 -0
- {paasta-tools-1.6.4 → paasta-tools-1.7.0}/paasta_tools/metrics/__init__.py +0 -0
- {paasta-tools-1.6.4 → paasta-tools-1.7.0}/paasta_tools/metrics/metastatus_lib.py +0 -0
- {paasta-tools-1.6.4 → paasta-tools-1.7.0}/paasta_tools/metrics/metrics_lib.py +0 -0
- {paasta-tools-1.6.4 → paasta-tools-1.7.0}/paasta_tools/monitoring/__init__.py +0 -0
- {paasta-tools-1.6.4 → paasta-tools-1.7.0}/paasta_tools/monitoring/check_k8s_api_performance.py +0 -0
- {paasta-tools-1.6.4 → paasta-tools-1.7.0}/paasta_tools/monitoring_tools.py +0 -0
- {paasta-tools-1.6.4 → paasta-tools-1.7.0}/paasta_tools/monkrelaycluster_tools.py +0 -0
- {paasta-tools-1.6.4 → paasta-tools-1.7.0}/paasta_tools/nrtsearchservice_tools.py +0 -0
- {paasta-tools-1.6.4 → paasta-tools-1.7.0}/paasta_tools/nrtsearchserviceeks_tools.py +0 -0
- {paasta-tools-1.6.4 → paasta-tools-1.7.0}/paasta_tools/oom_logger.py +0 -0
- {paasta-tools-1.6.4 → paasta-tools-1.7.0}/paasta_tools/paasta_deploy_tron_jobs +0 -0
- {paasta-tools-1.6.4 → paasta-tools-1.7.0}/paasta_tools/paasta_execute_docker_command.py +0 -0
- {paasta-tools-1.6.4 → paasta-tools-1.7.0}/paasta_tools/paasta_native_serviceinit.py +0 -0
- {paasta-tools-1.6.4 → paasta-tools-1.7.0}/paasta_tools/paasta_remote_run.py +0 -0
- {paasta-tools-1.6.4 → paasta-tools-1.7.0}/paasta_tools/paasta_service_config_loader.py +0 -0
- {paasta-tools-1.6.4 → paasta-tools-1.7.0}/paasta_tools/paastaapi/__init__.py +0 -0
- {paasta-tools-1.6.4 → paasta-tools-1.7.0}/paasta_tools/paastaapi/api/__init__.py +0 -0
- {paasta-tools-1.6.4 → paasta-tools-1.7.0}/paasta_tools/paastaapi/api/autoscaler_api.py +0 -0
- {paasta-tools-1.6.4 → paasta-tools-1.7.0}/paasta_tools/paastaapi/api/default_api.py +0 -0
- {paasta-tools-1.6.4 → paasta-tools-1.7.0}/paasta_tools/paastaapi/api/resources_api.py +0 -0
- {paasta-tools-1.6.4 → paasta-tools-1.7.0}/paasta_tools/paastaapi/api/service_api.py +0 -0
- {paasta-tools-1.6.4 → paasta-tools-1.7.0}/paasta_tools/paastaapi/api_client.py +0 -0
- {paasta-tools-1.6.4 → paasta-tools-1.7.0}/paasta_tools/paastaapi/apis/__init__.py +0 -0
- {paasta-tools-1.6.4 → paasta-tools-1.7.0}/paasta_tools/paastaapi/configuration.py +0 -0
- {paasta-tools-1.6.4 → paasta-tools-1.7.0}/paasta_tools/paastaapi/exceptions.py +0 -0
- {paasta-tools-1.6.4 → paasta-tools-1.7.0}/paasta_tools/paastaapi/model/__init__.py +0 -0
- {paasta-tools-1.6.4 → paasta-tools-1.7.0}/paasta_tools/paastaapi/model/adhoc_launch_history.py +0 -0
- {paasta-tools-1.6.4 → paasta-tools-1.7.0}/paasta_tools/paastaapi/model/autoscaler_count_msg.py +0 -0
- {paasta-tools-1.6.4 → paasta-tools-1.7.0}/paasta_tools/paastaapi/model/deploy_queue.py +0 -0
- {paasta-tools-1.6.4 → paasta-tools-1.7.0}/paasta_tools/paastaapi/model/deploy_queue_service_instance.py +0 -0
- {paasta-tools-1.6.4 → paasta-tools-1.7.0}/paasta_tools/paastaapi/model/envoy_backend.py +0 -0
- {paasta-tools-1.6.4 → paasta-tools-1.7.0}/paasta_tools/paastaapi/model/envoy_location.py +0 -0
- {paasta-tools-1.6.4 → paasta-tools-1.7.0}/paasta_tools/paastaapi/model/envoy_status.py +0 -0
- {paasta-tools-1.6.4 → paasta-tools-1.7.0}/paasta_tools/paastaapi/model/flink_cluster_overview.py +0 -0
- {paasta-tools-1.6.4 → paasta-tools-1.7.0}/paasta_tools/paastaapi/model/flink_config.py +0 -0
- {paasta-tools-1.6.4 → paasta-tools-1.7.0}/paasta_tools/paastaapi/model/flink_job.py +0 -0
- {paasta-tools-1.6.4 → paasta-tools-1.7.0}/paasta_tools/paastaapi/model/flink_job_details.py +0 -0
- {paasta-tools-1.6.4 → paasta-tools-1.7.0}/paasta_tools/paastaapi/model/flink_jobs.py +0 -0
- {paasta-tools-1.6.4 → paasta-tools-1.7.0}/paasta_tools/paastaapi/model/float_and_error.py +0 -0
- {paasta-tools-1.6.4 → paasta-tools-1.7.0}/paasta_tools/paastaapi/model/hpa_metric.py +0 -0
- {paasta-tools-1.6.4 → paasta-tools-1.7.0}/paasta_tools/paastaapi/model/inline_object.py +0 -0
- {paasta-tools-1.6.4 → paasta-tools-1.7.0}/paasta_tools/paastaapi/model/inline_response200.py +0 -0
- {paasta-tools-1.6.4 → paasta-tools-1.7.0}/paasta_tools/paastaapi/model/inline_response2001.py +0 -0
- {paasta-tools-1.6.4 → paasta-tools-1.7.0}/paasta_tools/paastaapi/model/instance_bounce_status.py +0 -0
- {paasta-tools-1.6.4 → paasta-tools-1.7.0}/paasta_tools/paastaapi/model/instance_mesh_status.py +0 -0
- {paasta-tools-1.6.4 → paasta-tools-1.7.0}/paasta_tools/paastaapi/model/instance_status.py +0 -0
- {paasta-tools-1.6.4 → paasta-tools-1.7.0}/paasta_tools/paastaapi/model/instance_status_adhoc.py +0 -0
- {paasta-tools-1.6.4 → paasta-tools-1.7.0}/paasta_tools/paastaapi/model/instance_status_cassandracluster.py +0 -0
- {paasta-tools-1.6.4 → paasta-tools-1.7.0}/paasta_tools/paastaapi/model/instance_status_flink.py +0 -0
- {paasta-tools-1.6.4 → paasta-tools-1.7.0}/paasta_tools/paastaapi/model/instance_status_kafkacluster.py +0 -0
- {paasta-tools-1.6.4 → paasta-tools-1.7.0}/paasta_tools/paastaapi/model/instance_status_kubernetes.py +0 -0
- {paasta-tools-1.6.4 → paasta-tools-1.7.0}/paasta_tools/paastaapi/model/instance_status_kubernetes_autoscaling_status.py +0 -0
- {paasta-tools-1.6.4 → paasta-tools-1.7.0}/paasta_tools/paastaapi/model/instance_status_kubernetes_v2.py +0 -0
- {paasta-tools-1.6.4 → paasta-tools-1.7.0}/paasta_tools/paastaapi/model/instance_status_tron.py +0 -0
- {paasta-tools-1.6.4 → paasta-tools-1.7.0}/paasta_tools/paastaapi/model/instance_status_vitesscluster.py +0 -0
- {paasta-tools-1.6.4 → paasta-tools-1.7.0}/paasta_tools/paastaapi/model/instance_tasks.py +0 -0
- {paasta-tools-1.6.4 → paasta-tools-1.7.0}/paasta_tools/paastaapi/model/integer_and_error.py +0 -0
- {paasta-tools-1.6.4 → paasta-tools-1.7.0}/paasta_tools/paastaapi/model/kubernetes_container.py +0 -0
- {paasta-tools-1.6.4 → paasta-tools-1.7.0}/paasta_tools/paastaapi/model/kubernetes_container_v2.py +0 -0
- {paasta-tools-1.6.4 → paasta-tools-1.7.0}/paasta_tools/paastaapi/model/kubernetes_healthcheck.py +0 -0
- {paasta-tools-1.6.4 → paasta-tools-1.7.0}/paasta_tools/paastaapi/model/kubernetes_pod.py +0 -0
- {paasta-tools-1.6.4 → paasta-tools-1.7.0}/paasta_tools/paastaapi/model/kubernetes_pod_event.py +0 -0
- {paasta-tools-1.6.4 → paasta-tools-1.7.0}/paasta_tools/paastaapi/model/kubernetes_pod_v2.py +0 -0
- {paasta-tools-1.6.4 → paasta-tools-1.7.0}/paasta_tools/paastaapi/model/kubernetes_replica_set.py +0 -0
- {paasta-tools-1.6.4 → paasta-tools-1.7.0}/paasta_tools/paastaapi/model/kubernetes_version.py +0 -0
- {paasta-tools-1.6.4 → paasta-tools-1.7.0}/paasta_tools/paastaapi/model/resource.py +0 -0
- {paasta-tools-1.6.4 → paasta-tools-1.7.0}/paasta_tools/paastaapi/model/resource_item.py +0 -0
- {paasta-tools-1.6.4 → paasta-tools-1.7.0}/paasta_tools/paastaapi/model/resource_value.py +0 -0
- {paasta-tools-1.6.4 → paasta-tools-1.7.0}/paasta_tools/paastaapi/model/smartstack_backend.py +0 -0
- {paasta-tools-1.6.4 → paasta-tools-1.7.0}/paasta_tools/paastaapi/model/smartstack_location.py +0 -0
- {paasta-tools-1.6.4 → paasta-tools-1.7.0}/paasta_tools/paastaapi/model/smartstack_status.py +0 -0
- {paasta-tools-1.6.4 → paasta-tools-1.7.0}/paasta_tools/paastaapi/model/task_tail_lines.py +0 -0
- {paasta-tools-1.6.4 → paasta-tools-1.7.0}/paasta_tools/paastaapi/model_utils.py +0 -0
- {paasta-tools-1.6.4 → paasta-tools-1.7.0}/paasta_tools/paastaapi/models/__init__.py +0 -0
- {paasta-tools-1.6.4 → paasta-tools-1.7.0}/paasta_tools/paastaapi/rest.py +0 -0
- {paasta-tools-1.6.4 → paasta-tools-1.7.0}/paasta_tools/prune_completed_pods.py +0 -0
- {paasta-tools-1.6.4 → paasta-tools-1.7.0}/paasta_tools/puppet_service_tools.py +0 -0
- {paasta-tools-1.6.4 → paasta-tools-1.7.0}/paasta_tools/py.typed +0 -0
- {paasta-tools-1.6.4 → paasta-tools-1.7.0}/paasta_tools/remote_git.py +0 -0
- {paasta-tools-1.6.4 → paasta-tools-1.7.0}/paasta_tools/run-paasta-api-in-dev-mode.py +0 -0
- {paasta-tools-1.6.4 → paasta-tools-1.7.0}/paasta_tools/run-paasta-api-playground.py +0 -0
- {paasta-tools-1.6.4 → paasta-tools-1.7.0}/paasta_tools/secret_providers/__init__.py +0 -0
- {paasta-tools-1.6.4 → paasta-tools-1.7.0}/paasta_tools/secret_providers/vault.py +0 -0
- {paasta-tools-1.6.4 → paasta-tools-1.7.0}/paasta_tools/secret_tools.py +0 -0
- {paasta-tools-1.6.4 → paasta-tools-1.7.0}/paasta_tools/setup_istio_mesh.py +0 -0
- {paasta-tools-1.6.4 → paasta-tools-1.7.0}/paasta_tools/setup_kubernetes_cr.py +0 -0
- {paasta-tools-1.6.4 → paasta-tools-1.7.0}/paasta_tools/setup_kubernetes_crd.py +0 -0
- {paasta-tools-1.6.4 → paasta-tools-1.7.0}/paasta_tools/setup_kubernetes_internal_crd.py +0 -0
- {paasta-tools-1.6.4 → paasta-tools-1.7.0}/paasta_tools/setup_kubernetes_job.py +0 -0
- {paasta-tools-1.6.4 → paasta-tools-1.7.0}/paasta_tools/setup_prometheus_adapter_config.py +0 -0
- {paasta-tools-1.6.4 → paasta-tools-1.7.0}/paasta_tools/slack.py +0 -0
- {paasta-tools-1.6.4 → paasta-tools-1.7.0}/paasta_tools/smartstack_tools.py +0 -0
- {paasta-tools-1.6.4 → paasta-tools-1.7.0}/paasta_tools/synapse_srv_namespaces_fact.py +0 -0
- {paasta-tools-1.6.4 → paasta-tools-1.7.0}/paasta_tools/tron/__init__.py +0 -0
- {paasta-tools-1.6.4 → paasta-tools-1.7.0}/paasta_tools/tron/client.py +0 -0
- {paasta-tools-1.6.4 → paasta-tools-1.7.0}/paasta_tools/tron/tron_command_context.py +0 -0
- {paasta-tools-1.6.4 → paasta-tools-1.7.0}/paasta_tools/tron/tron_timeutils.py +0 -0
- {paasta-tools-1.6.4 → paasta-tools-1.7.0}/paasta_tools/utils.py +0 -0
- {paasta-tools-1.6.4 → paasta-tools-1.7.0}/paasta_tools/vitesscluster_tools.py +0 -0
- {paasta-tools-1.6.4 → paasta-tools-1.7.0}/paasta_tools.egg-info/SOURCES.txt +0 -0
- {paasta-tools-1.6.4 → paasta-tools-1.7.0}/paasta_tools.egg-info/dependency_links.txt +0 -0
- {paasta-tools-1.6.4 → paasta-tools-1.7.0}/paasta_tools.egg-info/entry_points.txt +0 -0
- {paasta-tools-1.6.4 → paasta-tools-1.7.0}/paasta_tools.egg-info/requires.txt +0 -0
- {paasta-tools-1.6.4 → paasta-tools-1.7.0}/paasta_tools.egg-info/top_level.txt +0 -0
- {paasta-tools-1.6.4 → paasta-tools-1.7.0}/pyproject.toml +0 -0
- {paasta-tools-1.6.4 → paasta-tools-1.7.0}/requirements-minimal.txt +0 -0
- {paasta-tools-1.6.4 → paasta-tools-1.7.0}/setup.cfg +0 -0
- {paasta-tools-1.6.4 → paasta-tools-1.7.0}/setup.py +0 -0
|
@@ -329,6 +329,12 @@ def paasta_app_output_passes_filter(
|
|
|
329
329
|
# https://github.com/gweis/isodate/issues/53
|
|
330
330
|
except ValueError:
|
|
331
331
|
return True
|
|
332
|
+
except AttributeError:
|
|
333
|
+
# Timestamp might be missing. We had an issue where OTel was splitting overly long log lines
|
|
334
|
+
# and not including timestamps in the resulting log records (OBSPLAT-2216).
|
|
335
|
+
# Although this was then fixed in OTel, we should not rely on timestamps being present,
|
|
336
|
+
# as the format cannot be guaranteed.
|
|
337
|
+
return False
|
|
332
338
|
if not check_timestamp_in_range(timestamp, start_time, end_time):
|
|
333
339
|
return False
|
|
334
340
|
return (
|
|
@@ -239,9 +239,9 @@ def add_subparser(subparsers):
|
|
|
239
239
|
"default_pool"
|
|
240
240
|
)
|
|
241
241
|
except PaastaNotConfiguredError:
|
|
242
|
-
default_spark_cluster = "pnw-devc"
|
|
242
|
+
default_spark_cluster = "pnw-devc-spark"
|
|
243
243
|
default_spark_pool = "batch"
|
|
244
|
-
valid_clusters = ["
|
|
244
|
+
valid_clusters = ["pnw-devc-spark", "pnw-prod-spark"]
|
|
245
245
|
|
|
246
246
|
list_parser.add_argument(
|
|
247
247
|
"-c",
|
|
@@ -39,6 +39,13 @@ def parse_args():
|
|
|
39
39
|
action="store_true",
|
|
40
40
|
dest="verbose",
|
|
41
41
|
)
|
|
42
|
+
parser.add_argument(
|
|
43
|
+
"-d",
|
|
44
|
+
"--dry-run",
|
|
45
|
+
help="Do not commit changes to git",
|
|
46
|
+
action="store_true",
|
|
47
|
+
dest="dry_run",
|
|
48
|
+
)
|
|
42
49
|
parser.add_argument(
|
|
43
50
|
"--source-id",
|
|
44
51
|
help="String to attribute the changes in the commit message.",
|
|
@@ -115,6 +122,48 @@ def parse_args():
|
|
|
115
122
|
type=int,
|
|
116
123
|
dest="timeout_server_ms",
|
|
117
124
|
)
|
|
125
|
+
parser.add_argument(
|
|
126
|
+
"--autotune-min-cpus",
|
|
127
|
+
help="Minimum number of CPUs Autotune should give the shard",
|
|
128
|
+
required=False,
|
|
129
|
+
type=float,
|
|
130
|
+
dest="autotune_min_cpus",
|
|
131
|
+
)
|
|
132
|
+
parser.add_argument(
|
|
133
|
+
"--autotune-max-cpus",
|
|
134
|
+
help="Maximum number of CPUs Autotune should give the shard",
|
|
135
|
+
required=False,
|
|
136
|
+
type=float,
|
|
137
|
+
dest="autotune_max_cpus",
|
|
138
|
+
)
|
|
139
|
+
parser.add_argument(
|
|
140
|
+
"--autotune-min-mem",
|
|
141
|
+
help="Minimum amount of memory Autotune should give the shard",
|
|
142
|
+
required=False,
|
|
143
|
+
type=int,
|
|
144
|
+
dest="autotune_min_mem",
|
|
145
|
+
)
|
|
146
|
+
parser.add_argument(
|
|
147
|
+
"--autotune-max-mem",
|
|
148
|
+
help="Maximum amount of memory Autotune should give the shard",
|
|
149
|
+
required=False,
|
|
150
|
+
type=int,
|
|
151
|
+
dest="autotune_max_mem",
|
|
152
|
+
)
|
|
153
|
+
parser.add_argument(
|
|
154
|
+
"--autotune-min-disk",
|
|
155
|
+
help="Minimum amount of disk Autotune should give the shard",
|
|
156
|
+
required=False,
|
|
157
|
+
type=int,
|
|
158
|
+
dest="autotune_min_disk",
|
|
159
|
+
)
|
|
160
|
+
parser.add_argument(
|
|
161
|
+
"--autotune-max-disk",
|
|
162
|
+
help="Maximum amount of disk Autotune should give the shard",
|
|
163
|
+
required=False,
|
|
164
|
+
type=int,
|
|
165
|
+
dest="autotune_max_disk",
|
|
166
|
+
)
|
|
118
167
|
return parser.parse_args()
|
|
119
168
|
|
|
120
169
|
|
|
@@ -195,9 +244,11 @@ def main(args):
|
|
|
195
244
|
instance_config = {
|
|
196
245
|
"deploy_group": f"{deploy_prefix}.{args.shard_name}",
|
|
197
246
|
"min_instances": args.min_instance_count,
|
|
198
|
-
"max_instances":
|
|
199
|
-
|
|
200
|
-
|
|
247
|
+
"max_instances": (
|
|
248
|
+
args.prod_max_instance_count
|
|
249
|
+
if deploy_prefix == "prod"
|
|
250
|
+
else args.non_prod_max_instance_count
|
|
251
|
+
),
|
|
201
252
|
"env": {
|
|
202
253
|
"PAASTA_SECRET_BUGSNAG_API_KEY": "SECRET(bugsnag_api_key)",
|
|
203
254
|
},
|
|
@@ -217,6 +268,40 @@ def main(args):
|
|
|
217
268
|
instance_config["cpus"] = args.cpus
|
|
218
269
|
if args.mem is not None:
|
|
219
270
|
instance_config["mem"] = args.mem
|
|
271
|
+
if any(
|
|
272
|
+
(
|
|
273
|
+
args.autotune_min_cpus,
|
|
274
|
+
args.autotune_max_cpus,
|
|
275
|
+
args.autotune_min_mem,
|
|
276
|
+
args.autotune_max_mem,
|
|
277
|
+
args.autotune_min_disk,
|
|
278
|
+
args.autotune_max_disk,
|
|
279
|
+
)
|
|
280
|
+
):
|
|
281
|
+
limit_config = {}
|
|
282
|
+
limit_config["cpus"] = {
|
|
283
|
+
"min": args.autotune_min_cpus,
|
|
284
|
+
"max": args.autotune_max_cpus,
|
|
285
|
+
}
|
|
286
|
+
limit_config["mem"] = {
|
|
287
|
+
"min": args.autotune_min_mem,
|
|
288
|
+
"max": args.autotune_max_mem,
|
|
289
|
+
}
|
|
290
|
+
limit_config["disk"] = {
|
|
291
|
+
"min": args.autotune_min_disk,
|
|
292
|
+
"max": args.autotune_max_disk,
|
|
293
|
+
}
|
|
294
|
+
|
|
295
|
+
# remove any None values to keep the config clean
|
|
296
|
+
for resource in list(limit_config):
|
|
297
|
+
for key in list(limit_config[resource]):
|
|
298
|
+
if limit_config[resource][key] is None:
|
|
299
|
+
del limit_config[resource][key]
|
|
300
|
+
if len(limit_config[resource]) == 0:
|
|
301
|
+
del limit_config[resource]
|
|
302
|
+
|
|
303
|
+
if len(limit_config) > 0:
|
|
304
|
+
instance_config["autotune_limits"] = limit_config
|
|
220
305
|
# If the service config does not contain definitions for the shard in each ecosystem
|
|
221
306
|
# Add the missing definition and write to the corresponding config
|
|
222
307
|
if args.shard_name not in config_file.keys():
|
|
@@ -247,7 +332,7 @@ def main(args):
|
|
|
247
332
|
log.info(f"{args.shard_name} is in smartstack config already, skipping.")
|
|
248
333
|
|
|
249
334
|
# Only commit to remote if changes were made
|
|
250
|
-
if changes_made:
|
|
335
|
+
if changes_made and not args.dry_run:
|
|
251
336
|
updater.commit_to_remote()
|
|
252
337
|
trigger_deploys(args.service)
|
|
253
338
|
else:
|
|
@@ -224,7 +224,7 @@ def main():
|
|
|
224
224
|
# since we need to print out what failed in either case
|
|
225
225
|
failed.append(service)
|
|
226
226
|
|
|
227
|
-
if args.bulk_config_fetch:
|
|
227
|
+
if args.dry_run and args.bulk_config_fetch:
|
|
228
228
|
updated_namespaces = client.update_namespaces(new_configs)
|
|
229
229
|
|
|
230
230
|
if updated_namespaces:
|
|
@@ -20,7 +20,7 @@ DEFAULT_SPARK_RUNTIME_TIMEOUT = "12h"
|
|
|
20
20
|
SPARK_AWS_CREDS_PROVIDER = "com.amazonaws.auth.WebIdentityTokenCredentialsProvider"
|
|
21
21
|
SPARK_EXECUTOR_NAMESPACE = "paasta-spark"
|
|
22
22
|
SPARK_DRIVER_POOL = "stable"
|
|
23
|
-
|
|
23
|
+
SPARK_TRON_JOB_USER = "TRON"
|
|
24
24
|
SPARK_PROMETHEUS_SHARD = "ml-compute"
|
|
25
25
|
SPARK_DNS_POD_TEMPLATE = "/nail/srv/configs/spark_dns_pod_template.yaml"
|
|
26
26
|
MEM_MULTIPLIER = {"k": 1024, "m": 1024**2, "g": 1024**3, "t": 1024**4}
|
|
@@ -176,7 +176,9 @@ def inject_spark_conf_str(original_cmd: str, spark_conf_str: str) -> str:
|
|
|
176
176
|
return original_cmd
|
|
177
177
|
|
|
178
178
|
|
|
179
|
-
def auto_add_timeout_for_spark_job(
|
|
179
|
+
def auto_add_timeout_for_spark_job(
|
|
180
|
+
cmd: str, timeout_job_runtime: str, silent: bool = False
|
|
181
|
+
) -> str:
|
|
180
182
|
# Timeout only to be added for spark-submit commands
|
|
181
183
|
# TODO: Add timeout for jobs using mrjob with spark-runner
|
|
182
184
|
if "spark-submit" not in cmd:
|
|
@@ -189,16 +191,17 @@ def auto_add_timeout_for_spark_job(cmd: str, timeout_job_runtime: str) -> str:
|
|
|
189
191
|
split_cmd = cmd.split("spark-submit")
|
|
190
192
|
# split_cmd[0] will always be an empty string or end with a space
|
|
191
193
|
cmd = f"{split_cmd[0]}timeout {timeout_job_runtime} spark-submit{split_cmd[1]}"
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
194
|
+
if not silent:
|
|
195
|
+
log.info(
|
|
196
|
+
PaastaColors.blue(
|
|
197
|
+
f"NOTE: Job will exit in given time {timeout_job_runtime}. "
|
|
198
|
+
f"Adjust timeout value using --timeout-job-runtime. "
|
|
199
|
+
f"New Updated Command with timeout: {cmd}"
|
|
200
|
+
),
|
|
201
|
+
)
|
|
199
202
|
except Exception as e:
|
|
200
203
|
err_msg = (
|
|
201
|
-
f"'timeout' could not be added to command: '{cmd}' due to error '{e}'. "
|
|
204
|
+
f"'timeout' could not be added to spark command: '{cmd}' due to error '{e}'. "
|
|
202
205
|
"Please report to #spark."
|
|
203
206
|
)
|
|
204
207
|
log.warn(err_msg)
|
|
@@ -211,9 +214,12 @@ def build_spark_command(
|
|
|
211
214
|
spark_config_dict: Dict[str, Any],
|
|
212
215
|
is_mrjob: bool,
|
|
213
216
|
timeout_job_runtime: str,
|
|
217
|
+
silent: bool = False,
|
|
214
218
|
) -> str:
|
|
215
|
-
command =
|
|
216
|
-
|
|
219
|
+
command = inject_spark_conf_str(
|
|
220
|
+
original_cmd, create_spark_config_str(spark_config_dict, is_mrjob=is_mrjob)
|
|
221
|
+
)
|
|
222
|
+
return auto_add_timeout_for_spark_job(command, timeout_job_runtime, silent=silent)
|
|
217
223
|
|
|
218
224
|
|
|
219
225
|
def get_spark_ports_from_config(spark_conf: Dict[str, str]) -> List[int]:
|
|
@@ -238,6 +244,7 @@ def get_spark_driver_monitoring_annotations(
|
|
|
238
244
|
|
|
239
245
|
def get_spark_driver_monitoring_labels(
|
|
240
246
|
spark_config: Dict[str, str],
|
|
247
|
+
user: str,
|
|
241
248
|
) -> Dict[str, str]:
|
|
242
249
|
"""
|
|
243
250
|
Returns Spark driver pod labels - generally for Prometheus metric relabeling.
|
|
@@ -245,7 +252,7 @@ def get_spark_driver_monitoring_labels(
|
|
|
245
252
|
ui_port_str = str(spark_config.get("spark.ui.port", ""))
|
|
246
253
|
labels = {
|
|
247
254
|
"paasta.yelp.com/prometheus_shard": SPARK_PROMETHEUS_SHARD,
|
|
248
|
-
"spark.yelp.com/user":
|
|
255
|
+
"spark.yelp.com/user": user,
|
|
249
256
|
"spark.yelp.com/driver_ui_port": ui_port_str,
|
|
250
257
|
}
|
|
251
258
|
return labels
|
|
@@ -347,7 +347,7 @@ class TronActionConfig(InstanceConfig):
|
|
|
347
347
|
|
|
348
348
|
docker_img_url = self.get_docker_url(system_paasta_config)
|
|
349
349
|
|
|
350
|
-
spark_conf_builder = SparkConfBuilder()
|
|
350
|
+
spark_conf_builder = SparkConfBuilder(is_driver_on_k8s_tron=True)
|
|
351
351
|
spark_conf = spark_conf_builder.get_spark_conf(
|
|
352
352
|
cluster_manager="kubernetes",
|
|
353
353
|
spark_app_base_name=spark_app_name,
|
|
@@ -366,7 +366,7 @@ class TronActionConfig(InstanceConfig):
|
|
|
366
366
|
force_spark_resource_configs=self.config_dict.get(
|
|
367
367
|
"force_spark_resource_configs", False
|
|
368
368
|
),
|
|
369
|
-
user=spark_tools.
|
|
369
|
+
user=spark_tools.SPARK_TRON_JOB_USER,
|
|
370
370
|
)
|
|
371
371
|
# delete the dynamically generated spark.app.id to prevent frequent config updates in Tron.
|
|
372
372
|
# spark.app.id will be generated later by yelp spark-submit wrapper or Spark itself.
|
|
@@ -380,16 +380,17 @@ class TronActionConfig(InstanceConfig):
|
|
|
380
380
|
if "spark.app.name" not in stringified_spark_args
|
|
381
381
|
else stringified_spark_args["spark.app.name"]
|
|
382
382
|
)
|
|
383
|
-
|
|
383
|
+
|
|
384
|
+
# TODO(MLCOMPUTE-1220): Remove this once dynamic pod template is generated inside the driver using spark-submit wrapper
|
|
384
385
|
if "spark.kubernetes.executor.podTemplateFile" in spark_conf:
|
|
385
|
-
|
|
386
|
+
log.info(
|
|
386
387
|
f"Replacing spark.kubernetes.executor.podTemplateFile="
|
|
387
388
|
f"{spark_conf['spark.kubernetes.executor.podTemplateFile']} with "
|
|
388
389
|
f"spark.kubernetes.executor.podTemplateFile={spark_tools.SPARK_DNS_POD_TEMPLATE}"
|
|
389
390
|
)
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
|
|
391
|
+
spark_conf[
|
|
392
|
+
"spark.kubernetes.executor.podTemplateFile"
|
|
393
|
+
] = spark_tools.SPARK_DNS_POD_TEMPLATE
|
|
393
394
|
|
|
394
395
|
spark_conf.update(
|
|
395
396
|
{
|
|
@@ -1044,6 +1045,7 @@ def format_tron_action_dict(action_config: TronActionConfig):
|
|
|
1044
1045
|
action_config.config_dict.get(
|
|
1045
1046
|
"max_runtime", spark_tools.DEFAULT_SPARK_RUNTIME_TIMEOUT
|
|
1046
1047
|
),
|
|
1048
|
+
silent=True,
|
|
1047
1049
|
)
|
|
1048
1050
|
# point to the KUBECONFIG needed by Spark driver
|
|
1049
1051
|
result["env"]["KUBECONFIG"] = system_paasta_config.get_spark_kubeconfig()
|
|
@@ -1074,7 +1076,8 @@ def format_tron_action_dict(action_config: TronActionConfig):
|
|
|
1074
1076
|
)
|
|
1075
1077
|
)
|
|
1076
1078
|
monitoring_labels = spark_tools.get_spark_driver_monitoring_labels(
|
|
1077
|
-
action_config.action_spark_config
|
|
1079
|
+
action_config.action_spark_config,
|
|
1080
|
+
user=spark_tools.SPARK_TRON_JOB_USER,
|
|
1078
1081
|
)
|
|
1079
1082
|
result["annotations"].update(monitoring_annotations)
|
|
1080
1083
|
result["labels"].update(monitoring_labels)
|
|
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
|
|
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
|
|
File without changes
|
|
File without changes
|
{paasta-tools-1.6.4 → paasta-tools-1.7.0}/paasta_tools/autoscaling/autoscaling_service_lib.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{paasta-tools-1.6.4 → paasta-tools-1.7.0}/paasta_tools/autoscaling/pause_service_autoscaler.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
|
{paasta-tools-1.6.4 → paasta-tools-1.7.0}/paasta_tools/check_kubernetes_services_replication.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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{paasta-tools-1.6.4 → paasta-tools-1.7.0}/paasta_tools/contrib/emit_allocated_cpu_metrics.py
RENAMED
|
File without changes
|
{paasta-tools-1.6.4 → paasta-tools-1.7.0}/paasta_tools/contrib/get_running_task_allocation.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{paasta-tools-1.6.4 → paasta-tools-1.7.0}/paasta_tools/contrib/is_pod_healthy_in_smartstack.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|