paasta-tools 0.231.0__tar.gz → 0.232.0__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.0}/PKG-INFO +1 -1
  2. {paasta-tools-0.231.0 → paasta-tools-0.232.0}/paasta_tools/__init__.py +1 -1
  3. {paasta-tools-0.231.0 → paasta-tools-0.232.0}/paasta_tools/cli/schemas/eks_schema.json +22 -0
  4. {paasta-tools-0.231.0 → paasta-tools-0.232.0}/paasta_tools/cli/schemas/kubernetes_schema.json +22 -0
  5. {paasta-tools-0.231.0 → paasta-tools-0.232.0}/paasta_tools/cli/schemas/tron_schema.json +22 -0
  6. {paasta-tools-0.231.0 → paasta-tools-0.232.0}/paasta_tools/kubernetes_tools.py +49 -0
  7. {paasta-tools-0.231.0 → paasta-tools-0.232.0}/paasta_tools/utils.py +10 -0
  8. {paasta-tools-0.231.0 → paasta-tools-0.232.0/paasta_tools.egg-info}/PKG-INFO +1 -1
  9. {paasta-tools-0.231.0 → paasta-tools-0.232.0}/MANIFEST.in +0 -0
  10. {paasta-tools-0.231.0 → paasta-tools-0.232.0}/README.md +0 -0
  11. {paasta-tools-0.231.0 → paasta-tools-0.232.0}/k8s_itests/__init__.py +0 -0
  12. {paasta-tools-0.231.0 → paasta-tools-0.232.0}/k8s_itests/test_autoscaling.py +0 -0
  13. {paasta-tools-0.231.0 → paasta-tools-0.232.0}/k8s_itests/utils.py +0 -0
  14. {paasta-tools-0.231.0 → paasta-tools-0.232.0}/paasta_tools/adhoc_tools.py +0 -0
  15. {paasta-tools-0.231.0 → paasta-tools-0.232.0}/paasta_tools/am_i_mesos_leader.py +0 -0
  16. {paasta-tools-0.231.0 → paasta-tools-0.232.0}/paasta_tools/api/__init__.py +0 -0
  17. {paasta-tools-0.231.0 → paasta-tools-0.232.0}/paasta_tools/api/api.py +0 -0
  18. {paasta-tools-0.231.0 → paasta-tools-0.232.0}/paasta_tools/api/api_docs/swagger.json +0 -0
  19. {paasta-tools-0.231.0 → paasta-tools-0.232.0}/paasta_tools/api/client.py +0 -0
  20. {paasta-tools-0.231.0 → paasta-tools-0.232.0}/paasta_tools/api/settings.py +0 -0
  21. {paasta-tools-0.231.0 → paasta-tools-0.232.0}/paasta_tools/api/tweens/__init__.py +0 -0
  22. {paasta-tools-0.231.0 → paasta-tools-0.232.0}/paasta_tools/api/tweens/profiling.py +0 -0
  23. {paasta-tools-0.231.0 → paasta-tools-0.232.0}/paasta_tools/api/tweens/request_logger.py +0 -0
  24. {paasta-tools-0.231.0 → paasta-tools-0.232.0}/paasta_tools/api/views/__init__.py +0 -0
  25. {paasta-tools-0.231.0 → paasta-tools-0.232.0}/paasta_tools/api/views/autoscaler.py +0 -0
  26. {paasta-tools-0.231.0 → paasta-tools-0.232.0}/paasta_tools/api/views/exception.py +0 -0
  27. {paasta-tools-0.231.0 → paasta-tools-0.232.0}/paasta_tools/api/views/flink.py +0 -0
  28. {paasta-tools-0.231.0 → paasta-tools-0.232.0}/paasta_tools/api/views/instance.py +0 -0
  29. {paasta-tools-0.231.0 → paasta-tools-0.232.0}/paasta_tools/api/views/marathon_dashboard.py +0 -0
  30. {paasta-tools-0.231.0 → paasta-tools-0.232.0}/paasta_tools/api/views/metastatus.py +0 -0
  31. {paasta-tools-0.231.0 → paasta-tools-0.232.0}/paasta_tools/api/views/pause_autoscaler.py +0 -0
  32. {paasta-tools-0.231.0 → paasta-tools-0.232.0}/paasta_tools/api/views/resources.py +0 -0
  33. {paasta-tools-0.231.0 → paasta-tools-0.232.0}/paasta_tools/api/views/service.py +0 -0
  34. {paasta-tools-0.231.0 → paasta-tools-0.232.0}/paasta_tools/api/views/version.py +0 -0
  35. {paasta-tools-0.231.0 → paasta-tools-0.232.0}/paasta_tools/apply_external_resources.py +0 -0
  36. {paasta-tools-0.231.0 → paasta-tools-0.232.0}/paasta_tools/async_utils.py +0 -0
  37. {paasta-tools-0.231.0 → paasta-tools-0.232.0}/paasta_tools/autoscale_all_services.py +0 -0
  38. {paasta-tools-0.231.0 → paasta-tools-0.232.0}/paasta_tools/autoscaling/__init__.py +0 -0
  39. {paasta-tools-0.231.0 → paasta-tools-0.232.0}/paasta_tools/autoscaling/autoscaling_service_lib.py +0 -0
  40. {paasta-tools-0.231.0 → paasta-tools-0.232.0}/paasta_tools/autoscaling/ec2_fitness.py +0 -0
  41. {paasta-tools-0.231.0 → paasta-tools-0.232.0}/paasta_tools/autoscaling/forecasting.py +0 -0
  42. {paasta-tools-0.231.0 → paasta-tools-0.232.0}/paasta_tools/autoscaling/load_boost.py +0 -0
  43. {paasta-tools-0.231.0 → paasta-tools-0.232.0}/paasta_tools/autoscaling/max_all_k8s_services.py +0 -0
  44. {paasta-tools-0.231.0 → paasta-tools-0.232.0}/paasta_tools/autoscaling/pause_service_autoscaler.py +0 -0
  45. {paasta-tools-0.231.0 → paasta-tools-0.232.0}/paasta_tools/autoscaling/utils.py +0 -0
  46. {paasta-tools-0.231.0 → paasta-tools-0.232.0}/paasta_tools/bounce_lib.py +0 -0
  47. {paasta-tools-0.231.0 → paasta-tools-0.232.0}/paasta_tools/broadcast_log_to_services.py +0 -0
  48. {paasta-tools-0.231.0 → paasta-tools-0.232.0}/paasta_tools/cassandracluster_tools.py +0 -0
  49. {paasta-tools-0.231.0 → paasta-tools-0.232.0}/paasta_tools/check_autoscaler_max_instances.py +0 -0
  50. {paasta-tools-0.231.0 → paasta-tools-0.232.0}/paasta_tools/check_cassandracluster_services_replication.py +0 -0
  51. {paasta-tools-0.231.0 → paasta-tools-0.232.0}/paasta_tools/check_flink_services_health.py +0 -0
  52. {paasta-tools-0.231.0 → paasta-tools-0.232.0}/paasta_tools/check_kubernetes_api.py +0 -0
  53. {paasta-tools-0.231.0 → paasta-tools-0.232.0}/paasta_tools/check_kubernetes_services_replication.py +0 -0
  54. {paasta-tools-0.231.0 → paasta-tools-0.232.0}/paasta_tools/check_oom_events.py +0 -0
  55. {paasta-tools-0.231.0 → paasta-tools-0.232.0}/paasta_tools/check_services_replication_tools.py +0 -0
  56. {paasta-tools-0.231.0 → paasta-tools-0.232.0}/paasta_tools/check_spark_jobs.py +0 -0
  57. {paasta-tools-0.231.0 → paasta-tools-0.232.0}/paasta_tools/cleanup_kubernetes_cr.py +0 -0
  58. {paasta-tools-0.231.0 → paasta-tools-0.232.0}/paasta_tools/cleanup_kubernetes_crd.py +0 -0
  59. {paasta-tools-0.231.0 → paasta-tools-0.232.0}/paasta_tools/cleanup_kubernetes_jobs.py +0 -0
  60. {paasta-tools-0.231.0 → paasta-tools-0.232.0}/paasta_tools/cleanup_maintenance.py +0 -0
  61. {paasta-tools-0.231.0 → paasta-tools-0.232.0}/paasta_tools/cleanup_tron_namespaces.py +0 -0
  62. {paasta-tools-0.231.0 → paasta-tools-0.232.0}/paasta_tools/cli/__init__.py +0 -0
  63. {paasta-tools-0.231.0 → paasta-tools-0.232.0}/paasta_tools/cli/cli.py +0 -0
  64. {paasta-tools-0.231.0 → paasta-tools-0.232.0}/paasta_tools/cli/cmds/__init__.py +0 -0
  65. {paasta-tools-0.231.0 → paasta-tools-0.232.0}/paasta_tools/cli/cmds/autoscale.py +0 -0
  66. {paasta-tools-0.231.0 → paasta-tools-0.232.0}/paasta_tools/cli/cmds/boost.py +0 -0
  67. {paasta-tools-0.231.0 → paasta-tools-0.232.0}/paasta_tools/cli/cmds/check.py +0 -0
  68. {paasta-tools-0.231.0 → paasta-tools-0.232.0}/paasta_tools/cli/cmds/cook_image.py +0 -0
  69. {paasta-tools-0.231.0 → paasta-tools-0.232.0}/paasta_tools/cli/cmds/get_docker_image.py +0 -0
  70. {paasta-tools-0.231.0 → paasta-tools-0.232.0}/paasta_tools/cli/cmds/get_image_version.py +0 -0
  71. {paasta-tools-0.231.0 → paasta-tools-0.232.0}/paasta_tools/cli/cmds/get_latest_deployment.py +0 -0
  72. {paasta-tools-0.231.0 → paasta-tools-0.232.0}/paasta_tools/cli/cmds/info.py +0 -0
  73. {paasta-tools-0.231.0 → paasta-tools-0.232.0}/paasta_tools/cli/cmds/itest.py +0 -0
  74. {paasta-tools-0.231.0 → paasta-tools-0.232.0}/paasta_tools/cli/cmds/list.py +0 -0
  75. {paasta-tools-0.231.0 → paasta-tools-0.232.0}/paasta_tools/cli/cmds/list_clusters.py +0 -0
  76. {paasta-tools-0.231.0 → paasta-tools-0.232.0}/paasta_tools/cli/cmds/list_deploy_queue.py +0 -0
  77. {paasta-tools-0.231.0 → paasta-tools-0.232.0}/paasta_tools/cli/cmds/local_run.py +0 -0
  78. {paasta-tools-0.231.0 → paasta-tools-0.232.0}/paasta_tools/cli/cmds/logs.py +0 -0
  79. {paasta-tools-0.231.0 → paasta-tools-0.232.0}/paasta_tools/cli/cmds/mark_for_deployment.py +0 -0
  80. {paasta-tools-0.231.0 → paasta-tools-0.232.0}/paasta_tools/cli/cmds/mesh_status.py +0 -0
  81. {paasta-tools-0.231.0 → paasta-tools-0.232.0}/paasta_tools/cli/cmds/metastatus.py +0 -0
  82. {paasta-tools-0.231.0 → paasta-tools-0.232.0}/paasta_tools/cli/cmds/pause_service_autoscaler.py +0 -0
  83. {paasta-tools-0.231.0 → paasta-tools-0.232.0}/paasta_tools/cli/cmds/push_to_registry.py +0 -0
  84. {paasta-tools-0.231.0 → paasta-tools-0.232.0}/paasta_tools/cli/cmds/remote_run.py +0 -0
  85. {paasta-tools-0.231.0 → paasta-tools-0.232.0}/paasta_tools/cli/cmds/rollback.py +0 -0
  86. {paasta-tools-0.231.0 → paasta-tools-0.232.0}/paasta_tools/cli/cmds/secret.py +0 -0
  87. {paasta-tools-0.231.0 → paasta-tools-0.232.0}/paasta_tools/cli/cmds/security_check.py +0 -0
  88. {paasta-tools-0.231.0 → paasta-tools-0.232.0}/paasta_tools/cli/cmds/spark_run.py +0 -0
  89. {paasta-tools-0.231.0 → paasta-tools-0.232.0}/paasta_tools/cli/cmds/start_stop_restart.py +0 -0
  90. {paasta-tools-0.231.0 → paasta-tools-0.232.0}/paasta_tools/cli/cmds/status.py +0 -0
  91. {paasta-tools-0.231.0 → paasta-tools-0.232.0}/paasta_tools/cli/cmds/sysdig.py +0 -0
  92. {paasta-tools-0.231.0 → paasta-tools-0.232.0}/paasta_tools/cli/cmds/validate.py +0 -0
  93. {paasta-tools-0.231.0 → paasta-tools-0.232.0}/paasta_tools/cli/cmds/wait_for_deployment.py +0 -0
  94. {paasta-tools-0.231.0 → paasta-tools-0.232.0}/paasta_tools/cli/fsm/__init__.py +0 -0
  95. {paasta-tools-0.231.0 → paasta-tools-0.232.0}/paasta_tools/cli/fsm/autosuggest.py +0 -0
  96. {paasta-tools-0.231.0 → paasta-tools-0.232.0}/paasta_tools/cli/fsm/template/README.md +0 -0
  97. {paasta-tools-0.231.0 → paasta-tools-0.232.0}/paasta_tools/cli/fsm/template/cookiecutter.json +0 -0
  98. {paasta-tools-0.231.0 → paasta-tools-0.232.0}/paasta_tools/cli/fsm/template/{{cookiecutter.service}}/marathon-PROD.yaml +0 -0
  99. {paasta-tools-0.231.0 → paasta-tools-0.232.0}/paasta_tools/cli/fsm/template/{{cookiecutter.service}}/monitoring.yaml +0 -0
  100. {paasta-tools-0.231.0 → paasta-tools-0.232.0}/paasta_tools/cli/fsm/template/{{cookiecutter.service}}/service.yaml +0 -0
  101. {paasta-tools-0.231.0 → paasta-tools-0.232.0}/paasta_tools/cli/fsm/template/{{cookiecutter.service}}/smartstack.yaml +0 -0
  102. {paasta-tools-0.231.0 → paasta-tools-0.232.0}/paasta_tools/cli/fsm_cmd.py +0 -0
  103. {paasta-tools-0.231.0 → paasta-tools-0.232.0}/paasta_tools/cli/paasta_tabcomplete.sh +0 -0
  104. {paasta-tools-0.231.0 → paasta-tools-0.232.0}/paasta_tools/cli/schemas/adhoc_schema.json +0 -0
  105. {paasta-tools-0.231.0 → paasta-tools-0.232.0}/paasta_tools/cli/schemas/autoscaling_schema.json +0 -0
  106. {paasta-tools-0.231.0 → paasta-tools-0.232.0}/paasta_tools/cli/schemas/autotuned_defaults/cassandracluster_schema.json +0 -0
  107. {paasta-tools-0.231.0 → paasta-tools-0.232.0}/paasta_tools/cli/schemas/autotuned_defaults/kubernetes_schema.json +0 -0
  108. {paasta-tools-0.231.0 → paasta-tools-0.232.0}/paasta_tools/cli/schemas/deploy_schema.json +0 -0
  109. {paasta-tools-0.231.0 → paasta-tools-0.232.0}/paasta_tools/cli/schemas/rollback_schema.json +0 -0
  110. {paasta-tools-0.231.0 → paasta-tools-0.232.0}/paasta_tools/cli/schemas/service_schema.json +0 -0
  111. {paasta-tools-0.231.0 → paasta-tools-0.232.0}/paasta_tools/cli/schemas/smartstack_schema.json +0 -0
  112. {paasta-tools-0.231.0 → paasta-tools-0.232.0}/paasta_tools/cli/utils.py +0 -0
  113. {paasta-tools-0.231.0 → paasta-tools-0.232.0}/paasta_tools/clusterman.py +0 -0
  114. {paasta-tools-0.231.0 → paasta-tools-0.232.0}/paasta_tools/config_utils.py +0 -0
  115. {paasta-tools-0.231.0 → paasta-tools-0.232.0}/paasta_tools/contrib/__init__.py +0 -0
  116. {paasta-tools-0.231.0 → paasta-tools-0.232.0}/paasta_tools/contrib/bounce_log_latency_parser.py +0 -0
  117. {paasta-tools-0.231.0 → paasta-tools-0.232.0}/paasta_tools/contrib/check_deployd_leader_election.sh +0 -0
  118. {paasta-tools-0.231.0 → paasta-tools-0.232.0}/paasta_tools/contrib/check_manual_oapi_changes.sh +0 -0
  119. {paasta-tools-0.231.0 → paasta-tools-0.232.0}/paasta_tools/contrib/check_orphans.py +0 -0
  120. {paasta-tools-0.231.0 → paasta-tools-0.232.0}/paasta_tools/contrib/create_dynamodb_table.py +0 -0
  121. {paasta-tools-0.231.0 → paasta-tools-0.232.0}/paasta_tools/contrib/create_paasta_playground.py +0 -0
  122. {paasta-tools-0.231.0 → paasta-tools-0.232.0}/paasta_tools/contrib/delete_old_marathon_deployments.py +0 -0
  123. {paasta-tools-0.231.0 → paasta-tools-0.232.0}/paasta_tools/contrib/emit_allocated_cpu_metrics.py +0 -0
  124. {paasta-tools-0.231.0 → paasta-tools-0.232.0}/paasta_tools/contrib/get_running_task_allocation.py +0 -0
  125. {paasta-tools-0.231.0 → paasta-tools-0.232.0}/paasta_tools/contrib/graceful_container_drain.py +0 -0
  126. {paasta-tools-0.231.0 → paasta-tools-0.232.0}/paasta_tools/contrib/habitat_fixer.py +0 -0
  127. {paasta-tools-0.231.0 → paasta-tools-0.232.0}/paasta_tools/contrib/ide_helper.py +0 -0
  128. {paasta-tools-0.231.0 → paasta-tools-0.232.0}/paasta_tools/contrib/is_pod_healthy_in_proxy.py +0 -0
  129. {paasta-tools-0.231.0 → paasta-tools-0.232.0}/paasta_tools/contrib/is_pod_healthy_in_smartstack.py +0 -0
  130. {paasta-tools-0.231.0 → paasta-tools-0.232.0}/paasta_tools/contrib/kill_bad_containers.py +0 -0
  131. {paasta-tools-0.231.0 → paasta-tools-0.232.0}/paasta_tools/contrib/mass-deploy-tag.sh +0 -0
  132. {paasta-tools-0.231.0 → paasta-tools-0.232.0}/paasta_tools/contrib/mock_patch_checker.py +0 -0
  133. {paasta-tools-0.231.0 → paasta-tools-0.232.0}/paasta_tools/contrib/paasta_get_num_deployments.py +0 -0
  134. {paasta-tools-0.231.0 → paasta-tools-0.232.0}/paasta_tools/contrib/paasta_update_soa_memcpu.py +0 -0
  135. {paasta-tools-0.231.0 → paasta-tools-0.232.0}/paasta_tools/contrib/render_template.py +0 -0
  136. {paasta-tools-0.231.0 → paasta-tools-0.232.0}/paasta_tools/contrib/rightsizer_soaconfigs_update.py +0 -0
  137. {paasta-tools-0.231.0 → paasta-tools-0.232.0}/paasta_tools/contrib/service_shard_remove.py +0 -0
  138. {paasta-tools-0.231.0 → paasta-tools-0.232.0}/paasta_tools/contrib/service_shard_update.py +0 -0
  139. {paasta-tools-0.231.0 → paasta-tools-0.232.0}/paasta_tools/contrib/shared_ip_check.py +0 -0
  140. {paasta-tools-0.231.0 → paasta-tools-0.232.0}/paasta_tools/contrib/timeouts_metrics_prom.py +0 -0
  141. {paasta-tools-0.231.0 → paasta-tools-0.232.0}/paasta_tools/contrib/utilization_check.py +0 -0
  142. {paasta-tools-0.231.0 → paasta-tools-0.232.0}/paasta_tools/delete_kubernetes_deployments.py +0 -0
  143. {paasta-tools-0.231.0 → paasta-tools-0.232.0}/paasta_tools/deployment_utils.py +0 -0
  144. {paasta-tools-0.231.0 → paasta-tools-0.232.0}/paasta_tools/docker_wrapper.py +0 -0
  145. {paasta-tools-0.231.0 → paasta-tools-0.232.0}/paasta_tools/docker_wrapper_imports.py +0 -0
  146. {paasta-tools-0.231.0 → paasta-tools-0.232.0}/paasta_tools/drain_lib.py +0 -0
  147. {paasta-tools-0.231.0 → paasta-tools-0.232.0}/paasta_tools/dump_locally_running_services.py +0 -0
  148. {paasta-tools-0.231.0 → paasta-tools-0.232.0}/paasta_tools/eks_tools.py +0 -0
  149. {paasta-tools-0.231.0 → paasta-tools-0.232.0}/paasta_tools/envoy_tools.py +0 -0
  150. {paasta-tools-0.231.0 → paasta-tools-0.232.0}/paasta_tools/firewall.py +0 -0
  151. {paasta-tools-0.231.0 → paasta-tools-0.232.0}/paasta_tools/firewall_logging.py +0 -0
  152. {paasta-tools-0.231.0 → paasta-tools-0.232.0}/paasta_tools/firewall_update.py +0 -0
  153. {paasta-tools-0.231.0 → paasta-tools-0.232.0}/paasta_tools/flink_tools.py +0 -0
  154. {paasta-tools-0.231.0 → paasta-tools-0.232.0}/paasta_tools/flinkeks_tools.py +0 -0
  155. {paasta-tools-0.231.0 → paasta-tools-0.232.0}/paasta_tools/frameworks/__init__.py +0 -0
  156. {paasta-tools-0.231.0 → paasta-tools-0.232.0}/paasta_tools/frameworks/adhoc_scheduler.py +0 -0
  157. {paasta-tools-0.231.0 → paasta-tools-0.232.0}/paasta_tools/frameworks/constraints.py +0 -0
  158. {paasta-tools-0.231.0 → paasta-tools-0.232.0}/paasta_tools/frameworks/native_scheduler.py +0 -0
  159. {paasta-tools-0.231.0 → paasta-tools-0.232.0}/paasta_tools/frameworks/native_service_config.py +0 -0
  160. {paasta-tools-0.231.0 → paasta-tools-0.232.0}/paasta_tools/frameworks/task_store.py +0 -0
  161. {paasta-tools-0.231.0 → paasta-tools-0.232.0}/paasta_tools/generate_all_deployments +0 -0
  162. {paasta-tools-0.231.0 → paasta-tools-0.232.0}/paasta_tools/generate_deployments_for_service.py +0 -0
  163. {paasta-tools-0.231.0 → paasta-tools-0.232.0}/paasta_tools/generate_services_file.py +0 -0
  164. {paasta-tools-0.231.0 → paasta-tools-0.232.0}/paasta_tools/generate_services_yaml.py +0 -0
  165. {paasta-tools-0.231.0 → paasta-tools-0.232.0}/paasta_tools/get_mesos_leader.py +0 -0
  166. {paasta-tools-0.231.0 → paasta-tools-0.232.0}/paasta_tools/hacheck.py +0 -0
  167. {paasta-tools-0.231.0 → paasta-tools-0.232.0}/paasta_tools/instance/__init__.py +0 -0
  168. {paasta-tools-0.231.0 → paasta-tools-0.232.0}/paasta_tools/instance/hpa_metrics_parser.py +0 -0
  169. {paasta-tools-0.231.0 → paasta-tools-0.232.0}/paasta_tools/instance/kubernetes.py +0 -0
  170. {paasta-tools-0.231.0 → paasta-tools-0.232.0}/paasta_tools/iptables.py +0 -0
  171. {paasta-tools-0.231.0 → paasta-tools-0.232.0}/paasta_tools/kafkacluster_tools.py +0 -0
  172. {paasta-tools-0.231.0 → paasta-tools-0.232.0}/paasta_tools/kubernetes/__init__.py +0 -0
  173. {paasta-tools-0.231.0 → paasta-tools-0.232.0}/paasta_tools/kubernetes/application/__init__.py +0 -0
  174. {paasta-tools-0.231.0 → paasta-tools-0.232.0}/paasta_tools/kubernetes/application/controller_wrappers.py +0 -0
  175. {paasta-tools-0.231.0 → paasta-tools-0.232.0}/paasta_tools/kubernetes/application/tools.py +0 -0
  176. {paasta-tools-0.231.0 → paasta-tools-0.232.0}/paasta_tools/kubernetes/bin/__init__.py +0 -0
  177. {paasta-tools-0.231.0 → paasta-tools-0.232.0}/paasta_tools/kubernetes/bin/kubernetes_remove_evicted_pods.py +0 -0
  178. {paasta-tools-0.231.0 → paasta-tools-0.232.0}/paasta_tools/kubernetes/bin/paasta_cleanup_stale_nodes.py +0 -0
  179. {paasta-tools-0.231.0 → paasta-tools-0.232.0}/paasta_tools/kubernetes/bin/paasta_secrets_sync.py +0 -0
  180. {paasta-tools-0.231.0 → paasta-tools-0.232.0}/paasta_tools/list_kubernetes_service_instances.py +0 -0
  181. {paasta-tools-0.231.0 → paasta-tools-0.232.0}/paasta_tools/list_marathon_service_instances.py +0 -0
  182. {paasta-tools-0.231.0 → paasta-tools-0.232.0}/paasta_tools/list_tron_namespaces.py +0 -0
  183. {paasta-tools-0.231.0 → paasta-tools-0.232.0}/paasta_tools/log_task_lifecycle_events.py +0 -0
  184. {paasta-tools-0.231.0 → paasta-tools-0.232.0}/paasta_tools/long_running_service_tools.py +0 -0
  185. {paasta-tools-0.231.0 → paasta-tools-0.232.0}/paasta_tools/mac_address.py +0 -0
  186. {paasta-tools-0.231.0 → paasta-tools-0.232.0}/paasta_tools/marathon_dashboard.py +0 -0
  187. {paasta-tools-0.231.0 → paasta-tools-0.232.0}/paasta_tools/marathon_tools.py +0 -0
  188. {paasta-tools-0.231.0 → paasta-tools-0.232.0}/paasta_tools/mesos/__init__.py +0 -0
  189. {paasta-tools-0.231.0 → paasta-tools-0.232.0}/paasta_tools/mesos/cfg.py +0 -0
  190. {paasta-tools-0.231.0 → paasta-tools-0.232.0}/paasta_tools/mesos/cluster.py +0 -0
  191. {paasta-tools-0.231.0 → paasta-tools-0.232.0}/paasta_tools/mesos/exceptions.py +0 -0
  192. {paasta-tools-0.231.0 → paasta-tools-0.232.0}/paasta_tools/mesos/framework.py +0 -0
  193. {paasta-tools-0.231.0 → paasta-tools-0.232.0}/paasta_tools/mesos/log.py +0 -0
  194. {paasta-tools-0.231.0 → paasta-tools-0.232.0}/paasta_tools/mesos/master.py +0 -0
  195. {paasta-tools-0.231.0 → paasta-tools-0.232.0}/paasta_tools/mesos/mesos_file.py +0 -0
  196. {paasta-tools-0.231.0 → paasta-tools-0.232.0}/paasta_tools/mesos/parallel.py +0 -0
  197. {paasta-tools-0.231.0 → paasta-tools-0.232.0}/paasta_tools/mesos/slave.py +0 -0
  198. {paasta-tools-0.231.0 → paasta-tools-0.232.0}/paasta_tools/mesos/task.py +0 -0
  199. {paasta-tools-0.231.0 → paasta-tools-0.232.0}/paasta_tools/mesos/util.py +0 -0
  200. {paasta-tools-0.231.0 → paasta-tools-0.232.0}/paasta_tools/mesos/zookeeper.py +0 -0
  201. {paasta-tools-0.231.0 → paasta-tools-0.232.0}/paasta_tools/mesos_maintenance.py +0 -0
  202. {paasta-tools-0.231.0 → paasta-tools-0.232.0}/paasta_tools/mesos_tools.py +0 -0
  203. {paasta-tools-0.231.0 → paasta-tools-0.232.0}/paasta_tools/metrics/__init__.py +0 -0
  204. {paasta-tools-0.231.0 → paasta-tools-0.232.0}/paasta_tools/metrics/metastatus_lib.py +0 -0
  205. {paasta-tools-0.231.0 → paasta-tools-0.232.0}/paasta_tools/metrics/metrics_lib.py +0 -0
  206. {paasta-tools-0.231.0 → paasta-tools-0.232.0}/paasta_tools/monitoring/__init__.py +0 -0
  207. {paasta-tools-0.231.0 → paasta-tools-0.232.0}/paasta_tools/monitoring/check_capacity.py +0 -0
  208. {paasta-tools-0.231.0 → paasta-tools-0.232.0}/paasta_tools/monitoring/check_k8s_api_performance.py +0 -0
  209. {paasta-tools-0.231.0 → paasta-tools-0.232.0}/paasta_tools/monitoring/check_marathon_has_apps.py +0 -0
  210. {paasta-tools-0.231.0 → paasta-tools-0.232.0}/paasta_tools/monitoring/check_mesos_active_frameworks.py +0 -0
  211. {paasta-tools-0.231.0 → paasta-tools-0.232.0}/paasta_tools/monitoring/check_mesos_duplicate_frameworks.py +0 -0
  212. {paasta-tools-0.231.0 → paasta-tools-0.232.0}/paasta_tools/monitoring/check_mesos_outdated_tasks.py +0 -0
  213. {paasta-tools-0.231.0 → paasta-tools-0.232.0}/paasta_tools/monitoring/check_mesos_quorum.py +0 -0
  214. {paasta-tools-0.231.0 → paasta-tools-0.232.0}/paasta_tools/monitoring/kill_orphaned_docker_containers.py +0 -0
  215. {paasta-tools-0.231.0 → paasta-tools-0.232.0}/paasta_tools/monitoring_tools.py +0 -0
  216. {paasta-tools-0.231.0 → paasta-tools-0.232.0}/paasta_tools/monkrelaycluster_tools.py +0 -0
  217. {paasta-tools-0.231.0 → paasta-tools-0.232.0}/paasta_tools/native_mesos_scheduler.py +0 -0
  218. {paasta-tools-0.231.0 → paasta-tools-0.232.0}/paasta_tools/nrtsearchservice_tools.py +0 -0
  219. {paasta-tools-0.231.0 → paasta-tools-0.232.0}/paasta_tools/nrtsearchserviceeks_tools.py +0 -0
  220. {paasta-tools-0.231.0 → paasta-tools-0.232.0}/paasta_tools/oom_logger.py +0 -0
  221. {paasta-tools-0.231.0 → paasta-tools-0.232.0}/paasta_tools/paasta_cluster_boost.py +0 -0
  222. {paasta-tools-0.231.0 → paasta-tools-0.232.0}/paasta_tools/paasta_deploy_tron_jobs +0 -0
  223. {paasta-tools-0.231.0 → paasta-tools-0.232.0}/paasta_tools/paasta_execute_docker_command.py +0 -0
  224. {paasta-tools-0.231.0 → paasta-tools-0.232.0}/paasta_tools/paasta_maintenance.py +0 -0
  225. {paasta-tools-0.231.0 → paasta-tools-0.232.0}/paasta_tools/paasta_metastatus.py +0 -0
  226. {paasta-tools-0.231.0 → paasta-tools-0.232.0}/paasta_tools/paasta_native_serviceinit.py +0 -0
  227. {paasta-tools-0.231.0 → paasta-tools-0.232.0}/paasta_tools/paasta_remote_run.py +0 -0
  228. {paasta-tools-0.231.0 → paasta-tools-0.232.0}/paasta_tools/paasta_service_config_loader.py +0 -0
  229. {paasta-tools-0.231.0 → paasta-tools-0.232.0}/paasta_tools/paastaapi/__init__.py +0 -0
  230. {paasta-tools-0.231.0 → paasta-tools-0.232.0}/paasta_tools/paastaapi/api/__init__.py +0 -0
  231. {paasta-tools-0.231.0 → paasta-tools-0.232.0}/paasta_tools/paastaapi/api/autoscaler_api.py +0 -0
  232. {paasta-tools-0.231.0 → paasta-tools-0.232.0}/paasta_tools/paastaapi/api/default_api.py +0 -0
  233. {paasta-tools-0.231.0 → paasta-tools-0.232.0}/paasta_tools/paastaapi/api/marathon_dashboard_api.py +0 -0
  234. {paasta-tools-0.231.0 → paasta-tools-0.232.0}/paasta_tools/paastaapi/api/resources_api.py +0 -0
  235. {paasta-tools-0.231.0 → paasta-tools-0.232.0}/paasta_tools/paastaapi/api/service_api.py +0 -0
  236. {paasta-tools-0.231.0 → paasta-tools-0.232.0}/paasta_tools/paastaapi/api_client.py +0 -0
  237. {paasta-tools-0.231.0 → paasta-tools-0.232.0}/paasta_tools/paastaapi/apis/__init__.py +0 -0
  238. {paasta-tools-0.231.0 → paasta-tools-0.232.0}/paasta_tools/paastaapi/configuration.py +0 -0
  239. {paasta-tools-0.231.0 → paasta-tools-0.232.0}/paasta_tools/paastaapi/exceptions.py +0 -0
  240. {paasta-tools-0.231.0 → paasta-tools-0.232.0}/paasta_tools/paastaapi/model/__init__.py +0 -0
  241. {paasta-tools-0.231.0 → paasta-tools-0.232.0}/paasta_tools/paastaapi/model/adhoc_launch_history.py +0 -0
  242. {paasta-tools-0.231.0 → paasta-tools-0.232.0}/paasta_tools/paastaapi/model/autoscaler_count_msg.py +0 -0
  243. {paasta-tools-0.231.0 → paasta-tools-0.232.0}/paasta_tools/paastaapi/model/deploy_queue.py +0 -0
  244. {paasta-tools-0.231.0 → paasta-tools-0.232.0}/paasta_tools/paastaapi/model/deploy_queue_service_instance.py +0 -0
  245. {paasta-tools-0.231.0 → paasta-tools-0.232.0}/paasta_tools/paastaapi/model/envoy_backend.py +0 -0
  246. {paasta-tools-0.231.0 → paasta-tools-0.232.0}/paasta_tools/paastaapi/model/envoy_location.py +0 -0
  247. {paasta-tools-0.231.0 → paasta-tools-0.232.0}/paasta_tools/paastaapi/model/envoy_status.py +0 -0
  248. {paasta-tools-0.231.0 → paasta-tools-0.232.0}/paasta_tools/paastaapi/model/flink_cluster_overview.py +0 -0
  249. {paasta-tools-0.231.0 → paasta-tools-0.232.0}/paasta_tools/paastaapi/model/flink_config.py +0 -0
  250. {paasta-tools-0.231.0 → paasta-tools-0.232.0}/paasta_tools/paastaapi/model/flink_job.py +0 -0
  251. {paasta-tools-0.231.0 → paasta-tools-0.232.0}/paasta_tools/paastaapi/model/flink_job_details.py +0 -0
  252. {paasta-tools-0.231.0 → paasta-tools-0.232.0}/paasta_tools/paastaapi/model/flink_jobs.py +0 -0
  253. {paasta-tools-0.231.0 → paasta-tools-0.232.0}/paasta_tools/paastaapi/model/float_and_error.py +0 -0
  254. {paasta-tools-0.231.0 → paasta-tools-0.232.0}/paasta_tools/paastaapi/model/hpa_metric.py +0 -0
  255. {paasta-tools-0.231.0 → paasta-tools-0.232.0}/paasta_tools/paastaapi/model/inline_object.py +0 -0
  256. {paasta-tools-0.231.0 → paasta-tools-0.232.0}/paasta_tools/paastaapi/model/inline_response200.py +0 -0
  257. {paasta-tools-0.231.0 → paasta-tools-0.232.0}/paasta_tools/paastaapi/model/inline_response2001.py +0 -0
  258. {paasta-tools-0.231.0 → paasta-tools-0.232.0}/paasta_tools/paastaapi/model/instance_bounce_status.py +0 -0
  259. {paasta-tools-0.231.0 → paasta-tools-0.232.0}/paasta_tools/paastaapi/model/instance_mesh_status.py +0 -0
  260. {paasta-tools-0.231.0 → paasta-tools-0.232.0}/paasta_tools/paastaapi/model/instance_status.py +0 -0
  261. {paasta-tools-0.231.0 → paasta-tools-0.232.0}/paasta_tools/paastaapi/model/instance_status_adhoc.py +0 -0
  262. {paasta-tools-0.231.0 → paasta-tools-0.232.0}/paasta_tools/paastaapi/model/instance_status_cassandracluster.py +0 -0
  263. {paasta-tools-0.231.0 → paasta-tools-0.232.0}/paasta_tools/paastaapi/model/instance_status_flink.py +0 -0
  264. {paasta-tools-0.231.0 → paasta-tools-0.232.0}/paasta_tools/paastaapi/model/instance_status_kafkacluster.py +0 -0
  265. {paasta-tools-0.231.0 → paasta-tools-0.232.0}/paasta_tools/paastaapi/model/instance_status_kubernetes.py +0 -0
  266. {paasta-tools-0.231.0 → paasta-tools-0.232.0}/paasta_tools/paastaapi/model/instance_status_kubernetes_autoscaling_status.py +0 -0
  267. {paasta-tools-0.231.0 → paasta-tools-0.232.0}/paasta_tools/paastaapi/model/instance_status_kubernetes_v2.py +0 -0
  268. {paasta-tools-0.231.0 → paasta-tools-0.232.0}/paasta_tools/paastaapi/model/instance_status_marathon.py +0 -0
  269. {paasta-tools-0.231.0 → paasta-tools-0.232.0}/paasta_tools/paastaapi/model/instance_status_tron.py +0 -0
  270. {paasta-tools-0.231.0 → paasta-tools-0.232.0}/paasta_tools/paastaapi/model/instance_tasks.py +0 -0
  271. {paasta-tools-0.231.0 → paasta-tools-0.232.0}/paasta_tools/paastaapi/model/integer_and_error.py +0 -0
  272. {paasta-tools-0.231.0 → paasta-tools-0.232.0}/paasta_tools/paastaapi/model/kubernetes_container.py +0 -0
  273. {paasta-tools-0.231.0 → paasta-tools-0.232.0}/paasta_tools/paastaapi/model/kubernetes_container_v2.py +0 -0
  274. {paasta-tools-0.231.0 → paasta-tools-0.232.0}/paasta_tools/paastaapi/model/kubernetes_healthcheck.py +0 -0
  275. {paasta-tools-0.231.0 → paasta-tools-0.232.0}/paasta_tools/paastaapi/model/kubernetes_pod.py +0 -0
  276. {paasta-tools-0.231.0 → paasta-tools-0.232.0}/paasta_tools/paastaapi/model/kubernetes_pod_event.py +0 -0
  277. {paasta-tools-0.231.0 → paasta-tools-0.232.0}/paasta_tools/paastaapi/model/kubernetes_pod_v2.py +0 -0
  278. {paasta-tools-0.231.0 → paasta-tools-0.232.0}/paasta_tools/paastaapi/model/kubernetes_replica_set.py +0 -0
  279. {paasta-tools-0.231.0 → paasta-tools-0.232.0}/paasta_tools/paastaapi/model/kubernetes_version.py +0 -0
  280. {paasta-tools-0.231.0 → paasta-tools-0.232.0}/paasta_tools/paastaapi/model/marathon_app_status.py +0 -0
  281. {paasta-tools-0.231.0 → paasta-tools-0.232.0}/paasta_tools/paastaapi/model/marathon_autoscaling_info.py +0 -0
  282. {paasta-tools-0.231.0 → paasta-tools-0.232.0}/paasta_tools/paastaapi/model/marathon_dashboard.py +0 -0
  283. {paasta-tools-0.231.0 → paasta-tools-0.232.0}/paasta_tools/paastaapi/model/marathon_dashboard_cluster.py +0 -0
  284. {paasta-tools-0.231.0 → paasta-tools-0.232.0}/paasta_tools/paastaapi/model/marathon_dashboard_item.py +0 -0
  285. {paasta-tools-0.231.0 → paasta-tools-0.232.0}/paasta_tools/paastaapi/model/marathon_mesos_nonrunning_task.py +0 -0
  286. {paasta-tools-0.231.0 → paasta-tools-0.232.0}/paasta_tools/paastaapi/model/marathon_mesos_running_task.py +0 -0
  287. {paasta-tools-0.231.0 → paasta-tools-0.232.0}/paasta_tools/paastaapi/model/marathon_mesos_status.py +0 -0
  288. {paasta-tools-0.231.0 → paasta-tools-0.232.0}/paasta_tools/paastaapi/model/marathon_task.py +0 -0
  289. {paasta-tools-0.231.0 → paasta-tools-0.232.0}/paasta_tools/paastaapi/model/meta_status.py +0 -0
  290. {paasta-tools-0.231.0 → paasta-tools-0.232.0}/paasta_tools/paastaapi/model/resource.py +0 -0
  291. {paasta-tools-0.231.0 → paasta-tools-0.232.0}/paasta_tools/paastaapi/model/resource_item.py +0 -0
  292. {paasta-tools-0.231.0 → paasta-tools-0.232.0}/paasta_tools/paastaapi/model/resource_value.py +0 -0
  293. {paasta-tools-0.231.0 → paasta-tools-0.232.0}/paasta_tools/paastaapi/model/smartstack_backend.py +0 -0
  294. {paasta-tools-0.231.0 → paasta-tools-0.232.0}/paasta_tools/paastaapi/model/smartstack_location.py +0 -0
  295. {paasta-tools-0.231.0 → paasta-tools-0.232.0}/paasta_tools/paastaapi/model/smartstack_status.py +0 -0
  296. {paasta-tools-0.231.0 → paasta-tools-0.232.0}/paasta_tools/paastaapi/model/task_tail_lines.py +0 -0
  297. {paasta-tools-0.231.0 → paasta-tools-0.232.0}/paasta_tools/paastaapi/model_utils.py +0 -0
  298. {paasta-tools-0.231.0 → paasta-tools-0.232.0}/paasta_tools/paastaapi/models/__init__.py +0 -0
  299. {paasta-tools-0.231.0 → paasta-tools-0.232.0}/paasta_tools/paastaapi/rest.py +0 -0
  300. {paasta-tools-0.231.0 → paasta-tools-0.232.0}/paasta_tools/prune_completed_pods.py +0 -0
  301. {paasta-tools-0.231.0 → paasta-tools-0.232.0}/paasta_tools/py.typed +0 -0
  302. {paasta-tools-0.231.0 → paasta-tools-0.232.0}/paasta_tools/remote_git.py +0 -0
  303. {paasta-tools-0.231.0 → paasta-tools-0.232.0}/paasta_tools/run-paasta-api-in-dev-mode.py +0 -0
  304. {paasta-tools-0.231.0 → paasta-tools-0.232.0}/paasta_tools/run-paasta-api-playground.py +0 -0
  305. {paasta-tools-0.231.0 → paasta-tools-0.232.0}/paasta_tools/secret_providers/__init__.py +0 -0
  306. {paasta-tools-0.231.0 → paasta-tools-0.232.0}/paasta_tools/secret_providers/vault.py +0 -0
  307. {paasta-tools-0.231.0 → paasta-tools-0.232.0}/paasta_tools/secret_tools.py +0 -0
  308. {paasta-tools-0.231.0 → paasta-tools-0.232.0}/paasta_tools/setup_istio_mesh.py +0 -0
  309. {paasta-tools-0.231.0 → paasta-tools-0.232.0}/paasta_tools/setup_kubernetes_cr.py +0 -0
  310. {paasta-tools-0.231.0 → paasta-tools-0.232.0}/paasta_tools/setup_kubernetes_crd.py +0 -0
  311. {paasta-tools-0.231.0 → paasta-tools-0.232.0}/paasta_tools/setup_kubernetes_internal_crd.py +0 -0
  312. {paasta-tools-0.231.0 → paasta-tools-0.232.0}/paasta_tools/setup_kubernetes_job.py +0 -0
  313. {paasta-tools-0.231.0 → paasta-tools-0.232.0}/paasta_tools/setup_prometheus_adapter_config.py +0 -0
  314. {paasta-tools-0.231.0 → paasta-tools-0.232.0}/paasta_tools/setup_tron_namespace.py +0 -0
  315. {paasta-tools-0.231.0 → paasta-tools-0.232.0}/paasta_tools/slack.py +0 -0
  316. {paasta-tools-0.231.0 → paasta-tools-0.232.0}/paasta_tools/smartstack_tools.py +0 -0
  317. {paasta-tools-0.231.0 → paasta-tools-0.232.0}/paasta_tools/spark_tools.py +0 -0
  318. {paasta-tools-0.231.0 → paasta-tools-0.232.0}/paasta_tools/synapse_srv_namespaces_fact.py +0 -0
  319. {paasta-tools-0.231.0 → paasta-tools-0.232.0}/paasta_tools/tron/__init__.py +0 -0
  320. {paasta-tools-0.231.0 → paasta-tools-0.232.0}/paasta_tools/tron/client.py +0 -0
  321. {paasta-tools-0.231.0 → paasta-tools-0.232.0}/paasta_tools/tron/tron_command_context.py +0 -0
  322. {paasta-tools-0.231.0 → paasta-tools-0.232.0}/paasta_tools/tron/tron_timeutils.py +0 -0
  323. {paasta-tools-0.231.0 → paasta-tools-0.232.0}/paasta_tools/tron_tools.py +0 -0
  324. {paasta-tools-0.231.0 → paasta-tools-0.232.0}/paasta_tools/vitesscluster_tools.py +0 -0
  325. {paasta-tools-0.231.0 → paasta-tools-0.232.0}/paasta_tools.egg-info/SOURCES.txt +0 -0
  326. {paasta-tools-0.231.0 → paasta-tools-0.232.0}/paasta_tools.egg-info/dependency_links.txt +0 -0
  327. {paasta-tools-0.231.0 → paasta-tools-0.232.0}/paasta_tools.egg-info/entry_points.txt +0 -0
  328. {paasta-tools-0.231.0 → paasta-tools-0.232.0}/paasta_tools.egg-info/requires.txt +0 -0
  329. {paasta-tools-0.231.0 → paasta-tools-0.232.0}/paasta_tools.egg-info/top_level.txt +0 -0
  330. {paasta-tools-0.231.0 → paasta-tools-0.232.0}/pyproject.toml +0 -0
  331. {paasta-tools-0.231.0 → paasta-tools-0.232.0}/requirements-minimal.txt +0 -0
  332. {paasta-tools-0.231.0 → paasta-tools-0.232.0}/setup.cfg +0 -0
  333. {paasta-tools-0.231.0 → paasta-tools-0.232.0}/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.0
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.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
@@ -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
  },
@@ -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.0
4
4
  Summary: Tools for Yelps SOA infrastructure
5
5
  Home-page: UNKNOWN
6
6
  Author: Compute Infrastructure @ Yelp
File without changes