paasta-tools 1.29.0__tar.gz → 1.30.1__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.29.0/paasta_tools.egg-info → paasta_tools-1.30.1}/PKG-INFO +1 -1
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/paasta_tools/__init__.py +1 -1
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/paasta_tools/cli/cmds/remote_run.py +120 -9
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/paasta_tools/kubernetes/remote_run.py +42 -20
- {paasta_tools-1.29.0 → paasta_tools-1.30.1/paasta_tools.egg-info}/PKG-INFO +1 -1
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/LICENSE +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/MANIFEST.in +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/README.md +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/k8s_itests/__init__.py +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/k8s_itests/test_autoscaling.py +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/k8s_itests/utils.py +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/paasta_tools/adhoc_tools.py +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/paasta_tools/api/__init__.py +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/paasta_tools/api/api.py +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/paasta_tools/api/api_docs/swagger.json +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/paasta_tools/api/client.py +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/paasta_tools/api/settings.py +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/paasta_tools/api/tweens/__init__.py +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/paasta_tools/api/tweens/auth.py +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/paasta_tools/api/tweens/profiling.py +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/paasta_tools/api/tweens/request_logger.py +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/paasta_tools/api/views/__init__.py +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/paasta_tools/api/views/autoscaler.py +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/paasta_tools/api/views/exception.py +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/paasta_tools/api/views/flink.py +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/paasta_tools/api/views/instance.py +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/paasta_tools/api/views/pause_autoscaler.py +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/paasta_tools/api/views/remote_run.py +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/paasta_tools/api/views/resources.py +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/paasta_tools/api/views/service.py +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/paasta_tools/api/views/version.py +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/paasta_tools/apply_external_resources.py +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/paasta_tools/async_utils.py +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/paasta_tools/autoscaling/__init__.py +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/paasta_tools/autoscaling/autoscaling_service_lib.py +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/paasta_tools/autoscaling/forecasting.py +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/paasta_tools/autoscaling/max_all_k8s_services.py +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/paasta_tools/autoscaling/pause_service_autoscaler.py +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/paasta_tools/autoscaling/utils.py +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/paasta_tools/bounce_lib.py +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/paasta_tools/broadcast_log_to_services.py +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/paasta_tools/cassandracluster_tools.py +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/paasta_tools/check_autoscaler_max_instances.py +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/paasta_tools/check_cassandracluster_services_replication.py +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/paasta_tools/check_flink_services_health.py +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/paasta_tools/check_kubernetes_api.py +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/paasta_tools/check_kubernetes_services_replication.py +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/paasta_tools/check_oom_events.py +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/paasta_tools/check_services_replication_tools.py +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/paasta_tools/check_spark_jobs.py +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/paasta_tools/cleanup_expired_autoscaling_overrides.py +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/paasta_tools/cleanup_kubernetes_cr.py +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/paasta_tools/cleanup_kubernetes_crd.py +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/paasta_tools/cleanup_kubernetes_jobs.py +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/paasta_tools/cleanup_tron_namespaces.py +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/paasta_tools/cli/__init__.py +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/paasta_tools/cli/authentication.py +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/paasta_tools/cli/cli.py +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/paasta_tools/cli/cmds/__init__.py +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/paasta_tools/cli/cmds/autoscale.py +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/paasta_tools/cli/cmds/check.py +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/paasta_tools/cli/cmds/cook_image.py +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/paasta_tools/cli/cmds/get_docker_image.py +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/paasta_tools/cli/cmds/get_image_version.py +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/paasta_tools/cli/cmds/get_latest_deployment.py +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/paasta_tools/cli/cmds/info.py +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/paasta_tools/cli/cmds/itest.py +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/paasta_tools/cli/cmds/list.py +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/paasta_tools/cli/cmds/list_clusters.py +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/paasta_tools/cli/cmds/list_deploy_queue.py +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/paasta_tools/cli/cmds/list_namespaces.py +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/paasta_tools/cli/cmds/local_run.py +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/paasta_tools/cli/cmds/logs.py +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/paasta_tools/cli/cmds/mark_for_deployment.py +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/paasta_tools/cli/cmds/mesh_status.py +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/paasta_tools/cli/cmds/pause_service_autoscaler.py +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/paasta_tools/cli/cmds/push_to_registry.py +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/paasta_tools/cli/cmds/rollback.py +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/paasta_tools/cli/cmds/secret.py +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/paasta_tools/cli/cmds/security_check.py +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/paasta_tools/cli/cmds/spark_run.py +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/paasta_tools/cli/cmds/start_stop_restart.py +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/paasta_tools/cli/cmds/status.py +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/paasta_tools/cli/cmds/validate.py +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/paasta_tools/cli/cmds/wait_for_deployment.py +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/paasta_tools/cli/fsm/__init__.py +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/paasta_tools/cli/fsm/autosuggest.py +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/paasta_tools/cli/fsm/template/README.md +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/paasta_tools/cli/fsm/template/cookiecutter.json +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/paasta_tools/cli/fsm/template/{{cookiecutter.service}}/kubernetes-PROD.yaml +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/paasta_tools/cli/fsm/template/{{cookiecutter.service}}/monitoring.yaml +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/paasta_tools/cli/fsm/template/{{cookiecutter.service}}/service.yaml +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/paasta_tools/cli/fsm/template/{{cookiecutter.service}}/smartstack.yaml +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/paasta_tools/cli/fsm_cmd.py +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/paasta_tools/cli/paasta_tabcomplete.sh +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/paasta_tools/cli/schemas/adhoc_schema.json +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/paasta_tools/cli/schemas/autoscaling_schema.json +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/paasta_tools/cli/schemas/autotuned_defaults/cassandracluster_schema.json +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/paasta_tools/cli/schemas/autotuned_defaults/kubernetes_schema.json +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/paasta_tools/cli/schemas/deploy_schema.json +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/paasta_tools/cli/schemas/eks_schema.json +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/paasta_tools/cli/schemas/kubernetes_schema.json +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/paasta_tools/cli/schemas/rollback_schema.json +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/paasta_tools/cli/schemas/service_schema.json +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/paasta_tools/cli/schemas/smartstack_schema.json +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/paasta_tools/cli/schemas/tron_schema.json +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/paasta_tools/cli/utils.py +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/paasta_tools/clusterman.py +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/paasta_tools/config_utils.py +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/paasta_tools/contrib/__init__.py +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/paasta_tools/contrib/bounce_log_latency_parser.py +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/paasta_tools/contrib/check_manual_oapi_changes.sh +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/paasta_tools/contrib/check_orphans.py +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/paasta_tools/contrib/create_dynamodb_table.py +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/paasta_tools/contrib/create_paasta_playground.py +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/paasta_tools/contrib/emit_allocated_cpu_metrics.py +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/paasta_tools/contrib/get_running_task_allocation.py +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/paasta_tools/contrib/habitat_fixer.py +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/paasta_tools/contrib/ide_helper.py +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/paasta_tools/contrib/is_pod_healthy_in_proxy.py +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/paasta_tools/contrib/is_pod_healthy_in_smartstack.py +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/paasta_tools/contrib/kill_bad_containers.py +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/paasta_tools/contrib/mass-deploy-tag.sh +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/paasta_tools/contrib/mock_patch_checker.py +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/paasta_tools/contrib/paasta_update_soa_memcpu.py +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/paasta_tools/contrib/render_template.py +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/paasta_tools/contrib/rightsizer_soaconfigs_update.py +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/paasta_tools/contrib/service_shard_remove.py +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/paasta_tools/contrib/service_shard_update.py +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/paasta_tools/contrib/shared_ip_check.py +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/paasta_tools/contrib/timeouts_metrics_prom.py +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/paasta_tools/delete_kubernetes_deployments.py +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/paasta_tools/deployment_utils.py +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/paasta_tools/docker_wrapper.py +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/paasta_tools/docker_wrapper_imports.py +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/paasta_tools/drain_lib.py +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/paasta_tools/dump_locally_running_services.py +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/paasta_tools/eks_tools.py +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/paasta_tools/envoy_tools.py +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/paasta_tools/firewall.py +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/paasta_tools/firewall_logging.py +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/paasta_tools/firewall_update.py +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/paasta_tools/flink_tools.py +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/paasta_tools/flinkeks_tools.py +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/paasta_tools/frameworks/__init__.py +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/paasta_tools/frameworks/adhoc_scheduler.py +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/paasta_tools/frameworks/constraints.py +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/paasta_tools/frameworks/native_scheduler.py +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/paasta_tools/frameworks/native_service_config.py +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/paasta_tools/frameworks/task_store.py +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/paasta_tools/generate_all_deployments +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/paasta_tools/generate_authenticating_services.py +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/paasta_tools/generate_deployments_for_service.py +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/paasta_tools/generate_services_file.py +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/paasta_tools/generate_services_yaml.py +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/paasta_tools/hacheck.py +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/paasta_tools/instance/__init__.py +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/paasta_tools/instance/hpa_metrics_parser.py +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/paasta_tools/instance/kubernetes.py +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/paasta_tools/iptables.py +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/paasta_tools/kafkacluster_tools.py +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/paasta_tools/kubernetes/__init__.py +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/paasta_tools/kubernetes/application/__init__.py +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/paasta_tools/kubernetes/application/controller_wrappers.py +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/paasta_tools/kubernetes/application/tools.py +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/paasta_tools/kubernetes/bin/__init__.py +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/paasta_tools/kubernetes/bin/kubernetes_remove_evicted_pods.py +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/paasta_tools/kubernetes/bin/paasta_cleanup_remote_run_resources.py +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/paasta_tools/kubernetes/bin/paasta_cleanup_stale_nodes.py +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/paasta_tools/kubernetes/bin/paasta_secrets_sync.py +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/paasta_tools/kubernetes_tools.py +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/paasta_tools/list_kubernetes_service_instances.py +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/paasta_tools/list_tron_namespaces.py +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/paasta_tools/long_running_service_tools.py +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/paasta_tools/mac_address.py +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/paasta_tools/marathon_dashboard.py +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/paasta_tools/mesos/__init__.py +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/paasta_tools/mesos/cfg.py +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/paasta_tools/mesos/cluster.py +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/paasta_tools/mesos/exceptions.py +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/paasta_tools/mesos/framework.py +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/paasta_tools/mesos/log.py +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/paasta_tools/mesos/master.py +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/paasta_tools/mesos/mesos_file.py +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/paasta_tools/mesos/parallel.py +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/paasta_tools/mesos/slave.py +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/paasta_tools/mesos/task.py +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/paasta_tools/mesos/util.py +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/paasta_tools/mesos/zookeeper.py +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/paasta_tools/mesos_maintenance.py +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/paasta_tools/mesos_tools.py +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/paasta_tools/metrics/__init__.py +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/paasta_tools/metrics/metastatus_lib.py +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/paasta_tools/metrics/metrics_lib.py +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/paasta_tools/monitoring/__init__.py +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/paasta_tools/monitoring/check_k8s_api_performance.py +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/paasta_tools/monitoring_tools.py +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/paasta_tools/monkrelaycluster_tools.py +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/paasta_tools/nrtsearchservice_tools.py +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/paasta_tools/nrtsearchserviceeks_tools.py +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/paasta_tools/oom_logger.py +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/paasta_tools/paasta_deploy_tron_jobs +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/paasta_tools/paasta_execute_docker_command.py +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/paasta_tools/paasta_native_serviceinit.py +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/paasta_tools/paasta_service_config_loader.py +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/paasta_tools/paastaapi/__init__.py +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/paasta_tools/paastaapi/api/__init__.py +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/paasta_tools/paastaapi/api/autoscaler_api.py +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/paasta_tools/paastaapi/api/default_api.py +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/paasta_tools/paastaapi/api/remote_run_api.py +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/paasta_tools/paastaapi/api/resources_api.py +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/paasta_tools/paastaapi/api/service_api.py +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/paasta_tools/paastaapi/api_client.py +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/paasta_tools/paastaapi/apis/__init__.py +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/paasta_tools/paastaapi/configuration.py +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/paasta_tools/paastaapi/exceptions.py +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/paasta_tools/paastaapi/model/__init__.py +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/paasta_tools/paastaapi/model/adhoc_launch_history.py +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/paasta_tools/paastaapi/model/autoscaler_count_msg.py +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/paasta_tools/paastaapi/model/autoscaling_override.py +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/paasta_tools/paastaapi/model/deploy_queue.py +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/paasta_tools/paastaapi/model/deploy_queue_service_instance.py +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/paasta_tools/paastaapi/model/envoy_backend.py +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/paasta_tools/paastaapi/model/envoy_location.py +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/paasta_tools/paastaapi/model/envoy_status.py +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/paasta_tools/paastaapi/model/flink_cluster_overview.py +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/paasta_tools/paastaapi/model/flink_config.py +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/paasta_tools/paastaapi/model/flink_job.py +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/paasta_tools/paastaapi/model/flink_job_details.py +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/paasta_tools/paastaapi/model/flink_jobs.py +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/paasta_tools/paastaapi/model/float_and_error.py +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/paasta_tools/paastaapi/model/hpa_metric.py +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/paasta_tools/paastaapi/model/inline_object.py +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/paasta_tools/paastaapi/model/inline_response200.py +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/paasta_tools/paastaapi/model/inline_response2001.py +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/paasta_tools/paastaapi/model/inline_response202.py +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/paasta_tools/paastaapi/model/inline_response403.py +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/paasta_tools/paastaapi/model/instance_bounce_status.py +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/paasta_tools/paastaapi/model/instance_mesh_status.py +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/paasta_tools/paastaapi/model/instance_status.py +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/paasta_tools/paastaapi/model/instance_status_adhoc.py +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/paasta_tools/paastaapi/model/instance_status_cassandracluster.py +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/paasta_tools/paastaapi/model/instance_status_flink.py +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/paasta_tools/paastaapi/model/instance_status_kafkacluster.py +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/paasta_tools/paastaapi/model/instance_status_kubernetes.py +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/paasta_tools/paastaapi/model/instance_status_kubernetes_autoscaling_status.py +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/paasta_tools/paastaapi/model/instance_status_kubernetes_v2.py +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/paasta_tools/paastaapi/model/instance_status_tron.py +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/paasta_tools/paastaapi/model/instance_tasks.py +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/paasta_tools/paastaapi/model/integer_and_error.py +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/paasta_tools/paastaapi/model/kubernetes_container.py +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/paasta_tools/paastaapi/model/kubernetes_container_v2.py +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/paasta_tools/paastaapi/model/kubernetes_healthcheck.py +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/paasta_tools/paastaapi/model/kubernetes_pod.py +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/paasta_tools/paastaapi/model/kubernetes_pod_event.py +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/paasta_tools/paastaapi/model/kubernetes_pod_v2.py +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/paasta_tools/paastaapi/model/kubernetes_replica_set.py +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/paasta_tools/paastaapi/model/kubernetes_version.py +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/paasta_tools/paastaapi/model/remote_run_outcome.py +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/paasta_tools/paastaapi/model/remote_run_start.py +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/paasta_tools/paastaapi/model/remote_run_stop.py +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/paasta_tools/paastaapi/model/remote_run_token.py +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/paasta_tools/paastaapi/model/resource.py +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/paasta_tools/paastaapi/model/resource_item.py +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/paasta_tools/paastaapi/model/resource_value.py +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/paasta_tools/paastaapi/model/smartstack_backend.py +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/paasta_tools/paastaapi/model/smartstack_location.py +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/paasta_tools/paastaapi/model/smartstack_status.py +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/paasta_tools/paastaapi/model/task_tail_lines.py +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/paasta_tools/paastaapi/model_utils.py +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/paasta_tools/paastaapi/models/__init__.py +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/paasta_tools/paastaapi/rest.py +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/paasta_tools/prune_completed_pods.py +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/paasta_tools/puppet_service_tools.py +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/paasta_tools/py.typed +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/paasta_tools/remote_git.py +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/paasta_tools/run-paasta-api-in-dev-mode.py +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/paasta_tools/run-paasta-api-playground.py +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/paasta_tools/secret_providers/__init__.py +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/paasta_tools/secret_providers/vault.py +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/paasta_tools/secret_tools.py +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/paasta_tools/setup_istio_mesh.py +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/paasta_tools/setup_kubernetes_cr.py +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/paasta_tools/setup_kubernetes_crd.py +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/paasta_tools/setup_kubernetes_internal_crd.py +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/paasta_tools/setup_kubernetes_job.py +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/paasta_tools/setup_prometheus_adapter_config.py +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/paasta_tools/setup_tron_namespace.py +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/paasta_tools/slack.py +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/paasta_tools/smartstack_tools.py +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/paasta_tools/spark_tools.py +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/paasta_tools/synapse_srv_namespaces_fact.py +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/paasta_tools/tron/__init__.py +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/paasta_tools/tron/client.py +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/paasta_tools/tron/tron_command_context.py +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/paasta_tools/tron/tron_timeutils.py +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/paasta_tools/tron_tools.py +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/paasta_tools/utils.py +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/paasta_tools/yaml_tools.py +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/paasta_tools.egg-info/SOURCES.txt +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/paasta_tools.egg-info/dependency_links.txt +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/paasta_tools.egg-info/entry_points.txt +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/paasta_tools.egg-info/requires.txt +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/paasta_tools.egg-info/top_level.txt +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/pyproject.toml +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/requirements-minimal.txt +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/setup.cfg +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/setup.py +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/tests/test_adhoc_tools.py +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/tests/test_apply_external_resources.py +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/tests/test_async_utils.py +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/tests/test_bounce_lib.py +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/tests/test_check_flink_services_health.py +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/tests/test_check_kubernetes_services_replication.py +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/tests/test_check_oom_events.py +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/tests/test_check_service_replication_tools.py +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/tests/test_check_spark_jobs.py +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/tests/test_cleanup_kubernetes_jobs.py +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/tests/test_config_utils.py +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/tests/test_delete_kubernetes_deployments.py +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/tests/test_deployment_utils.py +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/tests/test_docker_wrapper.py +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/tests/test_drain_lib.py +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/tests/test_eks_tools.py +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/tests/test_envoy_tools.py +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/tests/test_firewall.py +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/tests/test_firewall_logging.py +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/tests/test_firewall_update.py +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/tests/test_flink_tools.py +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/tests/test_flinkeks_tools.py +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/tests/test_generate_authenticating_services.py +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/tests/test_generate_deployments_for_service.py +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/tests/test_generate_services_file.py +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/tests/test_generate_services_yaml.py +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/tests/test_hacheck.py +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/tests/test_iptables.py +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/tests/test_kubernetes_tools.py +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/tests/test_list_kubernetes_service_instances.py +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/tests/test_long_running_service_tools.py +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/tests/test_mac_address.py +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/tests/test_mesos_tools.py +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/tests/test_monitoring_tools.py +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/tests/test_nrtsearchserviceseks_tools.py +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/tests/test_oom_logger.py +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/tests/test_paasta_execute_docker_command.py +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/tests/test_paasta_service_config_loader.py +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/tests/test_puppet_service_tools.py +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/tests/test_remote_git.py +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/tests/test_secret_tools.py +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/tests/test_setup_istio_mesh.py +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/tests/test_setup_kubernetes_cr.py +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/tests/test_setup_kubernetes_job.py +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/tests/test_setup_prometheus_adapter_config.py +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/tests/test_slack.py +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/tests/test_smartstack_tools.py +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/tests/test_spark_tools.py +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/tests/test_tron_tools.py +0 -0
- {paasta_tools-1.29.0 → paasta_tools-1.30.1}/tests/test_utils.py +0 -0
|
@@ -14,6 +14,7 @@
|
|
|
14
14
|
# limitations under the License.
|
|
15
15
|
import argparse
|
|
16
16
|
import json
|
|
17
|
+
import os
|
|
17
18
|
import shutil
|
|
18
19
|
import subprocess
|
|
19
20
|
import sys
|
|
@@ -24,6 +25,8 @@ from paasta_tools.cli.utils import get_paasta_oapi_api_clustername
|
|
|
24
25
|
from paasta_tools.cli.utils import get_paasta_oapi_client_with_auth
|
|
25
26
|
from paasta_tools.cli.utils import lazy_choices_completer
|
|
26
27
|
from paasta_tools.cli.utils import run_interactive_cli
|
|
28
|
+
from paasta_tools.kubernetes.remote_run import format_remote_run_job_name
|
|
29
|
+
from paasta_tools.kubernetes.remote_run import load_eks_or_adhoc_deployment_config
|
|
27
30
|
from paasta_tools.kubernetes.remote_run import TOOLBOX_MOCK_SERVICE
|
|
28
31
|
from paasta_tools.paastaapi.exceptions import ApiException
|
|
29
32
|
from paasta_tools.paastaapi.model.remote_run_start import RemoteRunStart
|
|
@@ -39,12 +42,15 @@ from paasta_tools.utils import SystemPaastaConfig
|
|
|
39
42
|
KUBECTL_EXEC_CMD_TEMPLATE = (
|
|
40
43
|
"{kubectl_wrapper} --token {token} exec -it -n {namespace} {pod} -- /bin/bash"
|
|
41
44
|
)
|
|
45
|
+
KUBECTL_CP_TO_CMD_TEMPLATE = (
|
|
46
|
+
"{kubectl_wrapper} --token {token} -n {namespace} cp {source} {pod}:{dest}"
|
|
47
|
+
)
|
|
48
|
+
KUBECTL_CP_FROM_CMD_TEMPLATE = (
|
|
49
|
+
"{kubectl_wrapper} --token {token} -n {namespace} cp {pod}:{source} {dest}"
|
|
50
|
+
)
|
|
42
51
|
KUBECTL_LOGS_CMD_TEMPLATE = (
|
|
43
52
|
"{kubectl_wrapper} --token {token} logs -n {namespace} -f {pod}"
|
|
44
53
|
)
|
|
45
|
-
KUBECTL_CP_CMD_TEMPLATE = (
|
|
46
|
-
"{kubectl_wrapper} --token {token} -n {namespace} cp {filename} {pod}:/tmp/"
|
|
47
|
-
)
|
|
48
54
|
|
|
49
55
|
|
|
50
56
|
def _list_services_and_toolboxes() -> List[str]:
|
|
@@ -62,6 +68,13 @@ def _list_services_and_toolboxes() -> List[str]:
|
|
|
62
68
|
)
|
|
63
69
|
|
|
64
70
|
|
|
71
|
+
def _get_kubectl_wrapper(cluster: str) -> str:
|
|
72
|
+
kubectl_wrapper = f"kubectl-eks-{cluster}"
|
|
73
|
+
if not shutil.which(kubectl_wrapper):
|
|
74
|
+
kubectl_wrapper = f"kubectl-{cluster}"
|
|
75
|
+
return kubectl_wrapper
|
|
76
|
+
|
|
77
|
+
|
|
65
78
|
def parse_error(body: str) -> str:
|
|
66
79
|
try:
|
|
67
80
|
body_object = json.loads(body)
|
|
@@ -74,6 +87,81 @@ def parse_error(body: str) -> str:
|
|
|
74
87
|
)
|
|
75
88
|
|
|
76
89
|
|
|
90
|
+
def paasta_remote_run_copy(
|
|
91
|
+
args: argparse.Namespace,
|
|
92
|
+
system_paasta_config: SystemPaastaConfig,
|
|
93
|
+
) -> int:
|
|
94
|
+
client = get_paasta_oapi_client_with_auth(
|
|
95
|
+
cluster=get_paasta_oapi_api_clustername(cluster=args.cluster, is_eks=True),
|
|
96
|
+
system_paasta_config=system_paasta_config,
|
|
97
|
+
)
|
|
98
|
+
if not client:
|
|
99
|
+
print("Cannot get a paasta-api client")
|
|
100
|
+
return 1
|
|
101
|
+
|
|
102
|
+
# Create the config and extract the job name
|
|
103
|
+
user = get_username()
|
|
104
|
+
deployment_config = load_eks_or_adhoc_deployment_config(
|
|
105
|
+
args.service, args.instance, args.cluster, args.toolbox, user
|
|
106
|
+
)
|
|
107
|
+
deployment_name = deployment_config.get_sanitised_deployment_name()
|
|
108
|
+
job_name = format_remote_run_job_name(deployment_name, user)
|
|
109
|
+
|
|
110
|
+
poll_response = client.remote_run.remote_run_poll(
|
|
111
|
+
service=args.service,
|
|
112
|
+
instance=args.instance,
|
|
113
|
+
job_name=job_name,
|
|
114
|
+
user=user,
|
|
115
|
+
toolbox=args.toolbox,
|
|
116
|
+
)
|
|
117
|
+
if poll_response.status != 200:
|
|
118
|
+
print(
|
|
119
|
+
f"Unable to find running remote-run pod: have you started one with `paasta remote-run start`?"
|
|
120
|
+
)
|
|
121
|
+
return 1
|
|
122
|
+
|
|
123
|
+
if args.to_pod:
|
|
124
|
+
# Create the toolbox copy command
|
|
125
|
+
exec_command = f"scp -A {args.copy_file_source} {poll_response.pod_address}:{args.copy_file_dest}"
|
|
126
|
+
# Pick the correct template and force /tmp/ for non-toolbox
|
|
127
|
+
kubectl_cp_template = KUBECTL_CP_TO_CMD_TEMPLATE
|
|
128
|
+
if not args.copy_file_dest.startswith("/tmp") and not args.toolbox:
|
|
129
|
+
args.copy_file_dest = os.path.join("/tmp/", args.copy_file_dest)
|
|
130
|
+
else:
|
|
131
|
+
exec_command = f"scp -A {poll_response.pod_address}:{args.copy_file_source} {args.copy_file_dest}"
|
|
132
|
+
kubectl_cp_template = KUBECTL_CP_FROM_CMD_TEMPLATE
|
|
133
|
+
|
|
134
|
+
# Kubectl cp doesnt like directories as a destination
|
|
135
|
+
if os.path.isdir(args.copy_file_dest):
|
|
136
|
+
args.copy_file_dest = os.path.join(
|
|
137
|
+
args.copy_file_dest, os.path.basename(args.copy_file_source)
|
|
138
|
+
)
|
|
139
|
+
|
|
140
|
+
if args.toolbox:
|
|
141
|
+
cp_command = exec_command.split(" ")
|
|
142
|
+
else:
|
|
143
|
+
token_response = client.remote_run.remote_run_token(
|
|
144
|
+
args.service, args.instance, user
|
|
145
|
+
)
|
|
146
|
+
kubectl_wrapper = _get_kubectl_wrapper(args.cluster)
|
|
147
|
+
cp_command = kubectl_cp_template.format(
|
|
148
|
+
kubectl_wrapper=kubectl_wrapper,
|
|
149
|
+
namespace=poll_response.namespace,
|
|
150
|
+
pod=poll_response.pod_name,
|
|
151
|
+
source=args.copy_file_source,
|
|
152
|
+
dest=args.copy_file_dest,
|
|
153
|
+
token=token_response.token,
|
|
154
|
+
).split(" ")
|
|
155
|
+
call = subprocess.run(cp_command, capture_output=True)
|
|
156
|
+
if call.returncode != 0:
|
|
157
|
+
print("Error copying file from remote-run pod: ", file=sys.stderr)
|
|
158
|
+
print(call.stderr.decode("utf-8"), file=sys.stderr)
|
|
159
|
+
return 1
|
|
160
|
+
print(f"{args.copy_file_source} successfully copied to {args.copy_file_dest}")
|
|
161
|
+
|
|
162
|
+
return 0
|
|
163
|
+
|
|
164
|
+
|
|
77
165
|
def paasta_remote_run_start(
|
|
78
166
|
args: argparse.Namespace,
|
|
79
167
|
system_paasta_config: SystemPaastaConfig,
|
|
@@ -87,7 +175,6 @@ def paasta_remote_run_start(
|
|
|
87
175
|
if not client:
|
|
88
176
|
print("Cannot get a paasta-api client")
|
|
89
177
|
return 1
|
|
90
|
-
|
|
91
178
|
user = get_username()
|
|
92
179
|
try:
|
|
93
180
|
start_response = client.remote_run.remote_run_start(
|
|
@@ -152,9 +239,7 @@ def paasta_remote_run_start(
|
|
|
152
239
|
token_response = client.remote_run.remote_run_token(
|
|
153
240
|
args.service, args.instance, user
|
|
154
241
|
)
|
|
155
|
-
kubectl_wrapper =
|
|
156
|
-
if not shutil.which(kubectl_wrapper):
|
|
157
|
-
kubectl_wrapper = f"kubectl-{args.cluster}"
|
|
242
|
+
kubectl_wrapper = _get_kubectl_wrapper(args.cluster)
|
|
158
243
|
exec_command = (
|
|
159
244
|
KUBECTL_LOGS_CMD_TEMPLATE if args.follow else KUBECTL_EXEC_CMD_TEMPLATE
|
|
160
245
|
).format(
|
|
@@ -166,11 +251,12 @@ def paasta_remote_run_start(
|
|
|
166
251
|
|
|
167
252
|
if args.copy_file:
|
|
168
253
|
for filename in args.copy_file:
|
|
169
|
-
cp_command =
|
|
254
|
+
cp_command = KUBECTL_CP_TO_CMD_TEMPLATE.format(
|
|
170
255
|
kubectl_wrapper=kubectl_wrapper,
|
|
171
256
|
namespace=poll_response.namespace,
|
|
172
257
|
pod=poll_response.pod_name,
|
|
173
|
-
|
|
258
|
+
source=filename,
|
|
259
|
+
dest=os.path.join("/tmp", filename),
|
|
174
260
|
token=token_response.token,
|
|
175
261
|
).split(" ")
|
|
176
262
|
call = subprocess.run(cp_command, capture_output=True)
|
|
@@ -318,8 +404,31 @@ def add_subparser(subparsers: argparse._SubParsersAction) -> None:
|
|
|
318
404
|
description="Stop your remote-run job if it exists",
|
|
319
405
|
formatter_class=argparse.ArgumentDefaultsHelpFormatter,
|
|
320
406
|
)
|
|
407
|
+
copy_parser = subparsers.add_parser(
|
|
408
|
+
"copy",
|
|
409
|
+
help="Copy a file from a running remote-run job",
|
|
410
|
+
description="Copy a file from a running remote-run job",
|
|
411
|
+
formatter_class=argparse.ArgumentDefaultsHelpFormatter,
|
|
412
|
+
)
|
|
413
|
+
copy_parser.add_argument(
|
|
414
|
+
"copy_file_source",
|
|
415
|
+
help="Location of the file within the pod",
|
|
416
|
+
type=str,
|
|
417
|
+
)
|
|
418
|
+
copy_parser.add_argument(
|
|
419
|
+
"copy_file_dest",
|
|
420
|
+
help="Location on the local host to copy the file to",
|
|
421
|
+
type=str,
|
|
422
|
+
)
|
|
423
|
+
copy_parser.add_argument(
|
|
424
|
+
"--to-pod",
|
|
425
|
+
help="Copy a file to the pod instead of from the pod",
|
|
426
|
+
action="store_true",
|
|
427
|
+
default=False,
|
|
428
|
+
)
|
|
321
429
|
add_common_args_to_parser(start_parser)
|
|
322
430
|
add_common_args_to_parser(stop_parser)
|
|
431
|
+
add_common_args_to_parser(copy_parser)
|
|
323
432
|
remote_run_parser.set_defaults(command=paasta_remote_run)
|
|
324
433
|
|
|
325
434
|
|
|
@@ -329,4 +438,6 @@ def paasta_remote_run(args: argparse.Namespace) -> int:
|
|
|
329
438
|
return paasta_remote_run_start(args, system_paasta_config)
|
|
330
439
|
elif args.remote_run_command == "stop":
|
|
331
440
|
return paasta_remote_run_stop(args, system_paasta_config)
|
|
441
|
+
elif args.remote_run_command == "copy":
|
|
442
|
+
return paasta_remote_run_copy(args, system_paasta_config)
|
|
332
443
|
raise ValueError(f"Unsupported subcommand: {args.remote_run_command}")
|
|
@@ -44,7 +44,7 @@ from paasta_tools.kubernetes_tools import KubeClient
|
|
|
44
44
|
from paasta_tools.kubernetes_tools import limit_size_with_hash
|
|
45
45
|
from paasta_tools.kubernetes_tools import paasta_prefixed
|
|
46
46
|
from paasta_tools.utils import load_system_paasta_config
|
|
47
|
-
|
|
47
|
+
from paasta_tools.utils import NoConfigurationForServiceError
|
|
48
48
|
|
|
49
49
|
logger = logging.getLogger(__name__)
|
|
50
50
|
REMOTE_RUN_JOB_LABEL = "remote-run"
|
|
@@ -66,8 +66,8 @@ class RemoteRunOutcome(TypedDict, total=False):
|
|
|
66
66
|
namespace: str
|
|
67
67
|
|
|
68
68
|
|
|
69
|
-
def
|
|
70
|
-
|
|
69
|
+
def format_remote_run_job_name(
|
|
70
|
+
job_name: str,
|
|
71
71
|
user: str,
|
|
72
72
|
) -> str:
|
|
73
73
|
"""Format name for remote run job
|
|
@@ -76,7 +76,35 @@ def _format_remote_run_job_name(
|
|
|
76
76
|
:param str user: the user requesting the remote-run
|
|
77
77
|
:return: job name
|
|
78
78
|
"""
|
|
79
|
-
return limit_size_with_hash(f"remote-run-{user}-{
|
|
79
|
+
return limit_size_with_hash(f"remote-run-{user}-{job_name}")
|
|
80
|
+
|
|
81
|
+
|
|
82
|
+
def load_eks_or_adhoc_deployment_config(
|
|
83
|
+
service: str,
|
|
84
|
+
instance: str,
|
|
85
|
+
cluster: str,
|
|
86
|
+
is_toolbox: bool = False,
|
|
87
|
+
user: Optional[str] = None,
|
|
88
|
+
) -> EksDeploymentConfig:
|
|
89
|
+
assert user or not is_toolbox, "User required for toolbox deployment"
|
|
90
|
+
try:
|
|
91
|
+
deployment_config = (
|
|
92
|
+
generate_toolbox_deployment(service, cluster, user)
|
|
93
|
+
if is_toolbox
|
|
94
|
+
else load_eks_service_config(service, instance, cluster)
|
|
95
|
+
)
|
|
96
|
+
except NoConfigurationForServiceError:
|
|
97
|
+
# Perhaps they are trying to use an adhoc instance
|
|
98
|
+
deployment_config = load_adhoc_job_config(service, instance, cluster)
|
|
99
|
+
deployment_config = EksDeploymentConfig(
|
|
100
|
+
service,
|
|
101
|
+
cluster,
|
|
102
|
+
instance,
|
|
103
|
+
config_dict=deployment_config.config_dict,
|
|
104
|
+
branch_dict=deployment_config.branch_dict,
|
|
105
|
+
)
|
|
106
|
+
deployment_config.config_filename_prefix = "adhoc"
|
|
107
|
+
return deployment_config
|
|
80
108
|
|
|
81
109
|
|
|
82
110
|
def remote_run_start(
|
|
@@ -106,10 +134,8 @@ def remote_run_start(
|
|
|
106
134
|
kube_client = KubeClient()
|
|
107
135
|
|
|
108
136
|
# Load the service deployment settings
|
|
109
|
-
deployment_config = (
|
|
110
|
-
|
|
111
|
-
if is_toolbox
|
|
112
|
-
else load_eks_service_config(service, instance, cluster)
|
|
137
|
+
deployment_config = load_eks_or_adhoc_deployment_config(
|
|
138
|
+
service, instance, cluster, is_toolbox, user
|
|
113
139
|
)
|
|
114
140
|
|
|
115
141
|
# Set override command, or sleep for interactive mode
|
|
@@ -124,7 +150,7 @@ def remote_run_start(
|
|
|
124
150
|
deadline_seconds=max_duration,
|
|
125
151
|
keep_routable_ip=is_toolbox,
|
|
126
152
|
)
|
|
127
|
-
job_name =
|
|
153
|
+
job_name = format_remote_run_job_name(formatted_job.metadata.name, user)
|
|
128
154
|
formatted_job.metadata.name = job_name
|
|
129
155
|
app_wrapper = get_application_wrapper(formatted_job)
|
|
130
156
|
app_wrapper.soa_config = deployment_config
|
|
@@ -182,10 +208,8 @@ def remote_run_ready(
|
|
|
182
208
|
kube_client = KubeClient()
|
|
183
209
|
|
|
184
210
|
# Load the service deployment settings
|
|
185
|
-
deployment_config = (
|
|
186
|
-
|
|
187
|
-
if is_toolbox
|
|
188
|
-
else load_eks_service_config(service, instance, cluster)
|
|
211
|
+
deployment_config = load_eks_or_adhoc_deployment_config(
|
|
212
|
+
service, instance, cluster, is_toolbox, user
|
|
189
213
|
)
|
|
190
214
|
namespace = deployment_config.get_namespace()
|
|
191
215
|
|
|
@@ -229,17 +253,15 @@ def remote_run_stop(
|
|
|
229
253
|
kube_client = KubeClient()
|
|
230
254
|
|
|
231
255
|
# Load the service deployment settings
|
|
232
|
-
deployment_config = (
|
|
233
|
-
|
|
234
|
-
if is_toolbox
|
|
235
|
-
else load_eks_service_config(service, instance, cluster)
|
|
256
|
+
deployment_config = load_eks_or_adhoc_deployment_config(
|
|
257
|
+
service, instance, cluster, is_toolbox, user
|
|
236
258
|
)
|
|
237
259
|
|
|
238
260
|
# Rebuild the job metadata
|
|
239
261
|
formatted_job = deployment_config.format_kubernetes_job(
|
|
240
262
|
job_label=REMOTE_RUN_JOB_LABEL
|
|
241
263
|
)
|
|
242
|
-
job_name =
|
|
264
|
+
job_name = format_remote_run_job_name(formatted_job.metadata.name, user)
|
|
243
265
|
formatted_job.metadata.name = job_name
|
|
244
266
|
|
|
245
267
|
# Stop the job
|
|
@@ -267,14 +289,14 @@ def remote_run_token(
|
|
|
267
289
|
kube_client = KubeClient()
|
|
268
290
|
|
|
269
291
|
# Load the service deployment settings
|
|
270
|
-
deployment_config =
|
|
292
|
+
deployment_config = load_eks_or_adhoc_deployment_config(service, instance, cluster)
|
|
271
293
|
namespace = deployment_config.get_namespace()
|
|
272
294
|
|
|
273
295
|
# Rebuild the job metadata
|
|
274
296
|
formatted_job = deployment_config.format_kubernetes_job(
|
|
275
297
|
job_label=REMOTE_RUN_JOB_LABEL
|
|
276
298
|
)
|
|
277
|
-
job_name =
|
|
299
|
+
job_name = format_remote_run_job_name(formatted_job.metadata.name, user)
|
|
278
300
|
|
|
279
301
|
# Find pod and create exec token for it
|
|
280
302
|
pod = find_job_pod(kube_client, namespace, job_name)
|
|
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.29.0 → paasta_tools-1.30.1}/paasta_tools/autoscaling/autoscaling_service_lib.py
RENAMED
|
File without changes
|
|
File without changes
|
{paasta_tools-1.29.0 → paasta_tools-1.30.1}/paasta_tools/autoscaling/max_all_k8s_services.py
RENAMED
|
File without changes
|
{paasta_tools-1.29.0 → paasta_tools-1.30.1}/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.29.0 → paasta_tools-1.30.1}/paasta_tools/check_kubernetes_services_replication.py
RENAMED
|
File without changes
|
|
File without changes
|
{paasta_tools-1.29.0 → paasta_tools-1.30.1}/paasta_tools/check_services_replication_tools.py
RENAMED
|
File without changes
|
|
File without changes
|
{paasta_tools-1.29.0 → paasta_tools-1.30.1}/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.29.0 → paasta_tools-1.30.1}/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.29.0 → paasta_tools-1.30.1}/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.29.0 → paasta_tools-1.30.1}/paasta_tools/contrib/bounce_log_latency_parser.py
RENAMED
|
File without changes
|
{paasta_tools-1.29.0 → paasta_tools-1.30.1}/paasta_tools/contrib/check_manual_oapi_changes.sh
RENAMED
|
File without changes
|
|
File without changes
|