paasta-tools 1.4.22__tar.gz → 1.4.24__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 (299) hide show
  1. {paasta-tools-1.4.22/paasta_tools.egg-info → paasta-tools-1.4.24}/PKG-INFO +1 -1
  2. {paasta-tools-1.4.22 → paasta-tools-1.4.24}/paasta_tools/__init__.py +1 -1
  3. {paasta-tools-1.4.22 → paasta-tools-1.4.24}/paasta_tools/cli/cmds/local_run.py +4 -1
  4. {paasta-tools-1.4.22 → paasta-tools-1.4.24}/paasta_tools/cli/cmds/spark_run.py +4 -1
  5. {paasta-tools-1.4.22 → paasta-tools-1.4.24}/paasta_tools/cli/cmds/status.py +12 -4
  6. {paasta-tools-1.4.22 → paasta-tools-1.4.24}/paasta_tools/cli/schemas/tron_schema.json +11 -2
  7. {paasta-tools-1.4.22 → paasta-tools-1.4.24}/paasta_tools/cli/utils.py +17 -3
  8. {paasta-tools-1.4.22 → paasta-tools-1.4.24}/paasta_tools/frameworks/native_service_config.py +2 -1
  9. {paasta-tools-1.4.22 → paasta-tools-1.4.24}/paasta_tools/instance/kubernetes.py +6 -0
  10. {paasta-tools-1.4.22 → paasta-tools-1.4.24}/paasta_tools/kubernetes_tools.py +2 -1
  11. {paasta-tools-1.4.22 → paasta-tools-1.4.24}/paasta_tools/setup_kubernetes_cr.py +8 -2
  12. {paasta-tools-1.4.22 → paasta-tools-1.4.24}/paasta_tools/tron_tools.py +4 -1
  13. {paasta-tools-1.4.22 → paasta-tools-1.4.24}/paasta_tools/utils.py +25 -13
  14. paasta-tools-1.4.24/paasta_tools/vitesscell_tools.py +289 -0
  15. paasta-tools-1.4.24/paasta_tools/vitesscluster_tools.py +499 -0
  16. paasta-tools-1.4.24/paasta_tools/vitesskeyspace_tools.py +539 -0
  17. {paasta-tools-1.4.22 → paasta-tools-1.4.24/paasta_tools.egg-info}/PKG-INFO +1 -1
  18. {paasta-tools-1.4.22 → paasta-tools-1.4.24}/paasta_tools.egg-info/SOURCES.txt +2 -0
  19. paasta-tools-1.4.22/paasta_tools/vitesscluster_tools.py +0 -904
  20. {paasta-tools-1.4.22 → paasta-tools-1.4.24}/MANIFEST.in +0 -0
  21. {paasta-tools-1.4.22 → paasta-tools-1.4.24}/README.md +0 -0
  22. {paasta-tools-1.4.22 → paasta-tools-1.4.24}/k8s_itests/__init__.py +0 -0
  23. {paasta-tools-1.4.22 → paasta-tools-1.4.24}/k8s_itests/test_autoscaling.py +0 -0
  24. {paasta-tools-1.4.22 → paasta-tools-1.4.24}/k8s_itests/utils.py +0 -0
  25. {paasta-tools-1.4.22 → paasta-tools-1.4.24}/paasta_tools/adhoc_tools.py +0 -0
  26. {paasta-tools-1.4.22 → paasta-tools-1.4.24}/paasta_tools/api/__init__.py +0 -0
  27. {paasta-tools-1.4.22 → paasta-tools-1.4.24}/paasta_tools/api/api.py +0 -0
  28. {paasta-tools-1.4.22 → paasta-tools-1.4.24}/paasta_tools/api/api_docs/swagger.json +0 -0
  29. {paasta-tools-1.4.22 → paasta-tools-1.4.24}/paasta_tools/api/client.py +0 -0
  30. {paasta-tools-1.4.22 → paasta-tools-1.4.24}/paasta_tools/api/settings.py +0 -0
  31. {paasta-tools-1.4.22 → paasta-tools-1.4.24}/paasta_tools/api/tweens/__init__.py +0 -0
  32. {paasta-tools-1.4.22 → paasta-tools-1.4.24}/paasta_tools/api/tweens/profiling.py +0 -0
  33. {paasta-tools-1.4.22 → paasta-tools-1.4.24}/paasta_tools/api/tweens/request_logger.py +0 -0
  34. {paasta-tools-1.4.22 → paasta-tools-1.4.24}/paasta_tools/api/views/__init__.py +0 -0
  35. {paasta-tools-1.4.22 → paasta-tools-1.4.24}/paasta_tools/api/views/autoscaler.py +0 -0
  36. {paasta-tools-1.4.22 → paasta-tools-1.4.24}/paasta_tools/api/views/exception.py +0 -0
  37. {paasta-tools-1.4.22 → paasta-tools-1.4.24}/paasta_tools/api/views/flink.py +0 -0
  38. {paasta-tools-1.4.22 → paasta-tools-1.4.24}/paasta_tools/api/views/instance.py +0 -0
  39. {paasta-tools-1.4.22 → paasta-tools-1.4.24}/paasta_tools/api/views/pause_autoscaler.py +0 -0
  40. {paasta-tools-1.4.22 → paasta-tools-1.4.24}/paasta_tools/api/views/resources.py +0 -0
  41. {paasta-tools-1.4.22 → paasta-tools-1.4.24}/paasta_tools/api/views/service.py +0 -0
  42. {paasta-tools-1.4.22 → paasta-tools-1.4.24}/paasta_tools/api/views/version.py +0 -0
  43. {paasta-tools-1.4.22 → paasta-tools-1.4.24}/paasta_tools/apply_external_resources.py +0 -0
  44. {paasta-tools-1.4.22 → paasta-tools-1.4.24}/paasta_tools/async_utils.py +0 -0
  45. {paasta-tools-1.4.22 → paasta-tools-1.4.24}/paasta_tools/autoscaling/__init__.py +0 -0
  46. {paasta-tools-1.4.22 → paasta-tools-1.4.24}/paasta_tools/autoscaling/autoscaling_service_lib.py +0 -0
  47. {paasta-tools-1.4.22 → paasta-tools-1.4.24}/paasta_tools/autoscaling/forecasting.py +0 -0
  48. {paasta-tools-1.4.22 → paasta-tools-1.4.24}/paasta_tools/autoscaling/max_all_k8s_services.py +0 -0
  49. {paasta-tools-1.4.22 → paasta-tools-1.4.24}/paasta_tools/autoscaling/pause_service_autoscaler.py +0 -0
  50. {paasta-tools-1.4.22 → paasta-tools-1.4.24}/paasta_tools/autoscaling/utils.py +0 -0
  51. {paasta-tools-1.4.22 → paasta-tools-1.4.24}/paasta_tools/bounce_lib.py +0 -0
  52. {paasta-tools-1.4.22 → paasta-tools-1.4.24}/paasta_tools/broadcast_log_to_services.py +0 -0
  53. {paasta-tools-1.4.22 → paasta-tools-1.4.24}/paasta_tools/cassandracluster_tools.py +0 -0
  54. {paasta-tools-1.4.22 → paasta-tools-1.4.24}/paasta_tools/check_autoscaler_max_instances.py +0 -0
  55. {paasta-tools-1.4.22 → paasta-tools-1.4.24}/paasta_tools/check_cassandracluster_services_replication.py +0 -0
  56. {paasta-tools-1.4.22 → paasta-tools-1.4.24}/paasta_tools/check_flink_services_health.py +0 -0
  57. {paasta-tools-1.4.22 → paasta-tools-1.4.24}/paasta_tools/check_kubernetes_api.py +0 -0
  58. {paasta-tools-1.4.22 → paasta-tools-1.4.24}/paasta_tools/check_kubernetes_services_replication.py +0 -0
  59. {paasta-tools-1.4.22 → paasta-tools-1.4.24}/paasta_tools/check_oom_events.py +0 -0
  60. {paasta-tools-1.4.22 → paasta-tools-1.4.24}/paasta_tools/check_services_replication_tools.py +0 -0
  61. {paasta-tools-1.4.22 → paasta-tools-1.4.24}/paasta_tools/check_spark_jobs.py +0 -0
  62. {paasta-tools-1.4.22 → paasta-tools-1.4.24}/paasta_tools/cleanup_kubernetes_cr.py +0 -0
  63. {paasta-tools-1.4.22 → paasta-tools-1.4.24}/paasta_tools/cleanup_kubernetes_crd.py +0 -0
  64. {paasta-tools-1.4.22 → paasta-tools-1.4.24}/paasta_tools/cleanup_kubernetes_jobs.py +0 -0
  65. {paasta-tools-1.4.22 → paasta-tools-1.4.24}/paasta_tools/cleanup_tron_namespaces.py +0 -0
  66. {paasta-tools-1.4.22 → paasta-tools-1.4.24}/paasta_tools/cli/__init__.py +0 -0
  67. {paasta-tools-1.4.22 → paasta-tools-1.4.24}/paasta_tools/cli/cli.py +0 -0
  68. {paasta-tools-1.4.22 → paasta-tools-1.4.24}/paasta_tools/cli/cmds/__init__.py +0 -0
  69. {paasta-tools-1.4.22 → paasta-tools-1.4.24}/paasta_tools/cli/cmds/autoscale.py +0 -0
  70. {paasta-tools-1.4.22 → paasta-tools-1.4.24}/paasta_tools/cli/cmds/check.py +0 -0
  71. {paasta-tools-1.4.22 → paasta-tools-1.4.24}/paasta_tools/cli/cmds/cook_image.py +0 -0
  72. {paasta-tools-1.4.22 → paasta-tools-1.4.24}/paasta_tools/cli/cmds/get_docker_image.py +0 -0
  73. {paasta-tools-1.4.22 → paasta-tools-1.4.24}/paasta_tools/cli/cmds/get_image_version.py +0 -0
  74. {paasta-tools-1.4.22 → paasta-tools-1.4.24}/paasta_tools/cli/cmds/get_latest_deployment.py +0 -0
  75. {paasta-tools-1.4.22 → paasta-tools-1.4.24}/paasta_tools/cli/cmds/info.py +0 -0
  76. {paasta-tools-1.4.22 → paasta-tools-1.4.24}/paasta_tools/cli/cmds/itest.py +0 -0
  77. {paasta-tools-1.4.22 → paasta-tools-1.4.24}/paasta_tools/cli/cmds/list.py +0 -0
  78. {paasta-tools-1.4.22 → paasta-tools-1.4.24}/paasta_tools/cli/cmds/list_clusters.py +0 -0
  79. {paasta-tools-1.4.22 → paasta-tools-1.4.24}/paasta_tools/cli/cmds/list_deploy_queue.py +0 -0
  80. {paasta-tools-1.4.22 → paasta-tools-1.4.24}/paasta_tools/cli/cmds/logs.py +0 -0
  81. {paasta-tools-1.4.22 → paasta-tools-1.4.24}/paasta_tools/cli/cmds/mark_for_deployment.py +0 -0
  82. {paasta-tools-1.4.22 → paasta-tools-1.4.24}/paasta_tools/cli/cmds/mesh_status.py +0 -0
  83. {paasta-tools-1.4.22 → paasta-tools-1.4.24}/paasta_tools/cli/cmds/pause_service_autoscaler.py +0 -0
  84. {paasta-tools-1.4.22 → paasta-tools-1.4.24}/paasta_tools/cli/cmds/push_to_registry.py +0 -0
  85. {paasta-tools-1.4.22 → paasta-tools-1.4.24}/paasta_tools/cli/cmds/remote_run.py +0 -0
  86. {paasta-tools-1.4.22 → paasta-tools-1.4.24}/paasta_tools/cli/cmds/rollback.py +0 -0
  87. {paasta-tools-1.4.22 → paasta-tools-1.4.24}/paasta_tools/cli/cmds/secret.py +0 -0
  88. {paasta-tools-1.4.22 → paasta-tools-1.4.24}/paasta_tools/cli/cmds/security_check.py +0 -0
  89. {paasta-tools-1.4.22 → paasta-tools-1.4.24}/paasta_tools/cli/cmds/start_stop_restart.py +0 -0
  90. {paasta-tools-1.4.22 → paasta-tools-1.4.24}/paasta_tools/cli/cmds/validate.py +0 -0
  91. {paasta-tools-1.4.22 → paasta-tools-1.4.24}/paasta_tools/cli/cmds/wait_for_deployment.py +0 -0
  92. {paasta-tools-1.4.22 → paasta-tools-1.4.24}/paasta_tools/cli/fsm/__init__.py +0 -0
  93. {paasta-tools-1.4.22 → paasta-tools-1.4.24}/paasta_tools/cli/fsm/autosuggest.py +0 -0
  94. {paasta-tools-1.4.22 → paasta-tools-1.4.24}/paasta_tools/cli/fsm/template/README.md +0 -0
  95. {paasta-tools-1.4.22 → paasta-tools-1.4.24}/paasta_tools/cli/fsm/template/cookiecutter.json +0 -0
  96. {paasta-tools-1.4.22 → paasta-tools-1.4.24}/paasta_tools/cli/fsm/template/{{cookiecutter.service}}/kubernetes-PROD.yaml +0 -0
  97. {paasta-tools-1.4.22 → paasta-tools-1.4.24}/paasta_tools/cli/fsm/template/{{cookiecutter.service}}/monitoring.yaml +0 -0
  98. {paasta-tools-1.4.22 → paasta-tools-1.4.24}/paasta_tools/cli/fsm/template/{{cookiecutter.service}}/service.yaml +0 -0
  99. {paasta-tools-1.4.22 → paasta-tools-1.4.24}/paasta_tools/cli/fsm/template/{{cookiecutter.service}}/smartstack.yaml +0 -0
  100. {paasta-tools-1.4.22 → paasta-tools-1.4.24}/paasta_tools/cli/fsm_cmd.py +0 -0
  101. {paasta-tools-1.4.22 → paasta-tools-1.4.24}/paasta_tools/cli/paasta_tabcomplete.sh +0 -0
  102. {paasta-tools-1.4.22 → paasta-tools-1.4.24}/paasta_tools/cli/schemas/adhoc_schema.json +0 -0
  103. {paasta-tools-1.4.22 → paasta-tools-1.4.24}/paasta_tools/cli/schemas/autoscaling_schema.json +0 -0
  104. {paasta-tools-1.4.22 → paasta-tools-1.4.24}/paasta_tools/cli/schemas/autotuned_defaults/cassandracluster_schema.json +0 -0
  105. {paasta-tools-1.4.22 → paasta-tools-1.4.24}/paasta_tools/cli/schemas/autotuned_defaults/kubernetes_schema.json +0 -0
  106. {paasta-tools-1.4.22 → paasta-tools-1.4.24}/paasta_tools/cli/schemas/deploy_schema.json +0 -0
  107. {paasta-tools-1.4.22 → paasta-tools-1.4.24}/paasta_tools/cli/schemas/eks_schema.json +0 -0
  108. {paasta-tools-1.4.22 → paasta-tools-1.4.24}/paasta_tools/cli/schemas/kubernetes_schema.json +0 -0
  109. {paasta-tools-1.4.22 → paasta-tools-1.4.24}/paasta_tools/cli/schemas/rollback_schema.json +0 -0
  110. {paasta-tools-1.4.22 → paasta-tools-1.4.24}/paasta_tools/cli/schemas/service_schema.json +0 -0
  111. {paasta-tools-1.4.22 → paasta-tools-1.4.24}/paasta_tools/cli/schemas/smartstack_schema.json +0 -0
  112. {paasta-tools-1.4.22 → paasta-tools-1.4.24}/paasta_tools/clusterman.py +0 -0
  113. {paasta-tools-1.4.22 → paasta-tools-1.4.24}/paasta_tools/config_utils.py +0 -0
  114. {paasta-tools-1.4.22 → paasta-tools-1.4.24}/paasta_tools/contrib/__init__.py +0 -0
  115. {paasta-tools-1.4.22 → paasta-tools-1.4.24}/paasta_tools/contrib/bounce_log_latency_parser.py +0 -0
  116. {paasta-tools-1.4.22 → paasta-tools-1.4.24}/paasta_tools/contrib/check_manual_oapi_changes.sh +0 -0
  117. {paasta-tools-1.4.22 → paasta-tools-1.4.24}/paasta_tools/contrib/check_orphans.py +0 -0
  118. {paasta-tools-1.4.22 → paasta-tools-1.4.24}/paasta_tools/contrib/create_dynamodb_table.py +0 -0
  119. {paasta-tools-1.4.22 → paasta-tools-1.4.24}/paasta_tools/contrib/create_paasta_playground.py +0 -0
  120. {paasta-tools-1.4.22 → paasta-tools-1.4.24}/paasta_tools/contrib/emit_allocated_cpu_metrics.py +0 -0
  121. {paasta-tools-1.4.22 → paasta-tools-1.4.24}/paasta_tools/contrib/get_running_task_allocation.py +0 -0
  122. {paasta-tools-1.4.22 → paasta-tools-1.4.24}/paasta_tools/contrib/habitat_fixer.py +0 -0
  123. {paasta-tools-1.4.22 → paasta-tools-1.4.24}/paasta_tools/contrib/ide_helper.py +0 -0
  124. {paasta-tools-1.4.22 → paasta-tools-1.4.24}/paasta_tools/contrib/is_pod_healthy_in_proxy.py +0 -0
  125. {paasta-tools-1.4.22 → paasta-tools-1.4.24}/paasta_tools/contrib/is_pod_healthy_in_smartstack.py +0 -0
  126. {paasta-tools-1.4.22 → paasta-tools-1.4.24}/paasta_tools/contrib/kill_bad_containers.py +0 -0
  127. {paasta-tools-1.4.22 → paasta-tools-1.4.24}/paasta_tools/contrib/mass-deploy-tag.sh +0 -0
  128. {paasta-tools-1.4.22 → paasta-tools-1.4.24}/paasta_tools/contrib/mock_patch_checker.py +0 -0
  129. {paasta-tools-1.4.22 → paasta-tools-1.4.24}/paasta_tools/contrib/paasta_update_soa_memcpu.py +0 -0
  130. {paasta-tools-1.4.22 → paasta-tools-1.4.24}/paasta_tools/contrib/render_template.py +0 -0
  131. {paasta-tools-1.4.22 → paasta-tools-1.4.24}/paasta_tools/contrib/rightsizer_soaconfigs_update.py +0 -0
  132. {paasta-tools-1.4.22 → paasta-tools-1.4.24}/paasta_tools/contrib/service_shard_remove.py +0 -0
  133. {paasta-tools-1.4.22 → paasta-tools-1.4.24}/paasta_tools/contrib/service_shard_update.py +0 -0
  134. {paasta-tools-1.4.22 → paasta-tools-1.4.24}/paasta_tools/contrib/shared_ip_check.py +0 -0
  135. {paasta-tools-1.4.22 → paasta-tools-1.4.24}/paasta_tools/contrib/timeouts_metrics_prom.py +0 -0
  136. {paasta-tools-1.4.22 → paasta-tools-1.4.24}/paasta_tools/delete_kubernetes_deployments.py +0 -0
  137. {paasta-tools-1.4.22 → paasta-tools-1.4.24}/paasta_tools/deployment_utils.py +0 -0
  138. {paasta-tools-1.4.22 → paasta-tools-1.4.24}/paasta_tools/docker_wrapper.py +0 -0
  139. {paasta-tools-1.4.22 → paasta-tools-1.4.24}/paasta_tools/docker_wrapper_imports.py +0 -0
  140. {paasta-tools-1.4.22 → paasta-tools-1.4.24}/paasta_tools/drain_lib.py +0 -0
  141. {paasta-tools-1.4.22 → paasta-tools-1.4.24}/paasta_tools/dump_locally_running_services.py +0 -0
  142. {paasta-tools-1.4.22 → paasta-tools-1.4.24}/paasta_tools/eks_tools.py +0 -0
  143. {paasta-tools-1.4.22 → paasta-tools-1.4.24}/paasta_tools/envoy_tools.py +0 -0
  144. {paasta-tools-1.4.22 → paasta-tools-1.4.24}/paasta_tools/firewall.py +0 -0
  145. {paasta-tools-1.4.22 → paasta-tools-1.4.24}/paasta_tools/firewall_logging.py +0 -0
  146. {paasta-tools-1.4.22 → paasta-tools-1.4.24}/paasta_tools/firewall_update.py +0 -0
  147. {paasta-tools-1.4.22 → paasta-tools-1.4.24}/paasta_tools/flink_tools.py +0 -0
  148. {paasta-tools-1.4.22 → paasta-tools-1.4.24}/paasta_tools/flinkeks_tools.py +0 -0
  149. {paasta-tools-1.4.22 → paasta-tools-1.4.24}/paasta_tools/frameworks/__init__.py +0 -0
  150. {paasta-tools-1.4.22 → paasta-tools-1.4.24}/paasta_tools/frameworks/adhoc_scheduler.py +0 -0
  151. {paasta-tools-1.4.22 → paasta-tools-1.4.24}/paasta_tools/frameworks/constraints.py +0 -0
  152. {paasta-tools-1.4.22 → paasta-tools-1.4.24}/paasta_tools/frameworks/native_scheduler.py +0 -0
  153. {paasta-tools-1.4.22 → paasta-tools-1.4.24}/paasta_tools/frameworks/task_store.py +0 -0
  154. {paasta-tools-1.4.22 → paasta-tools-1.4.24}/paasta_tools/generate_all_deployments +0 -0
  155. {paasta-tools-1.4.22 → paasta-tools-1.4.24}/paasta_tools/generate_authenticating_services.py +0 -0
  156. {paasta-tools-1.4.22 → paasta-tools-1.4.24}/paasta_tools/generate_deployments_for_service.py +0 -0
  157. {paasta-tools-1.4.22 → paasta-tools-1.4.24}/paasta_tools/generate_services_file.py +0 -0
  158. {paasta-tools-1.4.22 → paasta-tools-1.4.24}/paasta_tools/generate_services_yaml.py +0 -0
  159. {paasta-tools-1.4.22 → paasta-tools-1.4.24}/paasta_tools/hacheck.py +0 -0
  160. {paasta-tools-1.4.22 → paasta-tools-1.4.24}/paasta_tools/instance/__init__.py +0 -0
  161. {paasta-tools-1.4.22 → paasta-tools-1.4.24}/paasta_tools/instance/hpa_metrics_parser.py +0 -0
  162. {paasta-tools-1.4.22 → paasta-tools-1.4.24}/paasta_tools/iptables.py +0 -0
  163. {paasta-tools-1.4.22 → paasta-tools-1.4.24}/paasta_tools/kafkacluster_tools.py +0 -0
  164. {paasta-tools-1.4.22 → paasta-tools-1.4.24}/paasta_tools/kubernetes/__init__.py +0 -0
  165. {paasta-tools-1.4.22 → paasta-tools-1.4.24}/paasta_tools/kubernetes/application/__init__.py +0 -0
  166. {paasta-tools-1.4.22 → paasta-tools-1.4.24}/paasta_tools/kubernetes/application/controller_wrappers.py +0 -0
  167. {paasta-tools-1.4.22 → paasta-tools-1.4.24}/paasta_tools/kubernetes/application/tools.py +0 -0
  168. {paasta-tools-1.4.22 → paasta-tools-1.4.24}/paasta_tools/kubernetes/bin/__init__.py +0 -0
  169. {paasta-tools-1.4.22 → paasta-tools-1.4.24}/paasta_tools/kubernetes/bin/kubernetes_remove_evicted_pods.py +0 -0
  170. {paasta-tools-1.4.22 → paasta-tools-1.4.24}/paasta_tools/kubernetes/bin/paasta_cleanup_stale_nodes.py +0 -0
  171. {paasta-tools-1.4.22 → paasta-tools-1.4.24}/paasta_tools/kubernetes/bin/paasta_secrets_sync.py +0 -0
  172. {paasta-tools-1.4.22 → paasta-tools-1.4.24}/paasta_tools/list_kubernetes_service_instances.py +0 -0
  173. {paasta-tools-1.4.22 → paasta-tools-1.4.24}/paasta_tools/list_tron_namespaces.py +0 -0
  174. {paasta-tools-1.4.22 → paasta-tools-1.4.24}/paasta_tools/log_task_lifecycle_events.py +0 -0
  175. {paasta-tools-1.4.22 → paasta-tools-1.4.24}/paasta_tools/long_running_service_tools.py +0 -0
  176. {paasta-tools-1.4.22 → paasta-tools-1.4.24}/paasta_tools/mac_address.py +0 -0
  177. {paasta-tools-1.4.22 → paasta-tools-1.4.24}/paasta_tools/marathon_dashboard.py +0 -0
  178. {paasta-tools-1.4.22 → paasta-tools-1.4.24}/paasta_tools/mesos/__init__.py +0 -0
  179. {paasta-tools-1.4.22 → paasta-tools-1.4.24}/paasta_tools/mesos/cfg.py +0 -0
  180. {paasta-tools-1.4.22 → paasta-tools-1.4.24}/paasta_tools/mesos/cluster.py +0 -0
  181. {paasta-tools-1.4.22 → paasta-tools-1.4.24}/paasta_tools/mesos/exceptions.py +0 -0
  182. {paasta-tools-1.4.22 → paasta-tools-1.4.24}/paasta_tools/mesos/framework.py +0 -0
  183. {paasta-tools-1.4.22 → paasta-tools-1.4.24}/paasta_tools/mesos/log.py +0 -0
  184. {paasta-tools-1.4.22 → paasta-tools-1.4.24}/paasta_tools/mesos/master.py +0 -0
  185. {paasta-tools-1.4.22 → paasta-tools-1.4.24}/paasta_tools/mesos/mesos_file.py +0 -0
  186. {paasta-tools-1.4.22 → paasta-tools-1.4.24}/paasta_tools/mesos/parallel.py +0 -0
  187. {paasta-tools-1.4.22 → paasta-tools-1.4.24}/paasta_tools/mesos/slave.py +0 -0
  188. {paasta-tools-1.4.22 → paasta-tools-1.4.24}/paasta_tools/mesos/task.py +0 -0
  189. {paasta-tools-1.4.22 → paasta-tools-1.4.24}/paasta_tools/mesos/util.py +0 -0
  190. {paasta-tools-1.4.22 → paasta-tools-1.4.24}/paasta_tools/mesos/zookeeper.py +0 -0
  191. {paasta-tools-1.4.22 → paasta-tools-1.4.24}/paasta_tools/mesos_maintenance.py +0 -0
  192. {paasta-tools-1.4.22 → paasta-tools-1.4.24}/paasta_tools/mesos_tools.py +0 -0
  193. {paasta-tools-1.4.22 → paasta-tools-1.4.24}/paasta_tools/metrics/__init__.py +0 -0
  194. {paasta-tools-1.4.22 → paasta-tools-1.4.24}/paasta_tools/metrics/metastatus_lib.py +0 -0
  195. {paasta-tools-1.4.22 → paasta-tools-1.4.24}/paasta_tools/metrics/metrics_lib.py +0 -0
  196. {paasta-tools-1.4.22 → paasta-tools-1.4.24}/paasta_tools/monitoring/__init__.py +0 -0
  197. {paasta-tools-1.4.22 → paasta-tools-1.4.24}/paasta_tools/monitoring/check_k8s_api_performance.py +0 -0
  198. {paasta-tools-1.4.22 → paasta-tools-1.4.24}/paasta_tools/monitoring/kill_orphaned_docker_containers.py +0 -0
  199. {paasta-tools-1.4.22 → paasta-tools-1.4.24}/paasta_tools/monitoring_tools.py +0 -0
  200. {paasta-tools-1.4.22 → paasta-tools-1.4.24}/paasta_tools/monkrelaycluster_tools.py +0 -0
  201. {paasta-tools-1.4.22 → paasta-tools-1.4.24}/paasta_tools/nrtsearchservice_tools.py +0 -0
  202. {paasta-tools-1.4.22 → paasta-tools-1.4.24}/paasta_tools/nrtsearchserviceeks_tools.py +0 -0
  203. {paasta-tools-1.4.22 → paasta-tools-1.4.24}/paasta_tools/oom_logger.py +0 -0
  204. {paasta-tools-1.4.22 → paasta-tools-1.4.24}/paasta_tools/paasta_deploy_tron_jobs +0 -0
  205. {paasta-tools-1.4.22 → paasta-tools-1.4.24}/paasta_tools/paasta_execute_docker_command.py +0 -0
  206. {paasta-tools-1.4.22 → paasta-tools-1.4.24}/paasta_tools/paasta_native_serviceinit.py +0 -0
  207. {paasta-tools-1.4.22 → paasta-tools-1.4.24}/paasta_tools/paasta_remote_run.py +0 -0
  208. {paasta-tools-1.4.22 → paasta-tools-1.4.24}/paasta_tools/paasta_service_config_loader.py +0 -0
  209. {paasta-tools-1.4.22 → paasta-tools-1.4.24}/paasta_tools/paastaapi/__init__.py +0 -0
  210. {paasta-tools-1.4.22 → paasta-tools-1.4.24}/paasta_tools/paastaapi/api/__init__.py +0 -0
  211. {paasta-tools-1.4.22 → paasta-tools-1.4.24}/paasta_tools/paastaapi/api/autoscaler_api.py +0 -0
  212. {paasta-tools-1.4.22 → paasta-tools-1.4.24}/paasta_tools/paastaapi/api/default_api.py +0 -0
  213. {paasta-tools-1.4.22 → paasta-tools-1.4.24}/paasta_tools/paastaapi/api/resources_api.py +0 -0
  214. {paasta-tools-1.4.22 → paasta-tools-1.4.24}/paasta_tools/paastaapi/api/service_api.py +0 -0
  215. {paasta-tools-1.4.22 → paasta-tools-1.4.24}/paasta_tools/paastaapi/api_client.py +0 -0
  216. {paasta-tools-1.4.22 → paasta-tools-1.4.24}/paasta_tools/paastaapi/apis/__init__.py +0 -0
  217. {paasta-tools-1.4.22 → paasta-tools-1.4.24}/paasta_tools/paastaapi/configuration.py +0 -0
  218. {paasta-tools-1.4.22 → paasta-tools-1.4.24}/paasta_tools/paastaapi/exceptions.py +0 -0
  219. {paasta-tools-1.4.22 → paasta-tools-1.4.24}/paasta_tools/paastaapi/model/__init__.py +0 -0
  220. {paasta-tools-1.4.22 → paasta-tools-1.4.24}/paasta_tools/paastaapi/model/adhoc_launch_history.py +0 -0
  221. {paasta-tools-1.4.22 → paasta-tools-1.4.24}/paasta_tools/paastaapi/model/autoscaler_count_msg.py +0 -0
  222. {paasta-tools-1.4.22 → paasta-tools-1.4.24}/paasta_tools/paastaapi/model/deploy_queue.py +0 -0
  223. {paasta-tools-1.4.22 → paasta-tools-1.4.24}/paasta_tools/paastaapi/model/deploy_queue_service_instance.py +0 -0
  224. {paasta-tools-1.4.22 → paasta-tools-1.4.24}/paasta_tools/paastaapi/model/envoy_backend.py +0 -0
  225. {paasta-tools-1.4.22 → paasta-tools-1.4.24}/paasta_tools/paastaapi/model/envoy_location.py +0 -0
  226. {paasta-tools-1.4.22 → paasta-tools-1.4.24}/paasta_tools/paastaapi/model/envoy_status.py +0 -0
  227. {paasta-tools-1.4.22 → paasta-tools-1.4.24}/paasta_tools/paastaapi/model/flink_cluster_overview.py +0 -0
  228. {paasta-tools-1.4.22 → paasta-tools-1.4.24}/paasta_tools/paastaapi/model/flink_config.py +0 -0
  229. {paasta-tools-1.4.22 → paasta-tools-1.4.24}/paasta_tools/paastaapi/model/flink_job.py +0 -0
  230. {paasta-tools-1.4.22 → paasta-tools-1.4.24}/paasta_tools/paastaapi/model/flink_job_details.py +0 -0
  231. {paasta-tools-1.4.22 → paasta-tools-1.4.24}/paasta_tools/paastaapi/model/flink_jobs.py +0 -0
  232. {paasta-tools-1.4.22 → paasta-tools-1.4.24}/paasta_tools/paastaapi/model/float_and_error.py +0 -0
  233. {paasta-tools-1.4.22 → paasta-tools-1.4.24}/paasta_tools/paastaapi/model/hpa_metric.py +0 -0
  234. {paasta-tools-1.4.22 → paasta-tools-1.4.24}/paasta_tools/paastaapi/model/inline_object.py +0 -0
  235. {paasta-tools-1.4.22 → paasta-tools-1.4.24}/paasta_tools/paastaapi/model/inline_response200.py +0 -0
  236. {paasta-tools-1.4.22 → paasta-tools-1.4.24}/paasta_tools/paastaapi/model/inline_response2001.py +0 -0
  237. {paasta-tools-1.4.22 → paasta-tools-1.4.24}/paasta_tools/paastaapi/model/instance_bounce_status.py +0 -0
  238. {paasta-tools-1.4.22 → paasta-tools-1.4.24}/paasta_tools/paastaapi/model/instance_mesh_status.py +0 -0
  239. {paasta-tools-1.4.22 → paasta-tools-1.4.24}/paasta_tools/paastaapi/model/instance_status.py +0 -0
  240. {paasta-tools-1.4.22 → paasta-tools-1.4.24}/paasta_tools/paastaapi/model/instance_status_adhoc.py +0 -0
  241. {paasta-tools-1.4.22 → paasta-tools-1.4.24}/paasta_tools/paastaapi/model/instance_status_cassandracluster.py +0 -0
  242. {paasta-tools-1.4.22 → paasta-tools-1.4.24}/paasta_tools/paastaapi/model/instance_status_flink.py +0 -0
  243. {paasta-tools-1.4.22 → paasta-tools-1.4.24}/paasta_tools/paastaapi/model/instance_status_kafkacluster.py +0 -0
  244. {paasta-tools-1.4.22 → paasta-tools-1.4.24}/paasta_tools/paastaapi/model/instance_status_kubernetes.py +0 -0
  245. {paasta-tools-1.4.22 → paasta-tools-1.4.24}/paasta_tools/paastaapi/model/instance_status_kubernetes_autoscaling_status.py +0 -0
  246. {paasta-tools-1.4.22 → paasta-tools-1.4.24}/paasta_tools/paastaapi/model/instance_status_kubernetes_v2.py +0 -0
  247. {paasta-tools-1.4.22 → paasta-tools-1.4.24}/paasta_tools/paastaapi/model/instance_status_tron.py +0 -0
  248. {paasta-tools-1.4.22 → paasta-tools-1.4.24}/paasta_tools/paastaapi/model/instance_status_vitesscluster.py +0 -0
  249. {paasta-tools-1.4.22 → paasta-tools-1.4.24}/paasta_tools/paastaapi/model/instance_tasks.py +0 -0
  250. {paasta-tools-1.4.22 → paasta-tools-1.4.24}/paasta_tools/paastaapi/model/integer_and_error.py +0 -0
  251. {paasta-tools-1.4.22 → paasta-tools-1.4.24}/paasta_tools/paastaapi/model/kubernetes_container.py +0 -0
  252. {paasta-tools-1.4.22 → paasta-tools-1.4.24}/paasta_tools/paastaapi/model/kubernetes_container_v2.py +0 -0
  253. {paasta-tools-1.4.22 → paasta-tools-1.4.24}/paasta_tools/paastaapi/model/kubernetes_healthcheck.py +0 -0
  254. {paasta-tools-1.4.22 → paasta-tools-1.4.24}/paasta_tools/paastaapi/model/kubernetes_pod.py +0 -0
  255. {paasta-tools-1.4.22 → paasta-tools-1.4.24}/paasta_tools/paastaapi/model/kubernetes_pod_event.py +0 -0
  256. {paasta-tools-1.4.22 → paasta-tools-1.4.24}/paasta_tools/paastaapi/model/kubernetes_pod_v2.py +0 -0
  257. {paasta-tools-1.4.22 → paasta-tools-1.4.24}/paasta_tools/paastaapi/model/kubernetes_replica_set.py +0 -0
  258. {paasta-tools-1.4.22 → paasta-tools-1.4.24}/paasta_tools/paastaapi/model/kubernetes_version.py +0 -0
  259. {paasta-tools-1.4.22 → paasta-tools-1.4.24}/paasta_tools/paastaapi/model/resource.py +0 -0
  260. {paasta-tools-1.4.22 → paasta-tools-1.4.24}/paasta_tools/paastaapi/model/resource_item.py +0 -0
  261. {paasta-tools-1.4.22 → paasta-tools-1.4.24}/paasta_tools/paastaapi/model/resource_value.py +0 -0
  262. {paasta-tools-1.4.22 → paasta-tools-1.4.24}/paasta_tools/paastaapi/model/smartstack_backend.py +0 -0
  263. {paasta-tools-1.4.22 → paasta-tools-1.4.24}/paasta_tools/paastaapi/model/smartstack_location.py +0 -0
  264. {paasta-tools-1.4.22 → paasta-tools-1.4.24}/paasta_tools/paastaapi/model/smartstack_status.py +0 -0
  265. {paasta-tools-1.4.22 → paasta-tools-1.4.24}/paasta_tools/paastaapi/model/task_tail_lines.py +0 -0
  266. {paasta-tools-1.4.22 → paasta-tools-1.4.24}/paasta_tools/paastaapi/model_utils.py +0 -0
  267. {paasta-tools-1.4.22 → paasta-tools-1.4.24}/paasta_tools/paastaapi/models/__init__.py +0 -0
  268. {paasta-tools-1.4.22 → paasta-tools-1.4.24}/paasta_tools/paastaapi/rest.py +0 -0
  269. {paasta-tools-1.4.22 → paasta-tools-1.4.24}/paasta_tools/prune_completed_pods.py +0 -0
  270. {paasta-tools-1.4.22 → paasta-tools-1.4.24}/paasta_tools/puppet_service_tools.py +0 -0
  271. {paasta-tools-1.4.22 → paasta-tools-1.4.24}/paasta_tools/py.typed +0 -0
  272. {paasta-tools-1.4.22 → paasta-tools-1.4.24}/paasta_tools/remote_git.py +0 -0
  273. {paasta-tools-1.4.22 → paasta-tools-1.4.24}/paasta_tools/run-paasta-api-in-dev-mode.py +0 -0
  274. {paasta-tools-1.4.22 → paasta-tools-1.4.24}/paasta_tools/run-paasta-api-playground.py +0 -0
  275. {paasta-tools-1.4.22 → paasta-tools-1.4.24}/paasta_tools/secret_providers/__init__.py +0 -0
  276. {paasta-tools-1.4.22 → paasta-tools-1.4.24}/paasta_tools/secret_providers/vault.py +0 -0
  277. {paasta-tools-1.4.22 → paasta-tools-1.4.24}/paasta_tools/secret_tools.py +0 -0
  278. {paasta-tools-1.4.22 → paasta-tools-1.4.24}/paasta_tools/setup_istio_mesh.py +0 -0
  279. {paasta-tools-1.4.22 → paasta-tools-1.4.24}/paasta_tools/setup_kubernetes_crd.py +0 -0
  280. {paasta-tools-1.4.22 → paasta-tools-1.4.24}/paasta_tools/setup_kubernetes_internal_crd.py +0 -0
  281. {paasta-tools-1.4.22 → paasta-tools-1.4.24}/paasta_tools/setup_kubernetes_job.py +0 -0
  282. {paasta-tools-1.4.22 → paasta-tools-1.4.24}/paasta_tools/setup_prometheus_adapter_config.py +0 -0
  283. {paasta-tools-1.4.22 → paasta-tools-1.4.24}/paasta_tools/setup_tron_namespace.py +0 -0
  284. {paasta-tools-1.4.22 → paasta-tools-1.4.24}/paasta_tools/slack.py +0 -0
  285. {paasta-tools-1.4.22 → paasta-tools-1.4.24}/paasta_tools/smartstack_tools.py +0 -0
  286. {paasta-tools-1.4.22 → paasta-tools-1.4.24}/paasta_tools/spark_tools.py +0 -0
  287. {paasta-tools-1.4.22 → paasta-tools-1.4.24}/paasta_tools/synapse_srv_namespaces_fact.py +0 -0
  288. {paasta-tools-1.4.22 → paasta-tools-1.4.24}/paasta_tools/tron/__init__.py +0 -0
  289. {paasta-tools-1.4.22 → paasta-tools-1.4.24}/paasta_tools/tron/client.py +0 -0
  290. {paasta-tools-1.4.22 → paasta-tools-1.4.24}/paasta_tools/tron/tron_command_context.py +0 -0
  291. {paasta-tools-1.4.22 → paasta-tools-1.4.24}/paasta_tools/tron/tron_timeutils.py +0 -0
  292. {paasta-tools-1.4.22 → paasta-tools-1.4.24}/paasta_tools.egg-info/dependency_links.txt +0 -0
  293. {paasta-tools-1.4.22 → paasta-tools-1.4.24}/paasta_tools.egg-info/entry_points.txt +0 -0
  294. {paasta-tools-1.4.22 → paasta-tools-1.4.24}/paasta_tools.egg-info/requires.txt +0 -0
  295. {paasta-tools-1.4.22 → paasta-tools-1.4.24}/paasta_tools.egg-info/top_level.txt +0 -0
  296. {paasta-tools-1.4.22 → paasta-tools-1.4.24}/pyproject.toml +0 -0
  297. {paasta-tools-1.4.22 → paasta-tools-1.4.24}/requirements-minimal.txt +0 -0
  298. {paasta-tools-1.4.22 → paasta-tools-1.4.24}/setup.cfg +0 -0
  299. {paasta-tools-1.4.22 → paasta-tools-1.4.24}/setup.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 1.2
2
2
  Name: paasta-tools
3
- Version: 1.4.22
3
+ Version: 1.4.24
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__ = "1.4.22"
20
+ __version__ = "1.4.24"
@@ -1209,7 +1209,10 @@ def configure_and_run_docker_container(
1209
1209
  if pull_image:
1210
1210
  docker_pull_image(docker_url)
1211
1211
 
1212
- for volume in instance_config.get_volumes(system_paasta_config.get_volumes()):
1212
+ for volume in instance_config.get_volumes(
1213
+ system_paasta_config.get_volumes(),
1214
+ system_paasta_config.get_uses_bulkdata_default(),
1215
+ ):
1213
1216
  if os.path.exists(volume["hostPath"]):
1214
1217
  volumes.append(
1215
1218
  "{}:{}:{}".format(
@@ -1189,7 +1189,10 @@ def paasta_spark_run(args: argparse.Namespace) -> int:
1189
1189
  if docker_image_digest is None:
1190
1190
  return 1
1191
1191
 
1192
- volumes = instance_config.get_volumes(system_paasta_config.get_volumes())
1192
+ volumes = instance_config.get_volumes(
1193
+ system_paasta_config.get_volumes(),
1194
+ system_paasta_config.get_uses_bulkdata_default(),
1195
+ )
1193
1196
  app_base_name = get_spark_app_name(args.cmd or instance_config.get_cmd())
1194
1197
 
1195
1198
  user_spark_opts = _parse_user_spark_args(args.spark_args)
@@ -95,14 +95,18 @@ from paasta_tools.utils import load_system_paasta_config
95
95
  from paasta_tools.utils import PaastaColors
96
96
  from paasta_tools.utils import remove_ansi_escape_sequences
97
97
  from paasta_tools.utils import SystemPaastaConfig
98
- from paasta_tools.vitesscluster_tools import VitessDeploymentConfig
98
+ from paasta_tools.vitesscell_tools import VitessCellConfig
99
+ from paasta_tools.vitesscluster_tools import VitessClusterConfig
100
+ from paasta_tools.vitesskeyspace_tools import VitessKeyspaceConfig
99
101
 
100
102
  FLINK_STATUS_MAX_THREAD_POOL_WORKERS = 50
101
103
  ALLOWED_INSTANCE_CONFIG: Sequence[Type[InstanceConfig]] = [
102
104
  FlinkDeploymentConfig,
103
105
  FlinkEksDeploymentConfig,
104
106
  CassandraClusterDeploymentConfig,
105
- VitessDeploymentConfig,
107
+ VitessClusterConfig,
108
+ VitessCellConfig,
109
+ VitessKeyspaceConfig,
106
110
  KafkaClusterDeploymentConfig,
107
111
  KubernetesDeploymentConfig,
108
112
  EksDeploymentConfig,
@@ -115,7 +119,9 @@ DEPLOYMENT_INSTANCE_CONFIG: Sequence[Type[InstanceConfig]] = [
115
119
  FlinkDeploymentConfig,
116
120
  FlinkEksDeploymentConfig,
117
121
  CassandraClusterDeploymentConfig,
118
- VitessDeploymentConfig,
122
+ VitessClusterConfig,
123
+ VitessCellConfig,
124
+ VitessKeyspaceConfig,
119
125
  KafkaClusterDeploymentConfig,
120
126
  KubernetesDeploymentConfig,
121
127
  EksDeploymentConfig,
@@ -137,7 +143,9 @@ InstanceStatusWriter = Callable[
137
143
  EKS_DEPLOYMENT_CONFIGS = [
138
144
  EksDeploymentConfig,
139
145
  FlinkEksDeploymentConfig,
140
- VitessDeploymentConfig,
146
+ VitessClusterConfig,
147
+ VitessCellConfig,
148
+ VitessKeyspaceConfig,
141
149
  ]
142
150
  FLINK_DEPLOYMENT_CONFIGS = [FlinkDeploymentConfig, FlinkEksDeploymentConfig]
143
151
 
@@ -418,8 +418,17 @@
418
418
  ]
419
419
  },
420
420
  "spark.driver.maxResultSize": {
421
- "type": "string",
422
- "pattern": "^[1-9]+[0-9]*[kmgt]$"
421
+ "oneOf": [
422
+ {
423
+ "type": "string",
424
+ "pattern": "^[1-9]+[0-9]*[kmgt]$"
425
+ },
426
+ {
427
+ "type": "number",
428
+ "minimum": 0,
429
+ "exclusiveMinimum": true
430
+ }
431
+ ]
423
432
  },
424
433
  "spark.scheduler.minRegisteredResourcesRatio": {
425
434
  "type": "number",
@@ -76,7 +76,9 @@ from paasta_tools.utils import PAASTA_K8S_INSTANCE_TYPES
76
76
  from paasta_tools.utils import PaastaColors
77
77
  from paasta_tools.utils import SystemPaastaConfig
78
78
  from paasta_tools.utils import validate_service_instance
79
- from paasta_tools.vitesscluster_tools import load_vitess_instance_config
79
+ from paasta_tools.vitesscell_tools import load_vitess_cell_instance_config
80
+ from paasta_tools.vitesscluster_tools import load_vitess_cluster_instance_config
81
+ from paasta_tools.vitesskeyspace_tools import load_vitess_keyspace_instance_config
80
82
 
81
83
  try:
82
84
  from vault_tools.paasta_secret import get_client as get_vault_client
@@ -680,7 +682,13 @@ INSTANCE_TYPE_HANDLERS: Mapping[str, InstanceTypeHandler] = defaultdict(
680
682
  get_service_instance_list, load_kafkacluster_instance_config
681
683
  ),
682
684
  vitesscluster=InstanceTypeHandler(
683
- get_service_instance_list, load_vitess_instance_config
685
+ get_service_instance_list, load_vitess_cluster_instance_config
686
+ ),
687
+ vitesscell=InstanceTypeHandler(
688
+ get_service_instance_list, load_vitess_cell_instance_config
689
+ ),
690
+ vitesskeyspace=InstanceTypeHandler(
691
+ get_service_instance_list, load_vitess_keyspace_instance_config
684
692
  ),
685
693
  nrtsearchservice=InstanceTypeHandler(
686
694
  get_service_instance_list, load_nrtsearchservice_instance_config
@@ -713,7 +721,13 @@ LONG_RUNNING_INSTANCE_TYPE_HANDLERS: Mapping[
713
721
  get_service_instance_list, load_kafkacluster_instance_config
714
722
  ),
715
723
  vitesscluster=LongRunningInstanceTypeHandler(
716
- get_service_instance_list, load_vitess_instance_config
724
+ get_service_instance_list, load_vitess_cluster_instance_config
725
+ ),
726
+ vitesscell=LongRunningInstanceTypeHandler(
727
+ get_service_instance_list, load_vitess_cell_instance_config
728
+ ),
729
+ vitesskeyspace=LongRunningInstanceTypeHandler(
730
+ get_service_instance_list, load_vitess_keyspace_instance_config
717
731
  ),
718
732
  nrtsearchservice=LongRunningInstanceTypeHandler(
719
733
  get_service_instance_list, load_nrtsearchservice_instance_config
@@ -171,7 +171,8 @@ class NativeServiceConfig(LongRunningServiceConfig):
171
171
  computed separately.
172
172
  """
173
173
  docker_volumes = self.get_volumes(
174
- system_volumes=system_paasta_config.get_volumes()
174
+ system_volumes=system_paasta_config.get_volumes(),
175
+ uses_bulkdata_default=system_paasta_config.get_uses_bulkdata_default(),
175
176
  )
176
177
  task: TaskInfo = {
177
178
  "name": "",
@@ -33,7 +33,9 @@ from paasta_tools import kubernetes_tools
33
33
  from paasta_tools import monkrelaycluster_tools
34
34
  from paasta_tools import nrtsearchservice_tools
35
35
  from paasta_tools import smartstack_tools
36
+ from paasta_tools import vitesscell_tools
36
37
  from paasta_tools import vitesscluster_tools
38
+ from paasta_tools import vitesskeyspace_tools
37
39
  from paasta_tools.cli.utils import LONG_RUNNING_INSTANCE_TYPE_HANDLERS
38
40
  from paasta_tools.instance.hpa_metrics_parser import HPAMetricsDict
39
41
  from paasta_tools.instance.hpa_metrics_parser import HPAMetricsParser
@@ -57,6 +59,8 @@ INSTANCE_TYPES_CR = {
57
59
  "cassandracluster",
58
60
  "kafkacluster",
59
61
  "vitesscluster",
62
+ "vitesscell",
63
+ "vitesskeyspace",
60
64
  }
61
65
  INSTANCE_TYPES_K8S = {
62
66
  "cassandracluster",
@@ -72,6 +76,8 @@ INSTANCE_TYPE_CR_ID = dict(
72
76
  cassandracluster=cassandracluster_tools.cr_id,
73
77
  kafkacluster=kafkacluster_tools.cr_id,
74
78
  vitesscluster=vitesscluster_tools.cr_id,
79
+ vitesscell=vitesscell_tools.cr_id,
80
+ vitesskeyspace=vitesskeyspace_tools.cr_id,
75
81
  nrtsearchservice=nrtsearchservice_tools.cr_id,
76
82
  nrtsearchserviceeks=nrtsearchservice_tools.cr_id,
77
83
  monkrelaycluster=monkrelaycluster_tools.cr_id,
@@ -2142,7 +2142,8 @@ class KubernetesDeploymentConfig(LongRunningServiceConfig):
2142
2142
  service=self.service, namespace=self.get_nerve_namespace()
2143
2143
  )
2144
2144
  docker_volumes = self.get_volumes(
2145
- system_volumes=system_paasta_config.get_volumes()
2145
+ system_volumes=system_paasta_config.get_volumes(),
2146
+ uses_bulkdata_default=system_paasta_config.get_uses_bulkdata_default(),
2146
2147
  )
2147
2148
 
2148
2149
  hacheck_sidecar_volumes = system_paasta_config.get_hacheck_sidecar_volumes()
@@ -49,13 +49,19 @@ from paasta_tools.utils import get_config_hash
49
49
  from paasta_tools.utils import get_git_sha_from_dockerurl
50
50
  from paasta_tools.utils import load_all_configs
51
51
  from paasta_tools.utils import load_system_paasta_config
52
- from paasta_tools.vitesscluster_tools import load_vitess_service_instance_configs
52
+ from paasta_tools.vitesscell_tools import load_vitess_cell_instance_configs
53
+ from paasta_tools.vitesscluster_tools import load_vitess_cluster_instance_configs
54
+ from paasta_tools.vitesskeyspace_tools import load_vitess_keyspace_instance_configs
53
55
 
54
56
 
55
57
  log = logging.getLogger(__name__)
56
58
 
57
59
 
58
- INSTANCE_TYPE_TO_CONFIG_LOADER = {"vitesscluster": load_vitess_service_instance_configs}
60
+ INSTANCE_TYPE_TO_CONFIG_LOADER = {
61
+ "vitesscluster": load_vitess_cluster_instance_configs,
62
+ "vitesscell": load_vitess_cell_instance_configs,
63
+ "vitesskeyspace": load_vitess_keyspace_instance_configs,
64
+ }
59
65
 
60
66
 
61
67
  class StdoutKubeClient:
@@ -357,7 +357,10 @@ class TronActionConfig(InstanceConfig):
357
357
  paasta_service=self.get_service(),
358
358
  paasta_instance=self.get_instance(),
359
359
  docker_img=docker_img_url,
360
- extra_volumes=self.get_volumes(system_paasta_config.get_volumes()),
360
+ extra_volumes=self.get_volumes(
361
+ system_paasta_config.get_volumes(),
362
+ uses_bulkdata_default=system_paasta_config.get_uses_bulkdata_default(),
363
+ ),
361
364
  use_eks=True,
362
365
  k8s_server_address=get_k8s_url_for_cluster(self.get_cluster()),
363
366
  force_spark_resource_configs=self.config_dict.get(
@@ -137,6 +137,8 @@ INSTANCE_TYPES = (
137
137
  "cassandracluster",
138
138
  "kafkacluster",
139
139
  "vitesscluster",
140
+ "vitesscell",
141
+ "vitesskeyspace",
140
142
  "monkrelays",
141
143
  "nrtsearchservice",
142
144
  "nrtsearchserviceeks",
@@ -156,6 +158,8 @@ INSTANCE_TYPE_TO_K8S_NAMESPACE = {
156
158
  "cassandracluster": "paasta-cassandraclusters",
157
159
  "kafkacluster": "paasta-kafkaclusters",
158
160
  "vitesscluster": "paasta-vitessclusters",
161
+ "vitesscell": "paasta-vitessclusters",
162
+ "vitesskeyspace": "paasta-vitessclusters",
159
163
  "nrtsearchservice": "paasta-nrtsearchservices",
160
164
  "nrtsearchserviceeks": "paasta-nrtsearchservices",
161
165
  }
@@ -624,7 +628,8 @@ class InstanceConfig:
624
628
 
625
629
  Defaults to 1024 (1GiB) if no value is specified in the config.
626
630
 
627
- :returns: The amount of disk space specified by the config, 1024 MiB if not specified"""
631
+ :returns: The amount of disk space specified by the config, 1024 MiB if not specified
632
+ """
628
633
  disk = self.config_dict.get("disk", default)
629
634
  return disk
630
635
 
@@ -979,7 +984,8 @@ class InstanceConfig:
979
984
 
980
985
  Eventually this may be implemented with Mesos roles, once a framework can register under multiple roles.
981
986
 
982
- :returns: the "pool" attribute in your config dict, or the string "default" if not specified."""
987
+ :returns: the "pool" attribute in your config dict, or the string "default" if not specified.
988
+ """
983
989
  return self.config_dict.get("pool", "default")
984
990
 
985
991
  def get_pool_constraints(self) -> List[Constraint]:
@@ -998,17 +1004,17 @@ class InstanceConfig:
998
1004
  """
999
1005
  return self.config_dict.get("net", "bridge")
1000
1006
 
1001
- def has_bulkdata(
1002
- self,
1003
- ) -> bool:
1004
- return self.config_dict.get("uses_bulkdata", True)
1005
-
1006
- def get_volumes(self, system_volumes: Sequence[DockerVolume]) -> List[DockerVolume]:
1007
+ def get_volumes(
1008
+ self, system_volumes: Sequence[DockerVolume], uses_bulkdata_default: bool = True
1009
+ ) -> List[DockerVolume]:
1007
1010
  volumes = list(system_volumes) + list(self.get_extra_volumes())
1008
1011
  # we used to add bulkdata as a default mount - but as part of the
1009
1012
  # effort to deprecate the entire system, we're swapping to an opt-in
1010
1013
  # model so that we can shrink the blast radius of any changes
1011
- if self.has_bulkdata():
1014
+ if self.config_dict.get(
1015
+ "uses_bulkdata",
1016
+ uses_bulkdata_default,
1017
+ ):
1012
1018
  # bulkdata is mounted RO as the data is produced by another
1013
1019
  # system and we want to ensure that there are no inadvertent
1014
1020
  # changes by misbehaved code
@@ -1038,7 +1044,8 @@ class InstanceConfig:
1038
1044
 
1039
1045
  Defaults to None if not specified in the config.
1040
1046
 
1041
- :returns: A list of dictionaries specified in the dependencies_dict, None if not specified"""
1047
+ :returns: A list of dictionaries specified in the dependencies_dict, None if not specified
1048
+ """
1042
1049
  dependencies = self.config_dict.get("dependencies")
1043
1050
  if not dependencies:
1044
1051
  return None
@@ -1119,7 +1126,6 @@ def compose(
1119
1126
 
1120
1127
 
1121
1128
  class PaastaColors:
1122
-
1123
1129
  """Collection of static variables and methods to assist in coloring text."""
1124
1130
 
1125
1131
  # ANSI color codes
@@ -2048,6 +2054,7 @@ class SystemPaastaConfigDict(TypedDict, total=False):
2048
2054
  vitess_tablet_types: List[str]
2049
2055
  vitess_tablet_pool_type_mapping: Dict
2050
2056
  vitess_throttling_config: Dict
2057
+ uses_bulkdata_default: bool
2051
2058
 
2052
2059
 
2053
2060
  def load_system_paasta_config(
@@ -2418,7 +2425,8 @@ class SystemPaastaConfig:
2418
2425
  """Get a format string for the URL to query for haproxy-synapse state. This format string gets two keyword
2419
2426
  arguments, host and port. Defaults to "http://{host:s}:{port:d}/;csv;norefresh".
2420
2427
 
2421
- :returns: A format string for constructing the URL of haproxy-synapse's status page."""
2428
+ :returns: A format string for constructing the URL of haproxy-synapse's status page.
2429
+ """
2422
2430
  return self.config_dict.get(
2423
2431
  "synapse_haproxy_url_format", DEFAULT_SYNAPSE_HAPROXY_URL_FORMAT
2424
2432
  )
@@ -2433,7 +2441,8 @@ class SystemPaastaConfig:
2433
2441
  """Get a format string that constructs a DNS name pointing at the paasta masters in a cluster. This format
2434
2442
  string gets one parameter: cluster. Defaults to 'paasta-{cluster:s}.yelp'.
2435
2443
 
2436
- :returns: A format string for constructing the FQDN of the masters in a given cluster."""
2444
+ :returns: A format string for constructing the FQDN of the masters in a given cluster.
2445
+ """
2437
2446
  return self.config_dict.get("cluster_fqdn_format", "paasta-{cluster:s}.yelp")
2438
2447
 
2439
2448
  def get_paasta_status_version(self) -> str:
@@ -2805,6 +2814,9 @@ class SystemPaastaConfig:
2805
2814
  },
2806
2815
  )
2807
2816
 
2817
+ def get_uses_bulkdata_default(self) -> bool:
2818
+ return self.config_dict.get("uses_bulkdata_default", True)
2819
+
2808
2820
 
2809
2821
  def _run(
2810
2822
  command: Union[str, List[str]],
@@ -0,0 +1,289 @@
1
+ import logging
2
+ from typing import Any
3
+ from typing import Dict
4
+ from typing import List
5
+ from typing import Mapping
6
+ from typing import Optional
7
+ from typing import TypedDict
8
+ from typing import Union
9
+
10
+ import service_configuration_lib
11
+
12
+ from paasta_tools.kubernetes_tools import KubernetesDeploymentConfigDict
13
+ from paasta_tools.kubernetes_tools import sanitised_cr_name
14
+ from paasta_tools.utils import BranchDictV2
15
+ from paasta_tools.utils import deep_merge_dictionaries
16
+ from paasta_tools.utils import DEFAULT_SOA_DIR
17
+ from paasta_tools.utils import load_service_instance_config
18
+ from paasta_tools.utils import load_system_paasta_config
19
+ from paasta_tools.utils import load_v2_deployments_json
20
+ from paasta_tools.vitesscluster_tools import get_formatted_environment_variables
21
+ from paasta_tools.vitesscluster_tools import KVEnvVar
22
+ from paasta_tools.vitesscluster_tools import KVEnvVarValueFrom
23
+ from paasta_tools.vitesscluster_tools import RequestsDict
24
+ from paasta_tools.vitesscluster_tools import ResourceConfigDict
25
+ from paasta_tools.vitesscluster_tools import VitessDeploymentConfig
26
+ from paasta_tools.vitesscluster_tools import VitessDeploymentConfigDict
27
+
28
+
29
+ log = logging.getLogger(__name__)
30
+ log.addHandler(logging.NullHandler())
31
+
32
+
33
+ KUBERNETES_NAMESPACE = "paasta-vitessclusters"
34
+
35
+
36
+ # Global variables
37
+ TOPO_IMPLEMENTATION = "zk2"
38
+ TOPO_GLOBAL_ROOT = "/vitess-paasta/global"
39
+
40
+ VTGATE_EXTRA_ENV = {
41
+ "VAULT_ROLEID": {
42
+ "secretKeyRef": {
43
+ "name": "paasta-vitessclusters-secret-vitess-k8s-vault-vtgate-approle-roleid",
44
+ "key": "vault-vtgate-approle-roleid",
45
+ }
46
+ },
47
+ "VAULT_SECRETID": {
48
+ "secretKeyRef": {
49
+ "name": "paasta-vitessclusters-secret-vitess-k8s-vault-vtgate-approle-secretid",
50
+ "key": "vault-vtgate-approle-secretid",
51
+ }
52
+ },
53
+ }
54
+
55
+
56
+ class GatewayConfigDict(TypedDict, total=False):
57
+ affinity: Dict[str, Any]
58
+ extraEnv: List[Union[KVEnvVar, KVEnvVarValueFrom]]
59
+ extraFlags: Dict[str, str]
60
+ extraLabels: Dict[str, str]
61
+ replicas: int
62
+ resources: Dict[str, Any]
63
+ annotations: Mapping[str, Any]
64
+
65
+
66
+ class VitessCellConfigDict(VitessDeploymentConfigDict, total=False):
67
+ name: str
68
+ allCells: List[str]
69
+ globalLockserver: Dict[str, str]
70
+ gateway: GatewayConfigDict
71
+
72
+
73
+ def get_cell_config(
74
+ cell: str,
75
+ images: Dict[str, str],
76
+ allCells: List[str],
77
+ global_lock_server: Dict[str, str],
78
+ region: str,
79
+ vtgate_resources: ResourceConfigDict,
80
+ env: List[Union[KVEnvVar, KVEnvVarValueFrom]],
81
+ labels: Dict[str, str],
82
+ node_affinity: dict,
83
+ annotations: Mapping[str, Any],
84
+ ) -> VitessCellConfigDict:
85
+ """
86
+ get vtgate config
87
+ """
88
+ replicas = vtgate_resources.get("replicas")
89
+ requests = vtgate_resources.get(
90
+ "requests", RequestsDict(cpu="100m", memory="256Mi")
91
+ )
92
+ environment_overrides: Dict[str, Any] = {
93
+ "VAULT_ADDR": f"https://vault-dre.{region}.yelpcorp.com:8200",
94
+ "VAULT_CACERT": f"/etc/vault/all_cas/acm-privateca-{region}.crt",
95
+ }
96
+ environment_overrides.update(VTGATE_EXTRA_ENV)
97
+ updated_vtgate_extra_env = (
98
+ get_formatted_environment_variables(environment_overrides) + env
99
+ )
100
+
101
+ config = VitessCellConfigDict(
102
+ name=cell,
103
+ images=images,
104
+ allCells=allCells,
105
+ globalLockserver=global_lock_server,
106
+ gateway=GatewayConfigDict(
107
+ affinity={"nodeAffinity": node_affinity},
108
+ extraEnv=updated_vtgate_extra_env,
109
+ extraFlags={
110
+ "mysql_auth_server_impl": "vault",
111
+ "mysql_auth_vault_addr": f"https://vault-dre.{region}.yelpcorp.com:8200",
112
+ "mysql_auth_vault_path": "secrets/vitess/vt-gate/vttablet_credentials.json",
113
+ "mysql_auth_vault_tls_ca": f"/etc/vault/all_cas/acm-privateca-{region}.crt",
114
+ "mysql_auth_vault_ttl": "60s",
115
+ },
116
+ extraLabels=labels,
117
+ replicas=replicas,
118
+ resources={
119
+ "requests": requests,
120
+ "limits": requests,
121
+ },
122
+ annotations=annotations,
123
+ ),
124
+ )
125
+ return config
126
+
127
+
128
+ class VitessCellInstanceConfigDict(KubernetesDeploymentConfigDict, total=False):
129
+ cell: str
130
+ cells: List[str]
131
+ zk_address: str
132
+ vtgate_resources: ResourceConfigDict
133
+ images: Dict[str, str]
134
+
135
+
136
+ class VitessCellConfig(VitessDeploymentConfig):
137
+ config_dict: VitessCellInstanceConfigDict
138
+
139
+ config_filename_prefix = "vitesscell"
140
+
141
+ def __init__(
142
+ self,
143
+ service: str,
144
+ cluster: str,
145
+ instance: str,
146
+ config_dict: VitessCellConfigDict,
147
+ branch_dict: Optional[BranchDictV2],
148
+ soa_dir: str = DEFAULT_SOA_DIR,
149
+ ) -> None:
150
+ super().__init__(
151
+ cluster=cluster, # superregion
152
+ instance=instance, # host-1
153
+ service=service, # vitess
154
+ soa_dir=soa_dir,
155
+ config_dict=config_dict,
156
+ branch_dict=branch_dict,
157
+ )
158
+
159
+ def get_images(self) -> Dict[str, str]:
160
+ vitess_images = self.config_dict.get(
161
+ "images", load_system_paasta_config().get_vitess_images()
162
+ )
163
+ return {
164
+ "vtctld": vitess_images["vtctld_image"],
165
+ "vtadmin": vitess_images["vtadmin_image"],
166
+ "vtgate": vitess_images["vtgate_image"],
167
+ "vttablet": vitess_images["vttablet_image"],
168
+ }
169
+
170
+ def get_global_lock_server(self) -> Dict[str, str]:
171
+ zk_address = self.config_dict.get("zk_address")
172
+ return {
173
+ "implementation": TOPO_IMPLEMENTATION,
174
+ "address": zk_address,
175
+ "rootPath": TOPO_GLOBAL_ROOT,
176
+ }
177
+
178
+ def get_vitess_cell_config(self) -> VitessCellConfigDict:
179
+ cell = self.config_dict.get("cell")
180
+ all_cells = self.config_dict.get("cells")
181
+ images = self.get_images()
182
+ global_lock_server = self.get_global_lock_server()
183
+ region = self.get_region()
184
+ vtgate_resources = self.config_dict.get("vtgate_resources")
185
+
186
+ formatted_env = self.get_env_variables()
187
+ labels = self.get_labels()
188
+ node_affinity = self.get_vitess_node_affinity()
189
+ annotations = self.get_annotations()
190
+
191
+ return get_cell_config(
192
+ cell,
193
+ images,
194
+ all_cells,
195
+ global_lock_server,
196
+ region,
197
+ vtgate_resources,
198
+ formatted_env,
199
+ labels,
200
+ node_affinity,
201
+ annotations,
202
+ )
203
+
204
+ def validate(
205
+ self,
206
+ params: List[str] = [
207
+ "cpus",
208
+ "security",
209
+ "dependencies_reference",
210
+ "deploy_group",
211
+ ],
212
+ ) -> List[str]:
213
+ # Use InstanceConfig to validate shared config keys like cpus and mem
214
+ # TODO: add mem back to this list once we fix PAASTA-15582 and
215
+ # move to using the same units as flink/marathon etc.
216
+ error_msgs = super().validate(params=params)
217
+
218
+ if error_msgs:
219
+ name = self.get_instance()
220
+ return [f"{name}: {msg}" for msg in error_msgs]
221
+ else:
222
+ return []
223
+
224
+
225
+ def load_vitess_cell_instance_config(
226
+ service: str,
227
+ instance: str,
228
+ cluster: str,
229
+ load_deployments: bool = True,
230
+ soa_dir: str = DEFAULT_SOA_DIR,
231
+ ) -> VitessCellConfig:
232
+ general_config = service_configuration_lib.read_service_configuration(
233
+ service, soa_dir=soa_dir
234
+ )
235
+ instance_config = load_service_instance_config(
236
+ service, instance, "vitesscell", cluster, soa_dir=soa_dir
237
+ )
238
+ general_config = deep_merge_dictionaries(
239
+ overrides=instance_config, defaults=general_config
240
+ )
241
+
242
+ branch_dict: Optional[BranchDictV2] = None
243
+ if load_deployments:
244
+ deployments_json = load_v2_deployments_json(service, soa_dir=soa_dir)
245
+ temp_instance_config = VitessCellConfig(
246
+ service=service,
247
+ cluster=cluster,
248
+ instance=instance,
249
+ config_dict=general_config,
250
+ branch_dict=None,
251
+ soa_dir=soa_dir,
252
+ )
253
+ branch = temp_instance_config.get_branch()
254
+ deploy_group = temp_instance_config.get_deploy_group()
255
+ branch_dict = deployments_json.get_branch_dict(service, branch, deploy_group)
256
+
257
+ vitess_cell_config = VitessCellConfig(
258
+ service=service,
259
+ cluster=cluster,
260
+ instance=instance,
261
+ config_dict=general_config,
262
+ branch_dict=branch_dict,
263
+ soa_dir=soa_dir,
264
+ )
265
+
266
+ return vitess_cell_config
267
+
268
+
269
+ def load_vitess_cell_instance_configs(
270
+ service: str,
271
+ instance: str,
272
+ cluster: str,
273
+ soa_dir: str = DEFAULT_SOA_DIR,
274
+ ) -> VitessCellConfigDict:
275
+ vitess_cell_instance_configs = load_vitess_cell_instance_config(
276
+ service, instance, cluster, soa_dir=soa_dir
277
+ ).get_vitess_cell_config()
278
+ return vitess_cell_instance_configs
279
+
280
+
281
+ # TODO: read this from CRD in service configs
282
+ def cr_id(service: str, instance: str) -> Mapping[str, str]:
283
+ return dict(
284
+ group="planetscale.com",
285
+ version="v2",
286
+ namespace=KUBERNETES_NAMESPACE,
287
+ plural="vitesscells",
288
+ name=sanitised_cr_name(service, instance),
289
+ )