paasta-tools 1.11.1__tar.gz → 1.11.3__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.11.1/paasta_tools.egg-info → paasta-tools-1.11.3}/PKG-INFO +1 -1
- {paasta-tools-1.11.1 → paasta-tools-1.11.3}/paasta_tools/__init__.py +1 -1
- {paasta-tools-1.11.1 → paasta-tools-1.11.3}/paasta_tools/cli/cmds/info.py +9 -10
- {paasta-tools-1.11.1 → paasta-tools-1.11.3}/paasta_tools/cli/cmds/logs.py +28 -44
- {paasta-tools-1.11.1 → paasta-tools-1.11.3}/paasta_tools/cli/schemas/eks_schema.json +8 -0
- {paasta-tools-1.11.1 → paasta-tools-1.11.3}/paasta_tools/cli/schemas/kubernetes_schema.json +8 -0
- {paasta-tools-1.11.1 → paasta-tools-1.11.3}/paasta_tools/cli/schemas/tron_schema.json +10 -0
- {paasta-tools-1.11.1 → paasta-tools-1.11.3}/paasta_tools/kubernetes_tools.py +34 -34
- {paasta-tools-1.11.1 → paasta-tools-1.11.3}/paasta_tools/utils.py +2 -9
- {paasta-tools-1.11.1 → paasta-tools-1.11.3/paasta_tools.egg-info}/PKG-INFO +1 -1
- {paasta-tools-1.11.1 → paasta-tools-1.11.3}/paasta_tools.egg-info/requires.txt +1 -1
- {paasta-tools-1.11.1 → paasta-tools-1.11.3}/requirements-minimal.txt +1 -1
- {paasta-tools-1.11.1 → paasta-tools-1.11.3}/MANIFEST.in +0 -0
- {paasta-tools-1.11.1 → paasta-tools-1.11.3}/README.md +0 -0
- {paasta-tools-1.11.1 → paasta-tools-1.11.3}/k8s_itests/__init__.py +0 -0
- {paasta-tools-1.11.1 → paasta-tools-1.11.3}/k8s_itests/test_autoscaling.py +0 -0
- {paasta-tools-1.11.1 → paasta-tools-1.11.3}/k8s_itests/utils.py +0 -0
- {paasta-tools-1.11.1 → paasta-tools-1.11.3}/paasta_tools/adhoc_tools.py +0 -0
- {paasta-tools-1.11.1 → paasta-tools-1.11.3}/paasta_tools/api/__init__.py +0 -0
- {paasta-tools-1.11.1 → paasta-tools-1.11.3}/paasta_tools/api/api.py +0 -0
- {paasta-tools-1.11.1 → paasta-tools-1.11.3}/paasta_tools/api/api_docs/swagger.json +0 -0
- {paasta-tools-1.11.1 → paasta-tools-1.11.3}/paasta_tools/api/client.py +0 -0
- {paasta-tools-1.11.1 → paasta-tools-1.11.3}/paasta_tools/api/settings.py +0 -0
- {paasta-tools-1.11.1 → paasta-tools-1.11.3}/paasta_tools/api/tweens/__init__.py +0 -0
- {paasta-tools-1.11.1 → paasta-tools-1.11.3}/paasta_tools/api/tweens/profiling.py +0 -0
- {paasta-tools-1.11.1 → paasta-tools-1.11.3}/paasta_tools/api/tweens/request_logger.py +0 -0
- {paasta-tools-1.11.1 → paasta-tools-1.11.3}/paasta_tools/api/views/__init__.py +0 -0
- {paasta-tools-1.11.1 → paasta-tools-1.11.3}/paasta_tools/api/views/autoscaler.py +0 -0
- {paasta-tools-1.11.1 → paasta-tools-1.11.3}/paasta_tools/api/views/exception.py +0 -0
- {paasta-tools-1.11.1 → paasta-tools-1.11.3}/paasta_tools/api/views/flink.py +0 -0
- {paasta-tools-1.11.1 → paasta-tools-1.11.3}/paasta_tools/api/views/instance.py +0 -0
- {paasta-tools-1.11.1 → paasta-tools-1.11.3}/paasta_tools/api/views/pause_autoscaler.py +0 -0
- {paasta-tools-1.11.1 → paasta-tools-1.11.3}/paasta_tools/api/views/resources.py +0 -0
- {paasta-tools-1.11.1 → paasta-tools-1.11.3}/paasta_tools/api/views/service.py +0 -0
- {paasta-tools-1.11.1 → paasta-tools-1.11.3}/paasta_tools/api/views/version.py +0 -0
- {paasta-tools-1.11.1 → paasta-tools-1.11.3}/paasta_tools/apply_external_resources.py +0 -0
- {paasta-tools-1.11.1 → paasta-tools-1.11.3}/paasta_tools/async_utils.py +0 -0
- {paasta-tools-1.11.1 → paasta-tools-1.11.3}/paasta_tools/autoscaling/__init__.py +0 -0
- {paasta-tools-1.11.1 → paasta-tools-1.11.3}/paasta_tools/autoscaling/autoscaling_service_lib.py +0 -0
- {paasta-tools-1.11.1 → paasta-tools-1.11.3}/paasta_tools/autoscaling/forecasting.py +0 -0
- {paasta-tools-1.11.1 → paasta-tools-1.11.3}/paasta_tools/autoscaling/max_all_k8s_services.py +0 -0
- {paasta-tools-1.11.1 → paasta-tools-1.11.3}/paasta_tools/autoscaling/pause_service_autoscaler.py +0 -0
- {paasta-tools-1.11.1 → paasta-tools-1.11.3}/paasta_tools/autoscaling/utils.py +0 -0
- {paasta-tools-1.11.1 → paasta-tools-1.11.3}/paasta_tools/bounce_lib.py +0 -0
- {paasta-tools-1.11.1 → paasta-tools-1.11.3}/paasta_tools/broadcast_log_to_services.py +0 -0
- {paasta-tools-1.11.1 → paasta-tools-1.11.3}/paasta_tools/cassandracluster_tools.py +0 -0
- {paasta-tools-1.11.1 → paasta-tools-1.11.3}/paasta_tools/check_autoscaler_max_instances.py +0 -0
- {paasta-tools-1.11.1 → paasta-tools-1.11.3}/paasta_tools/check_cassandracluster_services_replication.py +0 -0
- {paasta-tools-1.11.1 → paasta-tools-1.11.3}/paasta_tools/check_flink_services_health.py +0 -0
- {paasta-tools-1.11.1 → paasta-tools-1.11.3}/paasta_tools/check_kubernetes_api.py +0 -0
- {paasta-tools-1.11.1 → paasta-tools-1.11.3}/paasta_tools/check_kubernetes_services_replication.py +0 -0
- {paasta-tools-1.11.1 → paasta-tools-1.11.3}/paasta_tools/check_oom_events.py +0 -0
- {paasta-tools-1.11.1 → paasta-tools-1.11.3}/paasta_tools/check_services_replication_tools.py +0 -0
- {paasta-tools-1.11.1 → paasta-tools-1.11.3}/paasta_tools/check_spark_jobs.py +0 -0
- {paasta-tools-1.11.1 → paasta-tools-1.11.3}/paasta_tools/cleanup_kubernetes_cr.py +0 -0
- {paasta-tools-1.11.1 → paasta-tools-1.11.3}/paasta_tools/cleanup_kubernetes_crd.py +0 -0
- {paasta-tools-1.11.1 → paasta-tools-1.11.3}/paasta_tools/cleanup_kubernetes_jobs.py +0 -0
- {paasta-tools-1.11.1 → paasta-tools-1.11.3}/paasta_tools/cleanup_tron_namespaces.py +0 -0
- {paasta-tools-1.11.1 → paasta-tools-1.11.3}/paasta_tools/cli/__init__.py +0 -0
- {paasta-tools-1.11.1 → paasta-tools-1.11.3}/paasta_tools/cli/cli.py +0 -0
- {paasta-tools-1.11.1 → paasta-tools-1.11.3}/paasta_tools/cli/cmds/__init__.py +0 -0
- {paasta-tools-1.11.1 → paasta-tools-1.11.3}/paasta_tools/cli/cmds/autoscale.py +0 -0
- {paasta-tools-1.11.1 → paasta-tools-1.11.3}/paasta_tools/cli/cmds/check.py +0 -0
- {paasta-tools-1.11.1 → paasta-tools-1.11.3}/paasta_tools/cli/cmds/cook_image.py +0 -0
- {paasta-tools-1.11.1 → paasta-tools-1.11.3}/paasta_tools/cli/cmds/get_docker_image.py +0 -0
- {paasta-tools-1.11.1 → paasta-tools-1.11.3}/paasta_tools/cli/cmds/get_image_version.py +0 -0
- {paasta-tools-1.11.1 → paasta-tools-1.11.3}/paasta_tools/cli/cmds/get_latest_deployment.py +0 -0
- {paasta-tools-1.11.1 → paasta-tools-1.11.3}/paasta_tools/cli/cmds/itest.py +0 -0
- {paasta-tools-1.11.1 → paasta-tools-1.11.3}/paasta_tools/cli/cmds/list.py +0 -0
- {paasta-tools-1.11.1 → paasta-tools-1.11.3}/paasta_tools/cli/cmds/list_clusters.py +0 -0
- {paasta-tools-1.11.1 → paasta-tools-1.11.3}/paasta_tools/cli/cmds/list_deploy_queue.py +0 -0
- {paasta-tools-1.11.1 → paasta-tools-1.11.3}/paasta_tools/cli/cmds/list_namespaces.py +0 -0
- {paasta-tools-1.11.1 → paasta-tools-1.11.3}/paasta_tools/cli/cmds/local_run.py +0 -0
- {paasta-tools-1.11.1 → paasta-tools-1.11.3}/paasta_tools/cli/cmds/mark_for_deployment.py +0 -0
- {paasta-tools-1.11.1 → paasta-tools-1.11.3}/paasta_tools/cli/cmds/mesh_status.py +0 -0
- {paasta-tools-1.11.1 → paasta-tools-1.11.3}/paasta_tools/cli/cmds/pause_service_autoscaler.py +0 -0
- {paasta-tools-1.11.1 → paasta-tools-1.11.3}/paasta_tools/cli/cmds/push_to_registry.py +0 -0
- {paasta-tools-1.11.1 → paasta-tools-1.11.3}/paasta_tools/cli/cmds/remote_run.py +0 -0
- {paasta-tools-1.11.1 → paasta-tools-1.11.3}/paasta_tools/cli/cmds/rollback.py +0 -0
- {paasta-tools-1.11.1 → paasta-tools-1.11.3}/paasta_tools/cli/cmds/secret.py +0 -0
- {paasta-tools-1.11.1 → paasta-tools-1.11.3}/paasta_tools/cli/cmds/security_check.py +0 -0
- {paasta-tools-1.11.1 → paasta-tools-1.11.3}/paasta_tools/cli/cmds/spark_run.py +0 -0
- {paasta-tools-1.11.1 → paasta-tools-1.11.3}/paasta_tools/cli/cmds/start_stop_restart.py +0 -0
- {paasta-tools-1.11.1 → paasta-tools-1.11.3}/paasta_tools/cli/cmds/status.py +0 -0
- {paasta-tools-1.11.1 → paasta-tools-1.11.3}/paasta_tools/cli/cmds/validate.py +0 -0
- {paasta-tools-1.11.1 → paasta-tools-1.11.3}/paasta_tools/cli/cmds/wait_for_deployment.py +0 -0
- {paasta-tools-1.11.1 → paasta-tools-1.11.3}/paasta_tools/cli/fsm/__init__.py +0 -0
- {paasta-tools-1.11.1 → paasta-tools-1.11.3}/paasta_tools/cli/fsm/autosuggest.py +0 -0
- {paasta-tools-1.11.1 → paasta-tools-1.11.3}/paasta_tools/cli/fsm/template/README.md +0 -0
- {paasta-tools-1.11.1 → paasta-tools-1.11.3}/paasta_tools/cli/fsm/template/cookiecutter.json +0 -0
- {paasta-tools-1.11.1 → paasta-tools-1.11.3}/paasta_tools/cli/fsm/template/{{cookiecutter.service}}/kubernetes-PROD.yaml +0 -0
- {paasta-tools-1.11.1 → paasta-tools-1.11.3}/paasta_tools/cli/fsm/template/{{cookiecutter.service}}/monitoring.yaml +0 -0
- {paasta-tools-1.11.1 → paasta-tools-1.11.3}/paasta_tools/cli/fsm/template/{{cookiecutter.service}}/service.yaml +0 -0
- {paasta-tools-1.11.1 → paasta-tools-1.11.3}/paasta_tools/cli/fsm/template/{{cookiecutter.service}}/smartstack.yaml +0 -0
- {paasta-tools-1.11.1 → paasta-tools-1.11.3}/paasta_tools/cli/fsm_cmd.py +0 -0
- {paasta-tools-1.11.1 → paasta-tools-1.11.3}/paasta_tools/cli/paasta_tabcomplete.sh +0 -0
- {paasta-tools-1.11.1 → paasta-tools-1.11.3}/paasta_tools/cli/schemas/adhoc_schema.json +0 -0
- {paasta-tools-1.11.1 → paasta-tools-1.11.3}/paasta_tools/cli/schemas/autoscaling_schema.json +0 -0
- {paasta-tools-1.11.1 → paasta-tools-1.11.3}/paasta_tools/cli/schemas/autotuned_defaults/cassandracluster_schema.json +0 -0
- {paasta-tools-1.11.1 → paasta-tools-1.11.3}/paasta_tools/cli/schemas/autotuned_defaults/kubernetes_schema.json +0 -0
- {paasta-tools-1.11.1 → paasta-tools-1.11.3}/paasta_tools/cli/schemas/deploy_schema.json +0 -0
- {paasta-tools-1.11.1 → paasta-tools-1.11.3}/paasta_tools/cli/schemas/rollback_schema.json +0 -0
- {paasta-tools-1.11.1 → paasta-tools-1.11.3}/paasta_tools/cli/schemas/service_schema.json +0 -0
- {paasta-tools-1.11.1 → paasta-tools-1.11.3}/paasta_tools/cli/schemas/smartstack_schema.json +0 -0
- {paasta-tools-1.11.1 → paasta-tools-1.11.3}/paasta_tools/cli/utils.py +0 -0
- {paasta-tools-1.11.1 → paasta-tools-1.11.3}/paasta_tools/clusterman.py +0 -0
- {paasta-tools-1.11.1 → paasta-tools-1.11.3}/paasta_tools/config_utils.py +0 -0
- {paasta-tools-1.11.1 → paasta-tools-1.11.3}/paasta_tools/contrib/__init__.py +0 -0
- {paasta-tools-1.11.1 → paasta-tools-1.11.3}/paasta_tools/contrib/bounce_log_latency_parser.py +0 -0
- {paasta-tools-1.11.1 → paasta-tools-1.11.3}/paasta_tools/contrib/check_manual_oapi_changes.sh +0 -0
- {paasta-tools-1.11.1 → paasta-tools-1.11.3}/paasta_tools/contrib/check_orphans.py +0 -0
- {paasta-tools-1.11.1 → paasta-tools-1.11.3}/paasta_tools/contrib/create_dynamodb_table.py +0 -0
- {paasta-tools-1.11.1 → paasta-tools-1.11.3}/paasta_tools/contrib/create_paasta_playground.py +0 -0
- {paasta-tools-1.11.1 → paasta-tools-1.11.3}/paasta_tools/contrib/emit_allocated_cpu_metrics.py +0 -0
- {paasta-tools-1.11.1 → paasta-tools-1.11.3}/paasta_tools/contrib/get_running_task_allocation.py +0 -0
- {paasta-tools-1.11.1 → paasta-tools-1.11.3}/paasta_tools/contrib/habitat_fixer.py +0 -0
- {paasta-tools-1.11.1 → paasta-tools-1.11.3}/paasta_tools/contrib/ide_helper.py +0 -0
- {paasta-tools-1.11.1 → paasta-tools-1.11.3}/paasta_tools/contrib/is_pod_healthy_in_proxy.py +0 -0
- {paasta-tools-1.11.1 → paasta-tools-1.11.3}/paasta_tools/contrib/is_pod_healthy_in_smartstack.py +0 -0
- {paasta-tools-1.11.1 → paasta-tools-1.11.3}/paasta_tools/contrib/kill_bad_containers.py +0 -0
- {paasta-tools-1.11.1 → paasta-tools-1.11.3}/paasta_tools/contrib/mass-deploy-tag.sh +0 -0
- {paasta-tools-1.11.1 → paasta-tools-1.11.3}/paasta_tools/contrib/mock_patch_checker.py +0 -0
- {paasta-tools-1.11.1 → paasta-tools-1.11.3}/paasta_tools/contrib/paasta_update_soa_memcpu.py +0 -0
- {paasta-tools-1.11.1 → paasta-tools-1.11.3}/paasta_tools/contrib/render_template.py +0 -0
- {paasta-tools-1.11.1 → paasta-tools-1.11.3}/paasta_tools/contrib/rightsizer_soaconfigs_update.py +0 -0
- {paasta-tools-1.11.1 → paasta-tools-1.11.3}/paasta_tools/contrib/service_shard_remove.py +0 -0
- {paasta-tools-1.11.1 → paasta-tools-1.11.3}/paasta_tools/contrib/service_shard_update.py +0 -0
- {paasta-tools-1.11.1 → paasta-tools-1.11.3}/paasta_tools/contrib/shared_ip_check.py +0 -0
- {paasta-tools-1.11.1 → paasta-tools-1.11.3}/paasta_tools/contrib/timeouts_metrics_prom.py +0 -0
- {paasta-tools-1.11.1 → paasta-tools-1.11.3}/paasta_tools/delete_kubernetes_deployments.py +0 -0
- {paasta-tools-1.11.1 → paasta-tools-1.11.3}/paasta_tools/deployment_utils.py +0 -0
- {paasta-tools-1.11.1 → paasta-tools-1.11.3}/paasta_tools/docker_wrapper.py +0 -0
- {paasta-tools-1.11.1 → paasta-tools-1.11.3}/paasta_tools/docker_wrapper_imports.py +0 -0
- {paasta-tools-1.11.1 → paasta-tools-1.11.3}/paasta_tools/drain_lib.py +0 -0
- {paasta-tools-1.11.1 → paasta-tools-1.11.3}/paasta_tools/dump_locally_running_services.py +0 -0
- {paasta-tools-1.11.1 → paasta-tools-1.11.3}/paasta_tools/eks_tools.py +0 -0
- {paasta-tools-1.11.1 → paasta-tools-1.11.3}/paasta_tools/envoy_tools.py +0 -0
- {paasta-tools-1.11.1 → paasta-tools-1.11.3}/paasta_tools/firewall.py +0 -0
- {paasta-tools-1.11.1 → paasta-tools-1.11.3}/paasta_tools/firewall_logging.py +0 -0
- {paasta-tools-1.11.1 → paasta-tools-1.11.3}/paasta_tools/firewall_update.py +0 -0
- {paasta-tools-1.11.1 → paasta-tools-1.11.3}/paasta_tools/flink_tools.py +0 -0
- {paasta-tools-1.11.1 → paasta-tools-1.11.3}/paasta_tools/flinkeks_tools.py +0 -0
- {paasta-tools-1.11.1 → paasta-tools-1.11.3}/paasta_tools/frameworks/__init__.py +0 -0
- {paasta-tools-1.11.1 → paasta-tools-1.11.3}/paasta_tools/frameworks/adhoc_scheduler.py +0 -0
- {paasta-tools-1.11.1 → paasta-tools-1.11.3}/paasta_tools/frameworks/constraints.py +0 -0
- {paasta-tools-1.11.1 → paasta-tools-1.11.3}/paasta_tools/frameworks/native_scheduler.py +0 -0
- {paasta-tools-1.11.1 → paasta-tools-1.11.3}/paasta_tools/frameworks/native_service_config.py +0 -0
- {paasta-tools-1.11.1 → paasta-tools-1.11.3}/paasta_tools/frameworks/task_store.py +0 -0
- {paasta-tools-1.11.1 → paasta-tools-1.11.3}/paasta_tools/generate_all_deployments +0 -0
- {paasta-tools-1.11.1 → paasta-tools-1.11.3}/paasta_tools/generate_authenticating_services.py +0 -0
- {paasta-tools-1.11.1 → paasta-tools-1.11.3}/paasta_tools/generate_deployments_for_service.py +0 -0
- {paasta-tools-1.11.1 → paasta-tools-1.11.3}/paasta_tools/generate_services_file.py +0 -0
- {paasta-tools-1.11.1 → paasta-tools-1.11.3}/paasta_tools/generate_services_yaml.py +0 -0
- {paasta-tools-1.11.1 → paasta-tools-1.11.3}/paasta_tools/hacheck.py +0 -0
- {paasta-tools-1.11.1 → paasta-tools-1.11.3}/paasta_tools/instance/__init__.py +0 -0
- {paasta-tools-1.11.1 → paasta-tools-1.11.3}/paasta_tools/instance/hpa_metrics_parser.py +0 -0
- {paasta-tools-1.11.1 → paasta-tools-1.11.3}/paasta_tools/instance/kubernetes.py +0 -0
- {paasta-tools-1.11.1 → paasta-tools-1.11.3}/paasta_tools/iptables.py +0 -0
- {paasta-tools-1.11.1 → paasta-tools-1.11.3}/paasta_tools/kafkacluster_tools.py +0 -0
- {paasta-tools-1.11.1 → paasta-tools-1.11.3}/paasta_tools/kubernetes/__init__.py +0 -0
- {paasta-tools-1.11.1 → paasta-tools-1.11.3}/paasta_tools/kubernetes/application/__init__.py +0 -0
- {paasta-tools-1.11.1 → paasta-tools-1.11.3}/paasta_tools/kubernetes/application/controller_wrappers.py +0 -0
- {paasta-tools-1.11.1 → paasta-tools-1.11.3}/paasta_tools/kubernetes/application/tools.py +0 -0
- {paasta-tools-1.11.1 → paasta-tools-1.11.3}/paasta_tools/kubernetes/bin/__init__.py +0 -0
- {paasta-tools-1.11.1 → paasta-tools-1.11.3}/paasta_tools/kubernetes/bin/kubernetes_remove_evicted_pods.py +0 -0
- {paasta-tools-1.11.1 → paasta-tools-1.11.3}/paasta_tools/kubernetes/bin/paasta_cleanup_stale_nodes.py +0 -0
- {paasta-tools-1.11.1 → paasta-tools-1.11.3}/paasta_tools/kubernetes/bin/paasta_secrets_sync.py +0 -0
- {paasta-tools-1.11.1 → paasta-tools-1.11.3}/paasta_tools/list_kubernetes_service_instances.py +0 -0
- {paasta-tools-1.11.1 → paasta-tools-1.11.3}/paasta_tools/list_tron_namespaces.py +0 -0
- {paasta-tools-1.11.1 → paasta-tools-1.11.3}/paasta_tools/log_task_lifecycle_events.py +0 -0
- {paasta-tools-1.11.1 → paasta-tools-1.11.3}/paasta_tools/long_running_service_tools.py +0 -0
- {paasta-tools-1.11.1 → paasta-tools-1.11.3}/paasta_tools/mac_address.py +0 -0
- {paasta-tools-1.11.1 → paasta-tools-1.11.3}/paasta_tools/marathon_dashboard.py +0 -0
- {paasta-tools-1.11.1 → paasta-tools-1.11.3}/paasta_tools/mesos/__init__.py +0 -0
- {paasta-tools-1.11.1 → paasta-tools-1.11.3}/paasta_tools/mesos/cfg.py +0 -0
- {paasta-tools-1.11.1 → paasta-tools-1.11.3}/paasta_tools/mesos/cluster.py +0 -0
- {paasta-tools-1.11.1 → paasta-tools-1.11.3}/paasta_tools/mesos/exceptions.py +0 -0
- {paasta-tools-1.11.1 → paasta-tools-1.11.3}/paasta_tools/mesos/framework.py +0 -0
- {paasta-tools-1.11.1 → paasta-tools-1.11.3}/paasta_tools/mesos/log.py +0 -0
- {paasta-tools-1.11.1 → paasta-tools-1.11.3}/paasta_tools/mesos/master.py +0 -0
- {paasta-tools-1.11.1 → paasta-tools-1.11.3}/paasta_tools/mesos/mesos_file.py +0 -0
- {paasta-tools-1.11.1 → paasta-tools-1.11.3}/paasta_tools/mesos/parallel.py +0 -0
- {paasta-tools-1.11.1 → paasta-tools-1.11.3}/paasta_tools/mesos/slave.py +0 -0
- {paasta-tools-1.11.1 → paasta-tools-1.11.3}/paasta_tools/mesos/task.py +0 -0
- {paasta-tools-1.11.1 → paasta-tools-1.11.3}/paasta_tools/mesos/util.py +0 -0
- {paasta-tools-1.11.1 → paasta-tools-1.11.3}/paasta_tools/mesos/zookeeper.py +0 -0
- {paasta-tools-1.11.1 → paasta-tools-1.11.3}/paasta_tools/mesos_maintenance.py +0 -0
- {paasta-tools-1.11.1 → paasta-tools-1.11.3}/paasta_tools/mesos_tools.py +0 -0
- {paasta-tools-1.11.1 → paasta-tools-1.11.3}/paasta_tools/metrics/__init__.py +0 -0
- {paasta-tools-1.11.1 → paasta-tools-1.11.3}/paasta_tools/metrics/metastatus_lib.py +0 -0
- {paasta-tools-1.11.1 → paasta-tools-1.11.3}/paasta_tools/metrics/metrics_lib.py +0 -0
- {paasta-tools-1.11.1 → paasta-tools-1.11.3}/paasta_tools/monitoring/__init__.py +0 -0
- {paasta-tools-1.11.1 → paasta-tools-1.11.3}/paasta_tools/monitoring/check_k8s_api_performance.py +0 -0
- {paasta-tools-1.11.1 → paasta-tools-1.11.3}/paasta_tools/monitoring_tools.py +0 -0
- {paasta-tools-1.11.1 → paasta-tools-1.11.3}/paasta_tools/monkrelaycluster_tools.py +0 -0
- {paasta-tools-1.11.1 → paasta-tools-1.11.3}/paasta_tools/nrtsearchservice_tools.py +0 -0
- {paasta-tools-1.11.1 → paasta-tools-1.11.3}/paasta_tools/nrtsearchserviceeks_tools.py +0 -0
- {paasta-tools-1.11.1 → paasta-tools-1.11.3}/paasta_tools/oom_logger.py +0 -0
- {paasta-tools-1.11.1 → paasta-tools-1.11.3}/paasta_tools/paasta_deploy_tron_jobs +0 -0
- {paasta-tools-1.11.1 → paasta-tools-1.11.3}/paasta_tools/paasta_execute_docker_command.py +0 -0
- {paasta-tools-1.11.1 → paasta-tools-1.11.3}/paasta_tools/paasta_native_serviceinit.py +0 -0
- {paasta-tools-1.11.1 → paasta-tools-1.11.3}/paasta_tools/paasta_remote_run.py +0 -0
- {paasta-tools-1.11.1 → paasta-tools-1.11.3}/paasta_tools/paasta_service_config_loader.py +0 -0
- {paasta-tools-1.11.1 → paasta-tools-1.11.3}/paasta_tools/paastaapi/__init__.py +0 -0
- {paasta-tools-1.11.1 → paasta-tools-1.11.3}/paasta_tools/paastaapi/api/__init__.py +0 -0
- {paasta-tools-1.11.1 → paasta-tools-1.11.3}/paasta_tools/paastaapi/api/autoscaler_api.py +0 -0
- {paasta-tools-1.11.1 → paasta-tools-1.11.3}/paasta_tools/paastaapi/api/default_api.py +0 -0
- {paasta-tools-1.11.1 → paasta-tools-1.11.3}/paasta_tools/paastaapi/api/resources_api.py +0 -0
- {paasta-tools-1.11.1 → paasta-tools-1.11.3}/paasta_tools/paastaapi/api/service_api.py +0 -0
- {paasta-tools-1.11.1 → paasta-tools-1.11.3}/paasta_tools/paastaapi/api_client.py +0 -0
- {paasta-tools-1.11.1 → paasta-tools-1.11.3}/paasta_tools/paastaapi/apis/__init__.py +0 -0
- {paasta-tools-1.11.1 → paasta-tools-1.11.3}/paasta_tools/paastaapi/configuration.py +0 -0
- {paasta-tools-1.11.1 → paasta-tools-1.11.3}/paasta_tools/paastaapi/exceptions.py +0 -0
- {paasta-tools-1.11.1 → paasta-tools-1.11.3}/paasta_tools/paastaapi/model/__init__.py +0 -0
- {paasta-tools-1.11.1 → paasta-tools-1.11.3}/paasta_tools/paastaapi/model/adhoc_launch_history.py +0 -0
- {paasta-tools-1.11.1 → paasta-tools-1.11.3}/paasta_tools/paastaapi/model/autoscaler_count_msg.py +0 -0
- {paasta-tools-1.11.1 → paasta-tools-1.11.3}/paasta_tools/paastaapi/model/deploy_queue.py +0 -0
- {paasta-tools-1.11.1 → paasta-tools-1.11.3}/paasta_tools/paastaapi/model/deploy_queue_service_instance.py +0 -0
- {paasta-tools-1.11.1 → paasta-tools-1.11.3}/paasta_tools/paastaapi/model/envoy_backend.py +0 -0
- {paasta-tools-1.11.1 → paasta-tools-1.11.3}/paasta_tools/paastaapi/model/envoy_location.py +0 -0
- {paasta-tools-1.11.1 → paasta-tools-1.11.3}/paasta_tools/paastaapi/model/envoy_status.py +0 -0
- {paasta-tools-1.11.1 → paasta-tools-1.11.3}/paasta_tools/paastaapi/model/flink_cluster_overview.py +0 -0
- {paasta-tools-1.11.1 → paasta-tools-1.11.3}/paasta_tools/paastaapi/model/flink_config.py +0 -0
- {paasta-tools-1.11.1 → paasta-tools-1.11.3}/paasta_tools/paastaapi/model/flink_job.py +0 -0
- {paasta-tools-1.11.1 → paasta-tools-1.11.3}/paasta_tools/paastaapi/model/flink_job_details.py +0 -0
- {paasta-tools-1.11.1 → paasta-tools-1.11.3}/paasta_tools/paastaapi/model/flink_jobs.py +0 -0
- {paasta-tools-1.11.1 → paasta-tools-1.11.3}/paasta_tools/paastaapi/model/float_and_error.py +0 -0
- {paasta-tools-1.11.1 → paasta-tools-1.11.3}/paasta_tools/paastaapi/model/hpa_metric.py +0 -0
- {paasta-tools-1.11.1 → paasta-tools-1.11.3}/paasta_tools/paastaapi/model/inline_object.py +0 -0
- {paasta-tools-1.11.1 → paasta-tools-1.11.3}/paasta_tools/paastaapi/model/inline_response200.py +0 -0
- {paasta-tools-1.11.1 → paasta-tools-1.11.3}/paasta_tools/paastaapi/model/inline_response2001.py +0 -0
- {paasta-tools-1.11.1 → paasta-tools-1.11.3}/paasta_tools/paastaapi/model/instance_bounce_status.py +0 -0
- {paasta-tools-1.11.1 → paasta-tools-1.11.3}/paasta_tools/paastaapi/model/instance_mesh_status.py +0 -0
- {paasta-tools-1.11.1 → paasta-tools-1.11.3}/paasta_tools/paastaapi/model/instance_status.py +0 -0
- {paasta-tools-1.11.1 → paasta-tools-1.11.3}/paasta_tools/paastaapi/model/instance_status_adhoc.py +0 -0
- {paasta-tools-1.11.1 → paasta-tools-1.11.3}/paasta_tools/paastaapi/model/instance_status_cassandracluster.py +0 -0
- {paasta-tools-1.11.1 → paasta-tools-1.11.3}/paasta_tools/paastaapi/model/instance_status_flink.py +0 -0
- {paasta-tools-1.11.1 → paasta-tools-1.11.3}/paasta_tools/paastaapi/model/instance_status_kafkacluster.py +0 -0
- {paasta-tools-1.11.1 → paasta-tools-1.11.3}/paasta_tools/paastaapi/model/instance_status_kubernetes.py +0 -0
- {paasta-tools-1.11.1 → paasta-tools-1.11.3}/paasta_tools/paastaapi/model/instance_status_kubernetes_autoscaling_status.py +0 -0
- {paasta-tools-1.11.1 → paasta-tools-1.11.3}/paasta_tools/paastaapi/model/instance_status_kubernetes_v2.py +0 -0
- {paasta-tools-1.11.1 → paasta-tools-1.11.3}/paasta_tools/paastaapi/model/instance_status_tron.py +0 -0
- {paasta-tools-1.11.1 → paasta-tools-1.11.3}/paasta_tools/paastaapi/model/instance_tasks.py +0 -0
- {paasta-tools-1.11.1 → paasta-tools-1.11.3}/paasta_tools/paastaapi/model/integer_and_error.py +0 -0
- {paasta-tools-1.11.1 → paasta-tools-1.11.3}/paasta_tools/paastaapi/model/kubernetes_container.py +0 -0
- {paasta-tools-1.11.1 → paasta-tools-1.11.3}/paasta_tools/paastaapi/model/kubernetes_container_v2.py +0 -0
- {paasta-tools-1.11.1 → paasta-tools-1.11.3}/paasta_tools/paastaapi/model/kubernetes_healthcheck.py +0 -0
- {paasta-tools-1.11.1 → paasta-tools-1.11.3}/paasta_tools/paastaapi/model/kubernetes_pod.py +0 -0
- {paasta-tools-1.11.1 → paasta-tools-1.11.3}/paasta_tools/paastaapi/model/kubernetes_pod_event.py +0 -0
- {paasta-tools-1.11.1 → paasta-tools-1.11.3}/paasta_tools/paastaapi/model/kubernetes_pod_v2.py +0 -0
- {paasta-tools-1.11.1 → paasta-tools-1.11.3}/paasta_tools/paastaapi/model/kubernetes_replica_set.py +0 -0
- {paasta-tools-1.11.1 → paasta-tools-1.11.3}/paasta_tools/paastaapi/model/kubernetes_version.py +0 -0
- {paasta-tools-1.11.1 → paasta-tools-1.11.3}/paasta_tools/paastaapi/model/resource.py +0 -0
- {paasta-tools-1.11.1 → paasta-tools-1.11.3}/paasta_tools/paastaapi/model/resource_item.py +0 -0
- {paasta-tools-1.11.1 → paasta-tools-1.11.3}/paasta_tools/paastaapi/model/resource_value.py +0 -0
- {paasta-tools-1.11.1 → paasta-tools-1.11.3}/paasta_tools/paastaapi/model/smartstack_backend.py +0 -0
- {paasta-tools-1.11.1 → paasta-tools-1.11.3}/paasta_tools/paastaapi/model/smartstack_location.py +0 -0
- {paasta-tools-1.11.1 → paasta-tools-1.11.3}/paasta_tools/paastaapi/model/smartstack_status.py +0 -0
- {paasta-tools-1.11.1 → paasta-tools-1.11.3}/paasta_tools/paastaapi/model/task_tail_lines.py +0 -0
- {paasta-tools-1.11.1 → paasta-tools-1.11.3}/paasta_tools/paastaapi/model_utils.py +0 -0
- {paasta-tools-1.11.1 → paasta-tools-1.11.3}/paasta_tools/paastaapi/models/__init__.py +0 -0
- {paasta-tools-1.11.1 → paasta-tools-1.11.3}/paasta_tools/paastaapi/rest.py +0 -0
- {paasta-tools-1.11.1 → paasta-tools-1.11.3}/paasta_tools/prune_completed_pods.py +0 -0
- {paasta-tools-1.11.1 → paasta-tools-1.11.3}/paasta_tools/puppet_service_tools.py +0 -0
- {paasta-tools-1.11.1 → paasta-tools-1.11.3}/paasta_tools/py.typed +0 -0
- {paasta-tools-1.11.1 → paasta-tools-1.11.3}/paasta_tools/remote_git.py +0 -0
- {paasta-tools-1.11.1 → paasta-tools-1.11.3}/paasta_tools/run-paasta-api-in-dev-mode.py +0 -0
- {paasta-tools-1.11.1 → paasta-tools-1.11.3}/paasta_tools/run-paasta-api-playground.py +0 -0
- {paasta-tools-1.11.1 → paasta-tools-1.11.3}/paasta_tools/secret_providers/__init__.py +0 -0
- {paasta-tools-1.11.1 → paasta-tools-1.11.3}/paasta_tools/secret_providers/vault.py +0 -0
- {paasta-tools-1.11.1 → paasta-tools-1.11.3}/paasta_tools/secret_tools.py +0 -0
- {paasta-tools-1.11.1 → paasta-tools-1.11.3}/paasta_tools/setup_istio_mesh.py +0 -0
- {paasta-tools-1.11.1 → paasta-tools-1.11.3}/paasta_tools/setup_kubernetes_cr.py +0 -0
- {paasta-tools-1.11.1 → paasta-tools-1.11.3}/paasta_tools/setup_kubernetes_crd.py +0 -0
- {paasta-tools-1.11.1 → paasta-tools-1.11.3}/paasta_tools/setup_kubernetes_internal_crd.py +0 -0
- {paasta-tools-1.11.1 → paasta-tools-1.11.3}/paasta_tools/setup_kubernetes_job.py +0 -0
- {paasta-tools-1.11.1 → paasta-tools-1.11.3}/paasta_tools/setup_prometheus_adapter_config.py +0 -0
- {paasta-tools-1.11.1 → paasta-tools-1.11.3}/paasta_tools/setup_tron_namespace.py +0 -0
- {paasta-tools-1.11.1 → paasta-tools-1.11.3}/paasta_tools/slack.py +0 -0
- {paasta-tools-1.11.1 → paasta-tools-1.11.3}/paasta_tools/smartstack_tools.py +0 -0
- {paasta-tools-1.11.1 → paasta-tools-1.11.3}/paasta_tools/spark_tools.py +0 -0
- {paasta-tools-1.11.1 → paasta-tools-1.11.3}/paasta_tools/synapse_srv_namespaces_fact.py +0 -0
- {paasta-tools-1.11.1 → paasta-tools-1.11.3}/paasta_tools/tron/__init__.py +0 -0
- {paasta-tools-1.11.1 → paasta-tools-1.11.3}/paasta_tools/tron/client.py +0 -0
- {paasta-tools-1.11.1 → paasta-tools-1.11.3}/paasta_tools/tron/tron_command_context.py +0 -0
- {paasta-tools-1.11.1 → paasta-tools-1.11.3}/paasta_tools/tron/tron_timeutils.py +0 -0
- {paasta-tools-1.11.1 → paasta-tools-1.11.3}/paasta_tools/tron_tools.py +0 -0
- {paasta-tools-1.11.1 → paasta-tools-1.11.3}/paasta_tools.egg-info/SOURCES.txt +0 -0
- {paasta-tools-1.11.1 → paasta-tools-1.11.3}/paasta_tools.egg-info/dependency_links.txt +0 -0
- {paasta-tools-1.11.1 → paasta-tools-1.11.3}/paasta_tools.egg-info/entry_points.txt +0 -0
- {paasta-tools-1.11.1 → paasta-tools-1.11.3}/paasta_tools.egg-info/top_level.txt +0 -0
- {paasta-tools-1.11.1 → paasta-tools-1.11.3}/pyproject.toml +0 -0
- {paasta-tools-1.11.1 → paasta-tools-1.11.3}/setup.cfg +0 -0
- {paasta-tools-1.11.1 → paasta-tools-1.11.3}/setup.py +0 -0
|
@@ -36,6 +36,9 @@ NO_EXTERNAL_LINK_MESSAGE = (
|
|
|
36
36
|
"Please add one that points to a reference doc for your service"
|
|
37
37
|
)
|
|
38
38
|
|
|
39
|
+
# modes that depend on smartstack port cannot be tested via paasta proxies, so we exclude those
|
|
40
|
+
TESTABLE_SERVICE_MODES = {"http", "https"}
|
|
41
|
+
|
|
39
42
|
|
|
40
43
|
def add_subparser(subparsers):
|
|
41
44
|
list_parser = subparsers.add_parser(
|
|
@@ -94,14 +97,9 @@ def get_deployments_strings(service: str, soa_dir: str) -> List[str]:
|
|
|
94
97
|
)
|
|
95
98
|
service_mode = service_config.get_mode()
|
|
96
99
|
for cluster in deployments_to_clusters(deployments):
|
|
97
|
-
if service_mode
|
|
98
|
-
service_port = service_config.get("proxy_port")
|
|
99
|
-
link = PaastaColors.cyan(
|
|
100
|
-
"%s://paasta-%s.yelp:%d/" % (service_mode, cluster, service_port)
|
|
101
|
-
)
|
|
102
|
-
elif service_mode == "http" or service_mode == "https":
|
|
100
|
+
if service_mode in TESTABLE_SERVICE_MODES:
|
|
103
101
|
link = PaastaColors.cyan(
|
|
104
|
-
f"{service_mode}://{service}.
|
|
102
|
+
f"{service_mode}://{service}.proxy.{cluster}.paasta/"
|
|
105
103
|
)
|
|
106
104
|
else:
|
|
107
105
|
link = "N/A"
|
|
@@ -111,8 +109,7 @@ def get_deployments_strings(service: str, soa_dir: str) -> List[str]:
|
|
|
111
109
|
|
|
112
110
|
def get_dashboard_urls(service):
|
|
113
111
|
output = [
|
|
114
|
-
" - %s (
|
|
115
|
-
% (PaastaColors.cyan("https://uchiwa.yelpcorp.com/#/events?q=%s" % service))
|
|
112
|
+
" - %s (service load y/sl2)" % (PaastaColors.cyan(f"http://y/{service}_load"))
|
|
116
113
|
]
|
|
117
114
|
return output
|
|
118
115
|
|
|
@@ -137,7 +134,9 @@ def get_service_info(service, soa_dir):
|
|
|
137
134
|
% PaastaColors.cyan(get_runbook(service=service, overrides={}, soa_dir=soa_dir))
|
|
138
135
|
)
|
|
139
136
|
output.append("Git Repo: %s" % git_url)
|
|
140
|
-
output.append(
|
|
137
|
+
output.append(
|
|
138
|
+
"Deployed to the following clusters (with test URLs, where available):"
|
|
139
|
+
)
|
|
141
140
|
output.extend(get_deployments_strings(service, soa_dir))
|
|
142
141
|
if smartstack_endpoints:
|
|
143
142
|
output.append("Smartstack endpoint(s):")
|
|
@@ -53,7 +53,7 @@ except ImportError:
|
|
|
53
53
|
scribereader = None
|
|
54
54
|
|
|
55
55
|
try:
|
|
56
|
-
from
|
|
56
|
+
from logreader.readers import S3LogsReader
|
|
57
57
|
except ImportError:
|
|
58
58
|
S3LogsReader = None
|
|
59
59
|
|
|
@@ -294,18 +294,20 @@ def paasta_log_line_passes_filter(
|
|
|
294
294
|
except ValueError:
|
|
295
295
|
log.debug("Trouble parsing line as json. Skipping. Line: %r" % line)
|
|
296
296
|
return False
|
|
297
|
-
|
|
298
|
-
if
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
(parsed_line.get("level") is None or parsed_line.get("level") in levels)
|
|
297
|
+
|
|
298
|
+
if (
|
|
299
|
+
(instances is None or parsed_line.get("instance") in instances)
|
|
300
|
+
and (parsed_line.get("level") is None or parsed_line.get("level") in levels)
|
|
302
301
|
and parsed_line.get("component") in components
|
|
303
302
|
and (
|
|
304
303
|
parsed_line.get("cluster") in clusters
|
|
305
304
|
or parsed_line.get("cluster") == ANY_CLUSTER
|
|
306
305
|
)
|
|
307
|
-
|
|
308
|
-
|
|
306
|
+
):
|
|
307
|
+
timestamp = isodate.parse_datetime(parsed_line.get("timestamp"))
|
|
308
|
+
if check_timestamp_in_range(timestamp, start_time, end_time):
|
|
309
|
+
return True
|
|
310
|
+
return False
|
|
309
311
|
|
|
310
312
|
|
|
311
313
|
def paasta_app_output_passes_filter(
|
|
@@ -324,28 +326,24 @@ def paasta_app_output_passes_filter(
|
|
|
324
326
|
except ValueError:
|
|
325
327
|
log.debug("Trouble parsing line as json. Skipping. Line: %r" % line)
|
|
326
328
|
return False
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
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
|
|
338
|
-
if not check_timestamp_in_range(timestamp, start_time, end_time):
|
|
339
|
-
return False
|
|
340
|
-
return (
|
|
341
|
-
parsed_line.get("component") in components
|
|
342
|
-
and (
|
|
343
|
-
parsed_line.get("cluster") in clusters
|
|
344
|
-
or parsed_line.get("cluster") == ANY_CLUSTER
|
|
345
|
-
)
|
|
346
|
-
and (instances is None or parsed_line.get("instance") in instances)
|
|
329
|
+
|
|
330
|
+
if (
|
|
331
|
+
(instances is None or parsed_line.get("instance") in instances)
|
|
332
|
+
and parsed_line.get("cluster") in clusters
|
|
333
|
+
and parsed_line.get("component") in components
|
|
347
334
|
and (pods is None or parsed_line.get("pod_name") in pods)
|
|
348
|
-
)
|
|
335
|
+
):
|
|
336
|
+
try:
|
|
337
|
+
timestamp = isodate.parse_datetime(parsed_line.get("timestamp"))
|
|
338
|
+
except AttributeError:
|
|
339
|
+
# Timestamp might be missing. We had an issue where OTel was splitting overly long log lines
|
|
340
|
+
# and not including timestamps in the resulting log records (OBSPLAT-2216).
|
|
341
|
+
# Although this was then fixed in OTel, we should not rely on timestamps being present,
|
|
342
|
+
# as the format cannot be guaranteed.
|
|
343
|
+
return False
|
|
344
|
+
if check_timestamp_in_range(timestamp, start_time, end_time):
|
|
345
|
+
return True
|
|
346
|
+
return False
|
|
349
347
|
|
|
350
348
|
|
|
351
349
|
def extract_utc_timestamp_from_log_line(line: str) -> datetime.datetime:
|
|
@@ -484,12 +482,6 @@ def list_log_readers() -> Iterable[str]:
|
|
|
484
482
|
return _log_reader_classes.keys()
|
|
485
483
|
|
|
486
484
|
|
|
487
|
-
def get_default_log_reader() -> "LogReader":
|
|
488
|
-
log_reader_config = load_system_paasta_config().get_log_reader()
|
|
489
|
-
log_reader_class = get_log_reader_class(log_reader_config["driver"])
|
|
490
|
-
return log_reader_class(**log_reader_config.get("options", {}))
|
|
491
|
-
|
|
492
|
-
|
|
493
485
|
def get_log_reader(components: Set[str]) -> "LogReader":
|
|
494
486
|
log_readers_config = load_system_paasta_config().get_log_readers()
|
|
495
487
|
# ideally we should use a single "driver" for all components, but in cases where more than one is used for different components,
|
|
@@ -1483,14 +1475,6 @@ def pick_default_log_mode(
|
|
|
1483
1475
|
return 1
|
|
1484
1476
|
|
|
1485
1477
|
|
|
1486
|
-
def pick_log_reader(cluster: str, components: Set[str]) -> LogReader:
|
|
1487
|
-
uses_log_readers = load_system_paasta_config().use_multiple_log_readers()
|
|
1488
|
-
if uses_log_readers and cluster in uses_log_readers:
|
|
1489
|
-
return get_log_reader(components)
|
|
1490
|
-
else:
|
|
1491
|
-
return get_default_log_reader()
|
|
1492
|
-
|
|
1493
|
-
|
|
1494
1478
|
def paasta_logs(args: argparse.Namespace) -> int:
|
|
1495
1479
|
"""Print the logs for as Paasta service.
|
|
1496
1480
|
:param args: argparse.Namespace obj created from sys.args by cli"""
|
|
@@ -1535,7 +1519,7 @@ def paasta_logs(args: argparse.Namespace) -> int:
|
|
|
1535
1519
|
|
|
1536
1520
|
log.debug(f"Going to get logs for {service} on cluster {clusters}")
|
|
1537
1521
|
|
|
1538
|
-
log_reader =
|
|
1522
|
+
log_reader = get_log_reader(components)
|
|
1539
1523
|
|
|
1540
1524
|
if not validate_filtering_args(args, log_reader):
|
|
1541
1525
|
return 1
|
|
@@ -118,16 +118,16 @@ from kubernetes.client import V1Volume
|
|
|
118
118
|
from kubernetes.client import V1VolumeMount
|
|
119
119
|
from kubernetes.client import V1VolumeProjection
|
|
120
120
|
from kubernetes.client import V1WeightedPodAffinityTerm
|
|
121
|
-
from kubernetes.client import
|
|
122
|
-
from kubernetes.client import
|
|
123
|
-
from kubernetes.client import
|
|
124
|
-
from kubernetes.client import
|
|
125
|
-
from kubernetes.client import
|
|
126
|
-
from kubernetes.client import
|
|
127
|
-
from kubernetes.client import
|
|
128
|
-
from kubernetes.client import
|
|
129
|
-
from kubernetes.client import
|
|
130
|
-
from kubernetes.client.models import
|
|
121
|
+
from kubernetes.client import V2CrossVersionObjectReference
|
|
122
|
+
from kubernetes.client import V2HorizontalPodAutoscaler
|
|
123
|
+
from kubernetes.client import V2HorizontalPodAutoscalerCondition
|
|
124
|
+
from kubernetes.client import V2HorizontalPodAutoscalerSpec
|
|
125
|
+
from kubernetes.client import V2MetricIdentifier
|
|
126
|
+
from kubernetes.client import V2MetricSpec
|
|
127
|
+
from kubernetes.client import V2MetricTarget
|
|
128
|
+
from kubernetes.client import V2ObjectMetricSource
|
|
129
|
+
from kubernetes.client import V2ResourceMetricSource
|
|
130
|
+
from kubernetes.client.models import V2HorizontalPodAutoscalerStatus
|
|
131
131
|
from kubernetes.client.rest import ApiException
|
|
132
132
|
from mypy_extensions import TypedDict
|
|
133
133
|
from service_configuration_lib import read_soa_metadata
|
|
@@ -237,19 +237,19 @@ PROJECTED_SA_TOKEN_PATH = "token"
|
|
|
237
237
|
# For detail, https://github.com/kubernetes-client/python/issues/553
|
|
238
238
|
# This hack should be removed when the issue got fixed.
|
|
239
239
|
# This is no better way to work around rn.
|
|
240
|
-
class MonkeyPatchAutoScalingConditions(
|
|
240
|
+
class MonkeyPatchAutoScalingConditions(V2HorizontalPodAutoscalerStatus):
|
|
241
241
|
@property
|
|
242
|
-
def conditions(self) -> Sequence[
|
|
242
|
+
def conditions(self) -> Sequence[V2HorizontalPodAutoscalerCondition]:
|
|
243
243
|
return super().conditions()
|
|
244
244
|
|
|
245
245
|
@conditions.setter
|
|
246
246
|
def conditions(
|
|
247
|
-
self, conditions: Optional[Sequence[
|
|
247
|
+
self, conditions: Optional[Sequence[V2HorizontalPodAutoscalerCondition]]
|
|
248
248
|
) -> None:
|
|
249
249
|
self._conditions = list() if conditions is None else conditions
|
|
250
250
|
|
|
251
251
|
|
|
252
|
-
models.
|
|
252
|
+
models.V2HorizontalPodAutoscalerStatus = MonkeyPatchAutoScalingConditions
|
|
253
253
|
|
|
254
254
|
|
|
255
255
|
class KubeKind(NamedTuple):
|
|
@@ -607,7 +607,7 @@ class KubeClient:
|
|
|
607
607
|
self.apiextensions = kube_client.ApiextensionsV1Api(self.api_client)
|
|
608
608
|
|
|
609
609
|
self.custom = kube_client.CustomObjectsApi(self.api_client)
|
|
610
|
-
self.autoscaling = kube_client.
|
|
610
|
+
self.autoscaling = kube_client.AutoscalingV2Api(self.api_client)
|
|
611
611
|
self.rbac = kube_client.RbacAuthorizationV1Api(self.api_client)
|
|
612
612
|
|
|
613
613
|
self.request = self.api_client.request
|
|
@@ -801,18 +801,18 @@ class KubernetesDeploymentConfig(LongRunningServiceConfig):
|
|
|
801
801
|
|
|
802
802
|
def get_autoscaling_provider_spec(
|
|
803
803
|
self, name: str, namespace: str, provider: MetricsProviderDict
|
|
804
|
-
) -> Optional[
|
|
804
|
+
) -> Optional[V2MetricSpec]:
|
|
805
805
|
target = provider["setpoint"]
|
|
806
806
|
prometheus_hpa_metric_name = (
|
|
807
807
|
f"{self.namespace_external_metric_name(provider['type'])}-prom"
|
|
808
808
|
)
|
|
809
809
|
|
|
810
810
|
if provider["type"] == METRICS_PROVIDER_CPU:
|
|
811
|
-
return
|
|
811
|
+
return V2MetricSpec(
|
|
812
812
|
type="Resource",
|
|
813
|
-
resource=
|
|
813
|
+
resource=V2ResourceMetricSource(
|
|
814
814
|
name="cpu",
|
|
815
|
-
target=
|
|
815
|
+
target=V2MetricTarget(
|
|
816
816
|
type="Utilization",
|
|
817
817
|
average_utilization=int(target * 100),
|
|
818
818
|
),
|
|
@@ -824,14 +824,14 @@ class KubernetesDeploymentConfig(LongRunningServiceConfig):
|
|
|
824
824
|
METRICS_PROVIDER_GUNICORN,
|
|
825
825
|
METRICS_PROVIDER_ACTIVE_REQUESTS,
|
|
826
826
|
}:
|
|
827
|
-
return
|
|
827
|
+
return V2MetricSpec(
|
|
828
828
|
type="Object",
|
|
829
|
-
object=
|
|
830
|
-
metric=
|
|
831
|
-
described_object=
|
|
829
|
+
object=V2ObjectMetricSource(
|
|
830
|
+
metric=V2MetricIdentifier(name=prometheus_hpa_metric_name),
|
|
831
|
+
described_object=V2CrossVersionObjectReference(
|
|
832
832
|
api_version="apps/v1", kind="Deployment", name=name
|
|
833
833
|
),
|
|
834
|
-
target=
|
|
834
|
+
target=V2MetricTarget(
|
|
835
835
|
type="Value",
|
|
836
836
|
# we average the number of instances needed to handle the current (or
|
|
837
837
|
# averaged) load instead of the load itself as this leads to more
|
|
@@ -843,14 +843,14 @@ class KubernetesDeploymentConfig(LongRunningServiceConfig):
|
|
|
843
843
|
),
|
|
844
844
|
)
|
|
845
845
|
elif provider["type"] == METRICS_PROVIDER_PROMQL:
|
|
846
|
-
return
|
|
846
|
+
return V2MetricSpec(
|
|
847
847
|
type="Object",
|
|
848
|
-
object=
|
|
849
|
-
metric=
|
|
850
|
-
described_object=
|
|
848
|
+
object=V2ObjectMetricSource(
|
|
849
|
+
metric=V2MetricIdentifier(name=prometheus_hpa_metric_name),
|
|
850
|
+
described_object=V2CrossVersionObjectReference(
|
|
851
851
|
api_version="apps/v1", kind="Deployment", name=name
|
|
852
852
|
),
|
|
853
|
-
target=
|
|
853
|
+
target=V2MetricTarget(
|
|
854
854
|
# Use the setpoint specified by the user.
|
|
855
855
|
type="Value",
|
|
856
856
|
value=target,
|
|
@@ -870,7 +870,7 @@ class KubernetesDeploymentConfig(LongRunningServiceConfig):
|
|
|
870
870
|
cluster: str,
|
|
871
871
|
kube_client: KubeClient,
|
|
872
872
|
namespace: str,
|
|
873
|
-
) -> Optional[
|
|
873
|
+
) -> Optional[V2HorizontalPodAutoscaler]:
|
|
874
874
|
# Returns None if an HPA should not be attached based on the config,
|
|
875
875
|
# or the config is invalid.
|
|
876
876
|
|
|
@@ -909,17 +909,17 @@ class KubernetesDeploymentConfig(LongRunningServiceConfig):
|
|
|
909
909
|
paasta_prefixed("managed"): "true",
|
|
910
910
|
}
|
|
911
911
|
|
|
912
|
-
hpa =
|
|
912
|
+
hpa = V2HorizontalPodAutoscaler(
|
|
913
913
|
kind="HorizontalPodAutoscaler",
|
|
914
914
|
metadata=V1ObjectMeta(
|
|
915
915
|
name=name, namespace=namespace, annotations=dict(), labels=labels
|
|
916
916
|
),
|
|
917
|
-
spec=
|
|
917
|
+
spec=V2HorizontalPodAutoscalerSpec(
|
|
918
918
|
behavior=scaling_policy,
|
|
919
919
|
max_replicas=max_replicas,
|
|
920
920
|
min_replicas=min_replicas,
|
|
921
921
|
metrics=metrics,
|
|
922
|
-
scale_target_ref=
|
|
922
|
+
scale_target_ref=V2CrossVersionObjectReference(
|
|
923
923
|
api_version="apps/v1", kind="Deployment", name=name
|
|
924
924
|
),
|
|
925
925
|
),
|
|
@@ -3690,7 +3690,7 @@ async def get_hpa(
|
|
|
3690
3690
|
kube_client: KubeClient,
|
|
3691
3691
|
name: str,
|
|
3692
3692
|
namespace: str,
|
|
3693
|
-
) ->
|
|
3693
|
+
) -> V2HorizontalPodAutoscaler:
|
|
3694
3694
|
async_get_hpa = a_sync.to_async(
|
|
3695
3695
|
kube_client.autoscaling.read_namespaced_horizontal_pod_autoscaler
|
|
3696
3696
|
)
|
|
@@ -2039,7 +2039,6 @@ class SystemPaastaConfigDict(TypedDict, total=False):
|
|
|
2039
2039
|
sidecar_requirements_config: Dict[str, KubeContainerResourceRequest]
|
|
2040
2040
|
eks_cluster_aliases: Dict[str, str]
|
|
2041
2041
|
secret_sync_delay_seconds: float
|
|
2042
|
-
use_multiple_log_readers: Optional[List[str]]
|
|
2043
2042
|
service_auth_token_settings: ProjectedSAVolume
|
|
2044
2043
|
service_auth_vault_role: str
|
|
2045
2044
|
service_auth_sso_oidc_client_id: str
|
|
@@ -2364,12 +2363,6 @@ class SystemPaastaConfig:
|
|
|
2364
2363
|
% self.directory
|
|
2365
2364
|
)
|
|
2366
2365
|
|
|
2367
|
-
def use_multiple_log_readers(self) -> Optional[List[str]]:
|
|
2368
|
-
"""
|
|
2369
|
-
Get the list of clusters that are using multiple log readers
|
|
2370
|
-
"""
|
|
2371
|
-
return self.config_dict.get("use_multiple_log_readers")
|
|
2372
|
-
|
|
2373
2366
|
def get_metrics_provider(self) -> Optional[str]:
|
|
2374
2367
|
"""Get the metrics_provider configuration out of global paasta config
|
|
2375
2368
|
|
|
@@ -2431,11 +2424,11 @@ class SystemPaastaConfig:
|
|
|
2431
2424
|
|
|
2432
2425
|
def get_cluster_fqdn_format(self) -> str:
|
|
2433
2426
|
"""Get a format string that constructs a DNS name pointing at the paasta masters in a cluster. This format
|
|
2434
|
-
string gets one parameter: cluster. Defaults to '
|
|
2427
|
+
string gets one parameter: cluster. Defaults to '{cluster:s}.paasta'.
|
|
2435
2428
|
|
|
2436
2429
|
:returns: A format string for constructing the FQDN of the masters in a given cluster.
|
|
2437
2430
|
"""
|
|
2438
|
-
return self.config_dict.get("cluster_fqdn_format", "
|
|
2431
|
+
return self.config_dict.get("cluster_fqdn_format", "{cluster:s}.paasta")
|
|
2439
2432
|
|
|
2440
2433
|
def get_paasta_status_version(self) -> str:
|
|
2441
2434
|
"""Get paasta status version string (new | old). Defaults to 'old'.
|
|
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.11.1 → paasta-tools-1.11.3}/paasta_tools/autoscaling/autoscaling_service_lib.py
RENAMED
|
File without changes
|
|
File without changes
|
{paasta-tools-1.11.1 → paasta-tools-1.11.3}/paasta_tools/autoscaling/max_all_k8s_services.py
RENAMED
|
File without changes
|
{paasta-tools-1.11.1 → paasta-tools-1.11.3}/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.11.1 → paasta-tools-1.11.3}/paasta_tools/check_kubernetes_services_replication.py
RENAMED
|
File without changes
|
|
File without changes
|
{paasta-tools-1.11.1 → paasta-tools-1.11.3}/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
|
{paasta-tools-1.11.1 → paasta-tools-1.11.3}/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
|