paasta-tools 0.231.0__tar.gz → 0.232.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.
Files changed (333) hide show
  1. {paasta-tools-0.231.0/paasta_tools.egg-info → paasta-tools-0.232.1}/PKG-INFO +1 -1
  2. {paasta-tools-0.231.0 → paasta-tools-0.232.1}/paasta_tools/__init__.py +1 -1
  3. {paasta-tools-0.231.0 → paasta-tools-0.232.1}/paasta_tools/cli/cmds/rollback.py +25 -5
  4. {paasta-tools-0.231.0 → paasta-tools-0.232.1}/paasta_tools/cli/schemas/eks_schema.json +22 -0
  5. {paasta-tools-0.231.0 → paasta-tools-0.232.1}/paasta_tools/cli/schemas/kubernetes_schema.json +22 -0
  6. {paasta-tools-0.231.0 → paasta-tools-0.232.1}/paasta_tools/cli/schemas/tron_schema.json +22 -0
  7. {paasta-tools-0.231.0 → paasta-tools-0.232.1}/paasta_tools/cli/utils.py +8 -8
  8. {paasta-tools-0.231.0 → paasta-tools-0.232.1}/paasta_tools/kubernetes_tools.py +49 -0
  9. {paasta-tools-0.231.0 → paasta-tools-0.232.1}/paasta_tools/utils.py +10 -0
  10. {paasta-tools-0.231.0 → paasta-tools-0.232.1/paasta_tools.egg-info}/PKG-INFO +1 -1
  11. {paasta-tools-0.231.0 → paasta-tools-0.232.1}/MANIFEST.in +0 -0
  12. {paasta-tools-0.231.0 → paasta-tools-0.232.1}/README.md +0 -0
  13. {paasta-tools-0.231.0 → paasta-tools-0.232.1}/k8s_itests/__init__.py +0 -0
  14. {paasta-tools-0.231.0 → paasta-tools-0.232.1}/k8s_itests/test_autoscaling.py +0 -0
  15. {paasta-tools-0.231.0 → paasta-tools-0.232.1}/k8s_itests/utils.py +0 -0
  16. {paasta-tools-0.231.0 → paasta-tools-0.232.1}/paasta_tools/adhoc_tools.py +0 -0
  17. {paasta-tools-0.231.0 → paasta-tools-0.232.1}/paasta_tools/am_i_mesos_leader.py +0 -0
  18. {paasta-tools-0.231.0 → paasta-tools-0.232.1}/paasta_tools/api/__init__.py +0 -0
  19. {paasta-tools-0.231.0 → paasta-tools-0.232.1}/paasta_tools/api/api.py +0 -0
  20. {paasta-tools-0.231.0 → paasta-tools-0.232.1}/paasta_tools/api/api_docs/swagger.json +0 -0
  21. {paasta-tools-0.231.0 → paasta-tools-0.232.1}/paasta_tools/api/client.py +0 -0
  22. {paasta-tools-0.231.0 → paasta-tools-0.232.1}/paasta_tools/api/settings.py +0 -0
  23. {paasta-tools-0.231.0 → paasta-tools-0.232.1}/paasta_tools/api/tweens/__init__.py +0 -0
  24. {paasta-tools-0.231.0 → paasta-tools-0.232.1}/paasta_tools/api/tweens/profiling.py +0 -0
  25. {paasta-tools-0.231.0 → paasta-tools-0.232.1}/paasta_tools/api/tweens/request_logger.py +0 -0
  26. {paasta-tools-0.231.0 → paasta-tools-0.232.1}/paasta_tools/api/views/__init__.py +0 -0
  27. {paasta-tools-0.231.0 → paasta-tools-0.232.1}/paasta_tools/api/views/autoscaler.py +0 -0
  28. {paasta-tools-0.231.0 → paasta-tools-0.232.1}/paasta_tools/api/views/exception.py +0 -0
  29. {paasta-tools-0.231.0 → paasta-tools-0.232.1}/paasta_tools/api/views/flink.py +0 -0
  30. {paasta-tools-0.231.0 → paasta-tools-0.232.1}/paasta_tools/api/views/instance.py +0 -0
  31. {paasta-tools-0.231.0 → paasta-tools-0.232.1}/paasta_tools/api/views/marathon_dashboard.py +0 -0
  32. {paasta-tools-0.231.0 → paasta-tools-0.232.1}/paasta_tools/api/views/metastatus.py +0 -0
  33. {paasta-tools-0.231.0 → paasta-tools-0.232.1}/paasta_tools/api/views/pause_autoscaler.py +0 -0
  34. {paasta-tools-0.231.0 → paasta-tools-0.232.1}/paasta_tools/api/views/resources.py +0 -0
  35. {paasta-tools-0.231.0 → paasta-tools-0.232.1}/paasta_tools/api/views/service.py +0 -0
  36. {paasta-tools-0.231.0 → paasta-tools-0.232.1}/paasta_tools/api/views/version.py +0 -0
  37. {paasta-tools-0.231.0 → paasta-tools-0.232.1}/paasta_tools/apply_external_resources.py +0 -0
  38. {paasta-tools-0.231.0 → paasta-tools-0.232.1}/paasta_tools/async_utils.py +0 -0
  39. {paasta-tools-0.231.0 → paasta-tools-0.232.1}/paasta_tools/autoscale_all_services.py +0 -0
  40. {paasta-tools-0.231.0 → paasta-tools-0.232.1}/paasta_tools/autoscaling/__init__.py +0 -0
  41. {paasta-tools-0.231.0 → paasta-tools-0.232.1}/paasta_tools/autoscaling/autoscaling_service_lib.py +0 -0
  42. {paasta-tools-0.231.0 → paasta-tools-0.232.1}/paasta_tools/autoscaling/ec2_fitness.py +0 -0
  43. {paasta-tools-0.231.0 → paasta-tools-0.232.1}/paasta_tools/autoscaling/forecasting.py +0 -0
  44. {paasta-tools-0.231.0 → paasta-tools-0.232.1}/paasta_tools/autoscaling/load_boost.py +0 -0
  45. {paasta-tools-0.231.0 → paasta-tools-0.232.1}/paasta_tools/autoscaling/max_all_k8s_services.py +0 -0
  46. {paasta-tools-0.231.0 → paasta-tools-0.232.1}/paasta_tools/autoscaling/pause_service_autoscaler.py +0 -0
  47. {paasta-tools-0.231.0 → paasta-tools-0.232.1}/paasta_tools/autoscaling/utils.py +0 -0
  48. {paasta-tools-0.231.0 → paasta-tools-0.232.1}/paasta_tools/bounce_lib.py +0 -0
  49. {paasta-tools-0.231.0 → paasta-tools-0.232.1}/paasta_tools/broadcast_log_to_services.py +0 -0
  50. {paasta-tools-0.231.0 → paasta-tools-0.232.1}/paasta_tools/cassandracluster_tools.py +0 -0
  51. {paasta-tools-0.231.0 → paasta-tools-0.232.1}/paasta_tools/check_autoscaler_max_instances.py +0 -0
  52. {paasta-tools-0.231.0 → paasta-tools-0.232.1}/paasta_tools/check_cassandracluster_services_replication.py +0 -0
  53. {paasta-tools-0.231.0 → paasta-tools-0.232.1}/paasta_tools/check_flink_services_health.py +0 -0
  54. {paasta-tools-0.231.0 → paasta-tools-0.232.1}/paasta_tools/check_kubernetes_api.py +0 -0
  55. {paasta-tools-0.231.0 → paasta-tools-0.232.1}/paasta_tools/check_kubernetes_services_replication.py +0 -0
  56. {paasta-tools-0.231.0 → paasta-tools-0.232.1}/paasta_tools/check_oom_events.py +0 -0
  57. {paasta-tools-0.231.0 → paasta-tools-0.232.1}/paasta_tools/check_services_replication_tools.py +0 -0
  58. {paasta-tools-0.231.0 → paasta-tools-0.232.1}/paasta_tools/check_spark_jobs.py +0 -0
  59. {paasta-tools-0.231.0 → paasta-tools-0.232.1}/paasta_tools/cleanup_kubernetes_cr.py +0 -0
  60. {paasta-tools-0.231.0 → paasta-tools-0.232.1}/paasta_tools/cleanup_kubernetes_crd.py +0 -0
  61. {paasta-tools-0.231.0 → paasta-tools-0.232.1}/paasta_tools/cleanup_kubernetes_jobs.py +0 -0
  62. {paasta-tools-0.231.0 → paasta-tools-0.232.1}/paasta_tools/cleanup_maintenance.py +0 -0
  63. {paasta-tools-0.231.0 → paasta-tools-0.232.1}/paasta_tools/cleanup_tron_namespaces.py +0 -0
  64. {paasta-tools-0.231.0 → paasta-tools-0.232.1}/paasta_tools/cli/__init__.py +0 -0
  65. {paasta-tools-0.231.0 → paasta-tools-0.232.1}/paasta_tools/cli/cli.py +0 -0
  66. {paasta-tools-0.231.0 → paasta-tools-0.232.1}/paasta_tools/cli/cmds/__init__.py +0 -0
  67. {paasta-tools-0.231.0 → paasta-tools-0.232.1}/paasta_tools/cli/cmds/autoscale.py +0 -0
  68. {paasta-tools-0.231.0 → paasta-tools-0.232.1}/paasta_tools/cli/cmds/boost.py +0 -0
  69. {paasta-tools-0.231.0 → paasta-tools-0.232.1}/paasta_tools/cli/cmds/check.py +0 -0
  70. {paasta-tools-0.231.0 → paasta-tools-0.232.1}/paasta_tools/cli/cmds/cook_image.py +0 -0
  71. {paasta-tools-0.231.0 → paasta-tools-0.232.1}/paasta_tools/cli/cmds/get_docker_image.py +0 -0
  72. {paasta-tools-0.231.0 → paasta-tools-0.232.1}/paasta_tools/cli/cmds/get_image_version.py +0 -0
  73. {paasta-tools-0.231.0 → paasta-tools-0.232.1}/paasta_tools/cli/cmds/get_latest_deployment.py +0 -0
  74. {paasta-tools-0.231.0 → paasta-tools-0.232.1}/paasta_tools/cli/cmds/info.py +0 -0
  75. {paasta-tools-0.231.0 → paasta-tools-0.232.1}/paasta_tools/cli/cmds/itest.py +0 -0
  76. {paasta-tools-0.231.0 → paasta-tools-0.232.1}/paasta_tools/cli/cmds/list.py +0 -0
  77. {paasta-tools-0.231.0 → paasta-tools-0.232.1}/paasta_tools/cli/cmds/list_clusters.py +0 -0
  78. {paasta-tools-0.231.0 → paasta-tools-0.232.1}/paasta_tools/cli/cmds/list_deploy_queue.py +0 -0
  79. {paasta-tools-0.231.0 → paasta-tools-0.232.1}/paasta_tools/cli/cmds/local_run.py +0 -0
  80. {paasta-tools-0.231.0 → paasta-tools-0.232.1}/paasta_tools/cli/cmds/logs.py +0 -0
  81. {paasta-tools-0.231.0 → paasta-tools-0.232.1}/paasta_tools/cli/cmds/mark_for_deployment.py +0 -0
  82. {paasta-tools-0.231.0 → paasta-tools-0.232.1}/paasta_tools/cli/cmds/mesh_status.py +0 -0
  83. {paasta-tools-0.231.0 → paasta-tools-0.232.1}/paasta_tools/cli/cmds/metastatus.py +0 -0
  84. {paasta-tools-0.231.0 → paasta-tools-0.232.1}/paasta_tools/cli/cmds/pause_service_autoscaler.py +0 -0
  85. {paasta-tools-0.231.0 → paasta-tools-0.232.1}/paasta_tools/cli/cmds/push_to_registry.py +0 -0
  86. {paasta-tools-0.231.0 → paasta-tools-0.232.1}/paasta_tools/cli/cmds/remote_run.py +0 -0
  87. {paasta-tools-0.231.0 → paasta-tools-0.232.1}/paasta_tools/cli/cmds/secret.py +0 -0
  88. {paasta-tools-0.231.0 → paasta-tools-0.232.1}/paasta_tools/cli/cmds/security_check.py +0 -0
  89. {paasta-tools-0.231.0 → paasta-tools-0.232.1}/paasta_tools/cli/cmds/spark_run.py +0 -0
  90. {paasta-tools-0.231.0 → paasta-tools-0.232.1}/paasta_tools/cli/cmds/start_stop_restart.py +0 -0
  91. {paasta-tools-0.231.0 → paasta-tools-0.232.1}/paasta_tools/cli/cmds/status.py +0 -0
  92. {paasta-tools-0.231.0 → paasta-tools-0.232.1}/paasta_tools/cli/cmds/sysdig.py +0 -0
  93. {paasta-tools-0.231.0 → paasta-tools-0.232.1}/paasta_tools/cli/cmds/validate.py +0 -0
  94. {paasta-tools-0.231.0 → paasta-tools-0.232.1}/paasta_tools/cli/cmds/wait_for_deployment.py +0 -0
  95. {paasta-tools-0.231.0 → paasta-tools-0.232.1}/paasta_tools/cli/fsm/__init__.py +0 -0
  96. {paasta-tools-0.231.0 → paasta-tools-0.232.1}/paasta_tools/cli/fsm/autosuggest.py +0 -0
  97. {paasta-tools-0.231.0 → paasta-tools-0.232.1}/paasta_tools/cli/fsm/template/README.md +0 -0
  98. {paasta-tools-0.231.0 → paasta-tools-0.232.1}/paasta_tools/cli/fsm/template/cookiecutter.json +0 -0
  99. {paasta-tools-0.231.0 → paasta-tools-0.232.1}/paasta_tools/cli/fsm/template/{{cookiecutter.service}}/marathon-PROD.yaml +0 -0
  100. {paasta-tools-0.231.0 → paasta-tools-0.232.1}/paasta_tools/cli/fsm/template/{{cookiecutter.service}}/monitoring.yaml +0 -0
  101. {paasta-tools-0.231.0 → paasta-tools-0.232.1}/paasta_tools/cli/fsm/template/{{cookiecutter.service}}/service.yaml +0 -0
  102. {paasta-tools-0.231.0 → paasta-tools-0.232.1}/paasta_tools/cli/fsm/template/{{cookiecutter.service}}/smartstack.yaml +0 -0
  103. {paasta-tools-0.231.0 → paasta-tools-0.232.1}/paasta_tools/cli/fsm_cmd.py +0 -0
  104. {paasta-tools-0.231.0 → paasta-tools-0.232.1}/paasta_tools/cli/paasta_tabcomplete.sh +0 -0
  105. {paasta-tools-0.231.0 → paasta-tools-0.232.1}/paasta_tools/cli/schemas/adhoc_schema.json +0 -0
  106. {paasta-tools-0.231.0 → paasta-tools-0.232.1}/paasta_tools/cli/schemas/autoscaling_schema.json +0 -0
  107. {paasta-tools-0.231.0 → paasta-tools-0.232.1}/paasta_tools/cli/schemas/autotuned_defaults/cassandracluster_schema.json +0 -0
  108. {paasta-tools-0.231.0 → paasta-tools-0.232.1}/paasta_tools/cli/schemas/autotuned_defaults/kubernetes_schema.json +0 -0
  109. {paasta-tools-0.231.0 → paasta-tools-0.232.1}/paasta_tools/cli/schemas/deploy_schema.json +0 -0
  110. {paasta-tools-0.231.0 → paasta-tools-0.232.1}/paasta_tools/cli/schemas/rollback_schema.json +0 -0
  111. {paasta-tools-0.231.0 → paasta-tools-0.232.1}/paasta_tools/cli/schemas/service_schema.json +0 -0
  112. {paasta-tools-0.231.0 → paasta-tools-0.232.1}/paasta_tools/cli/schemas/smartstack_schema.json +0 -0
  113. {paasta-tools-0.231.0 → paasta-tools-0.232.1}/paasta_tools/clusterman.py +0 -0
  114. {paasta-tools-0.231.0 → paasta-tools-0.232.1}/paasta_tools/config_utils.py +0 -0
  115. {paasta-tools-0.231.0 → paasta-tools-0.232.1}/paasta_tools/contrib/__init__.py +0 -0
  116. {paasta-tools-0.231.0 → paasta-tools-0.232.1}/paasta_tools/contrib/bounce_log_latency_parser.py +0 -0
  117. {paasta-tools-0.231.0 → paasta-tools-0.232.1}/paasta_tools/contrib/check_deployd_leader_election.sh +0 -0
  118. {paasta-tools-0.231.0 → paasta-tools-0.232.1}/paasta_tools/contrib/check_manual_oapi_changes.sh +0 -0
  119. {paasta-tools-0.231.0 → paasta-tools-0.232.1}/paasta_tools/contrib/check_orphans.py +0 -0
  120. {paasta-tools-0.231.0 → paasta-tools-0.232.1}/paasta_tools/contrib/create_dynamodb_table.py +0 -0
  121. {paasta-tools-0.231.0 → paasta-tools-0.232.1}/paasta_tools/contrib/create_paasta_playground.py +0 -0
  122. {paasta-tools-0.231.0 → paasta-tools-0.232.1}/paasta_tools/contrib/delete_old_marathon_deployments.py +0 -0
  123. {paasta-tools-0.231.0 → paasta-tools-0.232.1}/paasta_tools/contrib/emit_allocated_cpu_metrics.py +0 -0
  124. {paasta-tools-0.231.0 → paasta-tools-0.232.1}/paasta_tools/contrib/get_running_task_allocation.py +0 -0
  125. {paasta-tools-0.231.0 → paasta-tools-0.232.1}/paasta_tools/contrib/graceful_container_drain.py +0 -0
  126. {paasta-tools-0.231.0 → paasta-tools-0.232.1}/paasta_tools/contrib/habitat_fixer.py +0 -0
  127. {paasta-tools-0.231.0 → paasta-tools-0.232.1}/paasta_tools/contrib/ide_helper.py +0 -0
  128. {paasta-tools-0.231.0 → paasta-tools-0.232.1}/paasta_tools/contrib/is_pod_healthy_in_proxy.py +0 -0
  129. {paasta-tools-0.231.0 → paasta-tools-0.232.1}/paasta_tools/contrib/is_pod_healthy_in_smartstack.py +0 -0
  130. {paasta-tools-0.231.0 → paasta-tools-0.232.1}/paasta_tools/contrib/kill_bad_containers.py +0 -0
  131. {paasta-tools-0.231.0 → paasta-tools-0.232.1}/paasta_tools/contrib/mass-deploy-tag.sh +0 -0
  132. {paasta-tools-0.231.0 → paasta-tools-0.232.1}/paasta_tools/contrib/mock_patch_checker.py +0 -0
  133. {paasta-tools-0.231.0 → paasta-tools-0.232.1}/paasta_tools/contrib/paasta_get_num_deployments.py +0 -0
  134. {paasta-tools-0.231.0 → paasta-tools-0.232.1}/paasta_tools/contrib/paasta_update_soa_memcpu.py +0 -0
  135. {paasta-tools-0.231.0 → paasta-tools-0.232.1}/paasta_tools/contrib/render_template.py +0 -0
  136. {paasta-tools-0.231.0 → paasta-tools-0.232.1}/paasta_tools/contrib/rightsizer_soaconfigs_update.py +0 -0
  137. {paasta-tools-0.231.0 → paasta-tools-0.232.1}/paasta_tools/contrib/service_shard_remove.py +0 -0
  138. {paasta-tools-0.231.0 → paasta-tools-0.232.1}/paasta_tools/contrib/service_shard_update.py +0 -0
  139. {paasta-tools-0.231.0 → paasta-tools-0.232.1}/paasta_tools/contrib/shared_ip_check.py +0 -0
  140. {paasta-tools-0.231.0 → paasta-tools-0.232.1}/paasta_tools/contrib/timeouts_metrics_prom.py +0 -0
  141. {paasta-tools-0.231.0 → paasta-tools-0.232.1}/paasta_tools/contrib/utilization_check.py +0 -0
  142. {paasta-tools-0.231.0 → paasta-tools-0.232.1}/paasta_tools/delete_kubernetes_deployments.py +0 -0
  143. {paasta-tools-0.231.0 → paasta-tools-0.232.1}/paasta_tools/deployment_utils.py +0 -0
  144. {paasta-tools-0.231.0 → paasta-tools-0.232.1}/paasta_tools/docker_wrapper.py +0 -0
  145. {paasta-tools-0.231.0 → paasta-tools-0.232.1}/paasta_tools/docker_wrapper_imports.py +0 -0
  146. {paasta-tools-0.231.0 → paasta-tools-0.232.1}/paasta_tools/drain_lib.py +0 -0
  147. {paasta-tools-0.231.0 → paasta-tools-0.232.1}/paasta_tools/dump_locally_running_services.py +0 -0
  148. {paasta-tools-0.231.0 → paasta-tools-0.232.1}/paasta_tools/eks_tools.py +0 -0
  149. {paasta-tools-0.231.0 → paasta-tools-0.232.1}/paasta_tools/envoy_tools.py +0 -0
  150. {paasta-tools-0.231.0 → paasta-tools-0.232.1}/paasta_tools/firewall.py +0 -0
  151. {paasta-tools-0.231.0 → paasta-tools-0.232.1}/paasta_tools/firewall_logging.py +0 -0
  152. {paasta-tools-0.231.0 → paasta-tools-0.232.1}/paasta_tools/firewall_update.py +0 -0
  153. {paasta-tools-0.231.0 → paasta-tools-0.232.1}/paasta_tools/flink_tools.py +0 -0
  154. {paasta-tools-0.231.0 → paasta-tools-0.232.1}/paasta_tools/flinkeks_tools.py +0 -0
  155. {paasta-tools-0.231.0 → paasta-tools-0.232.1}/paasta_tools/frameworks/__init__.py +0 -0
  156. {paasta-tools-0.231.0 → paasta-tools-0.232.1}/paasta_tools/frameworks/adhoc_scheduler.py +0 -0
  157. {paasta-tools-0.231.0 → paasta-tools-0.232.1}/paasta_tools/frameworks/constraints.py +0 -0
  158. {paasta-tools-0.231.0 → paasta-tools-0.232.1}/paasta_tools/frameworks/native_scheduler.py +0 -0
  159. {paasta-tools-0.231.0 → paasta-tools-0.232.1}/paasta_tools/frameworks/native_service_config.py +0 -0
  160. {paasta-tools-0.231.0 → paasta-tools-0.232.1}/paasta_tools/frameworks/task_store.py +0 -0
  161. {paasta-tools-0.231.0 → paasta-tools-0.232.1}/paasta_tools/generate_all_deployments +0 -0
  162. {paasta-tools-0.231.0 → paasta-tools-0.232.1}/paasta_tools/generate_deployments_for_service.py +0 -0
  163. {paasta-tools-0.231.0 → paasta-tools-0.232.1}/paasta_tools/generate_services_file.py +0 -0
  164. {paasta-tools-0.231.0 → paasta-tools-0.232.1}/paasta_tools/generate_services_yaml.py +0 -0
  165. {paasta-tools-0.231.0 → paasta-tools-0.232.1}/paasta_tools/get_mesos_leader.py +0 -0
  166. {paasta-tools-0.231.0 → paasta-tools-0.232.1}/paasta_tools/hacheck.py +0 -0
  167. {paasta-tools-0.231.0 → paasta-tools-0.232.1}/paasta_tools/instance/__init__.py +0 -0
  168. {paasta-tools-0.231.0 → paasta-tools-0.232.1}/paasta_tools/instance/hpa_metrics_parser.py +0 -0
  169. {paasta-tools-0.231.0 → paasta-tools-0.232.1}/paasta_tools/instance/kubernetes.py +0 -0
  170. {paasta-tools-0.231.0 → paasta-tools-0.232.1}/paasta_tools/iptables.py +0 -0
  171. {paasta-tools-0.231.0 → paasta-tools-0.232.1}/paasta_tools/kafkacluster_tools.py +0 -0
  172. {paasta-tools-0.231.0 → paasta-tools-0.232.1}/paasta_tools/kubernetes/__init__.py +0 -0
  173. {paasta-tools-0.231.0 → paasta-tools-0.232.1}/paasta_tools/kubernetes/application/__init__.py +0 -0
  174. {paasta-tools-0.231.0 → paasta-tools-0.232.1}/paasta_tools/kubernetes/application/controller_wrappers.py +0 -0
  175. {paasta-tools-0.231.0 → paasta-tools-0.232.1}/paasta_tools/kubernetes/application/tools.py +0 -0
  176. {paasta-tools-0.231.0 → paasta-tools-0.232.1}/paasta_tools/kubernetes/bin/__init__.py +0 -0
  177. {paasta-tools-0.231.0 → paasta-tools-0.232.1}/paasta_tools/kubernetes/bin/kubernetes_remove_evicted_pods.py +0 -0
  178. {paasta-tools-0.231.0 → paasta-tools-0.232.1}/paasta_tools/kubernetes/bin/paasta_cleanup_stale_nodes.py +0 -0
  179. {paasta-tools-0.231.0 → paasta-tools-0.232.1}/paasta_tools/kubernetes/bin/paasta_secrets_sync.py +0 -0
  180. {paasta-tools-0.231.0 → paasta-tools-0.232.1}/paasta_tools/list_kubernetes_service_instances.py +0 -0
  181. {paasta-tools-0.231.0 → paasta-tools-0.232.1}/paasta_tools/list_marathon_service_instances.py +0 -0
  182. {paasta-tools-0.231.0 → paasta-tools-0.232.1}/paasta_tools/list_tron_namespaces.py +0 -0
  183. {paasta-tools-0.231.0 → paasta-tools-0.232.1}/paasta_tools/log_task_lifecycle_events.py +0 -0
  184. {paasta-tools-0.231.0 → paasta-tools-0.232.1}/paasta_tools/long_running_service_tools.py +0 -0
  185. {paasta-tools-0.231.0 → paasta-tools-0.232.1}/paasta_tools/mac_address.py +0 -0
  186. {paasta-tools-0.231.0 → paasta-tools-0.232.1}/paasta_tools/marathon_dashboard.py +0 -0
  187. {paasta-tools-0.231.0 → paasta-tools-0.232.1}/paasta_tools/marathon_tools.py +0 -0
  188. {paasta-tools-0.231.0 → paasta-tools-0.232.1}/paasta_tools/mesos/__init__.py +0 -0
  189. {paasta-tools-0.231.0 → paasta-tools-0.232.1}/paasta_tools/mesos/cfg.py +0 -0
  190. {paasta-tools-0.231.0 → paasta-tools-0.232.1}/paasta_tools/mesos/cluster.py +0 -0
  191. {paasta-tools-0.231.0 → paasta-tools-0.232.1}/paasta_tools/mesos/exceptions.py +0 -0
  192. {paasta-tools-0.231.0 → paasta-tools-0.232.1}/paasta_tools/mesos/framework.py +0 -0
  193. {paasta-tools-0.231.0 → paasta-tools-0.232.1}/paasta_tools/mesos/log.py +0 -0
  194. {paasta-tools-0.231.0 → paasta-tools-0.232.1}/paasta_tools/mesos/master.py +0 -0
  195. {paasta-tools-0.231.0 → paasta-tools-0.232.1}/paasta_tools/mesos/mesos_file.py +0 -0
  196. {paasta-tools-0.231.0 → paasta-tools-0.232.1}/paasta_tools/mesos/parallel.py +0 -0
  197. {paasta-tools-0.231.0 → paasta-tools-0.232.1}/paasta_tools/mesos/slave.py +0 -0
  198. {paasta-tools-0.231.0 → paasta-tools-0.232.1}/paasta_tools/mesos/task.py +0 -0
  199. {paasta-tools-0.231.0 → paasta-tools-0.232.1}/paasta_tools/mesos/util.py +0 -0
  200. {paasta-tools-0.231.0 → paasta-tools-0.232.1}/paasta_tools/mesos/zookeeper.py +0 -0
  201. {paasta-tools-0.231.0 → paasta-tools-0.232.1}/paasta_tools/mesos_maintenance.py +0 -0
  202. {paasta-tools-0.231.0 → paasta-tools-0.232.1}/paasta_tools/mesos_tools.py +0 -0
  203. {paasta-tools-0.231.0 → paasta-tools-0.232.1}/paasta_tools/metrics/__init__.py +0 -0
  204. {paasta-tools-0.231.0 → paasta-tools-0.232.1}/paasta_tools/metrics/metastatus_lib.py +0 -0
  205. {paasta-tools-0.231.0 → paasta-tools-0.232.1}/paasta_tools/metrics/metrics_lib.py +0 -0
  206. {paasta-tools-0.231.0 → paasta-tools-0.232.1}/paasta_tools/monitoring/__init__.py +0 -0
  207. {paasta-tools-0.231.0 → paasta-tools-0.232.1}/paasta_tools/monitoring/check_capacity.py +0 -0
  208. {paasta-tools-0.231.0 → paasta-tools-0.232.1}/paasta_tools/monitoring/check_k8s_api_performance.py +0 -0
  209. {paasta-tools-0.231.0 → paasta-tools-0.232.1}/paasta_tools/monitoring/check_marathon_has_apps.py +0 -0
  210. {paasta-tools-0.231.0 → paasta-tools-0.232.1}/paasta_tools/monitoring/check_mesos_active_frameworks.py +0 -0
  211. {paasta-tools-0.231.0 → paasta-tools-0.232.1}/paasta_tools/monitoring/check_mesos_duplicate_frameworks.py +0 -0
  212. {paasta-tools-0.231.0 → paasta-tools-0.232.1}/paasta_tools/monitoring/check_mesos_outdated_tasks.py +0 -0
  213. {paasta-tools-0.231.0 → paasta-tools-0.232.1}/paasta_tools/monitoring/check_mesos_quorum.py +0 -0
  214. {paasta-tools-0.231.0 → paasta-tools-0.232.1}/paasta_tools/monitoring/kill_orphaned_docker_containers.py +0 -0
  215. {paasta-tools-0.231.0 → paasta-tools-0.232.1}/paasta_tools/monitoring_tools.py +0 -0
  216. {paasta-tools-0.231.0 → paasta-tools-0.232.1}/paasta_tools/monkrelaycluster_tools.py +0 -0
  217. {paasta-tools-0.231.0 → paasta-tools-0.232.1}/paasta_tools/native_mesos_scheduler.py +0 -0
  218. {paasta-tools-0.231.0 → paasta-tools-0.232.1}/paasta_tools/nrtsearchservice_tools.py +0 -0
  219. {paasta-tools-0.231.0 → paasta-tools-0.232.1}/paasta_tools/nrtsearchserviceeks_tools.py +0 -0
  220. {paasta-tools-0.231.0 → paasta-tools-0.232.1}/paasta_tools/oom_logger.py +0 -0
  221. {paasta-tools-0.231.0 → paasta-tools-0.232.1}/paasta_tools/paasta_cluster_boost.py +0 -0
  222. {paasta-tools-0.231.0 → paasta-tools-0.232.1}/paasta_tools/paasta_deploy_tron_jobs +0 -0
  223. {paasta-tools-0.231.0 → paasta-tools-0.232.1}/paasta_tools/paasta_execute_docker_command.py +0 -0
  224. {paasta-tools-0.231.0 → paasta-tools-0.232.1}/paasta_tools/paasta_maintenance.py +0 -0
  225. {paasta-tools-0.231.0 → paasta-tools-0.232.1}/paasta_tools/paasta_metastatus.py +0 -0
  226. {paasta-tools-0.231.0 → paasta-tools-0.232.1}/paasta_tools/paasta_native_serviceinit.py +0 -0
  227. {paasta-tools-0.231.0 → paasta-tools-0.232.1}/paasta_tools/paasta_remote_run.py +0 -0
  228. {paasta-tools-0.231.0 → paasta-tools-0.232.1}/paasta_tools/paasta_service_config_loader.py +0 -0
  229. {paasta-tools-0.231.0 → paasta-tools-0.232.1}/paasta_tools/paastaapi/__init__.py +0 -0
  230. {paasta-tools-0.231.0 → paasta-tools-0.232.1}/paasta_tools/paastaapi/api/__init__.py +0 -0
  231. {paasta-tools-0.231.0 → paasta-tools-0.232.1}/paasta_tools/paastaapi/api/autoscaler_api.py +0 -0
  232. {paasta-tools-0.231.0 → paasta-tools-0.232.1}/paasta_tools/paastaapi/api/default_api.py +0 -0
  233. {paasta-tools-0.231.0 → paasta-tools-0.232.1}/paasta_tools/paastaapi/api/marathon_dashboard_api.py +0 -0
  234. {paasta-tools-0.231.0 → paasta-tools-0.232.1}/paasta_tools/paastaapi/api/resources_api.py +0 -0
  235. {paasta-tools-0.231.0 → paasta-tools-0.232.1}/paasta_tools/paastaapi/api/service_api.py +0 -0
  236. {paasta-tools-0.231.0 → paasta-tools-0.232.1}/paasta_tools/paastaapi/api_client.py +0 -0
  237. {paasta-tools-0.231.0 → paasta-tools-0.232.1}/paasta_tools/paastaapi/apis/__init__.py +0 -0
  238. {paasta-tools-0.231.0 → paasta-tools-0.232.1}/paasta_tools/paastaapi/configuration.py +0 -0
  239. {paasta-tools-0.231.0 → paasta-tools-0.232.1}/paasta_tools/paastaapi/exceptions.py +0 -0
  240. {paasta-tools-0.231.0 → paasta-tools-0.232.1}/paasta_tools/paastaapi/model/__init__.py +0 -0
  241. {paasta-tools-0.231.0 → paasta-tools-0.232.1}/paasta_tools/paastaapi/model/adhoc_launch_history.py +0 -0
  242. {paasta-tools-0.231.0 → paasta-tools-0.232.1}/paasta_tools/paastaapi/model/autoscaler_count_msg.py +0 -0
  243. {paasta-tools-0.231.0 → paasta-tools-0.232.1}/paasta_tools/paastaapi/model/deploy_queue.py +0 -0
  244. {paasta-tools-0.231.0 → paasta-tools-0.232.1}/paasta_tools/paastaapi/model/deploy_queue_service_instance.py +0 -0
  245. {paasta-tools-0.231.0 → paasta-tools-0.232.1}/paasta_tools/paastaapi/model/envoy_backend.py +0 -0
  246. {paasta-tools-0.231.0 → paasta-tools-0.232.1}/paasta_tools/paastaapi/model/envoy_location.py +0 -0
  247. {paasta-tools-0.231.0 → paasta-tools-0.232.1}/paasta_tools/paastaapi/model/envoy_status.py +0 -0
  248. {paasta-tools-0.231.0 → paasta-tools-0.232.1}/paasta_tools/paastaapi/model/flink_cluster_overview.py +0 -0
  249. {paasta-tools-0.231.0 → paasta-tools-0.232.1}/paasta_tools/paastaapi/model/flink_config.py +0 -0
  250. {paasta-tools-0.231.0 → paasta-tools-0.232.1}/paasta_tools/paastaapi/model/flink_job.py +0 -0
  251. {paasta-tools-0.231.0 → paasta-tools-0.232.1}/paasta_tools/paastaapi/model/flink_job_details.py +0 -0
  252. {paasta-tools-0.231.0 → paasta-tools-0.232.1}/paasta_tools/paastaapi/model/flink_jobs.py +0 -0
  253. {paasta-tools-0.231.0 → paasta-tools-0.232.1}/paasta_tools/paastaapi/model/float_and_error.py +0 -0
  254. {paasta-tools-0.231.0 → paasta-tools-0.232.1}/paasta_tools/paastaapi/model/hpa_metric.py +0 -0
  255. {paasta-tools-0.231.0 → paasta-tools-0.232.1}/paasta_tools/paastaapi/model/inline_object.py +0 -0
  256. {paasta-tools-0.231.0 → paasta-tools-0.232.1}/paasta_tools/paastaapi/model/inline_response200.py +0 -0
  257. {paasta-tools-0.231.0 → paasta-tools-0.232.1}/paasta_tools/paastaapi/model/inline_response2001.py +0 -0
  258. {paasta-tools-0.231.0 → paasta-tools-0.232.1}/paasta_tools/paastaapi/model/instance_bounce_status.py +0 -0
  259. {paasta-tools-0.231.0 → paasta-tools-0.232.1}/paasta_tools/paastaapi/model/instance_mesh_status.py +0 -0
  260. {paasta-tools-0.231.0 → paasta-tools-0.232.1}/paasta_tools/paastaapi/model/instance_status.py +0 -0
  261. {paasta-tools-0.231.0 → paasta-tools-0.232.1}/paasta_tools/paastaapi/model/instance_status_adhoc.py +0 -0
  262. {paasta-tools-0.231.0 → paasta-tools-0.232.1}/paasta_tools/paastaapi/model/instance_status_cassandracluster.py +0 -0
  263. {paasta-tools-0.231.0 → paasta-tools-0.232.1}/paasta_tools/paastaapi/model/instance_status_flink.py +0 -0
  264. {paasta-tools-0.231.0 → paasta-tools-0.232.1}/paasta_tools/paastaapi/model/instance_status_kafkacluster.py +0 -0
  265. {paasta-tools-0.231.0 → paasta-tools-0.232.1}/paasta_tools/paastaapi/model/instance_status_kubernetes.py +0 -0
  266. {paasta-tools-0.231.0 → paasta-tools-0.232.1}/paasta_tools/paastaapi/model/instance_status_kubernetes_autoscaling_status.py +0 -0
  267. {paasta-tools-0.231.0 → paasta-tools-0.232.1}/paasta_tools/paastaapi/model/instance_status_kubernetes_v2.py +0 -0
  268. {paasta-tools-0.231.0 → paasta-tools-0.232.1}/paasta_tools/paastaapi/model/instance_status_marathon.py +0 -0
  269. {paasta-tools-0.231.0 → paasta-tools-0.232.1}/paasta_tools/paastaapi/model/instance_status_tron.py +0 -0
  270. {paasta-tools-0.231.0 → paasta-tools-0.232.1}/paasta_tools/paastaapi/model/instance_tasks.py +0 -0
  271. {paasta-tools-0.231.0 → paasta-tools-0.232.1}/paasta_tools/paastaapi/model/integer_and_error.py +0 -0
  272. {paasta-tools-0.231.0 → paasta-tools-0.232.1}/paasta_tools/paastaapi/model/kubernetes_container.py +0 -0
  273. {paasta-tools-0.231.0 → paasta-tools-0.232.1}/paasta_tools/paastaapi/model/kubernetes_container_v2.py +0 -0
  274. {paasta-tools-0.231.0 → paasta-tools-0.232.1}/paasta_tools/paastaapi/model/kubernetes_healthcheck.py +0 -0
  275. {paasta-tools-0.231.0 → paasta-tools-0.232.1}/paasta_tools/paastaapi/model/kubernetes_pod.py +0 -0
  276. {paasta-tools-0.231.0 → paasta-tools-0.232.1}/paasta_tools/paastaapi/model/kubernetes_pod_event.py +0 -0
  277. {paasta-tools-0.231.0 → paasta-tools-0.232.1}/paasta_tools/paastaapi/model/kubernetes_pod_v2.py +0 -0
  278. {paasta-tools-0.231.0 → paasta-tools-0.232.1}/paasta_tools/paastaapi/model/kubernetes_replica_set.py +0 -0
  279. {paasta-tools-0.231.0 → paasta-tools-0.232.1}/paasta_tools/paastaapi/model/kubernetes_version.py +0 -0
  280. {paasta-tools-0.231.0 → paasta-tools-0.232.1}/paasta_tools/paastaapi/model/marathon_app_status.py +0 -0
  281. {paasta-tools-0.231.0 → paasta-tools-0.232.1}/paasta_tools/paastaapi/model/marathon_autoscaling_info.py +0 -0
  282. {paasta-tools-0.231.0 → paasta-tools-0.232.1}/paasta_tools/paastaapi/model/marathon_dashboard.py +0 -0
  283. {paasta-tools-0.231.0 → paasta-tools-0.232.1}/paasta_tools/paastaapi/model/marathon_dashboard_cluster.py +0 -0
  284. {paasta-tools-0.231.0 → paasta-tools-0.232.1}/paasta_tools/paastaapi/model/marathon_dashboard_item.py +0 -0
  285. {paasta-tools-0.231.0 → paasta-tools-0.232.1}/paasta_tools/paastaapi/model/marathon_mesos_nonrunning_task.py +0 -0
  286. {paasta-tools-0.231.0 → paasta-tools-0.232.1}/paasta_tools/paastaapi/model/marathon_mesos_running_task.py +0 -0
  287. {paasta-tools-0.231.0 → paasta-tools-0.232.1}/paasta_tools/paastaapi/model/marathon_mesos_status.py +0 -0
  288. {paasta-tools-0.231.0 → paasta-tools-0.232.1}/paasta_tools/paastaapi/model/marathon_task.py +0 -0
  289. {paasta-tools-0.231.0 → paasta-tools-0.232.1}/paasta_tools/paastaapi/model/meta_status.py +0 -0
  290. {paasta-tools-0.231.0 → paasta-tools-0.232.1}/paasta_tools/paastaapi/model/resource.py +0 -0
  291. {paasta-tools-0.231.0 → paasta-tools-0.232.1}/paasta_tools/paastaapi/model/resource_item.py +0 -0
  292. {paasta-tools-0.231.0 → paasta-tools-0.232.1}/paasta_tools/paastaapi/model/resource_value.py +0 -0
  293. {paasta-tools-0.231.0 → paasta-tools-0.232.1}/paasta_tools/paastaapi/model/smartstack_backend.py +0 -0
  294. {paasta-tools-0.231.0 → paasta-tools-0.232.1}/paasta_tools/paastaapi/model/smartstack_location.py +0 -0
  295. {paasta-tools-0.231.0 → paasta-tools-0.232.1}/paasta_tools/paastaapi/model/smartstack_status.py +0 -0
  296. {paasta-tools-0.231.0 → paasta-tools-0.232.1}/paasta_tools/paastaapi/model/task_tail_lines.py +0 -0
  297. {paasta-tools-0.231.0 → paasta-tools-0.232.1}/paasta_tools/paastaapi/model_utils.py +0 -0
  298. {paasta-tools-0.231.0 → paasta-tools-0.232.1}/paasta_tools/paastaapi/models/__init__.py +0 -0
  299. {paasta-tools-0.231.0 → paasta-tools-0.232.1}/paasta_tools/paastaapi/rest.py +0 -0
  300. {paasta-tools-0.231.0 → paasta-tools-0.232.1}/paasta_tools/prune_completed_pods.py +0 -0
  301. {paasta-tools-0.231.0 → paasta-tools-0.232.1}/paasta_tools/py.typed +0 -0
  302. {paasta-tools-0.231.0 → paasta-tools-0.232.1}/paasta_tools/remote_git.py +0 -0
  303. {paasta-tools-0.231.0 → paasta-tools-0.232.1}/paasta_tools/run-paasta-api-in-dev-mode.py +0 -0
  304. {paasta-tools-0.231.0 → paasta-tools-0.232.1}/paasta_tools/run-paasta-api-playground.py +0 -0
  305. {paasta-tools-0.231.0 → paasta-tools-0.232.1}/paasta_tools/secret_providers/__init__.py +0 -0
  306. {paasta-tools-0.231.0 → paasta-tools-0.232.1}/paasta_tools/secret_providers/vault.py +0 -0
  307. {paasta-tools-0.231.0 → paasta-tools-0.232.1}/paasta_tools/secret_tools.py +0 -0
  308. {paasta-tools-0.231.0 → paasta-tools-0.232.1}/paasta_tools/setup_istio_mesh.py +0 -0
  309. {paasta-tools-0.231.0 → paasta-tools-0.232.1}/paasta_tools/setup_kubernetes_cr.py +0 -0
  310. {paasta-tools-0.231.0 → paasta-tools-0.232.1}/paasta_tools/setup_kubernetes_crd.py +0 -0
  311. {paasta-tools-0.231.0 → paasta-tools-0.232.1}/paasta_tools/setup_kubernetes_internal_crd.py +0 -0
  312. {paasta-tools-0.231.0 → paasta-tools-0.232.1}/paasta_tools/setup_kubernetes_job.py +0 -0
  313. {paasta-tools-0.231.0 → paasta-tools-0.232.1}/paasta_tools/setup_prometheus_adapter_config.py +0 -0
  314. {paasta-tools-0.231.0 → paasta-tools-0.232.1}/paasta_tools/setup_tron_namespace.py +0 -0
  315. {paasta-tools-0.231.0 → paasta-tools-0.232.1}/paasta_tools/slack.py +0 -0
  316. {paasta-tools-0.231.0 → paasta-tools-0.232.1}/paasta_tools/smartstack_tools.py +0 -0
  317. {paasta-tools-0.231.0 → paasta-tools-0.232.1}/paasta_tools/spark_tools.py +0 -0
  318. {paasta-tools-0.231.0 → paasta-tools-0.232.1}/paasta_tools/synapse_srv_namespaces_fact.py +0 -0
  319. {paasta-tools-0.231.0 → paasta-tools-0.232.1}/paasta_tools/tron/__init__.py +0 -0
  320. {paasta-tools-0.231.0 → paasta-tools-0.232.1}/paasta_tools/tron/client.py +0 -0
  321. {paasta-tools-0.231.0 → paasta-tools-0.232.1}/paasta_tools/tron/tron_command_context.py +0 -0
  322. {paasta-tools-0.231.0 → paasta-tools-0.232.1}/paasta_tools/tron/tron_timeutils.py +0 -0
  323. {paasta-tools-0.231.0 → paasta-tools-0.232.1}/paasta_tools/tron_tools.py +0 -0
  324. {paasta-tools-0.231.0 → paasta-tools-0.232.1}/paasta_tools/vitesscluster_tools.py +0 -0
  325. {paasta-tools-0.231.0 → paasta-tools-0.232.1}/paasta_tools.egg-info/SOURCES.txt +0 -0
  326. {paasta-tools-0.231.0 → paasta-tools-0.232.1}/paasta_tools.egg-info/dependency_links.txt +0 -0
  327. {paasta-tools-0.231.0 → paasta-tools-0.232.1}/paasta_tools.egg-info/entry_points.txt +0 -0
  328. {paasta-tools-0.231.0 → paasta-tools-0.232.1}/paasta_tools.egg-info/requires.txt +0 -0
  329. {paasta-tools-0.231.0 → paasta-tools-0.232.1}/paasta_tools.egg-info/top_level.txt +0 -0
  330. {paasta-tools-0.231.0 → paasta-tools-0.232.1}/pyproject.toml +0 -0
  331. {paasta-tools-0.231.0 → paasta-tools-0.232.1}/requirements-minimal.txt +0 -0
  332. {paasta-tools-0.231.0 → paasta-tools-0.232.1}/setup.cfg +0 -0
  333. {paasta-tools-0.231.0 → paasta-tools-0.232.1}/setup.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 1.2
2
2
  Name: paasta-tools
3
- Version: 0.231.0
3
+ Version: 0.232.1
4
4
  Summary: Tools for Yelps SOA infrastructure
5
5
  Home-page: UNKNOWN
6
6
  Author: Compute Infrastructure @ Yelp
@@ -17,4 +17,4 @@
17
17
  # setup phase, the dependencies may not exist on disk yet.
18
18
  #
19
19
  # Don't bump version manually. See `make release` docs in ./Makefile
20
- __version__ = "0.231.0"
20
+ __version__ = "0.232.1"
@@ -52,12 +52,21 @@ def add_subparser(subparsers: argparse._SubParsersAction) -> None:
52
52
  "'paasta rollback' is a human-friendly tool for marking a particular "
53
53
  "docker image for deployment, which invokes a bounce. While the command "
54
54
  "is called 'rollback', it can be used to roll forward or back, as long "
55
- "as there is a docker image available for the input git SHA."
55
+ "as there is a docker image available for the input Git SHA."
56
56
  ),
57
57
  epilog=(
58
58
  "This rollback command uses the Git control plane, which requires network "
59
- "connectivity as well as authorization to the git repo."
59
+ "connectivity as well as authorization to the Git repo.\n\n"
60
+ + PaastaColors.red(
61
+ "WARNING: You MUST manually revert changes in Git and go through the normal push process after using this command.\n"
62
+ )
63
+ + PaastaColors.red(
64
+ "WARNING: Failing to do so means that Jenkins will redeploy the latest code on the next scheduled build!"
65
+ )
60
66
  ),
67
+ # we manually format the epilog to add newlines + give it an attention-grabbing color
68
+ # re: reverting changes in Git post-rollback
69
+ formatter_class=argparse.RawDescriptionHelpFormatter,
61
70
  )
62
71
  arg_commit = list_parser.add_argument(
63
72
  "-k",
@@ -66,7 +75,6 @@ def add_subparser(subparsers: argparse._SubParsersAction) -> None:
66
75
  "A commit to rollback to is required for paasta rollback to run. However if one is not provided, "
67
76
  "paasta rollback will instead output a list of valid git shas to rollback to.",
68
77
  required=False,
69
- type=validate_full_git_sha,
70
78
  )
71
79
  arg_commit.completer = lazy_choices_completer(list_previously_deployed_shas) # type: ignore
72
80
  arg_version = list_parser.add_argument(
@@ -228,6 +236,13 @@ def paasta_rollback(args: argparse.Namespace) -> int:
228
236
  deploy groups and sha. These arguments will be verified and passed onto
229
237
  mark_for_deployment.
230
238
  """
239
+
240
+ try:
241
+ validate_full_git_sha(args.commit)
242
+ except argparse.ArgumentTypeError as e:
243
+ print(PaastaColors.red(f"Error: {e}"))
244
+ return 1
245
+
231
246
  soa_dir = args.soa_dir
232
247
  service = figure_out_service_name(args, soa_dir)
233
248
 
@@ -319,8 +334,13 @@ def paasta_rollback(args: argparse.Namespace) -> int:
319
334
 
320
335
  if returncode == 0:
321
336
  print(
322
- PaastaColors.cyan(
323
- f"Warning: Don't forget to revert in git as well. Use 'git revert {rolled_back_from.sha}', and go through the normal push process. "
337
+ PaastaColors.red(
338
+ f"WARNING: You MUST manually revert changes in Git! Use 'git revert {rolled_back_from.sha}', and go through the normal push process. "
339
+ )
340
+ )
341
+ print(
342
+ PaastaColors.red(
343
+ f"WARNING: Failing to do so means that Jenkins will redeploy the latest code on the next scheduled build!"
324
344
  )
325
345
  )
326
346
 
@@ -586,6 +586,28 @@
586
586
  },
587
587
  "uniqueItems": true
588
588
  },
589
+ "projected_sa_volumes": {
590
+ "type": "array",
591
+ "items": {
592
+ "type": "object",
593
+ "properties": {
594
+ "container_path": {
595
+ "type": "string"
596
+ },
597
+ "audience": {
598
+ "type": "string"
599
+ },
600
+ "expiration_seconds": {
601
+ "type": "integer"
602
+ }
603
+ },
604
+ "required": [
605
+ "container_path",
606
+ "audience"
607
+ ]
608
+ },
609
+ "uniqueItems": true
610
+ },
589
611
  "replication_threshold": {
590
612
  "type": "integer",
591
613
  "minimum": 0
@@ -586,6 +586,28 @@
586
586
  },
587
587
  "uniqueItems": true
588
588
  },
589
+ "projected_sa_volumes": {
590
+ "type": "array",
591
+ "items": {
592
+ "type": "object",
593
+ "properties": {
594
+ "container_path": {
595
+ "type": "string"
596
+ },
597
+ "audience": {
598
+ "type": "string"
599
+ },
600
+ "expiration_seconds": {
601
+ "type": "integer"
602
+ }
603
+ },
604
+ "required": [
605
+ "container_path",
606
+ "audience"
607
+ ]
608
+ },
609
+ "uniqueItems": true
610
+ },
589
611
  "replication_threshold": {
590
612
  "type": "integer",
591
613
  "minimum": 0
@@ -283,6 +283,28 @@
283
283
  },
284
284
  "uniqueItems": true
285
285
  },
286
+ "projected_sa_volumes": {
287
+ "type": "array",
288
+ "items": {
289
+ "type": "object",
290
+ "properties": {
291
+ "container_path": {
292
+ "type": "string"
293
+ },
294
+ "audience": {
295
+ "type": "string"
296
+ },
297
+ "expiration_seconds": {
298
+ "type": "integer"
299
+ }
300
+ },
301
+ "required": [
302
+ "container_path",
303
+ "audience"
304
+ ]
305
+ },
306
+ "uniqueItems": true
307
+ },
286
308
  "cluster": {
287
309
  "type": "string"
288
310
  },
@@ -977,11 +977,11 @@ def validate_given_deploy_groups(
977
977
 
978
978
 
979
979
  def short_to_full_git_sha(short, refs):
980
- """Converts a short git sha to a full sha
980
+ """Converts a short git sha to a full SHA
981
981
 
982
- :param short: A short git sha represented as a string
983
- :param refs: A list of refs in the git repository
984
- :return: The full git sha or None if one can't be found
982
+ :param short: A short Git SHA represented as a string
983
+ :param refs: A list of refs in the Git repository
984
+ :return: The full Git SHA or None if one can't be found
985
985
  """
986
986
  return [sha for sha in set(refs.values()) if sha.startswith(short)]
987
987
 
@@ -989,15 +989,15 @@ def short_to_full_git_sha(short, refs):
989
989
  def validate_short_git_sha(value):
990
990
  pattern = re.compile("[a-f0-9]{4,40}")
991
991
  if not pattern.match(value):
992
- raise argparse.ArgumentTypeError("%s is not a valid git sha" % value)
992
+ raise argparse.ArgumentTypeError("%s is not a valid Git SHA" % value)
993
993
  return value
994
994
 
995
995
 
996
- def validate_full_git_sha(value):
996
+ def validate_full_git_sha(value: str) -> str:
997
997
  pattern = re.compile("[a-f0-9]{40}")
998
998
  if not pattern.match(value):
999
999
  raise argparse.ArgumentTypeError(
1000
- "%s is not a full git sha, and PaaSTA needs the full sha" % value
1000
+ "%s is not a full Git SHA, and PaaSTA needs the full SHA" % value
1001
1001
  )
1002
1002
  return value
1003
1003
 
@@ -1011,7 +1011,7 @@ def validate_git_sha(sha, git_url):
1011
1011
  commits = short_to_full_git_sha(short=sha, refs=refs)
1012
1012
  if len(commits) != 1:
1013
1013
  raise ValueError(
1014
- "%s matched %d git shas (with refs pointing at them). Must match exactly 1."
1014
+ "%s matched %d Git SHAs (with refs pointing at them). Must match exactly 1."
1015
1015
  % (sha, len(commits))
1016
1016
  )
1017
1017
  return commits[0]
@@ -98,6 +98,7 @@ from kubernetes.client import V1PodSpec
98
98
  from kubernetes.client import V1PodTemplateSpec
99
99
  from kubernetes.client import V1PreferredSchedulingTerm
100
100
  from kubernetes.client import V1Probe
101
+ from kubernetes.client import V1ProjectedVolumeSource
101
102
  from kubernetes.client import V1ReplicaSet
102
103
  from kubernetes.client import V1ResourceRequirements
103
104
  from kubernetes.client import V1RoleBinding
@@ -108,6 +109,7 @@ from kubernetes.client import V1SecretKeySelector
108
109
  from kubernetes.client import V1SecretVolumeSource
109
110
  from kubernetes.client import V1SecurityContext
110
111
  from kubernetes.client import V1ServiceAccount
112
+ from kubernetes.client import V1ServiceAccountTokenProjection
111
113
  from kubernetes.client import V1StatefulSet
112
114
  from kubernetes.client import V1StatefulSetSpec
113
115
  from kubernetes.client import V1Subject
@@ -115,6 +117,7 @@ from kubernetes.client import V1TCPSocketAction
115
117
  from kubernetes.client import V1TopologySpreadConstraint
116
118
  from kubernetes.client import V1Volume
117
119
  from kubernetes.client import V1VolumeMount
120
+ from kubernetes.client import V1VolumeProjection
118
121
  from kubernetes.client import V1WeightedPodAffinityTerm
119
122
  from kubernetes.client import V2beta2CrossVersionObjectReference
120
123
  from kubernetes.client import V2beta2HorizontalPodAutoscaler
@@ -171,6 +174,7 @@ from paasta_tools.utils import load_v2_deployments_json
171
174
  from paasta_tools.utils import PaastaColors
172
175
  from paasta_tools.utils import PaastaNotConfiguredError
173
176
  from paasta_tools.utils import PersistentVolume
177
+ from paasta_tools.utils import ProjectedSAVolume
174
178
  from paasta_tools.utils import SecretVolume
175
179
  from paasta_tools.utils import SystemPaastaConfig
176
180
  from paasta_tools.utils import time_cache
@@ -227,6 +231,9 @@ DEFAULT_SIDECAR_REQUEST: KubeContainerResourceRequest = {
227
231
  "ephemeral-storage": "256Mi",
228
232
  }
229
233
 
234
+ DEFAULT_PROJECTED_SA_EXPIRATION_SECONDS = 3600
235
+ PROJECTED_SA_TOKEN_PATH = "token"
236
+
230
237
 
231
238
  # conditions is None when creating a new HPA, but the client raises an error in that case.
232
239
  # For detail, https://github.com/kubernetes-client/python/issues/553
@@ -1002,6 +1009,14 @@ class KubernetesDeploymentConfig(LongRunningServiceConfig):
1002
1009
  "secret--{name}".format(name=secret_volume["secret_name"]), length_limit=63
1003
1010
  )
1004
1011
 
1012
+ def get_projected_sa_volume_name(
1013
+ self, projected_sa_volume: ProjectedSAVolume
1014
+ ) -> str:
1015
+ return self.get_sanitised_volume_name(
1016
+ "projected-sa--{audience}".format(audience=projected_sa_volume["audience"]),
1017
+ length_limit=63,
1018
+ )
1019
+
1005
1020
  def get_boto_secret_volume_name(self, service_name: str) -> str:
1006
1021
  return self.get_sanitised_volume_name(
1007
1022
  f"secret-boto-key-{service_name}", length_limit=63
@@ -1130,6 +1145,7 @@ class KubernetesDeploymentConfig(LongRunningServiceConfig):
1130
1145
  aws_ebs_volumes=[],
1131
1146
  persistent_volumes=[],
1132
1147
  secret_volumes=[],
1148
+ projected_sa_volumes=[],
1133
1149
  ),
1134
1150
  )
1135
1151
  return None
@@ -1440,6 +1456,7 @@ class KubernetesDeploymentConfig(LongRunningServiceConfig):
1440
1456
  aws_ebs_volumes=aws_ebs_volumes,
1441
1457
  persistent_volumes=self.get_persistent_volumes(),
1442
1458
  secret_volumes=secret_volumes,
1459
+ projected_sa_volumes=self.get_projected_sa_volumes(),
1443
1460
  ),
1444
1461
  )
1445
1462
  containers = [service_container] + self.get_sidecar_containers( # type: ignore
@@ -1477,6 +1494,7 @@ class KubernetesDeploymentConfig(LongRunningServiceConfig):
1477
1494
  docker_volumes: Sequence[DockerVolume],
1478
1495
  aws_ebs_volumes: Sequence[AwsEbsVolume],
1479
1496
  secret_volumes: Sequence[SecretVolume],
1497
+ projected_sa_volumes: Sequence[ProjectedSAVolume],
1480
1498
  ) -> Sequence[V1Volume]:
1481
1499
  pod_volumes = []
1482
1500
  unique_docker_volumes = {
@@ -1534,6 +1552,27 @@ class KubernetesDeploymentConfig(LongRunningServiceConfig):
1534
1552
  ),
1535
1553
  )
1536
1554
  )
1555
+ for projected_volume in projected_sa_volumes:
1556
+ pod_volumes.append(
1557
+ V1Volume(
1558
+ name=self.get_projected_sa_volume_name(projected_volume),
1559
+ projected=V1ProjectedVolumeSource(
1560
+ sources=[
1561
+ V1VolumeProjection(
1562
+ service_account_token=V1ServiceAccountTokenProjection(
1563
+ audience=projected_volume["audience"],
1564
+ expiration_seconds=projected_volume.get(
1565
+ "expiration_seconds",
1566
+ DEFAULT_PROJECTED_SA_EXPIRATION_SECONDS,
1567
+ ),
1568
+ path=PROJECTED_SA_TOKEN_PATH,
1569
+ )
1570
+ )
1571
+ ],
1572
+ ),
1573
+ ),
1574
+ )
1575
+
1537
1576
  boto_volume = self.get_boto_volume()
1538
1577
  if boto_volume:
1539
1578
  pod_volumes.append(boto_volume)
@@ -1694,6 +1733,7 @@ class KubernetesDeploymentConfig(LongRunningServiceConfig):
1694
1733
  aws_ebs_volumes: Sequence[AwsEbsVolume],
1695
1734
  persistent_volumes: Sequence[PersistentVolume],
1696
1735
  secret_volumes: Sequence[SecretVolume],
1736
+ projected_sa_volumes: Sequence[ProjectedSAVolume],
1697
1737
  ) -> Sequence[V1VolumeMount]:
1698
1738
  volume_mounts = (
1699
1739
  [
@@ -1728,6 +1768,14 @@ class KubernetesDeploymentConfig(LongRunningServiceConfig):
1728
1768
  )
1729
1769
  for volume in secret_volumes
1730
1770
  ]
1771
+ + [
1772
+ V1VolumeMount(
1773
+ mount_path=volume["container_path"],
1774
+ name=self.get_projected_sa_volume_name(volume),
1775
+ read_only=True,
1776
+ )
1777
+ for volume in projected_sa_volumes
1778
+ ]
1731
1779
  )
1732
1780
  if self.config_dict.get("boto_keys", []):
1733
1781
  secret_hash = self.get_boto_secret_hash()
@@ -2140,6 +2188,7 @@ class KubernetesDeploymentConfig(LongRunningServiceConfig):
2140
2188
  docker_volumes=docker_volumes + hacheck_sidecar_volumes,
2141
2189
  aws_ebs_volumes=self.get_aws_ebs_volumes(),
2142
2190
  secret_volumes=self.get_secret_volumes(),
2191
+ projected_sa_volumes=self.get_projected_sa_volumes(),
2143
2192
  ),
2144
2193
  )
2145
2194
  # need to check if there are node selectors/affinities. if there are none
@@ -287,6 +287,12 @@ class SecretVolume(TypedDict, total=False):
287
287
  items: List[SecretVolumeItem]
288
288
 
289
289
 
290
+ class ProjectedSAVolume(TypedDict, total=False):
291
+ container_path: str
292
+ audience: str
293
+ expiration_seconds: int
294
+
295
+
290
296
  class TronSecretVolume(SecretVolume, total=False):
291
297
  secret_volume_name: str
292
298
 
@@ -331,6 +337,7 @@ class InstanceConfigDict(TypedDict, total=False):
331
337
  extra_volumes: List[DockerVolume]
332
338
  aws_ebs_volumes: List[AwsEbsVolume]
333
339
  secret_volumes: List[SecretVolume]
340
+ projected_sa_volumes: List[ProjectedSAVolume]
334
341
  security: SecurityConfigDict
335
342
  dependencies_reference: str
336
343
  dependencies: Dict[str, Dict]
@@ -960,6 +967,9 @@ class InstanceConfig:
960
967
  def get_secret_volumes(self) -> List[SecretVolume]:
961
968
  return self.config_dict.get("secret_volumes", [])
962
969
 
970
+ def get_projected_sa_volumes(self) -> List[ProjectedSAVolume]:
971
+ return self.config_dict.get("projected_sa_volumes", [])
972
+
963
973
  def get_iam_role(self) -> str:
964
974
  return self.config_dict.get("iam_role", "")
965
975
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 1.2
2
2
  Name: paasta-tools
3
- Version: 0.231.0
3
+ Version: 0.232.1
4
4
  Summary: Tools for Yelps SOA infrastructure
5
5
  Home-page: UNKNOWN
6
6
  Author: Compute Infrastructure @ Yelp
File without changes