paasta-tools 1.4.25__tar.gz → 1.4.27__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.4.25/paasta_tools.egg-info → paasta-tools-1.4.27}/PKG-INFO +1 -1
- {paasta-tools-1.4.25 → paasta-tools-1.4.27}/paasta_tools/__init__.py +1 -1
- {paasta-tools-1.4.25 → paasta-tools-1.4.27}/paasta_tools/oom_logger.py +73 -10
- {paasta-tools-1.4.25 → paasta-tools-1.4.27/paasta_tools.egg-info}/PKG-INFO +1 -1
- {paasta-tools-1.4.25 → paasta-tools-1.4.27}/paasta_tools.egg-info/SOURCES.txt +0 -1
- {paasta-tools-1.4.25 → paasta-tools-1.4.27}/paasta_tools.egg-info/requires.txt +3 -1
- {paasta-tools-1.4.25 → paasta-tools-1.4.27}/requirements-minimal.txt +3 -1
- {paasta-tools-1.4.25 → paasta-tools-1.4.27}/setup.py +0 -1
- paasta-tools-1.4.25/paasta_tools/monitoring/kill_orphaned_docker_containers.py +0 -72
- {paasta-tools-1.4.25 → paasta-tools-1.4.27}/MANIFEST.in +0 -0
- {paasta-tools-1.4.25 → paasta-tools-1.4.27}/README.md +0 -0
- {paasta-tools-1.4.25 → paasta-tools-1.4.27}/k8s_itests/__init__.py +0 -0
- {paasta-tools-1.4.25 → paasta-tools-1.4.27}/k8s_itests/test_autoscaling.py +0 -0
- {paasta-tools-1.4.25 → paasta-tools-1.4.27}/k8s_itests/utils.py +0 -0
- {paasta-tools-1.4.25 → paasta-tools-1.4.27}/paasta_tools/adhoc_tools.py +0 -0
- {paasta-tools-1.4.25 → paasta-tools-1.4.27}/paasta_tools/api/__init__.py +0 -0
- {paasta-tools-1.4.25 → paasta-tools-1.4.27}/paasta_tools/api/api.py +0 -0
- {paasta-tools-1.4.25 → paasta-tools-1.4.27}/paasta_tools/api/api_docs/swagger.json +0 -0
- {paasta-tools-1.4.25 → paasta-tools-1.4.27}/paasta_tools/api/client.py +0 -0
- {paasta-tools-1.4.25 → paasta-tools-1.4.27}/paasta_tools/api/settings.py +0 -0
- {paasta-tools-1.4.25 → paasta-tools-1.4.27}/paasta_tools/api/tweens/__init__.py +0 -0
- {paasta-tools-1.4.25 → paasta-tools-1.4.27}/paasta_tools/api/tweens/profiling.py +0 -0
- {paasta-tools-1.4.25 → paasta-tools-1.4.27}/paasta_tools/api/tweens/request_logger.py +0 -0
- {paasta-tools-1.4.25 → paasta-tools-1.4.27}/paasta_tools/api/views/__init__.py +0 -0
- {paasta-tools-1.4.25 → paasta-tools-1.4.27}/paasta_tools/api/views/autoscaler.py +0 -0
- {paasta-tools-1.4.25 → paasta-tools-1.4.27}/paasta_tools/api/views/exception.py +0 -0
- {paasta-tools-1.4.25 → paasta-tools-1.4.27}/paasta_tools/api/views/flink.py +0 -0
- {paasta-tools-1.4.25 → paasta-tools-1.4.27}/paasta_tools/api/views/instance.py +0 -0
- {paasta-tools-1.4.25 → paasta-tools-1.4.27}/paasta_tools/api/views/pause_autoscaler.py +0 -0
- {paasta-tools-1.4.25 → paasta-tools-1.4.27}/paasta_tools/api/views/resources.py +0 -0
- {paasta-tools-1.4.25 → paasta-tools-1.4.27}/paasta_tools/api/views/service.py +0 -0
- {paasta-tools-1.4.25 → paasta-tools-1.4.27}/paasta_tools/api/views/version.py +0 -0
- {paasta-tools-1.4.25 → paasta-tools-1.4.27}/paasta_tools/apply_external_resources.py +0 -0
- {paasta-tools-1.4.25 → paasta-tools-1.4.27}/paasta_tools/async_utils.py +0 -0
- {paasta-tools-1.4.25 → paasta-tools-1.4.27}/paasta_tools/autoscaling/__init__.py +0 -0
- {paasta-tools-1.4.25 → paasta-tools-1.4.27}/paasta_tools/autoscaling/autoscaling_service_lib.py +0 -0
- {paasta-tools-1.4.25 → paasta-tools-1.4.27}/paasta_tools/autoscaling/forecasting.py +0 -0
- {paasta-tools-1.4.25 → paasta-tools-1.4.27}/paasta_tools/autoscaling/max_all_k8s_services.py +0 -0
- {paasta-tools-1.4.25 → paasta-tools-1.4.27}/paasta_tools/autoscaling/pause_service_autoscaler.py +0 -0
- {paasta-tools-1.4.25 → paasta-tools-1.4.27}/paasta_tools/autoscaling/utils.py +0 -0
- {paasta-tools-1.4.25 → paasta-tools-1.4.27}/paasta_tools/bounce_lib.py +0 -0
- {paasta-tools-1.4.25 → paasta-tools-1.4.27}/paasta_tools/broadcast_log_to_services.py +0 -0
- {paasta-tools-1.4.25 → paasta-tools-1.4.27}/paasta_tools/cassandracluster_tools.py +0 -0
- {paasta-tools-1.4.25 → paasta-tools-1.4.27}/paasta_tools/check_autoscaler_max_instances.py +0 -0
- {paasta-tools-1.4.25 → paasta-tools-1.4.27}/paasta_tools/check_cassandracluster_services_replication.py +0 -0
- {paasta-tools-1.4.25 → paasta-tools-1.4.27}/paasta_tools/check_flink_services_health.py +0 -0
- {paasta-tools-1.4.25 → paasta-tools-1.4.27}/paasta_tools/check_kubernetes_api.py +0 -0
- {paasta-tools-1.4.25 → paasta-tools-1.4.27}/paasta_tools/check_kubernetes_services_replication.py +0 -0
- {paasta-tools-1.4.25 → paasta-tools-1.4.27}/paasta_tools/check_oom_events.py +0 -0
- {paasta-tools-1.4.25 → paasta-tools-1.4.27}/paasta_tools/check_services_replication_tools.py +0 -0
- {paasta-tools-1.4.25 → paasta-tools-1.4.27}/paasta_tools/check_spark_jobs.py +0 -0
- {paasta-tools-1.4.25 → paasta-tools-1.4.27}/paasta_tools/cleanup_kubernetes_cr.py +0 -0
- {paasta-tools-1.4.25 → paasta-tools-1.4.27}/paasta_tools/cleanup_kubernetes_crd.py +0 -0
- {paasta-tools-1.4.25 → paasta-tools-1.4.27}/paasta_tools/cleanup_kubernetes_jobs.py +0 -0
- {paasta-tools-1.4.25 → paasta-tools-1.4.27}/paasta_tools/cleanup_tron_namespaces.py +0 -0
- {paasta-tools-1.4.25 → paasta-tools-1.4.27}/paasta_tools/cli/__init__.py +0 -0
- {paasta-tools-1.4.25 → paasta-tools-1.4.27}/paasta_tools/cli/cli.py +0 -0
- {paasta-tools-1.4.25 → paasta-tools-1.4.27}/paasta_tools/cli/cmds/__init__.py +0 -0
- {paasta-tools-1.4.25 → paasta-tools-1.4.27}/paasta_tools/cli/cmds/autoscale.py +0 -0
- {paasta-tools-1.4.25 → paasta-tools-1.4.27}/paasta_tools/cli/cmds/check.py +0 -0
- {paasta-tools-1.4.25 → paasta-tools-1.4.27}/paasta_tools/cli/cmds/cook_image.py +0 -0
- {paasta-tools-1.4.25 → paasta-tools-1.4.27}/paasta_tools/cli/cmds/get_docker_image.py +0 -0
- {paasta-tools-1.4.25 → paasta-tools-1.4.27}/paasta_tools/cli/cmds/get_image_version.py +0 -0
- {paasta-tools-1.4.25 → paasta-tools-1.4.27}/paasta_tools/cli/cmds/get_latest_deployment.py +0 -0
- {paasta-tools-1.4.25 → paasta-tools-1.4.27}/paasta_tools/cli/cmds/info.py +0 -0
- {paasta-tools-1.4.25 → paasta-tools-1.4.27}/paasta_tools/cli/cmds/itest.py +0 -0
- {paasta-tools-1.4.25 → paasta-tools-1.4.27}/paasta_tools/cli/cmds/list.py +0 -0
- {paasta-tools-1.4.25 → paasta-tools-1.4.27}/paasta_tools/cli/cmds/list_clusters.py +0 -0
- {paasta-tools-1.4.25 → paasta-tools-1.4.27}/paasta_tools/cli/cmds/list_deploy_queue.py +0 -0
- {paasta-tools-1.4.25 → paasta-tools-1.4.27}/paasta_tools/cli/cmds/local_run.py +0 -0
- {paasta-tools-1.4.25 → paasta-tools-1.4.27}/paasta_tools/cli/cmds/logs.py +0 -0
- {paasta-tools-1.4.25 → paasta-tools-1.4.27}/paasta_tools/cli/cmds/mark_for_deployment.py +0 -0
- {paasta-tools-1.4.25 → paasta-tools-1.4.27}/paasta_tools/cli/cmds/mesh_status.py +0 -0
- {paasta-tools-1.4.25 → paasta-tools-1.4.27}/paasta_tools/cli/cmds/pause_service_autoscaler.py +0 -0
- {paasta-tools-1.4.25 → paasta-tools-1.4.27}/paasta_tools/cli/cmds/push_to_registry.py +0 -0
- {paasta-tools-1.4.25 → paasta-tools-1.4.27}/paasta_tools/cli/cmds/remote_run.py +0 -0
- {paasta-tools-1.4.25 → paasta-tools-1.4.27}/paasta_tools/cli/cmds/rollback.py +0 -0
- {paasta-tools-1.4.25 → paasta-tools-1.4.27}/paasta_tools/cli/cmds/secret.py +0 -0
- {paasta-tools-1.4.25 → paasta-tools-1.4.27}/paasta_tools/cli/cmds/security_check.py +0 -0
- {paasta-tools-1.4.25 → paasta-tools-1.4.27}/paasta_tools/cli/cmds/spark_run.py +0 -0
- {paasta-tools-1.4.25 → paasta-tools-1.4.27}/paasta_tools/cli/cmds/start_stop_restart.py +0 -0
- {paasta-tools-1.4.25 → paasta-tools-1.4.27}/paasta_tools/cli/cmds/status.py +0 -0
- {paasta-tools-1.4.25 → paasta-tools-1.4.27}/paasta_tools/cli/cmds/validate.py +0 -0
- {paasta-tools-1.4.25 → paasta-tools-1.4.27}/paasta_tools/cli/cmds/wait_for_deployment.py +0 -0
- {paasta-tools-1.4.25 → paasta-tools-1.4.27}/paasta_tools/cli/fsm/__init__.py +0 -0
- {paasta-tools-1.4.25 → paasta-tools-1.4.27}/paasta_tools/cli/fsm/autosuggest.py +0 -0
- {paasta-tools-1.4.25 → paasta-tools-1.4.27}/paasta_tools/cli/fsm/template/README.md +0 -0
- {paasta-tools-1.4.25 → paasta-tools-1.4.27}/paasta_tools/cli/fsm/template/cookiecutter.json +0 -0
- {paasta-tools-1.4.25 → paasta-tools-1.4.27}/paasta_tools/cli/fsm/template/{{cookiecutter.service}}/kubernetes-PROD.yaml +0 -0
- {paasta-tools-1.4.25 → paasta-tools-1.4.27}/paasta_tools/cli/fsm/template/{{cookiecutter.service}}/monitoring.yaml +0 -0
- {paasta-tools-1.4.25 → paasta-tools-1.4.27}/paasta_tools/cli/fsm/template/{{cookiecutter.service}}/service.yaml +0 -0
- {paasta-tools-1.4.25 → paasta-tools-1.4.27}/paasta_tools/cli/fsm/template/{{cookiecutter.service}}/smartstack.yaml +0 -0
- {paasta-tools-1.4.25 → paasta-tools-1.4.27}/paasta_tools/cli/fsm_cmd.py +0 -0
- {paasta-tools-1.4.25 → paasta-tools-1.4.27}/paasta_tools/cli/paasta_tabcomplete.sh +0 -0
- {paasta-tools-1.4.25 → paasta-tools-1.4.27}/paasta_tools/cli/schemas/adhoc_schema.json +0 -0
- {paasta-tools-1.4.25 → paasta-tools-1.4.27}/paasta_tools/cli/schemas/autoscaling_schema.json +0 -0
- {paasta-tools-1.4.25 → paasta-tools-1.4.27}/paasta_tools/cli/schemas/autotuned_defaults/cassandracluster_schema.json +0 -0
- {paasta-tools-1.4.25 → paasta-tools-1.4.27}/paasta_tools/cli/schemas/autotuned_defaults/kubernetes_schema.json +0 -0
- {paasta-tools-1.4.25 → paasta-tools-1.4.27}/paasta_tools/cli/schemas/deploy_schema.json +0 -0
- {paasta-tools-1.4.25 → paasta-tools-1.4.27}/paasta_tools/cli/schemas/eks_schema.json +0 -0
- {paasta-tools-1.4.25 → paasta-tools-1.4.27}/paasta_tools/cli/schemas/kubernetes_schema.json +0 -0
- {paasta-tools-1.4.25 → paasta-tools-1.4.27}/paasta_tools/cli/schemas/rollback_schema.json +0 -0
- {paasta-tools-1.4.25 → paasta-tools-1.4.27}/paasta_tools/cli/schemas/service_schema.json +0 -0
- {paasta-tools-1.4.25 → paasta-tools-1.4.27}/paasta_tools/cli/schemas/smartstack_schema.json +0 -0
- {paasta-tools-1.4.25 → paasta-tools-1.4.27}/paasta_tools/cli/schemas/tron_schema.json +0 -0
- {paasta-tools-1.4.25 → paasta-tools-1.4.27}/paasta_tools/cli/utils.py +0 -0
- {paasta-tools-1.4.25 → paasta-tools-1.4.27}/paasta_tools/clusterman.py +0 -0
- {paasta-tools-1.4.25 → paasta-tools-1.4.27}/paasta_tools/config_utils.py +0 -0
- {paasta-tools-1.4.25 → paasta-tools-1.4.27}/paasta_tools/contrib/__init__.py +0 -0
- {paasta-tools-1.4.25 → paasta-tools-1.4.27}/paasta_tools/contrib/bounce_log_latency_parser.py +0 -0
- {paasta-tools-1.4.25 → paasta-tools-1.4.27}/paasta_tools/contrib/check_manual_oapi_changes.sh +0 -0
- {paasta-tools-1.4.25 → paasta-tools-1.4.27}/paasta_tools/contrib/check_orphans.py +0 -0
- {paasta-tools-1.4.25 → paasta-tools-1.4.27}/paasta_tools/contrib/create_dynamodb_table.py +0 -0
- {paasta-tools-1.4.25 → paasta-tools-1.4.27}/paasta_tools/contrib/create_paasta_playground.py +0 -0
- {paasta-tools-1.4.25 → paasta-tools-1.4.27}/paasta_tools/contrib/emit_allocated_cpu_metrics.py +0 -0
- {paasta-tools-1.4.25 → paasta-tools-1.4.27}/paasta_tools/contrib/get_running_task_allocation.py +0 -0
- {paasta-tools-1.4.25 → paasta-tools-1.4.27}/paasta_tools/contrib/habitat_fixer.py +0 -0
- {paasta-tools-1.4.25 → paasta-tools-1.4.27}/paasta_tools/contrib/ide_helper.py +0 -0
- {paasta-tools-1.4.25 → paasta-tools-1.4.27}/paasta_tools/contrib/is_pod_healthy_in_proxy.py +0 -0
- {paasta-tools-1.4.25 → paasta-tools-1.4.27}/paasta_tools/contrib/is_pod_healthy_in_smartstack.py +0 -0
- {paasta-tools-1.4.25 → paasta-tools-1.4.27}/paasta_tools/contrib/kill_bad_containers.py +0 -0
- {paasta-tools-1.4.25 → paasta-tools-1.4.27}/paasta_tools/contrib/mass-deploy-tag.sh +0 -0
- {paasta-tools-1.4.25 → paasta-tools-1.4.27}/paasta_tools/contrib/mock_patch_checker.py +0 -0
- {paasta-tools-1.4.25 → paasta-tools-1.4.27}/paasta_tools/contrib/paasta_update_soa_memcpu.py +0 -0
- {paasta-tools-1.4.25 → paasta-tools-1.4.27}/paasta_tools/contrib/render_template.py +0 -0
- {paasta-tools-1.4.25 → paasta-tools-1.4.27}/paasta_tools/contrib/rightsizer_soaconfigs_update.py +0 -0
- {paasta-tools-1.4.25 → paasta-tools-1.4.27}/paasta_tools/contrib/service_shard_remove.py +0 -0
- {paasta-tools-1.4.25 → paasta-tools-1.4.27}/paasta_tools/contrib/service_shard_update.py +0 -0
- {paasta-tools-1.4.25 → paasta-tools-1.4.27}/paasta_tools/contrib/shared_ip_check.py +0 -0
- {paasta-tools-1.4.25 → paasta-tools-1.4.27}/paasta_tools/contrib/timeouts_metrics_prom.py +0 -0
- {paasta-tools-1.4.25 → paasta-tools-1.4.27}/paasta_tools/delete_kubernetes_deployments.py +0 -0
- {paasta-tools-1.4.25 → paasta-tools-1.4.27}/paasta_tools/deployment_utils.py +0 -0
- {paasta-tools-1.4.25 → paasta-tools-1.4.27}/paasta_tools/docker_wrapper.py +0 -0
- {paasta-tools-1.4.25 → paasta-tools-1.4.27}/paasta_tools/docker_wrapper_imports.py +0 -0
- {paasta-tools-1.4.25 → paasta-tools-1.4.27}/paasta_tools/drain_lib.py +0 -0
- {paasta-tools-1.4.25 → paasta-tools-1.4.27}/paasta_tools/dump_locally_running_services.py +0 -0
- {paasta-tools-1.4.25 → paasta-tools-1.4.27}/paasta_tools/eks_tools.py +0 -0
- {paasta-tools-1.4.25 → paasta-tools-1.4.27}/paasta_tools/envoy_tools.py +0 -0
- {paasta-tools-1.4.25 → paasta-tools-1.4.27}/paasta_tools/firewall.py +0 -0
- {paasta-tools-1.4.25 → paasta-tools-1.4.27}/paasta_tools/firewall_logging.py +0 -0
- {paasta-tools-1.4.25 → paasta-tools-1.4.27}/paasta_tools/firewall_update.py +0 -0
- {paasta-tools-1.4.25 → paasta-tools-1.4.27}/paasta_tools/flink_tools.py +0 -0
- {paasta-tools-1.4.25 → paasta-tools-1.4.27}/paasta_tools/flinkeks_tools.py +0 -0
- {paasta-tools-1.4.25 → paasta-tools-1.4.27}/paasta_tools/frameworks/__init__.py +0 -0
- {paasta-tools-1.4.25 → paasta-tools-1.4.27}/paasta_tools/frameworks/adhoc_scheduler.py +0 -0
- {paasta-tools-1.4.25 → paasta-tools-1.4.27}/paasta_tools/frameworks/constraints.py +0 -0
- {paasta-tools-1.4.25 → paasta-tools-1.4.27}/paasta_tools/frameworks/native_scheduler.py +0 -0
- {paasta-tools-1.4.25 → paasta-tools-1.4.27}/paasta_tools/frameworks/native_service_config.py +0 -0
- {paasta-tools-1.4.25 → paasta-tools-1.4.27}/paasta_tools/frameworks/task_store.py +0 -0
- {paasta-tools-1.4.25 → paasta-tools-1.4.27}/paasta_tools/generate_all_deployments +0 -0
- {paasta-tools-1.4.25 → paasta-tools-1.4.27}/paasta_tools/generate_authenticating_services.py +0 -0
- {paasta-tools-1.4.25 → paasta-tools-1.4.27}/paasta_tools/generate_deployments_for_service.py +0 -0
- {paasta-tools-1.4.25 → paasta-tools-1.4.27}/paasta_tools/generate_services_file.py +0 -0
- {paasta-tools-1.4.25 → paasta-tools-1.4.27}/paasta_tools/generate_services_yaml.py +0 -0
- {paasta-tools-1.4.25 → paasta-tools-1.4.27}/paasta_tools/hacheck.py +0 -0
- {paasta-tools-1.4.25 → paasta-tools-1.4.27}/paasta_tools/instance/__init__.py +0 -0
- {paasta-tools-1.4.25 → paasta-tools-1.4.27}/paasta_tools/instance/hpa_metrics_parser.py +0 -0
- {paasta-tools-1.4.25 → paasta-tools-1.4.27}/paasta_tools/instance/kubernetes.py +0 -0
- {paasta-tools-1.4.25 → paasta-tools-1.4.27}/paasta_tools/iptables.py +0 -0
- {paasta-tools-1.4.25 → paasta-tools-1.4.27}/paasta_tools/kafkacluster_tools.py +0 -0
- {paasta-tools-1.4.25 → paasta-tools-1.4.27}/paasta_tools/kubernetes/__init__.py +0 -0
- {paasta-tools-1.4.25 → paasta-tools-1.4.27}/paasta_tools/kubernetes/application/__init__.py +0 -0
- {paasta-tools-1.4.25 → paasta-tools-1.4.27}/paasta_tools/kubernetes/application/controller_wrappers.py +0 -0
- {paasta-tools-1.4.25 → paasta-tools-1.4.27}/paasta_tools/kubernetes/application/tools.py +0 -0
- {paasta-tools-1.4.25 → paasta-tools-1.4.27}/paasta_tools/kubernetes/bin/__init__.py +0 -0
- {paasta-tools-1.4.25 → paasta-tools-1.4.27}/paasta_tools/kubernetes/bin/kubernetes_remove_evicted_pods.py +0 -0
- {paasta-tools-1.4.25 → paasta-tools-1.4.27}/paasta_tools/kubernetes/bin/paasta_cleanup_stale_nodes.py +0 -0
- {paasta-tools-1.4.25 → paasta-tools-1.4.27}/paasta_tools/kubernetes/bin/paasta_secrets_sync.py +0 -0
- {paasta-tools-1.4.25 → paasta-tools-1.4.27}/paasta_tools/kubernetes_tools.py +0 -0
- {paasta-tools-1.4.25 → paasta-tools-1.4.27}/paasta_tools/list_kubernetes_service_instances.py +0 -0
- {paasta-tools-1.4.25 → paasta-tools-1.4.27}/paasta_tools/list_tron_namespaces.py +0 -0
- {paasta-tools-1.4.25 → paasta-tools-1.4.27}/paasta_tools/log_task_lifecycle_events.py +0 -0
- {paasta-tools-1.4.25 → paasta-tools-1.4.27}/paasta_tools/long_running_service_tools.py +0 -0
- {paasta-tools-1.4.25 → paasta-tools-1.4.27}/paasta_tools/mac_address.py +0 -0
- {paasta-tools-1.4.25 → paasta-tools-1.4.27}/paasta_tools/marathon_dashboard.py +0 -0
- {paasta-tools-1.4.25 → paasta-tools-1.4.27}/paasta_tools/mesos/__init__.py +0 -0
- {paasta-tools-1.4.25 → paasta-tools-1.4.27}/paasta_tools/mesos/cfg.py +0 -0
- {paasta-tools-1.4.25 → paasta-tools-1.4.27}/paasta_tools/mesos/cluster.py +0 -0
- {paasta-tools-1.4.25 → paasta-tools-1.4.27}/paasta_tools/mesos/exceptions.py +0 -0
- {paasta-tools-1.4.25 → paasta-tools-1.4.27}/paasta_tools/mesos/framework.py +0 -0
- {paasta-tools-1.4.25 → paasta-tools-1.4.27}/paasta_tools/mesos/log.py +0 -0
- {paasta-tools-1.4.25 → paasta-tools-1.4.27}/paasta_tools/mesos/master.py +0 -0
- {paasta-tools-1.4.25 → paasta-tools-1.4.27}/paasta_tools/mesos/mesos_file.py +0 -0
- {paasta-tools-1.4.25 → paasta-tools-1.4.27}/paasta_tools/mesos/parallel.py +0 -0
- {paasta-tools-1.4.25 → paasta-tools-1.4.27}/paasta_tools/mesos/slave.py +0 -0
- {paasta-tools-1.4.25 → paasta-tools-1.4.27}/paasta_tools/mesos/task.py +0 -0
- {paasta-tools-1.4.25 → paasta-tools-1.4.27}/paasta_tools/mesos/util.py +0 -0
- {paasta-tools-1.4.25 → paasta-tools-1.4.27}/paasta_tools/mesos/zookeeper.py +0 -0
- {paasta-tools-1.4.25 → paasta-tools-1.4.27}/paasta_tools/mesos_maintenance.py +0 -0
- {paasta-tools-1.4.25 → paasta-tools-1.4.27}/paasta_tools/mesos_tools.py +0 -0
- {paasta-tools-1.4.25 → paasta-tools-1.4.27}/paasta_tools/metrics/__init__.py +0 -0
- {paasta-tools-1.4.25 → paasta-tools-1.4.27}/paasta_tools/metrics/metastatus_lib.py +0 -0
- {paasta-tools-1.4.25 → paasta-tools-1.4.27}/paasta_tools/metrics/metrics_lib.py +0 -0
- {paasta-tools-1.4.25 → paasta-tools-1.4.27}/paasta_tools/monitoring/__init__.py +0 -0
- {paasta-tools-1.4.25 → paasta-tools-1.4.27}/paasta_tools/monitoring/check_k8s_api_performance.py +0 -0
- {paasta-tools-1.4.25 → paasta-tools-1.4.27}/paasta_tools/monitoring_tools.py +0 -0
- {paasta-tools-1.4.25 → paasta-tools-1.4.27}/paasta_tools/monkrelaycluster_tools.py +0 -0
- {paasta-tools-1.4.25 → paasta-tools-1.4.27}/paasta_tools/nrtsearchservice_tools.py +0 -0
- {paasta-tools-1.4.25 → paasta-tools-1.4.27}/paasta_tools/nrtsearchserviceeks_tools.py +0 -0
- {paasta-tools-1.4.25 → paasta-tools-1.4.27}/paasta_tools/paasta_deploy_tron_jobs +0 -0
- {paasta-tools-1.4.25 → paasta-tools-1.4.27}/paasta_tools/paasta_execute_docker_command.py +0 -0
- {paasta-tools-1.4.25 → paasta-tools-1.4.27}/paasta_tools/paasta_native_serviceinit.py +0 -0
- {paasta-tools-1.4.25 → paasta-tools-1.4.27}/paasta_tools/paasta_remote_run.py +0 -0
- {paasta-tools-1.4.25 → paasta-tools-1.4.27}/paasta_tools/paasta_service_config_loader.py +0 -0
- {paasta-tools-1.4.25 → paasta-tools-1.4.27}/paasta_tools/paastaapi/__init__.py +0 -0
- {paasta-tools-1.4.25 → paasta-tools-1.4.27}/paasta_tools/paastaapi/api/__init__.py +0 -0
- {paasta-tools-1.4.25 → paasta-tools-1.4.27}/paasta_tools/paastaapi/api/autoscaler_api.py +0 -0
- {paasta-tools-1.4.25 → paasta-tools-1.4.27}/paasta_tools/paastaapi/api/default_api.py +0 -0
- {paasta-tools-1.4.25 → paasta-tools-1.4.27}/paasta_tools/paastaapi/api/resources_api.py +0 -0
- {paasta-tools-1.4.25 → paasta-tools-1.4.27}/paasta_tools/paastaapi/api/service_api.py +0 -0
- {paasta-tools-1.4.25 → paasta-tools-1.4.27}/paasta_tools/paastaapi/api_client.py +0 -0
- {paasta-tools-1.4.25 → paasta-tools-1.4.27}/paasta_tools/paastaapi/apis/__init__.py +0 -0
- {paasta-tools-1.4.25 → paasta-tools-1.4.27}/paasta_tools/paastaapi/configuration.py +0 -0
- {paasta-tools-1.4.25 → paasta-tools-1.4.27}/paasta_tools/paastaapi/exceptions.py +0 -0
- {paasta-tools-1.4.25 → paasta-tools-1.4.27}/paasta_tools/paastaapi/model/__init__.py +0 -0
- {paasta-tools-1.4.25 → paasta-tools-1.4.27}/paasta_tools/paastaapi/model/adhoc_launch_history.py +0 -0
- {paasta-tools-1.4.25 → paasta-tools-1.4.27}/paasta_tools/paastaapi/model/autoscaler_count_msg.py +0 -0
- {paasta-tools-1.4.25 → paasta-tools-1.4.27}/paasta_tools/paastaapi/model/deploy_queue.py +0 -0
- {paasta-tools-1.4.25 → paasta-tools-1.4.27}/paasta_tools/paastaapi/model/deploy_queue_service_instance.py +0 -0
- {paasta-tools-1.4.25 → paasta-tools-1.4.27}/paasta_tools/paastaapi/model/envoy_backend.py +0 -0
- {paasta-tools-1.4.25 → paasta-tools-1.4.27}/paasta_tools/paastaapi/model/envoy_location.py +0 -0
- {paasta-tools-1.4.25 → paasta-tools-1.4.27}/paasta_tools/paastaapi/model/envoy_status.py +0 -0
- {paasta-tools-1.4.25 → paasta-tools-1.4.27}/paasta_tools/paastaapi/model/flink_cluster_overview.py +0 -0
- {paasta-tools-1.4.25 → paasta-tools-1.4.27}/paasta_tools/paastaapi/model/flink_config.py +0 -0
- {paasta-tools-1.4.25 → paasta-tools-1.4.27}/paasta_tools/paastaapi/model/flink_job.py +0 -0
- {paasta-tools-1.4.25 → paasta-tools-1.4.27}/paasta_tools/paastaapi/model/flink_job_details.py +0 -0
- {paasta-tools-1.4.25 → paasta-tools-1.4.27}/paasta_tools/paastaapi/model/flink_jobs.py +0 -0
- {paasta-tools-1.4.25 → paasta-tools-1.4.27}/paasta_tools/paastaapi/model/float_and_error.py +0 -0
- {paasta-tools-1.4.25 → paasta-tools-1.4.27}/paasta_tools/paastaapi/model/hpa_metric.py +0 -0
- {paasta-tools-1.4.25 → paasta-tools-1.4.27}/paasta_tools/paastaapi/model/inline_object.py +0 -0
- {paasta-tools-1.4.25 → paasta-tools-1.4.27}/paasta_tools/paastaapi/model/inline_response200.py +0 -0
- {paasta-tools-1.4.25 → paasta-tools-1.4.27}/paasta_tools/paastaapi/model/inline_response2001.py +0 -0
- {paasta-tools-1.4.25 → paasta-tools-1.4.27}/paasta_tools/paastaapi/model/instance_bounce_status.py +0 -0
- {paasta-tools-1.4.25 → paasta-tools-1.4.27}/paasta_tools/paastaapi/model/instance_mesh_status.py +0 -0
- {paasta-tools-1.4.25 → paasta-tools-1.4.27}/paasta_tools/paastaapi/model/instance_status.py +0 -0
- {paasta-tools-1.4.25 → paasta-tools-1.4.27}/paasta_tools/paastaapi/model/instance_status_adhoc.py +0 -0
- {paasta-tools-1.4.25 → paasta-tools-1.4.27}/paasta_tools/paastaapi/model/instance_status_cassandracluster.py +0 -0
- {paasta-tools-1.4.25 → paasta-tools-1.4.27}/paasta_tools/paastaapi/model/instance_status_flink.py +0 -0
- {paasta-tools-1.4.25 → paasta-tools-1.4.27}/paasta_tools/paastaapi/model/instance_status_kafkacluster.py +0 -0
- {paasta-tools-1.4.25 → paasta-tools-1.4.27}/paasta_tools/paastaapi/model/instance_status_kubernetes.py +0 -0
- {paasta-tools-1.4.25 → paasta-tools-1.4.27}/paasta_tools/paastaapi/model/instance_status_kubernetes_autoscaling_status.py +0 -0
- {paasta-tools-1.4.25 → paasta-tools-1.4.27}/paasta_tools/paastaapi/model/instance_status_kubernetes_v2.py +0 -0
- {paasta-tools-1.4.25 → paasta-tools-1.4.27}/paasta_tools/paastaapi/model/instance_status_tron.py +0 -0
- {paasta-tools-1.4.25 → paasta-tools-1.4.27}/paasta_tools/paastaapi/model/instance_status_vitesscluster.py +0 -0
- {paasta-tools-1.4.25 → paasta-tools-1.4.27}/paasta_tools/paastaapi/model/instance_tasks.py +0 -0
- {paasta-tools-1.4.25 → paasta-tools-1.4.27}/paasta_tools/paastaapi/model/integer_and_error.py +0 -0
- {paasta-tools-1.4.25 → paasta-tools-1.4.27}/paasta_tools/paastaapi/model/kubernetes_container.py +0 -0
- {paasta-tools-1.4.25 → paasta-tools-1.4.27}/paasta_tools/paastaapi/model/kubernetes_container_v2.py +0 -0
- {paasta-tools-1.4.25 → paasta-tools-1.4.27}/paasta_tools/paastaapi/model/kubernetes_healthcheck.py +0 -0
- {paasta-tools-1.4.25 → paasta-tools-1.4.27}/paasta_tools/paastaapi/model/kubernetes_pod.py +0 -0
- {paasta-tools-1.4.25 → paasta-tools-1.4.27}/paasta_tools/paastaapi/model/kubernetes_pod_event.py +0 -0
- {paasta-tools-1.4.25 → paasta-tools-1.4.27}/paasta_tools/paastaapi/model/kubernetes_pod_v2.py +0 -0
- {paasta-tools-1.4.25 → paasta-tools-1.4.27}/paasta_tools/paastaapi/model/kubernetes_replica_set.py +0 -0
- {paasta-tools-1.4.25 → paasta-tools-1.4.27}/paasta_tools/paastaapi/model/kubernetes_version.py +0 -0
- {paasta-tools-1.4.25 → paasta-tools-1.4.27}/paasta_tools/paastaapi/model/resource.py +0 -0
- {paasta-tools-1.4.25 → paasta-tools-1.4.27}/paasta_tools/paastaapi/model/resource_item.py +0 -0
- {paasta-tools-1.4.25 → paasta-tools-1.4.27}/paasta_tools/paastaapi/model/resource_value.py +0 -0
- {paasta-tools-1.4.25 → paasta-tools-1.4.27}/paasta_tools/paastaapi/model/smartstack_backend.py +0 -0
- {paasta-tools-1.4.25 → paasta-tools-1.4.27}/paasta_tools/paastaapi/model/smartstack_location.py +0 -0
- {paasta-tools-1.4.25 → paasta-tools-1.4.27}/paasta_tools/paastaapi/model/smartstack_status.py +0 -0
- {paasta-tools-1.4.25 → paasta-tools-1.4.27}/paasta_tools/paastaapi/model/task_tail_lines.py +0 -0
- {paasta-tools-1.4.25 → paasta-tools-1.4.27}/paasta_tools/paastaapi/model_utils.py +0 -0
- {paasta-tools-1.4.25 → paasta-tools-1.4.27}/paasta_tools/paastaapi/models/__init__.py +0 -0
- {paasta-tools-1.4.25 → paasta-tools-1.4.27}/paasta_tools/paastaapi/rest.py +0 -0
- {paasta-tools-1.4.25 → paasta-tools-1.4.27}/paasta_tools/prune_completed_pods.py +0 -0
- {paasta-tools-1.4.25 → paasta-tools-1.4.27}/paasta_tools/puppet_service_tools.py +0 -0
- {paasta-tools-1.4.25 → paasta-tools-1.4.27}/paasta_tools/py.typed +0 -0
- {paasta-tools-1.4.25 → paasta-tools-1.4.27}/paasta_tools/remote_git.py +0 -0
- {paasta-tools-1.4.25 → paasta-tools-1.4.27}/paasta_tools/run-paasta-api-in-dev-mode.py +0 -0
- {paasta-tools-1.4.25 → paasta-tools-1.4.27}/paasta_tools/run-paasta-api-playground.py +0 -0
- {paasta-tools-1.4.25 → paasta-tools-1.4.27}/paasta_tools/secret_providers/__init__.py +0 -0
- {paasta-tools-1.4.25 → paasta-tools-1.4.27}/paasta_tools/secret_providers/vault.py +0 -0
- {paasta-tools-1.4.25 → paasta-tools-1.4.27}/paasta_tools/secret_tools.py +0 -0
- {paasta-tools-1.4.25 → paasta-tools-1.4.27}/paasta_tools/setup_istio_mesh.py +0 -0
- {paasta-tools-1.4.25 → paasta-tools-1.4.27}/paasta_tools/setup_kubernetes_cr.py +0 -0
- {paasta-tools-1.4.25 → paasta-tools-1.4.27}/paasta_tools/setup_kubernetes_crd.py +0 -0
- {paasta-tools-1.4.25 → paasta-tools-1.4.27}/paasta_tools/setup_kubernetes_internal_crd.py +0 -0
- {paasta-tools-1.4.25 → paasta-tools-1.4.27}/paasta_tools/setup_kubernetes_job.py +0 -0
- {paasta-tools-1.4.25 → paasta-tools-1.4.27}/paasta_tools/setup_prometheus_adapter_config.py +0 -0
- {paasta-tools-1.4.25 → paasta-tools-1.4.27}/paasta_tools/setup_tron_namespace.py +0 -0
- {paasta-tools-1.4.25 → paasta-tools-1.4.27}/paasta_tools/slack.py +0 -0
- {paasta-tools-1.4.25 → paasta-tools-1.4.27}/paasta_tools/smartstack_tools.py +0 -0
- {paasta-tools-1.4.25 → paasta-tools-1.4.27}/paasta_tools/spark_tools.py +0 -0
- {paasta-tools-1.4.25 → paasta-tools-1.4.27}/paasta_tools/synapse_srv_namespaces_fact.py +0 -0
- {paasta-tools-1.4.25 → paasta-tools-1.4.27}/paasta_tools/tron/__init__.py +0 -0
- {paasta-tools-1.4.25 → paasta-tools-1.4.27}/paasta_tools/tron/client.py +0 -0
- {paasta-tools-1.4.25 → paasta-tools-1.4.27}/paasta_tools/tron/tron_command_context.py +0 -0
- {paasta-tools-1.4.25 → paasta-tools-1.4.27}/paasta_tools/tron/tron_timeutils.py +0 -0
- {paasta-tools-1.4.25 → paasta-tools-1.4.27}/paasta_tools/tron_tools.py +0 -0
- {paasta-tools-1.4.25 → paasta-tools-1.4.27}/paasta_tools/utils.py +0 -0
- {paasta-tools-1.4.25 → paasta-tools-1.4.27}/paasta_tools/vitesscell_tools.py +0 -0
- {paasta-tools-1.4.25 → paasta-tools-1.4.27}/paasta_tools/vitesscluster_tools.py +0 -0
- {paasta-tools-1.4.25 → paasta-tools-1.4.27}/paasta_tools/vitesskeyspace_tools.py +0 -0
- {paasta-tools-1.4.25 → paasta-tools-1.4.27}/paasta_tools.egg-info/dependency_links.txt +0 -0
- {paasta-tools-1.4.25 → paasta-tools-1.4.27}/paasta_tools.egg-info/entry_points.txt +0 -0
- {paasta-tools-1.4.25 → paasta-tools-1.4.27}/paasta_tools.egg-info/top_level.txt +0 -0
- {paasta-tools-1.4.25 → paasta-tools-1.4.27}/pyproject.toml +0 -0
- {paasta-tools-1.4.25 → paasta-tools-1.4.27}/setup.cfg +0 -0
|
@@ -33,10 +33,16 @@ log {
|
|
|
33
33
|
destination(paasta_oom_logger);
|
|
34
34
|
};
|
|
35
35
|
"""
|
|
36
|
+
import argparse
|
|
37
|
+
import json
|
|
36
38
|
import re
|
|
37
39
|
import sys
|
|
38
40
|
from collections import namedtuple
|
|
41
|
+
from typing import Dict
|
|
39
42
|
|
|
43
|
+
import grpc
|
|
44
|
+
from containerd.services.containers.v1 import containers_pb2
|
|
45
|
+
from containerd.services.containers.v1 import containers_pb2_grpc
|
|
40
46
|
from docker.errors import APIError
|
|
41
47
|
|
|
42
48
|
from paasta_tools.cli.utils import get_instance_config
|
|
@@ -76,6 +82,16 @@ LogLine = namedtuple(
|
|
|
76
82
|
)
|
|
77
83
|
|
|
78
84
|
|
|
85
|
+
def parse_args() -> argparse.Namespace:
|
|
86
|
+
parser = argparse.ArgumentParser(description="paasta_oom_logger")
|
|
87
|
+
parser.add_argument(
|
|
88
|
+
"--containerd",
|
|
89
|
+
action="store_true",
|
|
90
|
+
help="Use containerd to inspect containers, otherwise use docker",
|
|
91
|
+
)
|
|
92
|
+
return parser.parse_args()
|
|
93
|
+
|
|
94
|
+
|
|
79
95
|
def capture_oom_events_from_stdin():
|
|
80
96
|
process_name_regex = re.compile(
|
|
81
97
|
r"^\d+\s[a-zA-Z0-9\-]+\s.*\]\s(.+)\sinvoked\soom-killer:"
|
|
@@ -93,6 +109,25 @@ def capture_oom_events_from_stdin():
|
|
|
93
109
|
""",
|
|
94
110
|
re.VERBOSE,
|
|
95
111
|
)
|
|
112
|
+
oom_regex_kubernetes_containerd_systemd_cgroup = re.compile(
|
|
113
|
+
r"""
|
|
114
|
+
^(\d+)\s # timestamp
|
|
115
|
+
([a-zA-Z0-9\-]+) # hostname
|
|
116
|
+
\s.*oom-kill:.*task_memcg=/.*\.slice/.* # loosely match systemd slice and containerid
|
|
117
|
+
cri-containerd:(\w{64}).*$ # containerid
|
|
118
|
+
""",
|
|
119
|
+
re.VERBOSE,
|
|
120
|
+
)
|
|
121
|
+
|
|
122
|
+
oom_regex_kubernetes_containerd_systemd_cgroup_structured = re.compile(
|
|
123
|
+
r"""
|
|
124
|
+
^(\d+)\s # timestamp
|
|
125
|
+
([a-zA-Z0-9\-]+) # hostname
|
|
126
|
+
\s.*oom-kill:.*task_memcg=/kubepods\.slice/.* # match systemd slice and containerid
|
|
127
|
+
cri-containerd-(\w{64}).*$ # containerid
|
|
128
|
+
""",
|
|
129
|
+
re.VERBOSE,
|
|
130
|
+
)
|
|
96
131
|
oom_regex_kubernetes_structured = re.compile(
|
|
97
132
|
r"""
|
|
98
133
|
^(\d+)\s # timestamp
|
|
@@ -115,6 +150,8 @@ def capture_oom_events_from_stdin():
|
|
|
115
150
|
oom_regex_kubernetes,
|
|
116
151
|
oom_regex_kubernetes_structured,
|
|
117
152
|
oom_regex_kubernetes_systemd_cgroup,
|
|
153
|
+
oom_regex_kubernetes_containerd_systemd_cgroup,
|
|
154
|
+
oom_regex_kubernetes_containerd_systemd_cgroup_structured,
|
|
118
155
|
]
|
|
119
156
|
|
|
120
157
|
process_name = ""
|
|
@@ -136,11 +173,18 @@ def capture_oom_events_from_stdin():
|
|
|
136
173
|
break
|
|
137
174
|
|
|
138
175
|
|
|
139
|
-
def get_container_env_as_dict(
|
|
176
|
+
def get_container_env_as_dict(
|
|
177
|
+
is_cri_containerd: bool, container_inspect: dict
|
|
178
|
+
) -> Dict[str, str]:
|
|
140
179
|
env_vars = {}
|
|
141
|
-
|
|
180
|
+
if is_cri_containerd:
|
|
181
|
+
config = container_inspect.get("process")
|
|
182
|
+
env_key = "env"
|
|
183
|
+
else:
|
|
184
|
+
config = container_inspect.get("Config")
|
|
185
|
+
env_key = "Env"
|
|
142
186
|
if config is not None:
|
|
143
|
-
env = config.get(
|
|
187
|
+
env = config.get(env_key, [])
|
|
144
188
|
for i in env:
|
|
145
189
|
name, _, value = i.partition("=")
|
|
146
190
|
env_vars[name] = value
|
|
@@ -209,18 +253,26 @@ def send_sfx_event(service, instance, cluster):
|
|
|
209
253
|
counter.count()
|
|
210
254
|
|
|
211
255
|
|
|
256
|
+
def get_containerd_container(container_id: str) -> containers_pb2.Container:
|
|
257
|
+
with grpc.insecure_channel("unix:///run/containerd/containerd.sock") as channel:
|
|
258
|
+
containersv1 = containers_pb2_grpc.ContainersStub(channel)
|
|
259
|
+
return containersv1.Get(
|
|
260
|
+
containers_pb2.GetContainerRequest(id=container_id),
|
|
261
|
+
metadata=(("containerd-namespace", "k8s.io"),),
|
|
262
|
+
).container
|
|
263
|
+
|
|
264
|
+
|
|
212
265
|
def main():
|
|
213
266
|
if clog is None:
|
|
214
267
|
print("CLog logger unavailable, exiting.", file=sys.stderr)
|
|
215
268
|
sys.exit(1)
|
|
216
|
-
|
|
269
|
+
args = parse_args()
|
|
217
270
|
clog.config.configure(
|
|
218
271
|
scribe_host="169.254.255.254",
|
|
219
272
|
scribe_port=1463,
|
|
220
273
|
monk_disable=False,
|
|
221
274
|
scribe_disable=False,
|
|
222
275
|
)
|
|
223
|
-
|
|
224
276
|
cluster = load_system_paasta_config().get_cluster()
|
|
225
277
|
client = get_docker_client()
|
|
226
278
|
for (
|
|
@@ -229,11 +281,22 @@ def main():
|
|
|
229
281
|
container_id,
|
|
230
282
|
process_name,
|
|
231
283
|
) in capture_oom_events_from_stdin():
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
284
|
+
if args.containerd:
|
|
285
|
+
# then we're using containerd to inspect containers
|
|
286
|
+
try:
|
|
287
|
+
container_info = get_containerd_container(container_id)
|
|
288
|
+
except grpc.RpcError as e:
|
|
289
|
+
print("An error occurred while getting the container:", e)
|
|
290
|
+
continue
|
|
291
|
+
container_spec_raw = container_info.spec.value.decode("utf-8")
|
|
292
|
+
container_inspect = json.loads(container_spec_raw)
|
|
293
|
+
else:
|
|
294
|
+
# we're using docker to inspect containers
|
|
295
|
+
try:
|
|
296
|
+
container_inspect = client.inspect_container(resource_id=container_id)
|
|
297
|
+
except (APIError):
|
|
298
|
+
continue
|
|
299
|
+
env_vars = get_container_env_as_dict(args.containerd, container_inspect)
|
|
237
300
|
service = env_vars.get("PAASTA_SERVICE", "unknown")
|
|
238
301
|
instance = env_vars.get("PAASTA_INSTANCE", "unknown")
|
|
239
302
|
mesos_container_id = env_vars.get("MESOS_CONTAINER_NAME", "mesos-null")
|
|
@@ -227,7 +227,6 @@ paasta_tools/metrics/metastatus_lib.py
|
|
|
227
227
|
paasta_tools/metrics/metrics_lib.py
|
|
228
228
|
paasta_tools/monitoring/__init__.py
|
|
229
229
|
paasta_tools/monitoring/check_k8s_api_performance.py
|
|
230
|
-
paasta_tools/monitoring/kill_orphaned_docker_containers.py
|
|
231
230
|
paasta_tools/paastaapi/__init__.py
|
|
232
231
|
paasta_tools/paastaapi/api_client.py
|
|
233
232
|
paasta_tools/paastaapi/configuration.py
|
|
@@ -8,12 +8,14 @@ botocore
|
|
|
8
8
|
bravado>=10.2.0
|
|
9
9
|
certifi
|
|
10
10
|
choice>=0.1
|
|
11
|
+
containerd
|
|
11
12
|
cookiecutter>=1.4.0
|
|
12
13
|
croniter
|
|
13
14
|
docker
|
|
14
15
|
dulwich>=0.17.3
|
|
15
16
|
ephemeral-port-reserve>=1.0.1
|
|
16
17
|
graphviz
|
|
18
|
+
grpcio
|
|
17
19
|
gunicorn
|
|
18
20
|
humanfriendly
|
|
19
21
|
humanize>=0.5.1
|
|
@@ -47,7 +49,7 @@ requests-cache>=0.4.10
|
|
|
47
49
|
retry
|
|
48
50
|
ruamel.yaml
|
|
49
51
|
sensu-plugin
|
|
50
|
-
service-configuration-lib>=2.18.
|
|
52
|
+
service-configuration-lib>=2.18.21
|
|
51
53
|
signalfx
|
|
52
54
|
slackclient>=1.2.1
|
|
53
55
|
sticht>=1.1.0
|
|
@@ -8,12 +8,14 @@ botocore
|
|
|
8
8
|
bravado >= 10.2.0
|
|
9
9
|
certifi
|
|
10
10
|
choice >= 0.1
|
|
11
|
+
containerd
|
|
11
12
|
cookiecutter >= 1.4.0
|
|
12
13
|
croniter
|
|
13
14
|
docker
|
|
14
15
|
dulwich >= 0.17.3
|
|
15
16
|
ephemeral-port-reserve >= 1.0.1
|
|
16
17
|
graphviz
|
|
18
|
+
grpcio
|
|
17
19
|
gunicorn
|
|
18
20
|
humanfriendly
|
|
19
21
|
humanize >= 0.5.1
|
|
@@ -54,7 +56,7 @@ requests-cache >= 0.4.10
|
|
|
54
56
|
retry
|
|
55
57
|
ruamel.yaml
|
|
56
58
|
sensu-plugin
|
|
57
|
-
service-configuration-lib >= 2.18.
|
|
59
|
+
service-configuration-lib >= 2.18.21
|
|
58
60
|
signalfx
|
|
59
61
|
slackclient >= 1.2.1
|
|
60
62
|
sticht >= 1.1.0
|
|
@@ -62,7 +62,6 @@ setup(
|
|
|
62
62
|
"paasta_tools/kubernetes/bin/paasta_cleanup_stale_nodes.py",
|
|
63
63
|
"paasta_tools/kubernetes/bin/paasta_secrets_sync.py",
|
|
64
64
|
"paasta_tools/log_task_lifecycle_events.py",
|
|
65
|
-
"paasta_tools/monitoring/kill_orphaned_docker_containers.py",
|
|
66
65
|
"paasta_tools/paasta_deploy_tron_jobs",
|
|
67
66
|
"paasta_tools/paasta_execute_docker_command.py",
|
|
68
67
|
"paasta_tools/paasta_remote_run.py",
|
|
@@ -1,72 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env python
|
|
2
|
-
import argparse
|
|
3
|
-
import sys
|
|
4
|
-
|
|
5
|
-
import a_sync
|
|
6
|
-
|
|
7
|
-
from paasta_tools import mesos_tools
|
|
8
|
-
from paasta_tools.utils import get_docker_client
|
|
9
|
-
from paasta_tools.utils import get_running_mesos_docker_containers
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
def parse_args():
|
|
13
|
-
parser = argparse.ArgumentParser(
|
|
14
|
-
description=(
|
|
15
|
-
"Cross references running containers with task ids from the mesos slave"
|
|
16
|
-
" and optionally kills them."
|
|
17
|
-
)
|
|
18
|
-
)
|
|
19
|
-
parser.add_argument(
|
|
20
|
-
"-f",
|
|
21
|
-
"--force",
|
|
22
|
-
action="store_true",
|
|
23
|
-
help="Actually kill the containers. (defaults to dry-run)",
|
|
24
|
-
)
|
|
25
|
-
args = parser.parse_args()
|
|
26
|
-
return args
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
@a_sync.to_blocking
|
|
30
|
-
async def main():
|
|
31
|
-
args = parse_args()
|
|
32
|
-
docker_client = get_docker_client()
|
|
33
|
-
|
|
34
|
-
running_mesos_task_ids = [
|
|
35
|
-
task["id"]
|
|
36
|
-
for task in mesos_tools.filter_running_tasks(
|
|
37
|
-
await mesos_tools.get_running_tasks_from_frameworks("")
|
|
38
|
-
)
|
|
39
|
-
]
|
|
40
|
-
running_mesos_docker_containers = get_running_mesos_docker_containers()
|
|
41
|
-
|
|
42
|
-
orphaned_containers = []
|
|
43
|
-
for container in running_mesos_docker_containers:
|
|
44
|
-
mesos_task_id = mesos_tools.get_mesos_id_from_container(
|
|
45
|
-
container=container, client=docker_client
|
|
46
|
-
)
|
|
47
|
-
if mesos_task_id not in running_mesos_task_ids:
|
|
48
|
-
orphaned_containers.append(
|
|
49
|
-
(container["Names"][0].strip("/"), mesos_task_id)
|
|
50
|
-
)
|
|
51
|
-
|
|
52
|
-
if orphaned_containers:
|
|
53
|
-
print(
|
|
54
|
-
"CRIT: Docker containers are orphaned: {}{}".format(
|
|
55
|
-
", ".join(
|
|
56
|
-
f"{container_name} ({mesos_task_id})"
|
|
57
|
-
for container_name, mesos_task_id in orphaned_containers
|
|
58
|
-
),
|
|
59
|
-
" and will be killed" if args.force else "",
|
|
60
|
-
)
|
|
61
|
-
)
|
|
62
|
-
if args.force:
|
|
63
|
-
for container_name, mesos_task_id in orphaned_containers:
|
|
64
|
-
docker_client.kill(container_name)
|
|
65
|
-
sys.exit(1)
|
|
66
|
-
else:
|
|
67
|
-
print("OK: All mesos task IDs accounted for")
|
|
68
|
-
sys.exit(0)
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
if __name__ == "__main__":
|
|
72
|
-
main()
|
|
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.4.25 → paasta-tools-1.4.27}/paasta_tools/autoscaling/autoscaling_service_lib.py
RENAMED
|
File without changes
|
|
File without changes
|
{paasta-tools-1.4.25 → paasta-tools-1.4.27}/paasta_tools/autoscaling/max_all_k8s_services.py
RENAMED
|
File without changes
|
{paasta-tools-1.4.25 → paasta-tools-1.4.27}/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.4.25 → paasta-tools-1.4.27}/paasta_tools/check_kubernetes_services_replication.py
RENAMED
|
File without changes
|
|
File without changes
|
{paasta-tools-1.4.25 → paasta-tools-1.4.27}/paasta_tools/check_services_replication_tools.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
|
{paasta-tools-1.4.25 → paasta-tools-1.4.27}/paasta_tools/cli/cmds/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
|
|
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.4.25 → paasta-tools-1.4.27}/paasta_tools/cli/schemas/autoscaling_schema.json
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
|
{paasta-tools-1.4.25 → paasta-tools-1.4.27}/paasta_tools/contrib/bounce_log_latency_parser.py
RENAMED
|
File without changes
|
{paasta-tools-1.4.25 → paasta-tools-1.4.27}/paasta_tools/contrib/check_manual_oapi_changes.sh
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{paasta-tools-1.4.25 → paasta-tools-1.4.27}/paasta_tools/contrib/create_paasta_playground.py
RENAMED
|
File without changes
|
{paasta-tools-1.4.25 → paasta-tools-1.4.27}/paasta_tools/contrib/emit_allocated_cpu_metrics.py
RENAMED
|
File without changes
|
{paasta-tools-1.4.25 → paasta-tools-1.4.27}/paasta_tools/contrib/get_running_task_allocation.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{paasta-tools-1.4.25 → paasta-tools-1.4.27}/paasta_tools/contrib/is_pod_healthy_in_smartstack.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{paasta-tools-1.4.25 → paasta-tools-1.4.27}/paasta_tools/contrib/paasta_update_soa_memcpu.py
RENAMED
|
File without changes
|
|
File without changes
|
{paasta-tools-1.4.25 → paasta-tools-1.4.27}/paasta_tools/contrib/rightsizer_soaconfigs_update.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|