paasta-tools 1.35.1__tar.gz → 1.35.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.35.1/paasta_tools.egg-info → paasta_tools-1.35.3}/PKG-INFO +1 -1
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/paasta_tools/__init__.py +1 -1
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/paasta_tools/cli/cmds/secret.py +2 -2
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/paasta_tools/kubernetes/application/controller_wrappers.py +23 -2
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/paasta_tools/kubernetes_tools.py +14 -9
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/paasta_tools/long_running_service_tools.py +4 -0
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/paasta_tools/utils.py +10 -0
- {paasta_tools-1.35.1 → paasta_tools-1.35.3/paasta_tools.egg-info}/PKG-INFO +1 -1
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/requirements-minimal.txt +1 -0
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/tests/test_kubernetes_tools.py +33 -7
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/LICENSE +0 -0
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/MANIFEST.in +0 -0
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/README.md +0 -0
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/k8s_itests/__init__.py +0 -0
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/k8s_itests/test_autoscaling.py +0 -0
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/k8s_itests/utils.py +0 -0
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/paasta_tools/adhoc_tools.py +0 -0
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/paasta_tools/api/__init__.py +0 -0
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/paasta_tools/api/api.py +0 -0
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/paasta_tools/api/api_docs/swagger.json +0 -0
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/paasta_tools/api/client.py +0 -0
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/paasta_tools/api/settings.py +0 -0
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/paasta_tools/api/tweens/__init__.py +0 -0
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/paasta_tools/api/tweens/auth.py +0 -0
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/paasta_tools/api/tweens/profiling.py +0 -0
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/paasta_tools/api/tweens/request_logger.py +0 -0
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/paasta_tools/api/views/__init__.py +0 -0
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/paasta_tools/api/views/autoscaler.py +0 -0
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/paasta_tools/api/views/exception.py +0 -0
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/paasta_tools/api/views/flink.py +0 -0
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/paasta_tools/api/views/instance.py +0 -0
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/paasta_tools/api/views/pause_autoscaler.py +0 -0
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/paasta_tools/api/views/remote_run.py +0 -0
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/paasta_tools/api/views/resources.py +0 -0
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/paasta_tools/api/views/service.py +0 -0
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/paasta_tools/api/views/version.py +0 -0
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/paasta_tools/apply_external_resources.py +0 -0
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/paasta_tools/async_utils.py +0 -0
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/paasta_tools/autoscaling/__init__.py +0 -0
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/paasta_tools/autoscaling/autoscaling_service_lib.py +0 -0
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/paasta_tools/autoscaling/forecasting.py +0 -0
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/paasta_tools/autoscaling/max_all_k8s_services.py +0 -0
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/paasta_tools/autoscaling/pause_service_autoscaler.py +0 -0
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/paasta_tools/autoscaling/utils.py +0 -0
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/paasta_tools/bounce_lib.py +0 -0
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/paasta_tools/broadcast_log_to_services.py +0 -0
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/paasta_tools/cassandracluster_tools.py +0 -0
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/paasta_tools/check_autoscaler_max_instances.py +0 -0
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/paasta_tools/check_cassandracluster_services_replication.py +0 -0
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/paasta_tools/check_flink_services_health.py +0 -0
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/paasta_tools/check_kubernetes_api.py +0 -0
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/paasta_tools/check_kubernetes_services_replication.py +0 -0
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/paasta_tools/check_oom_events.py +0 -0
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/paasta_tools/check_services_replication_tools.py +0 -0
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/paasta_tools/check_spark_jobs.py +0 -0
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/paasta_tools/cleanup_expired_autoscaling_overrides.py +0 -0
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/paasta_tools/cleanup_kubernetes_cr.py +0 -0
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/paasta_tools/cleanup_kubernetes_crd.py +0 -0
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/paasta_tools/cleanup_kubernetes_jobs.py +0 -0
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/paasta_tools/cleanup_tron_namespaces.py +0 -0
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/paasta_tools/cli/__init__.py +0 -0
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/paasta_tools/cli/authentication.py +0 -0
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/paasta_tools/cli/cli.py +0 -0
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/paasta_tools/cli/cmds/__init__.py +0 -0
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/paasta_tools/cli/cmds/autoscale.py +0 -0
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/paasta_tools/cli/cmds/check.py +0 -0
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/paasta_tools/cli/cmds/cook_image.py +0 -0
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/paasta_tools/cli/cmds/get_docker_image.py +0 -0
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/paasta_tools/cli/cmds/get_image_version.py +0 -0
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/paasta_tools/cli/cmds/get_latest_deployment.py +0 -0
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/paasta_tools/cli/cmds/info.py +0 -0
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/paasta_tools/cli/cmds/itest.py +0 -0
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/paasta_tools/cli/cmds/list.py +0 -0
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/paasta_tools/cli/cmds/list_clusters.py +0 -0
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/paasta_tools/cli/cmds/list_deploy_queue.py +0 -0
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/paasta_tools/cli/cmds/list_namespaces.py +0 -0
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/paasta_tools/cli/cmds/local_run.py +0 -0
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/paasta_tools/cli/cmds/logs.py +0 -0
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/paasta_tools/cli/cmds/mark_for_deployment.py +0 -0
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/paasta_tools/cli/cmds/mesh_status.py +0 -0
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/paasta_tools/cli/cmds/pause_service_autoscaler.py +0 -0
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/paasta_tools/cli/cmds/push_to_registry.py +0 -0
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/paasta_tools/cli/cmds/remote_run.py +0 -0
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/paasta_tools/cli/cmds/rollback.py +0 -0
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/paasta_tools/cli/cmds/security_check.py +0 -0
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/paasta_tools/cli/cmds/spark_run.py +0 -0
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/paasta_tools/cli/cmds/start_stop_restart.py +0 -0
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/paasta_tools/cli/cmds/status.py +0 -0
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/paasta_tools/cli/cmds/validate.py +0 -0
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/paasta_tools/cli/cmds/wait_for_deployment.py +0 -0
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/paasta_tools/cli/fsm/__init__.py +0 -0
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/paasta_tools/cli/fsm/autosuggest.py +0 -0
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/paasta_tools/cli/fsm/template/README.md +0 -0
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/paasta_tools/cli/fsm/template/cookiecutter.json +0 -0
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/paasta_tools/cli/fsm/template/{{cookiecutter.service}}/kubernetes-PROD.yaml +0 -0
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/paasta_tools/cli/fsm/template/{{cookiecutter.service}}/monitoring.yaml +0 -0
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/paasta_tools/cli/fsm/template/{{cookiecutter.service}}/service.yaml +0 -0
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/paasta_tools/cli/fsm/template/{{cookiecutter.service}}/smartstack.yaml +0 -0
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/paasta_tools/cli/fsm_cmd.py +0 -0
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/paasta_tools/cli/paasta_tabcomplete.sh +0 -0
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/paasta_tools/cli/schemas/adhoc_schema.json +0 -0
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/paasta_tools/cli/schemas/autoscaling_schema.json +0 -0
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/paasta_tools/cli/schemas/autotuned_defaults/cassandracluster_schema.json +0 -0
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/paasta_tools/cli/schemas/autotuned_defaults/kubernetes_schema.json +0 -0
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/paasta_tools/cli/schemas/deploy_schema.json +0 -0
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/paasta_tools/cli/schemas/eks_schema.json +0 -0
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/paasta_tools/cli/schemas/kubernetes_schema.json +0 -0
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/paasta_tools/cli/schemas/rollback_schema.json +0 -0
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/paasta_tools/cli/schemas/service_schema.json +0 -0
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/paasta_tools/cli/schemas/smartstack_schema.json +0 -0
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/paasta_tools/cli/schemas/tron_schema.json +0 -0
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/paasta_tools/cli/utils.py +0 -0
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/paasta_tools/clusterman.py +0 -0
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/paasta_tools/config_utils.py +0 -0
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/paasta_tools/contrib/__init__.py +0 -0
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/paasta_tools/contrib/bounce_log_latency_parser.py +0 -0
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/paasta_tools/contrib/check_manual_oapi_changes.sh +0 -0
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/paasta_tools/contrib/check_orphans.py +0 -0
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/paasta_tools/contrib/create_dynamodb_table.py +0 -0
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/paasta_tools/contrib/create_paasta_playground.py +0 -0
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/paasta_tools/contrib/emit_allocated_cpu_metrics.py +0 -0
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/paasta_tools/contrib/get_running_task_allocation.py +0 -0
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/paasta_tools/contrib/habitat_fixer.py +0 -0
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/paasta_tools/contrib/ide_helper.py +0 -0
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/paasta_tools/contrib/is_pod_healthy_in_proxy.py +0 -0
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/paasta_tools/contrib/is_pod_healthy_in_smartstack.py +0 -0
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/paasta_tools/contrib/kill_bad_containers.py +0 -0
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/paasta_tools/contrib/mass-deploy-tag.sh +0 -0
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/paasta_tools/contrib/mock_patch_checker.py +0 -0
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/paasta_tools/contrib/paasta_update_soa_memcpu.py +0 -0
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/paasta_tools/contrib/render_template.py +0 -0
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/paasta_tools/contrib/rightsizer_soaconfigs_update.py +0 -0
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/paasta_tools/contrib/service_shard_remove.py +0 -0
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/paasta_tools/contrib/service_shard_update.py +0 -0
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/paasta_tools/contrib/shared_ip_check.py +0 -0
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/paasta_tools/contrib/timeouts_metrics_prom.py +0 -0
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/paasta_tools/delete_kubernetes_deployments.py +0 -0
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/paasta_tools/deployment_utils.py +0 -0
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/paasta_tools/docker_wrapper.py +0 -0
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/paasta_tools/docker_wrapper_imports.py +0 -0
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/paasta_tools/drain_lib.py +0 -0
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/paasta_tools/dump_locally_running_services.py +0 -0
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/paasta_tools/eks_tools.py +0 -0
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/paasta_tools/envoy_tools.py +0 -0
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/paasta_tools/firewall.py +0 -0
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/paasta_tools/firewall_logging.py +0 -0
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/paasta_tools/firewall_update.py +0 -0
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/paasta_tools/flink_tools.py +0 -0
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/paasta_tools/flinkeks_tools.py +0 -0
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/paasta_tools/frameworks/__init__.py +0 -0
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/paasta_tools/frameworks/constraints.py +0 -0
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/paasta_tools/frameworks/native_service_config.py +0 -0
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/paasta_tools/generate_all_deployments +0 -0
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/paasta_tools/generate_authenticating_services.py +0 -0
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/paasta_tools/generate_deployments_for_service.py +0 -0
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/paasta_tools/generate_services_file.py +0 -0
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/paasta_tools/generate_services_yaml.py +0 -0
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/paasta_tools/hacheck.py +0 -0
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/paasta_tools/instance/__init__.py +0 -0
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/paasta_tools/instance/hpa_metrics_parser.py +0 -0
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/paasta_tools/instance/kubernetes.py +0 -0
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/paasta_tools/iptables.py +0 -0
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/paasta_tools/kafkacluster_tools.py +0 -0
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/paasta_tools/kubernetes/__init__.py +0 -0
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/paasta_tools/kubernetes/application/__init__.py +0 -0
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/paasta_tools/kubernetes/application/tools.py +0 -0
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/paasta_tools/kubernetes/bin/__init__.py +0 -0
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/paasta_tools/kubernetes/bin/kubernetes_remove_evicted_pods.py +0 -0
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/paasta_tools/kubernetes/bin/paasta_cleanup_remote_run_resources.py +0 -0
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/paasta_tools/kubernetes/bin/paasta_cleanup_stale_nodes.py +0 -0
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/paasta_tools/kubernetes/bin/paasta_secrets_sync.py +0 -0
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/paasta_tools/kubernetes/remote_run.py +0 -0
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/paasta_tools/list_kubernetes_service_instances.py +0 -0
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/paasta_tools/list_tron_namespaces.py +0 -0
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/paasta_tools/mac_address.py +0 -0
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/paasta_tools/marathon_dashboard.py +0 -0
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/paasta_tools/mesos/__init__.py +0 -0
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/paasta_tools/mesos/cfg.py +0 -0
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/paasta_tools/mesos/cluster.py +0 -0
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/paasta_tools/mesos/exceptions.py +0 -0
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/paasta_tools/mesos/framework.py +0 -0
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/paasta_tools/mesos/log.py +0 -0
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/paasta_tools/mesos/master.py +0 -0
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/paasta_tools/mesos/mesos_file.py +0 -0
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/paasta_tools/mesos/parallel.py +0 -0
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/paasta_tools/mesos/slave.py +0 -0
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/paasta_tools/mesos/task.py +0 -0
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/paasta_tools/mesos/util.py +0 -0
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/paasta_tools/mesos/zookeeper.py +0 -0
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/paasta_tools/mesos_tools.py +0 -0
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/paasta_tools/metrics/__init__.py +0 -0
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/paasta_tools/metrics/metastatus_lib.py +0 -0
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/paasta_tools/metrics/metrics_lib.py +0 -0
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/paasta_tools/monitoring/__init__.py +0 -0
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/paasta_tools/monitoring/check_k8s_api_performance.py +0 -0
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/paasta_tools/monitoring_tools.py +0 -0
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/paasta_tools/monkrelaycluster_tools.py +0 -0
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/paasta_tools/nrtsearchservice_tools.py +0 -0
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/paasta_tools/nrtsearchserviceeks_tools.py +0 -0
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/paasta_tools/oom_logger.py +0 -0
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/paasta_tools/paasta_deploy_tron_jobs +0 -0
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/paasta_tools/paasta_execute_docker_command.py +0 -0
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/paasta_tools/paasta_service_config_loader.py +0 -0
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/paasta_tools/paastaapi/__init__.py +0 -0
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/paasta_tools/paastaapi/api/__init__.py +0 -0
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/paasta_tools/paastaapi/api/autoscaler_api.py +0 -0
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/paasta_tools/paastaapi/api/default_api.py +0 -0
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/paasta_tools/paastaapi/api/remote_run_api.py +0 -0
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/paasta_tools/paastaapi/api/resources_api.py +0 -0
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/paasta_tools/paastaapi/api/service_api.py +0 -0
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/paasta_tools/paastaapi/api_client.py +0 -0
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/paasta_tools/paastaapi/apis/__init__.py +0 -0
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/paasta_tools/paastaapi/configuration.py +0 -0
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/paasta_tools/paastaapi/exceptions.py +0 -0
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/paasta_tools/paastaapi/model/__init__.py +0 -0
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/paasta_tools/paastaapi/model/adhoc_launch_history.py +0 -0
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/paasta_tools/paastaapi/model/autoscaler_count_msg.py +0 -0
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/paasta_tools/paastaapi/model/autoscaling_override.py +0 -0
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/paasta_tools/paastaapi/model/deploy_queue.py +0 -0
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/paasta_tools/paastaapi/model/deploy_queue_service_instance.py +0 -0
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/paasta_tools/paastaapi/model/envoy_backend.py +0 -0
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/paasta_tools/paastaapi/model/envoy_location.py +0 -0
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/paasta_tools/paastaapi/model/envoy_status.py +0 -0
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/paasta_tools/paastaapi/model/flink_cluster_overview.py +0 -0
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/paasta_tools/paastaapi/model/flink_config.py +0 -0
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/paasta_tools/paastaapi/model/flink_job.py +0 -0
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/paasta_tools/paastaapi/model/flink_job_details.py +0 -0
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/paasta_tools/paastaapi/model/flink_jobs.py +0 -0
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/paasta_tools/paastaapi/model/float_and_error.py +0 -0
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/paasta_tools/paastaapi/model/hpa_metric.py +0 -0
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/paasta_tools/paastaapi/model/inline_object.py +0 -0
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/paasta_tools/paastaapi/model/inline_response200.py +0 -0
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/paasta_tools/paastaapi/model/inline_response2001.py +0 -0
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/paasta_tools/paastaapi/model/inline_response202.py +0 -0
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/paasta_tools/paastaapi/model/inline_response403.py +0 -0
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/paasta_tools/paastaapi/model/instance_bounce_status.py +0 -0
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/paasta_tools/paastaapi/model/instance_mesh_status.py +0 -0
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/paasta_tools/paastaapi/model/instance_status.py +0 -0
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/paasta_tools/paastaapi/model/instance_status_adhoc.py +0 -0
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/paasta_tools/paastaapi/model/instance_status_cassandracluster.py +0 -0
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/paasta_tools/paastaapi/model/instance_status_flink.py +0 -0
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/paasta_tools/paastaapi/model/instance_status_kafkacluster.py +0 -0
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/paasta_tools/paastaapi/model/instance_status_kubernetes.py +0 -0
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/paasta_tools/paastaapi/model/instance_status_kubernetes_autoscaling_status.py +0 -0
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/paasta_tools/paastaapi/model/instance_status_kubernetes_v2.py +0 -0
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/paasta_tools/paastaapi/model/instance_status_tron.py +0 -0
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/paasta_tools/paastaapi/model/instance_tasks.py +0 -0
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/paasta_tools/paastaapi/model/integer_and_error.py +0 -0
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/paasta_tools/paastaapi/model/kubernetes_container.py +0 -0
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/paasta_tools/paastaapi/model/kubernetes_container_v2.py +0 -0
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/paasta_tools/paastaapi/model/kubernetes_healthcheck.py +0 -0
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/paasta_tools/paastaapi/model/kubernetes_pod.py +0 -0
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/paasta_tools/paastaapi/model/kubernetes_pod_event.py +0 -0
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/paasta_tools/paastaapi/model/kubernetes_pod_v2.py +0 -0
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/paasta_tools/paastaapi/model/kubernetes_replica_set.py +0 -0
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/paasta_tools/paastaapi/model/kubernetes_version.py +0 -0
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/paasta_tools/paastaapi/model/remote_run_outcome.py +0 -0
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/paasta_tools/paastaapi/model/remote_run_start.py +0 -0
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/paasta_tools/paastaapi/model/remote_run_stop.py +0 -0
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/paasta_tools/paastaapi/model/remote_run_token.py +0 -0
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/paasta_tools/paastaapi/model/resource.py +0 -0
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/paasta_tools/paastaapi/model/resource_item.py +0 -0
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/paasta_tools/paastaapi/model/resource_value.py +0 -0
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/paasta_tools/paastaapi/model/smartstack_backend.py +0 -0
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/paasta_tools/paastaapi/model/smartstack_location.py +0 -0
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/paasta_tools/paastaapi/model/smartstack_status.py +0 -0
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/paasta_tools/paastaapi/model/task_tail_lines.py +0 -0
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/paasta_tools/paastaapi/model_utils.py +0 -0
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/paasta_tools/paastaapi/models/__init__.py +0 -0
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/paasta_tools/paastaapi/rest.py +0 -0
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/paasta_tools/prune_completed_pods.py +0 -0
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/paasta_tools/puppet_service_tools.py +0 -0
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/paasta_tools/py.typed +0 -0
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/paasta_tools/remote_git.py +0 -0
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/paasta_tools/run-paasta-api-in-dev-mode.py +0 -0
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/paasta_tools/run-paasta-api-playground.py +0 -0
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/paasta_tools/secret_providers/__init__.py +0 -0
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/paasta_tools/secret_providers/vault.py +0 -0
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/paasta_tools/secret_tools.py +0 -0
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/paasta_tools/setup_istio_mesh.py +0 -0
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/paasta_tools/setup_kubernetes_cr.py +0 -0
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/paasta_tools/setup_kubernetes_crd.py +0 -0
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/paasta_tools/setup_kubernetes_internal_crd.py +0 -0
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/paasta_tools/setup_kubernetes_job.py +0 -0
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/paasta_tools/setup_prometheus_adapter_config.py +0 -0
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/paasta_tools/setup_tron_namespace.py +0 -0
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/paasta_tools/slack.py +0 -0
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/paasta_tools/smartstack_tools.py +0 -0
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/paasta_tools/spark_tools.py +0 -0
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/paasta_tools/synapse_srv_namespaces_fact.py +0 -0
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/paasta_tools/tron/__init__.py +0 -0
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/paasta_tools/tron/client.py +0 -0
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/paasta_tools/tron/tron_command_context.py +0 -0
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/paasta_tools/tron/tron_timeutils.py +0 -0
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/paasta_tools/tron_tools.py +0 -0
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/paasta_tools/yaml_tools.py +0 -0
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/paasta_tools.egg-info/SOURCES.txt +0 -0
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/paasta_tools.egg-info/dependency_links.txt +0 -0
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/paasta_tools.egg-info/entry_points.txt +0 -0
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/paasta_tools.egg-info/requires.txt +0 -0
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/paasta_tools.egg-info/top_level.txt +0 -0
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/pyproject.toml +0 -0
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/setup.cfg +0 -0
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/setup.py +0 -0
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/tests/test_adhoc_tools.py +0 -0
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/tests/test_apply_external_resources.py +0 -0
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/tests/test_async_utils.py +0 -0
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/tests/test_bounce_lib.py +0 -0
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/tests/test_check_flink_services_health.py +0 -0
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/tests/test_check_kubernetes_services_replication.py +0 -0
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/tests/test_check_oom_events.py +0 -0
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/tests/test_check_service_replication_tools.py +0 -0
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/tests/test_check_spark_jobs.py +0 -0
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/tests/test_cleanup_kubernetes_jobs.py +0 -0
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/tests/test_config_utils.py +0 -0
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/tests/test_delete_kubernetes_deployments.py +0 -0
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/tests/test_deployment_utils.py +0 -0
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/tests/test_docker_wrapper.py +0 -0
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/tests/test_drain_lib.py +0 -0
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/tests/test_eks_tools.py +0 -0
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/tests/test_envoy_tools.py +0 -0
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/tests/test_firewall.py +0 -0
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/tests/test_firewall_logging.py +0 -0
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/tests/test_firewall_update.py +0 -0
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/tests/test_flink_tools.py +0 -0
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/tests/test_flinkeks_tools.py +0 -0
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/tests/test_generate_authenticating_services.py +0 -0
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/tests/test_generate_deployments_for_service.py +0 -0
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/tests/test_generate_services_file.py +0 -0
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/tests/test_generate_services_yaml.py +0 -0
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/tests/test_hacheck.py +0 -0
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/tests/test_iptables.py +0 -0
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/tests/test_list_kubernetes_service_instances.py +0 -0
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/tests/test_long_running_service_tools.py +0 -0
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/tests/test_mac_address.py +0 -0
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/tests/test_mesos_tools.py +0 -0
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/tests/test_monitoring_tools.py +0 -0
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/tests/test_nrtsearchserviceseks_tools.py +0 -0
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/tests/test_oom_logger.py +0 -0
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/tests/test_paasta_execute_docker_command.py +0 -0
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/tests/test_paasta_service_config_loader.py +0 -0
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/tests/test_puppet_service_tools.py +0 -0
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/tests/test_remote_git.py +0 -0
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/tests/test_secret_tools.py +0 -0
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/tests/test_setup_istio_mesh.py +0 -0
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/tests/test_setup_kubernetes_cr.py +0 -0
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/tests/test_setup_kubernetes_job.py +0 -0
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/tests/test_setup_prometheus_adapter_config.py +0 -0
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/tests/test_slack.py +0 -0
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/tests/test_smartstack_tools.py +0 -0
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/tests/test_spark_tools.py +0 -0
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/tests/test_tron_tools.py +0 -0
- {paasta_tools-1.35.1 → paasta_tools-1.35.3}/tests/test_utils.py +0 -0
|
@@ -212,7 +212,7 @@ def _add_vault_auth_args(parser: argparse.ArgumentParser):
|
|
|
212
212
|
dest="vault_auth_method",
|
|
213
213
|
required=False,
|
|
214
214
|
default="token",
|
|
215
|
-
choices=["token", "
|
|
215
|
+
choices=["token", "okta"],
|
|
216
216
|
)
|
|
217
217
|
parser.add_argument(
|
|
218
218
|
"--vault-token-file",
|
|
@@ -456,7 +456,7 @@ def paasta_secret(args):
|
|
|
456
456
|
"vault_token_file": args.vault_token_file,
|
|
457
457
|
# best solution so far is to change the below string to "token",
|
|
458
458
|
# so that token file is picked up from argparse
|
|
459
|
-
"vault_auth_method": "
|
|
459
|
+
"vault_auth_method": "okta", # must use Okta to get 2FA push
|
|
460
460
|
},
|
|
461
461
|
)
|
|
462
462
|
secret_provider.write_secret(
|
|
@@ -173,19 +173,31 @@ class Application(ABC):
|
|
|
173
173
|
self, kube_client: KubeClient, namespace: str
|
|
174
174
|
) -> V1PodDisruptionBudget:
|
|
175
175
|
max_unavailable: Union[str, int]
|
|
176
|
+
|
|
177
|
+
system_paasta_config = load_system_paasta_config()
|
|
178
|
+
|
|
176
179
|
if "bounce_margin_factor" in self.soa_config.config_dict:
|
|
177
180
|
max_unavailable = (
|
|
178
181
|
f"{int((1 - self.soa_config.get_bounce_margin_factor()) * 100)}%"
|
|
179
182
|
)
|
|
180
183
|
else:
|
|
181
|
-
system_paasta_config = load_system_paasta_config()
|
|
182
184
|
max_unavailable = system_paasta_config.get_pdb_max_unavailable()
|
|
183
185
|
|
|
186
|
+
if "unhealthy_pod_eviction_policy" in self.soa_config.config_dict:
|
|
187
|
+
unhealthy_pod_eviction_policy = (
|
|
188
|
+
self.soa_config.get_unhealthy_pod_eviction_policy()
|
|
189
|
+
)
|
|
190
|
+
else:
|
|
191
|
+
unhealthy_pod_eviction_policy = (
|
|
192
|
+
system_paasta_config.get_unhealthy_pod_eviction_policy()
|
|
193
|
+
)
|
|
194
|
+
|
|
184
195
|
pdr = pod_disruption_budget_for_service_instance(
|
|
185
196
|
service=self.kube_deployment.service,
|
|
186
197
|
instance=self.kube_deployment.instance,
|
|
187
198
|
max_unavailable=max_unavailable,
|
|
188
199
|
namespace=namespace,
|
|
200
|
+
unhealthy_pod_eviction_policy=unhealthy_pod_eviction_policy,
|
|
189
201
|
)
|
|
190
202
|
try:
|
|
191
203
|
existing_pdr = kube_client.policy.read_namespaced_pod_disruption_budget(
|
|
@@ -198,12 +210,21 @@ class Application(ABC):
|
|
|
198
210
|
raise
|
|
199
211
|
|
|
200
212
|
if existing_pdr:
|
|
213
|
+
"""
|
|
214
|
+
Update the pod disruption budget only if spec.max_unavailable
|
|
215
|
+
or spec.unhealthy_pod_eviction_policy have changed;
|
|
216
|
+
ignore changes to other fields
|
|
217
|
+
"""
|
|
201
218
|
if existing_pdr.spec.min_available is not None:
|
|
202
219
|
logging.info(
|
|
203
220
|
"Not updating poddisruptionbudget: can't have both "
|
|
204
221
|
"min_available and max_unavailable"
|
|
205
222
|
)
|
|
206
|
-
elif
|
|
223
|
+
elif (
|
|
224
|
+
existing_pdr.spec.max_unavailable != pdr.spec.max_unavailable
|
|
225
|
+
or existing_pdr.spec.unhealthy_pod_eviction_policy
|
|
226
|
+
!= pdr.spec.unhealthy_pod_eviction_policy
|
|
227
|
+
):
|
|
207
228
|
logging.info(f"Updating poddisruptionbudget {pdr.metadata.name}")
|
|
208
229
|
return kube_client.policy.patch_namespaced_pod_disruption_budget(
|
|
209
230
|
name=pdr.metadata.name, namespace=pdr.metadata.namespace, body=pdr
|
|
@@ -3374,21 +3374,26 @@ def pod_disruption_budget_for_service_instance(
|
|
|
3374
3374
|
instance: str,
|
|
3375
3375
|
max_unavailable: Union[str, int],
|
|
3376
3376
|
namespace: str,
|
|
3377
|
+
unhealthy_pod_eviction_policy: str,
|
|
3377
3378
|
) -> V1PodDisruptionBudget:
|
|
3379
|
+
selector = V1LabelSelector(
|
|
3380
|
+
match_labels={
|
|
3381
|
+
"paasta.yelp.com/service": service,
|
|
3382
|
+
"paasta.yelp.com/instance": instance,
|
|
3383
|
+
}
|
|
3384
|
+
)
|
|
3385
|
+
spec = V1PodDisruptionBudgetSpec(
|
|
3386
|
+
max_unavailable=max_unavailable,
|
|
3387
|
+
unhealthy_pod_eviction_policy=unhealthy_pod_eviction_policy,
|
|
3388
|
+
selector=selector,
|
|
3389
|
+
)
|
|
3390
|
+
|
|
3378
3391
|
return V1PodDisruptionBudget(
|
|
3379
3392
|
metadata=V1ObjectMeta(
|
|
3380
3393
|
name=get_kubernetes_app_name(service, instance),
|
|
3381
3394
|
namespace=namespace,
|
|
3382
3395
|
),
|
|
3383
|
-
spec=
|
|
3384
|
-
max_unavailable=max_unavailable,
|
|
3385
|
-
selector=V1LabelSelector(
|
|
3386
|
-
match_labels={
|
|
3387
|
-
"paasta.yelp.com/service": service,
|
|
3388
|
-
"paasta.yelp.com/instance": instance,
|
|
3389
|
-
}
|
|
3390
|
-
),
|
|
3391
|
-
),
|
|
3396
|
+
spec=spec,
|
|
3392
3397
|
)
|
|
3393
3398
|
|
|
3394
3399
|
|
|
@@ -88,6 +88,7 @@ class LongRunningServiceConfigDict(InstanceConfigDict, total=False):
|
|
|
88
88
|
bounce_margin_factor: float
|
|
89
89
|
should_ping_for_unhealthy_pods: bool
|
|
90
90
|
weight: int
|
|
91
|
+
unhealthy_pod_eviction_policy: str
|
|
91
92
|
|
|
92
93
|
|
|
93
94
|
class ServiceNamespaceConfig(dict):
|
|
@@ -413,6 +414,9 @@ class LongRunningServiceConfig(InstanceConfig):
|
|
|
413
414
|
def get_bounce_margin_factor(self) -> float:
|
|
414
415
|
return self.config_dict.get("bounce_margin_factor", 0.95)
|
|
415
416
|
|
|
417
|
+
def get_unhealthy_pod_eviction_policy(self) -> str:
|
|
418
|
+
return self.config_dict.get("unhealthy_pod_eviction_policy", "IfHealthyBudget")
|
|
419
|
+
|
|
416
420
|
def get_should_ping_for_unhealthy_pods(self, default: bool) -> bool:
|
|
417
421
|
return self.config_dict.get("should_ping_for_unhealthy_pods", default)
|
|
418
422
|
|
|
@@ -2070,6 +2070,7 @@ class SystemPaastaConfigDict(TypedDict, total=False):
|
|
|
2070
2070
|
default_spark_driver_pool_override: str
|
|
2071
2071
|
readonly_docker_registry_auth_file: str
|
|
2072
2072
|
private_docker_registries: List[str]
|
|
2073
|
+
unhealthy_pod_eviction_policy: str
|
|
2073
2074
|
|
|
2074
2075
|
|
|
2075
2076
|
def load_system_paasta_config(
|
|
@@ -2855,6 +2856,15 @@ class SystemPaastaConfig:
|
|
|
2855
2856
|
"""Get all the internal Docker registries without generally-available RO creds."""
|
|
2856
2857
|
return set(self.config_dict.get("private_docker_registries", []))
|
|
2857
2858
|
|
|
2859
|
+
def get_unhealthy_pod_eviction_policy(self) -> str:
|
|
2860
|
+
"""
|
|
2861
|
+
Get the unhealthy pod eviction policy for the cluster. Posible values:
|
|
2862
|
+
* IfHealthyBudget: unhealthy pods will only be evicted wrt to PodDisruptionBudget
|
|
2863
|
+
* AlwaysAllow: evict unhealthy pods regardless of the PodDisruptionBudget status.
|
|
2864
|
+
Defaults to IfHealthyBudget
|
|
2865
|
+
"""
|
|
2866
|
+
return self.config_dict.get("unhealthy_pod_eviction_policy", "IfHealthyBudget")
|
|
2867
|
+
|
|
2858
2868
|
|
|
2859
2869
|
def _run(
|
|
2860
2870
|
command: Union[str, List[str]],
|
|
@@ -29,6 +29,7 @@ kazoo >= 2.0.0
|
|
|
29
29
|
# from our pinned-dependencies. The upper-bound should generally be the latest kubernetes version
|
|
30
30
|
# that we can use across our different clusters (e.g, if X.0.0 removes an API version that we use
|
|
31
31
|
# in any cluster, this upper-bound should be < X.0.0)
|
|
32
|
+
# NOTE: the above is not exactly true anymore due to our legacy clusters...
|
|
32
33
|
# we should probably also be better at setting a correct lower-bound, but that's less likely to cause issues.
|
|
33
34
|
kubernetes >= 29.0.0, < 35.0.0
|
|
34
35
|
ldap3
|
|
@@ -4085,14 +4085,39 @@ def test_max_unavailable(instances, bmf):
|
|
|
4085
4085
|
assert type(res) is int
|
|
4086
4086
|
|
|
4087
4087
|
|
|
4088
|
-
|
|
4088
|
+
@pytest.mark.parametrize(
|
|
4089
|
+
"unhealthy_eviction_enabled,expected_policy",
|
|
4090
|
+
(
|
|
4091
|
+
(None, "IfHealthyBudget"),
|
|
4092
|
+
("IfHealthyBudget", "IfHealthyBudget"),
|
|
4093
|
+
("AlwaysAllow", "AlwaysAllow"),
|
|
4094
|
+
),
|
|
4095
|
+
)
|
|
4096
|
+
def test_pod_disruption_budget_for_service_instance(
|
|
4097
|
+
unhealthy_eviction_enabled, expected_policy
|
|
4098
|
+
):
|
|
4089
4099
|
mock_namespace = "paasta"
|
|
4090
|
-
|
|
4091
|
-
|
|
4092
|
-
|
|
4093
|
-
|
|
4094
|
-
|
|
4095
|
-
|
|
4100
|
+
with mock.patch(
|
|
4101
|
+
"paasta_tools.utils.load_system_paasta_config",
|
|
4102
|
+
return_value=SystemPaastaConfig(
|
|
4103
|
+
{
|
|
4104
|
+
"enable_unhealthy_pod_eviction": unhealthy_eviction_enabled,
|
|
4105
|
+
},
|
|
4106
|
+
"/fake/dir/",
|
|
4107
|
+
),
|
|
4108
|
+
autospec=True,
|
|
4109
|
+
) as mock_load_system_paasta_config, mock.patch(
|
|
4110
|
+
"paasta_tools.kubernetes_tools.load_system_paasta_config",
|
|
4111
|
+
new=mock_load_system_paasta_config,
|
|
4112
|
+
autospec=False,
|
|
4113
|
+
):
|
|
4114
|
+
x = pod_disruption_budget_for_service_instance(
|
|
4115
|
+
service="foo_1",
|
|
4116
|
+
instance="bar_1",
|
|
4117
|
+
max_unavailable="10%",
|
|
4118
|
+
namespace=mock_namespace,
|
|
4119
|
+
unhealthy_pod_eviction_policy=expected_policy,
|
|
4120
|
+
)
|
|
4096
4121
|
|
|
4097
4122
|
assert x.metadata.name == "foo--1-bar--1"
|
|
4098
4123
|
assert x.metadata.namespace == "paasta"
|
|
@@ -4101,6 +4126,7 @@ def test_pod_disruption_budget_for_service_instance():
|
|
|
4101
4126
|
"paasta.yelp.com/service": "foo_1",
|
|
4102
4127
|
"paasta.yelp.com/instance": "bar_1",
|
|
4103
4128
|
}
|
|
4129
|
+
assert x.spec.unhealthy_pod_eviction_policy == expected_policy
|
|
4104
4130
|
|
|
4105
4131
|
|
|
4106
4132
|
def test_create_pod_disruption_budget():
|
|
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.35.1 → paasta_tools-1.35.3}/paasta_tools/autoscaling/autoscaling_service_lib.py
RENAMED
|
File without changes
|
|
File without changes
|
{paasta_tools-1.35.1 → paasta_tools-1.35.3}/paasta_tools/autoscaling/max_all_k8s_services.py
RENAMED
|
File without changes
|
{paasta_tools-1.35.1 → paasta_tools-1.35.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.35.1 → paasta_tools-1.35.3}/paasta_tools/check_kubernetes_services_replication.py
RENAMED
|
File without changes
|
|
File without changes
|
{paasta_tools-1.35.1 → paasta_tools-1.35.3}/paasta_tools/check_services_replication_tools.py
RENAMED
|
File without changes
|
|
File without changes
|
{paasta_tools-1.35.1 → paasta_tools-1.35.3}/paasta_tools/cleanup_expired_autoscaling_overrides.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
|
{paasta_tools-1.35.1 → paasta_tools-1.35.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
|
|
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.35.1 → paasta_tools-1.35.3}/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.35.1 → paasta_tools-1.35.3}/paasta_tools/contrib/bounce_log_latency_parser.py
RENAMED
|
File without changes
|
{paasta_tools-1.35.1 → paasta_tools-1.35.3}/paasta_tools/contrib/check_manual_oapi_changes.sh
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{paasta_tools-1.35.1 → paasta_tools-1.35.3}/paasta_tools/contrib/create_paasta_playground.py
RENAMED
|
File without changes
|
{paasta_tools-1.35.1 → paasta_tools-1.35.3}/paasta_tools/contrib/emit_allocated_cpu_metrics.py
RENAMED
|
File without changes
|
{paasta_tools-1.35.1 → paasta_tools-1.35.3}/paasta_tools/contrib/get_running_task_allocation.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{paasta_tools-1.35.1 → paasta_tools-1.35.3}/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.35.1 → paasta_tools-1.35.3}/paasta_tools/contrib/paasta_update_soa_memcpu.py
RENAMED
|
File without changes
|
|
File without changes
|
{paasta_tools-1.35.1 → paasta_tools-1.35.3}/paasta_tools/contrib/rightsizer_soaconfigs_update.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
|