paasta-tools 1.23.0__tar.gz → 1.23.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 (357) hide show
  1. {paasta_tools-1.23.0/paasta_tools.egg-info → paasta_tools-1.23.1}/PKG-INFO +1 -1
  2. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/paasta_tools/__init__.py +1 -1
  3. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/paasta_tools/contrib/paasta_update_soa_memcpu.py +82 -19
  4. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/paasta_tools/kubernetes_tools.py +23 -5
  5. {paasta_tools-1.23.0 → paasta_tools-1.23.1/paasta_tools.egg-info}/PKG-INFO +1 -1
  6. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/tests/test_kubernetes_tools.py +74 -0
  7. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/LICENSE +0 -0
  8. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/MANIFEST.in +0 -0
  9. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/README.md +0 -0
  10. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/k8s_itests/__init__.py +0 -0
  11. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/k8s_itests/test_autoscaling.py +0 -0
  12. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/k8s_itests/utils.py +0 -0
  13. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/paasta_tools/adhoc_tools.py +0 -0
  14. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/paasta_tools/api/__init__.py +0 -0
  15. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/paasta_tools/api/api.py +0 -0
  16. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/paasta_tools/api/api_docs/swagger.json +0 -0
  17. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/paasta_tools/api/client.py +0 -0
  18. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/paasta_tools/api/settings.py +0 -0
  19. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/paasta_tools/api/tweens/__init__.py +0 -0
  20. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/paasta_tools/api/tweens/auth.py +0 -0
  21. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/paasta_tools/api/tweens/profiling.py +0 -0
  22. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/paasta_tools/api/tweens/request_logger.py +0 -0
  23. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/paasta_tools/api/views/__init__.py +0 -0
  24. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/paasta_tools/api/views/autoscaler.py +0 -0
  25. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/paasta_tools/api/views/exception.py +0 -0
  26. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/paasta_tools/api/views/flink.py +0 -0
  27. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/paasta_tools/api/views/instance.py +0 -0
  28. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/paasta_tools/api/views/pause_autoscaler.py +0 -0
  29. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/paasta_tools/api/views/remote_run.py +0 -0
  30. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/paasta_tools/api/views/resources.py +0 -0
  31. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/paasta_tools/api/views/service.py +0 -0
  32. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/paasta_tools/api/views/version.py +0 -0
  33. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/paasta_tools/apply_external_resources.py +0 -0
  34. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/paasta_tools/async_utils.py +0 -0
  35. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/paasta_tools/autoscaling/__init__.py +0 -0
  36. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/paasta_tools/autoscaling/autoscaling_service_lib.py +0 -0
  37. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/paasta_tools/autoscaling/forecasting.py +0 -0
  38. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/paasta_tools/autoscaling/max_all_k8s_services.py +0 -0
  39. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/paasta_tools/autoscaling/pause_service_autoscaler.py +0 -0
  40. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/paasta_tools/autoscaling/utils.py +0 -0
  41. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/paasta_tools/bounce_lib.py +0 -0
  42. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/paasta_tools/broadcast_log_to_services.py +0 -0
  43. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/paasta_tools/cassandracluster_tools.py +0 -0
  44. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/paasta_tools/check_autoscaler_max_instances.py +0 -0
  45. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/paasta_tools/check_cassandracluster_services_replication.py +0 -0
  46. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/paasta_tools/check_flink_services_health.py +0 -0
  47. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/paasta_tools/check_kubernetes_api.py +0 -0
  48. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/paasta_tools/check_kubernetes_services_replication.py +0 -0
  49. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/paasta_tools/check_oom_events.py +0 -0
  50. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/paasta_tools/check_services_replication_tools.py +0 -0
  51. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/paasta_tools/check_spark_jobs.py +0 -0
  52. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/paasta_tools/cleanup_kubernetes_cr.py +0 -0
  53. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/paasta_tools/cleanup_kubernetes_crd.py +0 -0
  54. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/paasta_tools/cleanup_kubernetes_jobs.py +0 -0
  55. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/paasta_tools/cleanup_tron_namespaces.py +0 -0
  56. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/paasta_tools/cli/__init__.py +0 -0
  57. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/paasta_tools/cli/authentication.py +0 -0
  58. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/paasta_tools/cli/cli.py +0 -0
  59. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/paasta_tools/cli/cmds/__init__.py +0 -0
  60. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/paasta_tools/cli/cmds/autoscale.py +0 -0
  61. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/paasta_tools/cli/cmds/check.py +0 -0
  62. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/paasta_tools/cli/cmds/cook_image.py +0 -0
  63. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/paasta_tools/cli/cmds/get_docker_image.py +0 -0
  64. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/paasta_tools/cli/cmds/get_image_version.py +0 -0
  65. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/paasta_tools/cli/cmds/get_latest_deployment.py +0 -0
  66. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/paasta_tools/cli/cmds/info.py +0 -0
  67. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/paasta_tools/cli/cmds/itest.py +0 -0
  68. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/paasta_tools/cli/cmds/list.py +0 -0
  69. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/paasta_tools/cli/cmds/list_clusters.py +0 -0
  70. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/paasta_tools/cli/cmds/list_deploy_queue.py +0 -0
  71. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/paasta_tools/cli/cmds/list_namespaces.py +0 -0
  72. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/paasta_tools/cli/cmds/local_run.py +0 -0
  73. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/paasta_tools/cli/cmds/logs.py +0 -0
  74. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/paasta_tools/cli/cmds/mark_for_deployment.py +0 -0
  75. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/paasta_tools/cli/cmds/mesh_status.py +0 -0
  76. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/paasta_tools/cli/cmds/pause_service_autoscaler.py +0 -0
  77. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/paasta_tools/cli/cmds/push_to_registry.py +0 -0
  78. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/paasta_tools/cli/cmds/remote_run.py +0 -0
  79. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/paasta_tools/cli/cmds/rollback.py +0 -0
  80. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/paasta_tools/cli/cmds/secret.py +0 -0
  81. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/paasta_tools/cli/cmds/security_check.py +0 -0
  82. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/paasta_tools/cli/cmds/spark_run.py +0 -0
  83. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/paasta_tools/cli/cmds/start_stop_restart.py +0 -0
  84. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/paasta_tools/cli/cmds/status.py +0 -0
  85. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/paasta_tools/cli/cmds/validate.py +0 -0
  86. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/paasta_tools/cli/cmds/wait_for_deployment.py +0 -0
  87. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/paasta_tools/cli/fsm/__init__.py +0 -0
  88. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/paasta_tools/cli/fsm/autosuggest.py +0 -0
  89. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/paasta_tools/cli/fsm/template/README.md +0 -0
  90. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/paasta_tools/cli/fsm/template/cookiecutter.json +0 -0
  91. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/paasta_tools/cli/fsm/template/{{cookiecutter.service}}/kubernetes-PROD.yaml +0 -0
  92. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/paasta_tools/cli/fsm/template/{{cookiecutter.service}}/monitoring.yaml +0 -0
  93. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/paasta_tools/cli/fsm/template/{{cookiecutter.service}}/service.yaml +0 -0
  94. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/paasta_tools/cli/fsm/template/{{cookiecutter.service}}/smartstack.yaml +0 -0
  95. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/paasta_tools/cli/fsm_cmd.py +0 -0
  96. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/paasta_tools/cli/paasta_tabcomplete.sh +0 -0
  97. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/paasta_tools/cli/schemas/adhoc_schema.json +0 -0
  98. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/paasta_tools/cli/schemas/autoscaling_schema.json +0 -0
  99. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/paasta_tools/cli/schemas/autotuned_defaults/cassandracluster_schema.json +0 -0
  100. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/paasta_tools/cli/schemas/autotuned_defaults/kubernetes_schema.json +0 -0
  101. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/paasta_tools/cli/schemas/deploy_schema.json +0 -0
  102. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/paasta_tools/cli/schemas/eks_schema.json +0 -0
  103. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/paasta_tools/cli/schemas/kubernetes_schema.json +0 -0
  104. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/paasta_tools/cli/schemas/rollback_schema.json +0 -0
  105. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/paasta_tools/cli/schemas/service_schema.json +0 -0
  106. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/paasta_tools/cli/schemas/smartstack_schema.json +0 -0
  107. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/paasta_tools/cli/schemas/tron_schema.json +0 -0
  108. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/paasta_tools/cli/utils.py +0 -0
  109. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/paasta_tools/clusterman.py +0 -0
  110. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/paasta_tools/config_utils.py +0 -0
  111. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/paasta_tools/contrib/__init__.py +0 -0
  112. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/paasta_tools/contrib/bounce_log_latency_parser.py +0 -0
  113. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/paasta_tools/contrib/check_manual_oapi_changes.sh +0 -0
  114. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/paasta_tools/contrib/check_orphans.py +0 -0
  115. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/paasta_tools/contrib/create_dynamodb_table.py +0 -0
  116. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/paasta_tools/contrib/create_paasta_playground.py +0 -0
  117. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/paasta_tools/contrib/emit_allocated_cpu_metrics.py +0 -0
  118. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/paasta_tools/contrib/get_running_task_allocation.py +0 -0
  119. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/paasta_tools/contrib/habitat_fixer.py +0 -0
  120. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/paasta_tools/contrib/ide_helper.py +0 -0
  121. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/paasta_tools/contrib/is_pod_healthy_in_proxy.py +0 -0
  122. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/paasta_tools/contrib/is_pod_healthy_in_smartstack.py +0 -0
  123. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/paasta_tools/contrib/kill_bad_containers.py +0 -0
  124. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/paasta_tools/contrib/mass-deploy-tag.sh +0 -0
  125. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/paasta_tools/contrib/mock_patch_checker.py +0 -0
  126. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/paasta_tools/contrib/render_template.py +0 -0
  127. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/paasta_tools/contrib/rightsizer_soaconfigs_update.py +0 -0
  128. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/paasta_tools/contrib/service_shard_remove.py +0 -0
  129. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/paasta_tools/contrib/service_shard_update.py +0 -0
  130. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/paasta_tools/contrib/shared_ip_check.py +0 -0
  131. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/paasta_tools/contrib/timeouts_metrics_prom.py +0 -0
  132. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/paasta_tools/delete_kubernetes_deployments.py +0 -0
  133. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/paasta_tools/deployment_utils.py +0 -0
  134. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/paasta_tools/docker_wrapper.py +0 -0
  135. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/paasta_tools/docker_wrapper_imports.py +0 -0
  136. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/paasta_tools/drain_lib.py +0 -0
  137. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/paasta_tools/dump_locally_running_services.py +0 -0
  138. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/paasta_tools/eks_tools.py +0 -0
  139. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/paasta_tools/envoy_tools.py +0 -0
  140. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/paasta_tools/firewall.py +0 -0
  141. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/paasta_tools/firewall_logging.py +0 -0
  142. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/paasta_tools/firewall_update.py +0 -0
  143. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/paasta_tools/flink_tools.py +0 -0
  144. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/paasta_tools/flinkeks_tools.py +0 -0
  145. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/paasta_tools/frameworks/__init__.py +0 -0
  146. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/paasta_tools/frameworks/adhoc_scheduler.py +0 -0
  147. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/paasta_tools/frameworks/constraints.py +0 -0
  148. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/paasta_tools/frameworks/native_scheduler.py +0 -0
  149. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/paasta_tools/frameworks/native_service_config.py +0 -0
  150. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/paasta_tools/frameworks/task_store.py +0 -0
  151. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/paasta_tools/generate_all_deployments +0 -0
  152. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/paasta_tools/generate_authenticating_services.py +0 -0
  153. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/paasta_tools/generate_deployments_for_service.py +0 -0
  154. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/paasta_tools/generate_services_file.py +0 -0
  155. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/paasta_tools/generate_services_yaml.py +0 -0
  156. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/paasta_tools/hacheck.py +0 -0
  157. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/paasta_tools/instance/__init__.py +0 -0
  158. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/paasta_tools/instance/hpa_metrics_parser.py +0 -0
  159. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/paasta_tools/instance/kubernetes.py +0 -0
  160. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/paasta_tools/iptables.py +0 -0
  161. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/paasta_tools/kafkacluster_tools.py +0 -0
  162. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/paasta_tools/kubernetes/__init__.py +0 -0
  163. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/paasta_tools/kubernetes/application/__init__.py +0 -0
  164. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/paasta_tools/kubernetes/application/controller_wrappers.py +0 -0
  165. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/paasta_tools/kubernetes/application/tools.py +0 -0
  166. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/paasta_tools/kubernetes/bin/__init__.py +0 -0
  167. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/paasta_tools/kubernetes/bin/kubernetes_remove_evicted_pods.py +0 -0
  168. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/paasta_tools/kubernetes/bin/paasta_cleanup_remote_run_resources.py +0 -0
  169. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/paasta_tools/kubernetes/bin/paasta_cleanup_stale_nodes.py +0 -0
  170. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/paasta_tools/kubernetes/bin/paasta_secrets_sync.py +0 -0
  171. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/paasta_tools/kubernetes/remote_run.py +0 -0
  172. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/paasta_tools/list_kubernetes_service_instances.py +0 -0
  173. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/paasta_tools/list_tron_namespaces.py +0 -0
  174. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/paasta_tools/long_running_service_tools.py +0 -0
  175. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/paasta_tools/mac_address.py +0 -0
  176. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/paasta_tools/marathon_dashboard.py +0 -0
  177. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/paasta_tools/mesos/__init__.py +0 -0
  178. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/paasta_tools/mesos/cfg.py +0 -0
  179. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/paasta_tools/mesos/cluster.py +0 -0
  180. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/paasta_tools/mesos/exceptions.py +0 -0
  181. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/paasta_tools/mesos/framework.py +0 -0
  182. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/paasta_tools/mesos/log.py +0 -0
  183. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/paasta_tools/mesos/master.py +0 -0
  184. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/paasta_tools/mesos/mesos_file.py +0 -0
  185. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/paasta_tools/mesos/parallel.py +0 -0
  186. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/paasta_tools/mesos/slave.py +0 -0
  187. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/paasta_tools/mesos/task.py +0 -0
  188. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/paasta_tools/mesos/util.py +0 -0
  189. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/paasta_tools/mesos/zookeeper.py +0 -0
  190. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/paasta_tools/mesos_maintenance.py +0 -0
  191. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/paasta_tools/mesos_tools.py +0 -0
  192. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/paasta_tools/metrics/__init__.py +0 -0
  193. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/paasta_tools/metrics/metastatus_lib.py +0 -0
  194. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/paasta_tools/metrics/metrics_lib.py +0 -0
  195. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/paasta_tools/monitoring/__init__.py +0 -0
  196. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/paasta_tools/monitoring/check_k8s_api_performance.py +0 -0
  197. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/paasta_tools/monitoring_tools.py +0 -0
  198. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/paasta_tools/monkrelaycluster_tools.py +0 -0
  199. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/paasta_tools/nrtsearchservice_tools.py +0 -0
  200. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/paasta_tools/nrtsearchserviceeks_tools.py +0 -0
  201. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/paasta_tools/oom_logger.py +0 -0
  202. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/paasta_tools/paasta_deploy_tron_jobs +0 -0
  203. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/paasta_tools/paasta_execute_docker_command.py +0 -0
  204. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/paasta_tools/paasta_native_serviceinit.py +0 -0
  205. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/paasta_tools/paasta_service_config_loader.py +0 -0
  206. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/paasta_tools/paastaapi/__init__.py +0 -0
  207. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/paasta_tools/paastaapi/api/__init__.py +0 -0
  208. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/paasta_tools/paastaapi/api/autoscaler_api.py +0 -0
  209. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/paasta_tools/paastaapi/api/default_api.py +0 -0
  210. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/paasta_tools/paastaapi/api/remote_run_api.py +0 -0
  211. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/paasta_tools/paastaapi/api/resources_api.py +0 -0
  212. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/paasta_tools/paastaapi/api/service_api.py +0 -0
  213. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/paasta_tools/paastaapi/api_client.py +0 -0
  214. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/paasta_tools/paastaapi/apis/__init__.py +0 -0
  215. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/paasta_tools/paastaapi/configuration.py +0 -0
  216. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/paasta_tools/paastaapi/exceptions.py +0 -0
  217. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/paasta_tools/paastaapi/model/__init__.py +0 -0
  218. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/paasta_tools/paastaapi/model/adhoc_launch_history.py +0 -0
  219. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/paasta_tools/paastaapi/model/autoscaler_count_msg.py +0 -0
  220. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/paasta_tools/paastaapi/model/autoscaling_override.py +0 -0
  221. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/paasta_tools/paastaapi/model/deploy_queue.py +0 -0
  222. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/paasta_tools/paastaapi/model/deploy_queue_service_instance.py +0 -0
  223. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/paasta_tools/paastaapi/model/envoy_backend.py +0 -0
  224. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/paasta_tools/paastaapi/model/envoy_location.py +0 -0
  225. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/paasta_tools/paastaapi/model/envoy_status.py +0 -0
  226. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/paasta_tools/paastaapi/model/flink_cluster_overview.py +0 -0
  227. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/paasta_tools/paastaapi/model/flink_config.py +0 -0
  228. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/paasta_tools/paastaapi/model/flink_job.py +0 -0
  229. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/paasta_tools/paastaapi/model/flink_job_details.py +0 -0
  230. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/paasta_tools/paastaapi/model/flink_jobs.py +0 -0
  231. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/paasta_tools/paastaapi/model/float_and_error.py +0 -0
  232. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/paasta_tools/paastaapi/model/hpa_metric.py +0 -0
  233. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/paasta_tools/paastaapi/model/inline_object.py +0 -0
  234. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/paasta_tools/paastaapi/model/inline_response200.py +0 -0
  235. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/paasta_tools/paastaapi/model/inline_response2001.py +0 -0
  236. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/paasta_tools/paastaapi/model/inline_response202.py +0 -0
  237. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/paasta_tools/paastaapi/model/instance_bounce_status.py +0 -0
  238. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/paasta_tools/paastaapi/model/instance_mesh_status.py +0 -0
  239. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/paasta_tools/paastaapi/model/instance_status.py +0 -0
  240. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/paasta_tools/paastaapi/model/instance_status_adhoc.py +0 -0
  241. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/paasta_tools/paastaapi/model/instance_status_cassandracluster.py +0 -0
  242. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/paasta_tools/paastaapi/model/instance_status_flink.py +0 -0
  243. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/paasta_tools/paastaapi/model/instance_status_kafkacluster.py +0 -0
  244. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/paasta_tools/paastaapi/model/instance_status_kubernetes.py +0 -0
  245. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/paasta_tools/paastaapi/model/instance_status_kubernetes_autoscaling_status.py +0 -0
  246. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/paasta_tools/paastaapi/model/instance_status_kubernetes_v2.py +0 -0
  247. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/paasta_tools/paastaapi/model/instance_status_tron.py +0 -0
  248. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/paasta_tools/paastaapi/model/instance_tasks.py +0 -0
  249. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/paasta_tools/paastaapi/model/integer_and_error.py +0 -0
  250. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/paasta_tools/paastaapi/model/kubernetes_container.py +0 -0
  251. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/paasta_tools/paastaapi/model/kubernetes_container_v2.py +0 -0
  252. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/paasta_tools/paastaapi/model/kubernetes_healthcheck.py +0 -0
  253. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/paasta_tools/paastaapi/model/kubernetes_pod.py +0 -0
  254. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/paasta_tools/paastaapi/model/kubernetes_pod_event.py +0 -0
  255. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/paasta_tools/paastaapi/model/kubernetes_pod_v2.py +0 -0
  256. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/paasta_tools/paastaapi/model/kubernetes_replica_set.py +0 -0
  257. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/paasta_tools/paastaapi/model/kubernetes_version.py +0 -0
  258. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/paasta_tools/paastaapi/model/remote_run_outcome.py +0 -0
  259. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/paasta_tools/paastaapi/model/remote_run_start.py +0 -0
  260. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/paasta_tools/paastaapi/model/remote_run_stop.py +0 -0
  261. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/paasta_tools/paastaapi/model/remote_run_token.py +0 -0
  262. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/paasta_tools/paastaapi/model/resource.py +0 -0
  263. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/paasta_tools/paastaapi/model/resource_item.py +0 -0
  264. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/paasta_tools/paastaapi/model/resource_value.py +0 -0
  265. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/paasta_tools/paastaapi/model/smartstack_backend.py +0 -0
  266. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/paasta_tools/paastaapi/model/smartstack_location.py +0 -0
  267. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/paasta_tools/paastaapi/model/smartstack_status.py +0 -0
  268. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/paasta_tools/paastaapi/model/task_tail_lines.py +0 -0
  269. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/paasta_tools/paastaapi/model_utils.py +0 -0
  270. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/paasta_tools/paastaapi/models/__init__.py +0 -0
  271. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/paasta_tools/paastaapi/rest.py +0 -0
  272. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/paasta_tools/prune_completed_pods.py +0 -0
  273. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/paasta_tools/puppet_service_tools.py +0 -0
  274. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/paasta_tools/py.typed +0 -0
  275. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/paasta_tools/remote_git.py +0 -0
  276. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/paasta_tools/run-paasta-api-in-dev-mode.py +0 -0
  277. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/paasta_tools/run-paasta-api-playground.py +0 -0
  278. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/paasta_tools/secret_providers/__init__.py +0 -0
  279. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/paasta_tools/secret_providers/vault.py +0 -0
  280. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/paasta_tools/secret_tools.py +0 -0
  281. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/paasta_tools/setup_istio_mesh.py +0 -0
  282. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/paasta_tools/setup_kubernetes_cr.py +0 -0
  283. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/paasta_tools/setup_kubernetes_crd.py +0 -0
  284. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/paasta_tools/setup_kubernetes_internal_crd.py +0 -0
  285. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/paasta_tools/setup_kubernetes_job.py +0 -0
  286. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/paasta_tools/setup_prometheus_adapter_config.py +0 -0
  287. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/paasta_tools/setup_tron_namespace.py +0 -0
  288. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/paasta_tools/slack.py +0 -0
  289. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/paasta_tools/smartstack_tools.py +0 -0
  290. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/paasta_tools/spark_tools.py +0 -0
  291. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/paasta_tools/synapse_srv_namespaces_fact.py +0 -0
  292. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/paasta_tools/tron/__init__.py +0 -0
  293. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/paasta_tools/tron/client.py +0 -0
  294. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/paasta_tools/tron/tron_command_context.py +0 -0
  295. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/paasta_tools/tron/tron_timeutils.py +0 -0
  296. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/paasta_tools/tron_tools.py +0 -0
  297. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/paasta_tools/utils.py +0 -0
  298. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/paasta_tools/yaml_tools.py +0 -0
  299. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/paasta_tools.egg-info/SOURCES.txt +0 -0
  300. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/paasta_tools.egg-info/dependency_links.txt +0 -0
  301. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/paasta_tools.egg-info/entry_points.txt +0 -0
  302. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/paasta_tools.egg-info/requires.txt +0 -0
  303. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/paasta_tools.egg-info/top_level.txt +0 -0
  304. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/pyproject.toml +0 -0
  305. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/requirements-minimal.txt +0 -0
  306. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/setup.cfg +0 -0
  307. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/setup.py +0 -0
  308. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/tests/test_adhoc_tools.py +0 -0
  309. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/tests/test_apply_external_resources.py +0 -0
  310. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/tests/test_async_utils.py +0 -0
  311. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/tests/test_bounce_lib.py +0 -0
  312. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/tests/test_check_flink_services_health.py +0 -0
  313. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/tests/test_check_kubernetes_services_replication.py +0 -0
  314. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/tests/test_check_oom_events.py +0 -0
  315. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/tests/test_check_service_replication_tools.py +0 -0
  316. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/tests/test_check_spark_jobs.py +0 -0
  317. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/tests/test_cleanup_kubernetes_jobs.py +0 -0
  318. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/tests/test_config_utils.py +0 -0
  319. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/tests/test_delete_kubernetes_deployments.py +0 -0
  320. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/tests/test_deployment_utils.py +0 -0
  321. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/tests/test_docker_wrapper.py +0 -0
  322. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/tests/test_drain_lib.py +0 -0
  323. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/tests/test_eks_tools.py +0 -0
  324. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/tests/test_envoy_tools.py +0 -0
  325. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/tests/test_firewall.py +0 -0
  326. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/tests/test_firewall_logging.py +0 -0
  327. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/tests/test_firewall_update.py +0 -0
  328. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/tests/test_flink_tools.py +0 -0
  329. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/tests/test_flinkeks_tools.py +0 -0
  330. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/tests/test_generate_authenticating_services.py +0 -0
  331. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/tests/test_generate_deployments_for_service.py +0 -0
  332. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/tests/test_generate_services_file.py +0 -0
  333. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/tests/test_generate_services_yaml.py +0 -0
  334. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/tests/test_hacheck.py +0 -0
  335. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/tests/test_iptables.py +0 -0
  336. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/tests/test_list_kubernetes_service_instances.py +0 -0
  337. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/tests/test_long_running_service_tools.py +0 -0
  338. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/tests/test_mac_address.py +0 -0
  339. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/tests/test_mesos_tools.py +0 -0
  340. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/tests/test_monitoring_tools.py +0 -0
  341. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/tests/test_nrtsearchserviceseks_tools.py +0 -0
  342. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/tests/test_oom_logger.py +0 -0
  343. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/tests/test_paasta_execute_docker_command.py +0 -0
  344. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/tests/test_paasta_service_config_loader.py +0 -0
  345. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/tests/test_puppet_service_tools.py +0 -0
  346. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/tests/test_remote_git.py +0 -0
  347. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/tests/test_secret_tools.py +0 -0
  348. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/tests/test_setup_istio_mesh.py +0 -0
  349. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/tests/test_setup_kubernetes_cr.py +0 -0
  350. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/tests/test_setup_kubernetes_job.py +0 -0
  351. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/tests/test_setup_prometheus_adapter_config.py +0 -0
  352. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/tests/test_slack.py +0 -0
  353. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/tests/test_smartstack_tools.py +0 -0
  354. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/tests/test_spark_tools.py +0 -0
  355. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/tests/test_task_processing.py +0 -0
  356. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/tests/test_tron_tools.py +0 -0
  357. {paasta_tools-1.23.0 → paasta_tools-1.23.1}/tests/test_utils.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: paasta-tools
3
- Version: 1.23.0
3
+ Version: 1.23.1
4
4
  Summary: Tools for Yelps SOA infrastructure
5
5
  Author: Compute Infrastructure @ Yelp
6
6
  Author-email: compute-infra@yelp.com
@@ -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__ = "1.23.0"
20
+ __version__ = "1.23.1"
@@ -135,6 +135,11 @@ def cwd(path):
135
135
  os.chdir(pwd)
136
136
 
137
137
 
138
+ def _force_str_to_int(value: str) -> int:
139
+ """Force convert strings into ints - even if they're technically floats."""
140
+ return int(float(value))
141
+
142
+
138
143
  def get_report_from_splunk(creds, app, filename, criteria_filter):
139
144
  """Expect a table containing at least the following fields:
140
145
  criteria (<service> kubernetes-<cluster_name> <instance>)
@@ -165,29 +170,87 @@ def get_report_from_splunk(creds, app, filename, criteria_filter):
165
170
  resp_text = [x for x in resp_text if x]
166
171
  resp_text = [json.loads(x) for x in resp_text]
167
172
  services_to_update = {}
173
+
168
174
  for d in resp_text:
169
175
  if "result" not in d:
170
176
  raise ValueError(f"Splunk request didn't return any results: {resp_text}")
171
177
  criteria = d["result"]["criteria"]
172
- serv = {}
173
- serv["service"] = criteria.split(" ")[0]
174
- serv["cluster"] = criteria.split(" ")[1]
175
- serv["instance"] = criteria.split(" ")[2]
176
- serv["owner"] = d["result"].get("service_owner", "Unavailable")
177
- serv["date"] = d["result"]["_time"].split(" ")[0]
178
- serv["money"] = d["result"].get("estimated_monthly_savings", 0)
179
- serv["project"] = d["result"].get("project", "Unavailable")
180
- serv["cpus"] = d["result"].get("suggested_cpus")
181
- serv["old_cpus"] = d["result"].get("current_cpus")
182
- serv["mem"] = d["result"].get("suggested_mem")
183
- serv["old_mem"] = d["result"].get("current_mem")
184
- serv["disk"] = d["result"].get("suggested_disk")
185
- serv["old_disk"] = d["result"].get("current_disk")
186
- serv["min_instances"] = d["result"].get("suggested_min_instances")
187
- serv["max_instances"] = d["result"].get("suggested_max_instances")
188
- serv["hacheck_cpus"] = d["result"].get("suggested_hacheck_cpus")
189
- serv["cpu_burst_add"] = d["result"].get("suggested_cpu_burst_add")
190
- services_to_update[criteria] = serv
178
+
179
+ serv = {
180
+ "cluster": criteria.split(" ")[1],
181
+ "date": d["result"]["_time"].split(" ")[0],
182
+ "instance": criteria.split(" ")[2],
183
+ "money": d["result"].get("estimated_monthly_savings", 0),
184
+ "owner": d["result"].get("service_owner", "Unavailable"),
185
+ "project": d["result"].get("project", "Unavailable"),
186
+ "service": criteria.split(" ")[0],
187
+ # only mergeable fields below
188
+ "cpu_burst_add": d["result"].get("suggested_cpu_burst_add"),
189
+ "cpus": d["result"].get("suggested_cpus"),
190
+ "disk": d["result"].get("suggested_disk"),
191
+ "hacheck_cpus": d["result"].get("suggested_hacheck_cpus"),
192
+ "max_instances": d["result"].get("suggested_max_instances"),
193
+ "mem": d["result"].get("suggested_mem"),
194
+ "min_instances": d["result"].get("suggested_min_instances"),
195
+ "old_cpus": d["result"].get("current_cpus"),
196
+ "old_disk": d["result"].get("current_disk"),
197
+ "old_mem": d["result"].get("current_mem"),
198
+ }
199
+
200
+ # the report we get is all strings, so we need to convert them to the right types
201
+ field_conversions = {
202
+ "current_cpus": float,
203
+ "suggested_cpu_burst_add": float,
204
+ "suggested_cpus": float,
205
+ "suggested_disk": int,
206
+ "suggested_hacheck_cpus": float,
207
+ "suggested_max_instances": int,
208
+ "suggested_mem": int,
209
+ "suggested_min_instances": int,
210
+ # not quite sure why these are floats...they're ints in soaconfigs
211
+ "current_disk": _force_str_to_int,
212
+ "current_mem": _force_str_to_int,
213
+ }
214
+
215
+ # merge results if we've already seen rows for this service
216
+ # NOTE: this is necessary since the Splunk search can return multiple rows
217
+ # for the same (service, cluster, instance) tuple as the autotune query
218
+ # treats certain cpu allocation changes as if the tuple was entirely different.
219
+ # this is ostensibly due to a theory that if you update resource allocation, existing
220
+ # autotune data is potentially invalidated - but in practice this ends up hampering
221
+ # autotune for services with highly variable resource allocation - e.g., we have some services
222
+ # that have their cpu allocation tweaked by +/-.1 cpu pretty frequently, but then min/max autotune
223
+ # is never updated.
224
+ if criteria in services_to_update:
225
+ for key in serv:
226
+ # we probably don't want to merge any other fields since they're going to be strings :p
227
+ if key not in field_conversions:
228
+ continue
229
+
230
+ last_proposed_suggestion = services_to_update[criteria][key]
231
+ proposed_suggestion = serv[key]
232
+
233
+ # if both are non-null, take the max of the two
234
+ if (
235
+ last_proposed_suggestion is not None
236
+ and proposed_suggestion is not None
237
+ ):
238
+ services_to_update[criteria][key] = max(
239
+ last_proposed_suggestion,
240
+ proposed_suggestion,
241
+ key=field_conversions[key],
242
+ )
243
+ # otherwise, if only one of these is non-null, use that one
244
+ elif last_proposed_suggestion is not None:
245
+ services_to_update[criteria][key] = last_proposed_suggestion
246
+ elif proposed_suggestion is not None:
247
+ services_to_update[criteria][key] = proposed_suggestion
248
+ # otherwise, if we didn't enter any of the above branches, we're essentially leaving in place the
249
+ # existing None
250
+
251
+ # otherwise, simply add the service to the final report
252
+ else:
253
+ services_to_update[criteria] = serv
191
254
 
192
255
  return {
193
256
  "search": search,
@@ -4334,21 +4334,39 @@ def ensure_service_account(
4334
4334
  kube_client: KubeClient,
4335
4335
  k8s_role: Optional[str] = None,
4336
4336
  ) -> None:
4337
+ role_annotation = "eks.amazonaws.com/role-arn"
4337
4338
  sa_name = get_service_account_name(iam_role, k8s_role)
4338
4339
 
4339
- if not any(
4340
- sa.metadata and sa.metadata.name == sa_name
4341
- for sa in get_all_service_accounts(kube_client, namespace)
4342
- ):
4340
+ existing_sa = None
4341
+ for sa in get_all_service_accounts(kube_client, namespace):
4342
+ if sa.metadata and sa.metadata.name == sa_name:
4343
+ existing_sa = sa
4344
+ break
4345
+ else:
4343
4346
  sa = V1ServiceAccount(
4344
4347
  kind="ServiceAccount",
4345
4348
  metadata=V1ObjectMeta(
4346
4349
  name=sa_name,
4347
4350
  namespace=namespace,
4348
- annotations={"eks.amazonaws.com/role-arn": iam_role},
4351
+ annotations={role_annotation: iam_role},
4349
4352
  ),
4350
4353
  )
4351
4354
  kube_client.core.create_namespaced_service_account(namespace=namespace, body=sa)
4355
+ if existing_sa:
4356
+ if (
4357
+ not sa.metadata.annotations
4358
+ or sa.metadata.annotations.get(role_annotation, None) != iam_role
4359
+ ):
4360
+ # NOTE: we don't annotate SAs apart with anything other
4361
+ # than the pod identity role ARN, so this will remove
4362
+ # any annotations that folks may have manually added
4363
+ sa.metadata.annotations = {role_annotation: iam_role}
4364
+ kube_client.core.patch_namespaced_service_account(
4365
+ namespace=namespace, body=sa, name=sa.metadata.name
4366
+ )
4367
+ log.info(
4368
+ f"Updated ServiceAccount {sa.metadata.name} iam_role to {iam_role}"
4369
+ )
4352
4370
 
4353
4371
  # we're expecting that any Role dynamically associated with a Service Account already exists.
4354
4372
  # at Yelp, this means that we have a version-controlled resource for the Role in Puppet.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: paasta-tools
3
- Version: 1.23.0
3
+ Version: 1.23.1
4
4
  Summary: Tools for Yelps SOA infrastructure
5
5
  Author: Compute Infrastructure @ Yelp
6
6
  Author-email: compute-infra@yelp.com
@@ -4844,6 +4844,80 @@ def test_ensure_service_account_existing():
4844
4844
  mock_client.rbac.create_namespaced_role_binding.assert_not_called()
4845
4845
 
4846
4846
 
4847
+ def test_ensure_service_account_existing_different_role():
4848
+ old_iam_role = "arn:aws:iam::000000000000:role/some_role"
4849
+ new_iam_role = "arn:aws:iam::000000000000:role/some-role"
4850
+ namespace = "test_namespace"
4851
+ k8s_role = "mega-admin"
4852
+ expected_sa_name = "paasta--arn-aws-iam-000000000000-role-some-role--mega-admin"
4853
+ with mock.patch(
4854
+ "paasta_tools.kubernetes_tools.kube_config.load_kube_config", autospec=True
4855
+ ), mock.patch(
4856
+ "paasta_tools.kubernetes_tools.KubeClient",
4857
+ autospec=False,
4858
+ ) as mock_kube_client:
4859
+ mock_client = mock.Mock()
4860
+ mock_client.core = mock.Mock(spec=kube_client.CoreV1Api)
4861
+ mock_client.rbac = mock.Mock(spec=kube_client.RbacAuthorizationV1Api)
4862
+ mock_client.core.list_namespaced_service_account.return_value = mock.Mock(
4863
+ spec=V1ServiceAccountList
4864
+ )
4865
+ mock_client.core.list_namespaced_service_account.return_value.items = [
4866
+ V1ServiceAccount(
4867
+ kind="ServiceAccount",
4868
+ metadata=V1ObjectMeta(
4869
+ name=expected_sa_name,
4870
+ namespace=namespace,
4871
+ annotations={"eks.amazonaws.com/role-arn": old_iam_role},
4872
+ ),
4873
+ )
4874
+ ]
4875
+ mock_client.rbac.list_namespaced_role_binding.return_value = mock.Mock(
4876
+ spec=V1RoleBinding,
4877
+ )
4878
+ mock_client.rbac.list_namespaced_role_binding.return_value.items = [
4879
+ V1RoleBinding(
4880
+ kind="ServiceAccount",
4881
+ metadata=V1ObjectMeta(
4882
+ name=expected_sa_name,
4883
+ namespace=namespace,
4884
+ ),
4885
+ role_ref=V1RoleRef(
4886
+ api_group="rbac.authorization.k8s.io",
4887
+ kind="Role",
4888
+ name=k8s_role,
4889
+ ),
4890
+ subjects=[
4891
+ V1Subject(
4892
+ kind="ServiceAccount",
4893
+ namespace=namespace,
4894
+ name=expected_sa_name,
4895
+ )
4896
+ ],
4897
+ )
4898
+ ]
4899
+ mock_kube_client.return_value = mock_client
4900
+ ensure_service_account(
4901
+ new_iam_role,
4902
+ namespace=namespace,
4903
+ kube_client=mock_client,
4904
+ k8s_role=k8s_role,
4905
+ )
4906
+ mock_client.core.create_namespaced_service_account.assert_not_called()
4907
+ mock_client.core.patch_namespaced_service_account.assert_called_once_with(
4908
+ namespace=namespace,
4909
+ body=V1ServiceAccount(
4910
+ kind="ServiceAccount",
4911
+ metadata=V1ObjectMeta(
4912
+ name=expected_sa_name,
4913
+ namespace=namespace,
4914
+ annotations={"eks.amazonaws.com/role-arn": new_iam_role},
4915
+ ),
4916
+ ),
4917
+ name=expected_sa_name,
4918
+ )
4919
+
4920
+
4847
4921
  def test_ensure_service_account_existing_create_rb_only():
4848
4922
  iam_role = "arn:aws:iam::000000000000:role/some_role"
4849
4923
  namespace = "test_namespace"
File without changes
File without changes
File without changes