paasta-tools 1.32.0__tar.gz → 1.33.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.32.0/paasta_tools.egg-info → paasta_tools-1.33.1}/PKG-INFO +1 -1
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/paasta_tools/__init__.py +1 -1
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/paasta_tools/cli/cmds/local_run.py +90 -21
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/paasta_tools/utils.py +9 -0
- {paasta_tools-1.32.0 → paasta_tools-1.33.1/paasta_tools.egg-info}/PKG-INFO +1 -1
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/LICENSE +0 -0
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/MANIFEST.in +0 -0
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/README.md +0 -0
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/k8s_itests/__init__.py +0 -0
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/k8s_itests/test_autoscaling.py +0 -0
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/k8s_itests/utils.py +0 -0
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/paasta_tools/adhoc_tools.py +0 -0
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/paasta_tools/api/__init__.py +0 -0
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/paasta_tools/api/api.py +0 -0
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/paasta_tools/api/api_docs/swagger.json +0 -0
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/paasta_tools/api/client.py +0 -0
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/paasta_tools/api/settings.py +0 -0
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/paasta_tools/api/tweens/__init__.py +0 -0
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/paasta_tools/api/tweens/auth.py +0 -0
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/paasta_tools/api/tweens/profiling.py +0 -0
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/paasta_tools/api/tweens/request_logger.py +0 -0
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/paasta_tools/api/views/__init__.py +0 -0
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/paasta_tools/api/views/autoscaler.py +0 -0
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/paasta_tools/api/views/exception.py +0 -0
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/paasta_tools/api/views/flink.py +0 -0
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/paasta_tools/api/views/instance.py +0 -0
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/paasta_tools/api/views/pause_autoscaler.py +0 -0
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/paasta_tools/api/views/remote_run.py +0 -0
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/paasta_tools/api/views/resources.py +0 -0
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/paasta_tools/api/views/service.py +0 -0
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/paasta_tools/api/views/version.py +0 -0
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/paasta_tools/apply_external_resources.py +0 -0
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/paasta_tools/async_utils.py +0 -0
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/paasta_tools/autoscaling/__init__.py +0 -0
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/paasta_tools/autoscaling/autoscaling_service_lib.py +0 -0
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/paasta_tools/autoscaling/forecasting.py +0 -0
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/paasta_tools/autoscaling/max_all_k8s_services.py +0 -0
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/paasta_tools/autoscaling/pause_service_autoscaler.py +0 -0
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/paasta_tools/autoscaling/utils.py +0 -0
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/paasta_tools/bounce_lib.py +0 -0
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/paasta_tools/broadcast_log_to_services.py +0 -0
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/paasta_tools/cassandracluster_tools.py +0 -0
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/paasta_tools/check_autoscaler_max_instances.py +0 -0
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/paasta_tools/check_cassandracluster_services_replication.py +0 -0
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/paasta_tools/check_flink_services_health.py +0 -0
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/paasta_tools/check_kubernetes_api.py +0 -0
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/paasta_tools/check_kubernetes_services_replication.py +0 -0
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/paasta_tools/check_oom_events.py +0 -0
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/paasta_tools/check_services_replication_tools.py +0 -0
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/paasta_tools/check_spark_jobs.py +0 -0
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/paasta_tools/cleanup_expired_autoscaling_overrides.py +0 -0
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/paasta_tools/cleanup_kubernetes_cr.py +0 -0
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/paasta_tools/cleanup_kubernetes_crd.py +0 -0
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/paasta_tools/cleanup_kubernetes_jobs.py +0 -0
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/paasta_tools/cleanup_tron_namespaces.py +0 -0
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/paasta_tools/cli/__init__.py +0 -0
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/paasta_tools/cli/authentication.py +0 -0
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/paasta_tools/cli/cli.py +0 -0
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/paasta_tools/cli/cmds/__init__.py +0 -0
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/paasta_tools/cli/cmds/autoscale.py +0 -0
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/paasta_tools/cli/cmds/check.py +0 -0
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/paasta_tools/cli/cmds/cook_image.py +0 -0
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/paasta_tools/cli/cmds/get_docker_image.py +0 -0
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/paasta_tools/cli/cmds/get_image_version.py +0 -0
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/paasta_tools/cli/cmds/get_latest_deployment.py +0 -0
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/paasta_tools/cli/cmds/info.py +0 -0
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/paasta_tools/cli/cmds/itest.py +0 -0
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/paasta_tools/cli/cmds/list.py +0 -0
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/paasta_tools/cli/cmds/list_clusters.py +0 -0
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/paasta_tools/cli/cmds/list_deploy_queue.py +0 -0
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/paasta_tools/cli/cmds/list_namespaces.py +0 -0
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/paasta_tools/cli/cmds/logs.py +0 -0
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/paasta_tools/cli/cmds/mark_for_deployment.py +0 -0
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/paasta_tools/cli/cmds/mesh_status.py +0 -0
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/paasta_tools/cli/cmds/pause_service_autoscaler.py +0 -0
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/paasta_tools/cli/cmds/push_to_registry.py +0 -0
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/paasta_tools/cli/cmds/remote_run.py +0 -0
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/paasta_tools/cli/cmds/rollback.py +0 -0
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/paasta_tools/cli/cmds/secret.py +0 -0
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/paasta_tools/cli/cmds/security_check.py +0 -0
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/paasta_tools/cli/cmds/spark_run.py +0 -0
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/paasta_tools/cli/cmds/start_stop_restart.py +0 -0
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/paasta_tools/cli/cmds/status.py +0 -0
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/paasta_tools/cli/cmds/validate.py +0 -0
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/paasta_tools/cli/cmds/wait_for_deployment.py +0 -0
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/paasta_tools/cli/fsm/__init__.py +0 -0
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/paasta_tools/cli/fsm/autosuggest.py +0 -0
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/paasta_tools/cli/fsm/template/README.md +0 -0
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/paasta_tools/cli/fsm/template/cookiecutter.json +0 -0
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/paasta_tools/cli/fsm/template/{{cookiecutter.service}}/kubernetes-PROD.yaml +0 -0
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/paasta_tools/cli/fsm/template/{{cookiecutter.service}}/monitoring.yaml +0 -0
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/paasta_tools/cli/fsm/template/{{cookiecutter.service}}/service.yaml +0 -0
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/paasta_tools/cli/fsm/template/{{cookiecutter.service}}/smartstack.yaml +0 -0
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/paasta_tools/cli/fsm_cmd.py +0 -0
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/paasta_tools/cli/paasta_tabcomplete.sh +0 -0
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/paasta_tools/cli/schemas/adhoc_schema.json +0 -0
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/paasta_tools/cli/schemas/autoscaling_schema.json +0 -0
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/paasta_tools/cli/schemas/autotuned_defaults/cassandracluster_schema.json +0 -0
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/paasta_tools/cli/schemas/autotuned_defaults/kubernetes_schema.json +0 -0
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/paasta_tools/cli/schemas/deploy_schema.json +0 -0
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/paasta_tools/cli/schemas/eks_schema.json +0 -0
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/paasta_tools/cli/schemas/kubernetes_schema.json +0 -0
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/paasta_tools/cli/schemas/rollback_schema.json +0 -0
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/paasta_tools/cli/schemas/service_schema.json +0 -0
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/paasta_tools/cli/schemas/smartstack_schema.json +0 -0
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/paasta_tools/cli/schemas/tron_schema.json +0 -0
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/paasta_tools/cli/utils.py +0 -0
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/paasta_tools/clusterman.py +0 -0
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/paasta_tools/config_utils.py +0 -0
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/paasta_tools/contrib/__init__.py +0 -0
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/paasta_tools/contrib/bounce_log_latency_parser.py +0 -0
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/paasta_tools/contrib/check_manual_oapi_changes.sh +0 -0
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/paasta_tools/contrib/check_orphans.py +0 -0
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/paasta_tools/contrib/create_dynamodb_table.py +0 -0
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/paasta_tools/contrib/create_paasta_playground.py +0 -0
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/paasta_tools/contrib/emit_allocated_cpu_metrics.py +0 -0
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/paasta_tools/contrib/get_running_task_allocation.py +0 -0
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/paasta_tools/contrib/habitat_fixer.py +0 -0
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/paasta_tools/contrib/ide_helper.py +0 -0
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/paasta_tools/contrib/is_pod_healthy_in_proxy.py +0 -0
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/paasta_tools/contrib/is_pod_healthy_in_smartstack.py +0 -0
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/paasta_tools/contrib/kill_bad_containers.py +0 -0
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/paasta_tools/contrib/mass-deploy-tag.sh +0 -0
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/paasta_tools/contrib/mock_patch_checker.py +0 -0
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/paasta_tools/contrib/paasta_update_soa_memcpu.py +0 -0
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/paasta_tools/contrib/render_template.py +0 -0
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/paasta_tools/contrib/rightsizer_soaconfigs_update.py +0 -0
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/paasta_tools/contrib/service_shard_remove.py +0 -0
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/paasta_tools/contrib/service_shard_update.py +0 -0
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/paasta_tools/contrib/shared_ip_check.py +0 -0
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/paasta_tools/contrib/timeouts_metrics_prom.py +0 -0
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/paasta_tools/delete_kubernetes_deployments.py +0 -0
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/paasta_tools/deployment_utils.py +0 -0
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/paasta_tools/docker_wrapper.py +0 -0
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/paasta_tools/docker_wrapper_imports.py +0 -0
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/paasta_tools/drain_lib.py +0 -0
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/paasta_tools/dump_locally_running_services.py +0 -0
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/paasta_tools/eks_tools.py +0 -0
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/paasta_tools/envoy_tools.py +0 -0
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/paasta_tools/firewall.py +0 -0
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/paasta_tools/firewall_logging.py +0 -0
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/paasta_tools/firewall_update.py +0 -0
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/paasta_tools/flink_tools.py +0 -0
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/paasta_tools/flinkeks_tools.py +0 -0
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/paasta_tools/frameworks/__init__.py +0 -0
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/paasta_tools/frameworks/constraints.py +0 -0
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/paasta_tools/frameworks/native_service_config.py +0 -0
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/paasta_tools/generate_all_deployments +0 -0
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/paasta_tools/generate_authenticating_services.py +0 -0
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/paasta_tools/generate_deployments_for_service.py +0 -0
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/paasta_tools/generate_services_file.py +0 -0
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/paasta_tools/generate_services_yaml.py +0 -0
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/paasta_tools/hacheck.py +0 -0
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/paasta_tools/instance/__init__.py +0 -0
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/paasta_tools/instance/hpa_metrics_parser.py +0 -0
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/paasta_tools/instance/kubernetes.py +0 -0
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/paasta_tools/iptables.py +0 -0
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/paasta_tools/kafkacluster_tools.py +0 -0
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/paasta_tools/kubernetes/__init__.py +0 -0
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/paasta_tools/kubernetes/application/__init__.py +0 -0
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/paasta_tools/kubernetes/application/controller_wrappers.py +0 -0
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/paasta_tools/kubernetes/application/tools.py +0 -0
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/paasta_tools/kubernetes/bin/__init__.py +0 -0
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/paasta_tools/kubernetes/bin/kubernetes_remove_evicted_pods.py +0 -0
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/paasta_tools/kubernetes/bin/paasta_cleanup_remote_run_resources.py +0 -0
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/paasta_tools/kubernetes/bin/paasta_cleanup_stale_nodes.py +0 -0
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/paasta_tools/kubernetes/bin/paasta_secrets_sync.py +0 -0
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/paasta_tools/kubernetes/remote_run.py +0 -0
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/paasta_tools/kubernetes_tools.py +0 -0
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/paasta_tools/list_kubernetes_service_instances.py +0 -0
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/paasta_tools/list_tron_namespaces.py +0 -0
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/paasta_tools/long_running_service_tools.py +0 -0
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/paasta_tools/mac_address.py +0 -0
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/paasta_tools/marathon_dashboard.py +0 -0
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/paasta_tools/mesos/__init__.py +0 -0
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/paasta_tools/mesos/cfg.py +0 -0
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/paasta_tools/mesos/cluster.py +0 -0
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/paasta_tools/mesos/exceptions.py +0 -0
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/paasta_tools/mesos/framework.py +0 -0
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/paasta_tools/mesos/log.py +0 -0
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/paasta_tools/mesos/master.py +0 -0
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/paasta_tools/mesos/mesos_file.py +0 -0
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/paasta_tools/mesos/parallel.py +0 -0
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/paasta_tools/mesos/slave.py +0 -0
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/paasta_tools/mesos/task.py +0 -0
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/paasta_tools/mesos/util.py +0 -0
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/paasta_tools/mesos/zookeeper.py +0 -0
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/paasta_tools/mesos_tools.py +0 -0
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/paasta_tools/metrics/__init__.py +0 -0
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/paasta_tools/metrics/metastatus_lib.py +0 -0
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/paasta_tools/metrics/metrics_lib.py +0 -0
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/paasta_tools/monitoring/__init__.py +0 -0
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/paasta_tools/monitoring/check_k8s_api_performance.py +0 -0
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/paasta_tools/monitoring_tools.py +0 -0
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/paasta_tools/monkrelaycluster_tools.py +0 -0
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/paasta_tools/nrtsearchservice_tools.py +0 -0
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/paasta_tools/nrtsearchserviceeks_tools.py +0 -0
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/paasta_tools/oom_logger.py +0 -0
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/paasta_tools/paasta_deploy_tron_jobs +0 -0
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/paasta_tools/paasta_execute_docker_command.py +0 -0
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/paasta_tools/paasta_service_config_loader.py +0 -0
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/paasta_tools/paastaapi/__init__.py +0 -0
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/paasta_tools/paastaapi/api/__init__.py +0 -0
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/paasta_tools/paastaapi/api/autoscaler_api.py +0 -0
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/paasta_tools/paastaapi/api/default_api.py +0 -0
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/paasta_tools/paastaapi/api/remote_run_api.py +0 -0
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/paasta_tools/paastaapi/api/resources_api.py +0 -0
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/paasta_tools/paastaapi/api/service_api.py +0 -0
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/paasta_tools/paastaapi/api_client.py +0 -0
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/paasta_tools/paastaapi/apis/__init__.py +0 -0
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/paasta_tools/paastaapi/configuration.py +0 -0
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/paasta_tools/paastaapi/exceptions.py +0 -0
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/paasta_tools/paastaapi/model/__init__.py +0 -0
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/paasta_tools/paastaapi/model/adhoc_launch_history.py +0 -0
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/paasta_tools/paastaapi/model/autoscaler_count_msg.py +0 -0
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/paasta_tools/paastaapi/model/autoscaling_override.py +0 -0
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/paasta_tools/paastaapi/model/deploy_queue.py +0 -0
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/paasta_tools/paastaapi/model/deploy_queue_service_instance.py +0 -0
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/paasta_tools/paastaapi/model/envoy_backend.py +0 -0
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/paasta_tools/paastaapi/model/envoy_location.py +0 -0
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/paasta_tools/paastaapi/model/envoy_status.py +0 -0
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/paasta_tools/paastaapi/model/flink_cluster_overview.py +0 -0
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/paasta_tools/paastaapi/model/flink_config.py +0 -0
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/paasta_tools/paastaapi/model/flink_job.py +0 -0
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/paasta_tools/paastaapi/model/flink_job_details.py +0 -0
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/paasta_tools/paastaapi/model/flink_jobs.py +0 -0
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/paasta_tools/paastaapi/model/float_and_error.py +0 -0
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/paasta_tools/paastaapi/model/hpa_metric.py +0 -0
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/paasta_tools/paastaapi/model/inline_object.py +0 -0
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/paasta_tools/paastaapi/model/inline_response200.py +0 -0
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/paasta_tools/paastaapi/model/inline_response2001.py +0 -0
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/paasta_tools/paastaapi/model/inline_response202.py +0 -0
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/paasta_tools/paastaapi/model/inline_response403.py +0 -0
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/paasta_tools/paastaapi/model/instance_bounce_status.py +0 -0
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/paasta_tools/paastaapi/model/instance_mesh_status.py +0 -0
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/paasta_tools/paastaapi/model/instance_status.py +0 -0
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/paasta_tools/paastaapi/model/instance_status_adhoc.py +0 -0
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/paasta_tools/paastaapi/model/instance_status_cassandracluster.py +0 -0
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/paasta_tools/paastaapi/model/instance_status_flink.py +0 -0
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/paasta_tools/paastaapi/model/instance_status_kafkacluster.py +0 -0
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/paasta_tools/paastaapi/model/instance_status_kubernetes.py +0 -0
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/paasta_tools/paastaapi/model/instance_status_kubernetes_autoscaling_status.py +0 -0
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/paasta_tools/paastaapi/model/instance_status_kubernetes_v2.py +0 -0
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/paasta_tools/paastaapi/model/instance_status_tron.py +0 -0
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/paasta_tools/paastaapi/model/instance_tasks.py +0 -0
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/paasta_tools/paastaapi/model/integer_and_error.py +0 -0
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/paasta_tools/paastaapi/model/kubernetes_container.py +0 -0
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/paasta_tools/paastaapi/model/kubernetes_container_v2.py +0 -0
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/paasta_tools/paastaapi/model/kubernetes_healthcheck.py +0 -0
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/paasta_tools/paastaapi/model/kubernetes_pod.py +0 -0
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/paasta_tools/paastaapi/model/kubernetes_pod_event.py +0 -0
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/paasta_tools/paastaapi/model/kubernetes_pod_v2.py +0 -0
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/paasta_tools/paastaapi/model/kubernetes_replica_set.py +0 -0
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/paasta_tools/paastaapi/model/kubernetes_version.py +0 -0
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/paasta_tools/paastaapi/model/remote_run_outcome.py +0 -0
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/paasta_tools/paastaapi/model/remote_run_start.py +0 -0
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/paasta_tools/paastaapi/model/remote_run_stop.py +0 -0
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/paasta_tools/paastaapi/model/remote_run_token.py +0 -0
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/paasta_tools/paastaapi/model/resource.py +0 -0
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/paasta_tools/paastaapi/model/resource_item.py +0 -0
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/paasta_tools/paastaapi/model/resource_value.py +0 -0
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/paasta_tools/paastaapi/model/smartstack_backend.py +0 -0
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/paasta_tools/paastaapi/model/smartstack_location.py +0 -0
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/paasta_tools/paastaapi/model/smartstack_status.py +0 -0
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/paasta_tools/paastaapi/model/task_tail_lines.py +0 -0
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/paasta_tools/paastaapi/model_utils.py +0 -0
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/paasta_tools/paastaapi/models/__init__.py +0 -0
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/paasta_tools/paastaapi/rest.py +0 -0
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/paasta_tools/prune_completed_pods.py +0 -0
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/paasta_tools/puppet_service_tools.py +0 -0
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/paasta_tools/py.typed +0 -0
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/paasta_tools/remote_git.py +0 -0
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/paasta_tools/run-paasta-api-in-dev-mode.py +0 -0
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/paasta_tools/run-paasta-api-playground.py +0 -0
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/paasta_tools/secret_providers/__init__.py +0 -0
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/paasta_tools/secret_providers/vault.py +0 -0
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/paasta_tools/secret_tools.py +0 -0
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/paasta_tools/setup_istio_mesh.py +0 -0
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/paasta_tools/setup_kubernetes_cr.py +0 -0
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/paasta_tools/setup_kubernetes_crd.py +0 -0
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/paasta_tools/setup_kubernetes_internal_crd.py +0 -0
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/paasta_tools/setup_kubernetes_job.py +0 -0
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/paasta_tools/setup_prometheus_adapter_config.py +0 -0
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/paasta_tools/setup_tron_namespace.py +0 -0
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/paasta_tools/slack.py +0 -0
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/paasta_tools/smartstack_tools.py +0 -0
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/paasta_tools/spark_tools.py +0 -0
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/paasta_tools/synapse_srv_namespaces_fact.py +0 -0
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/paasta_tools/tron/__init__.py +0 -0
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/paasta_tools/tron/client.py +0 -0
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/paasta_tools/tron/tron_command_context.py +0 -0
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/paasta_tools/tron/tron_timeutils.py +0 -0
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/paasta_tools/tron_tools.py +0 -0
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/paasta_tools/yaml_tools.py +0 -0
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/paasta_tools.egg-info/SOURCES.txt +0 -0
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/paasta_tools.egg-info/dependency_links.txt +0 -0
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/paasta_tools.egg-info/entry_points.txt +0 -0
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/paasta_tools.egg-info/requires.txt +0 -0
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/paasta_tools.egg-info/top_level.txt +0 -0
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/pyproject.toml +0 -0
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/requirements-minimal.txt +0 -0
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/setup.cfg +0 -0
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/setup.py +0 -0
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/tests/test_adhoc_tools.py +0 -0
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/tests/test_apply_external_resources.py +0 -0
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/tests/test_async_utils.py +0 -0
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/tests/test_bounce_lib.py +0 -0
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/tests/test_check_flink_services_health.py +0 -0
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/tests/test_check_kubernetes_services_replication.py +0 -0
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/tests/test_check_oom_events.py +0 -0
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/tests/test_check_service_replication_tools.py +0 -0
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/tests/test_check_spark_jobs.py +0 -0
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/tests/test_cleanup_kubernetes_jobs.py +0 -0
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/tests/test_config_utils.py +0 -0
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/tests/test_delete_kubernetes_deployments.py +0 -0
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/tests/test_deployment_utils.py +0 -0
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/tests/test_docker_wrapper.py +0 -0
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/tests/test_drain_lib.py +0 -0
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/tests/test_eks_tools.py +0 -0
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/tests/test_envoy_tools.py +0 -0
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/tests/test_firewall.py +0 -0
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/tests/test_firewall_logging.py +0 -0
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/tests/test_firewall_update.py +0 -0
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/tests/test_flink_tools.py +0 -0
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/tests/test_flinkeks_tools.py +0 -0
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/tests/test_generate_authenticating_services.py +0 -0
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/tests/test_generate_deployments_for_service.py +0 -0
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/tests/test_generate_services_file.py +0 -0
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/tests/test_generate_services_yaml.py +0 -0
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/tests/test_hacheck.py +0 -0
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/tests/test_iptables.py +0 -0
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/tests/test_kubernetes_tools.py +0 -0
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/tests/test_list_kubernetes_service_instances.py +0 -0
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/tests/test_long_running_service_tools.py +0 -0
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/tests/test_mac_address.py +0 -0
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/tests/test_mesos_tools.py +0 -0
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/tests/test_monitoring_tools.py +0 -0
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/tests/test_nrtsearchserviceseks_tools.py +0 -0
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/tests/test_oom_logger.py +0 -0
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/tests/test_paasta_execute_docker_command.py +0 -0
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/tests/test_paasta_service_config_loader.py +0 -0
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/tests/test_puppet_service_tools.py +0 -0
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/tests/test_remote_git.py +0 -0
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/tests/test_secret_tools.py +0 -0
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/tests/test_setup_istio_mesh.py +0 -0
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/tests/test_setup_kubernetes_cr.py +0 -0
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/tests/test_setup_kubernetes_job.py +0 -0
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/tests/test_setup_prometheus_adapter_config.py +0 -0
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/tests/test_slack.py +0 -0
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/tests/test_smartstack_tools.py +0 -0
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/tests/test_spark_tools.py +0 -0
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/tests/test_tron_tools.py +0 -0
- {paasta_tools-1.32.0 → paasta_tools-1.33.1}/tests/test_utils.py +0 -0
|
@@ -12,6 +12,7 @@
|
|
|
12
12
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
13
|
# See the License for the specific language governing permissions and
|
|
14
14
|
# limitations under the License.
|
|
15
|
+
import base64
|
|
15
16
|
import datetime
|
|
16
17
|
import json
|
|
17
18
|
import os
|
|
@@ -31,6 +32,7 @@ from urllib.parse import urlparse
|
|
|
31
32
|
import boto3
|
|
32
33
|
import requests
|
|
33
34
|
from docker import errors
|
|
35
|
+
from docker.api.client import APIClient
|
|
34
36
|
from mypy_extensions import TypedDict
|
|
35
37
|
|
|
36
38
|
from paasta_tools.adhoc_tools import get_default_interactive_config
|
|
@@ -73,6 +75,12 @@ from paasta_tools.utils import Timeout
|
|
|
73
75
|
from paasta_tools.utils import TimeoutError
|
|
74
76
|
from paasta_tools.utils import validate_service_instance
|
|
75
77
|
|
|
78
|
+
STANDARD_PAASTA_CLI_PATHS = {
|
|
79
|
+
"/bin/paasta",
|
|
80
|
+
"/opt/venvs/paasta-tools/bin/paasta",
|
|
81
|
+
"/usr/bin/paasta",
|
|
82
|
+
}
|
|
83
|
+
|
|
76
84
|
|
|
77
85
|
class AWSSessionCreds(TypedDict):
|
|
78
86
|
AWS_ACCESS_KEY_ID: str
|
|
@@ -612,26 +620,70 @@ class LostContainerException(Exception):
|
|
|
612
620
|
pass
|
|
613
621
|
|
|
614
622
|
|
|
615
|
-
|
|
616
|
-
|
|
617
|
-
|
|
618
|
-
|
|
619
|
-
|
|
623
|
+
class DockerAuthConfig(TypedDict):
|
|
624
|
+
username: str
|
|
625
|
+
password: str
|
|
626
|
+
|
|
627
|
+
|
|
628
|
+
def get_readonly_docker_registry_auth_config(
|
|
629
|
+
docker_url: str,
|
|
630
|
+
) -> DockerAuthConfig | None:
|
|
631
|
+
system_paasta_config = load_system_paasta_config()
|
|
632
|
+
config_path = system_paasta_config.get_readonly_docker_registry_auth_file()
|
|
633
|
+
|
|
634
|
+
with open(config_path) as f:
|
|
635
|
+
docker_config = json.load(f)
|
|
636
|
+
registry = docker_url.split("/")[0]
|
|
637
|
+
|
|
638
|
+
# find matching auth config - our usual ro config will have at least two entries
|
|
639
|
+
# at the time this comment was written
|
|
640
|
+
auths = docker_config
|
|
641
|
+
for auth_url, auth_data in auths.items():
|
|
642
|
+
if registry in auth_url:
|
|
643
|
+
# Decode the base64 auth string if present
|
|
644
|
+
if "auth" in auth_data:
|
|
645
|
+
auth_string = base64.b64decode(auth_data["auth"]).decode("utf-8")
|
|
646
|
+
username, password = auth_string.split(":", 1)
|
|
647
|
+
return {"username": username, "password": password}
|
|
648
|
+
|
|
649
|
+
# afaik, we should only hit this if folks are being naughty and passing a docker url from docker-dev
|
|
650
|
+
return None
|
|
651
|
+
|
|
652
|
+
|
|
653
|
+
def docker_pull_image(docker_client: APIClient, docker_url: str) -> None:
|
|
654
|
+
"""Pull an image using the docker-py library with read-only registry credentials"""
|
|
620
655
|
print(
|
|
621
|
-
"Please wait while the image (
|
|
622
|
-
% docker_url,
|
|
656
|
+
f"Please wait while the image ({docker_url}) is pulled (times out after 30m)...",
|
|
623
657
|
file=sys.stderr,
|
|
624
658
|
)
|
|
625
|
-
|
|
626
|
-
|
|
627
|
-
|
|
628
|
-
|
|
629
|
-
|
|
630
|
-
|
|
631
|
-
|
|
632
|
-
|
|
633
|
-
|
|
634
|
-
|
|
659
|
+
|
|
660
|
+
auth_config = get_readonly_docker_registry_auth_config(docker_url)
|
|
661
|
+
if not auth_config:
|
|
662
|
+
print(
|
|
663
|
+
PaastaColors.yellow(
|
|
664
|
+
"Warning: No read-only docker registry credentials found, attempting to pull without authentication."
|
|
665
|
+
),
|
|
666
|
+
file=sys.stderr,
|
|
667
|
+
)
|
|
668
|
+
|
|
669
|
+
try:
|
|
670
|
+
with Timeout(
|
|
671
|
+
seconds=1800,
|
|
672
|
+
error_message=f"Timed out pulling docker image from {docker_url}",
|
|
673
|
+
):
|
|
674
|
+
# this is slightly funky since pull() returns the output line-by-line, but as a dict
|
|
675
|
+
# ...that we then need to format back to the usual `docker pull` output
|
|
676
|
+
# :p
|
|
677
|
+
for line in docker_client.pull(
|
|
678
|
+
docker_url, auth_config=auth_config, stream=True, decode=True
|
|
679
|
+
):
|
|
680
|
+
print(f"{line['id']}: {line['status']}", file=sys.stderr)
|
|
681
|
+
except Exception as e:
|
|
682
|
+
print(
|
|
683
|
+
f"\nPull failed. Error: {e}",
|
|
684
|
+
file=sys.stderr,
|
|
685
|
+
)
|
|
686
|
+
sys.exit(1)
|
|
635
687
|
|
|
636
688
|
|
|
637
689
|
def get_container_id(docker_client, container_name):
|
|
@@ -1226,7 +1278,7 @@ def configure_and_run_docker_container(
|
|
|
1226
1278
|
return 1
|
|
1227
1279
|
|
|
1228
1280
|
if pull_image:
|
|
1229
|
-
docker_pull_image(docker_url)
|
|
1281
|
+
docker_pull_image(docker_client, docker_url)
|
|
1230
1282
|
|
|
1231
1283
|
for volume in instance_config.get_volumes(
|
|
1232
1284
|
system_paasta_config.get_volumes(),
|
|
@@ -1303,9 +1355,26 @@ def docker_config_available():
|
|
|
1303
1355
|
|
|
1304
1356
|
|
|
1305
1357
|
def paasta_local_run(args):
|
|
1306
|
-
if args.action == "pull" and os.geteuid() != 0 and not
|
|
1307
|
-
|
|
1308
|
-
|
|
1358
|
+
if args.action == "pull" and os.geteuid() != 0 and not args.skip_secrets:
|
|
1359
|
+
# we unfortunately sometimes install paasta inside the virtualenv of repos where
|
|
1360
|
+
# folks might be running commands such as `paasta local-run`.
|
|
1361
|
+
# this tends to cause some confusion as this results folks being denied access
|
|
1362
|
+
# to sudo since the virtualenv paasta is not in our sudoers :)
|
|
1363
|
+
# NOTE: in the unlikely event that someone does need to run this from a venv,
|
|
1364
|
+
# there's an opt-out env var
|
|
1365
|
+
if (
|
|
1366
|
+
sys.argv[0] not in STANDARD_PAASTA_CLI_PATHS
|
|
1367
|
+
and "PAASTA_ALLOW_VENV" not in os.environ
|
|
1368
|
+
):
|
|
1369
|
+
print(
|
|
1370
|
+
"You are running the PaaSTA CLI from a virtualenv - this is unexpected. Re-executing `paasta` from the standard location.."
|
|
1371
|
+
)
|
|
1372
|
+
os.execvp("/usr/bin/paasta", ["/usr/bin/paasta"] + sys.argv[1:])
|
|
1373
|
+
# XXX: we should re-architect this to not need sudo, but for now,
|
|
1374
|
+
# re-exec ourselves with sudo to get access to the paasta vault token
|
|
1375
|
+
# NOTE: once we do that, we can also remove the venv check above :)
|
|
1376
|
+
print("Re-executing paasta local-run --pull with sudo for Vault access...")
|
|
1377
|
+
os.execvp("sudo", ["sudo", "-H", "/usr/bin/paasta"] + sys.argv[1:])
|
|
1309
1378
|
if args.action == "build" and not makefile_responds_to("cook-image"):
|
|
1310
1379
|
print(
|
|
1311
1380
|
"A local Makefile with a 'cook-image' target is required for --build",
|
|
@@ -182,6 +182,7 @@ CAPS_DROP = [
|
|
|
182
182
|
"SYS_CHROOT",
|
|
183
183
|
"SETFCAP",
|
|
184
184
|
]
|
|
185
|
+
DEFAULT_READONLY_DOCKER_REGISTRY_AUTH_FILE = "/nail/etc/docker-registry-ro"
|
|
185
186
|
|
|
186
187
|
|
|
187
188
|
class RollbackTypes(Enum):
|
|
@@ -2066,6 +2067,7 @@ class SystemPaastaConfigDict(TypedDict, total=False):
|
|
|
2066
2067
|
enable_tron_tsc: bool
|
|
2067
2068
|
default_spark_iam_user: str
|
|
2068
2069
|
default_spark_driver_pool_override: str
|
|
2070
|
+
readonly_docker_registry_auth_file: str
|
|
2069
2071
|
|
|
2070
2072
|
|
|
2071
2073
|
def load_system_paasta_config(
|
|
@@ -2840,6 +2842,13 @@ class SystemPaastaConfig:
|
|
|
2840
2842
|
# NOTE: this should never happen unless we've gotten bad data
|
|
2841
2843
|
return None
|
|
2842
2844
|
|
|
2845
|
+
def get_readonly_docker_registry_auth_file(self) -> str:
|
|
2846
|
+
"""Get the location of the readonly docker registry auth file as an absolute path."""
|
|
2847
|
+
return self.config_dict.get(
|
|
2848
|
+
"readonly_docker_registry_auth_file",
|
|
2849
|
+
DEFAULT_READONLY_DOCKER_REGISTRY_AUTH_FILE,
|
|
2850
|
+
)
|
|
2851
|
+
|
|
2843
2852
|
|
|
2844
2853
|
def _run(
|
|
2845
2854
|
command: Union[str, List[str]],
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
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.32.0 → paasta_tools-1.33.1}/paasta_tools/autoscaling/autoscaling_service_lib.py
RENAMED
|
File without changes
|
|
File without changes
|
{paasta_tools-1.32.0 → paasta_tools-1.33.1}/paasta_tools/autoscaling/max_all_k8s_services.py
RENAMED
|
File without changes
|
{paasta_tools-1.32.0 → paasta_tools-1.33.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.32.0 → paasta_tools-1.33.1}/paasta_tools/check_kubernetes_services_replication.py
RENAMED
|
File without changes
|
|
File without changes
|
{paasta_tools-1.32.0 → paasta_tools-1.33.1}/paasta_tools/check_services_replication_tools.py
RENAMED
|
File without changes
|
|
File without changes
|
{paasta_tools-1.32.0 → paasta_tools-1.33.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
|
{paasta_tools-1.32.0 → paasta_tools-1.33.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
|
|
File without changes
|
{paasta_tools-1.32.0 → paasta_tools-1.33.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.32.0 → paasta_tools-1.33.1}/paasta_tools/contrib/bounce_log_latency_parser.py
RENAMED
|
File without changes
|
{paasta_tools-1.32.0 → paasta_tools-1.33.1}/paasta_tools/contrib/check_manual_oapi_changes.sh
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{paasta_tools-1.32.0 → paasta_tools-1.33.1}/paasta_tools/contrib/create_paasta_playground.py
RENAMED
|
File without changes
|
{paasta_tools-1.32.0 → paasta_tools-1.33.1}/paasta_tools/contrib/emit_allocated_cpu_metrics.py
RENAMED
|
File without changes
|
{paasta_tools-1.32.0 → paasta_tools-1.33.1}/paasta_tools/contrib/get_running_task_allocation.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{paasta_tools-1.32.0 → paasta_tools-1.33.1}/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.32.0 → paasta_tools-1.33.1}/paasta_tools/contrib/paasta_update_soa_memcpu.py
RENAMED
|
File without changes
|
|
File without changes
|
{paasta_tools-1.32.0 → paasta_tools-1.33.1}/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
|
|
File without changes
|
{paasta_tools-1.32.0 → paasta_tools-1.33.1}/paasta_tools/frameworks/native_service_config.py
RENAMED
|
File without changes
|
|
File without changes
|
{paasta_tools-1.32.0 → paasta_tools-1.33.1}/paasta_tools/generate_authenticating_services.py
RENAMED
|
File without changes
|
{paasta_tools-1.32.0 → paasta_tools-1.33.1}/paasta_tools/generate_deployments_for_service.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
|