paasta-tools 1.0.5__tar.gz → 1.1.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (295) hide show
  1. {paasta-tools-1.0.5/paasta_tools.egg-info → paasta-tools-1.1.0}/PKG-INFO +1 -1
  2. {paasta-tools-1.0.5 → paasta-tools-1.1.0}/paasta_tools/__init__.py +1 -1
  3. paasta-tools-1.1.0/paasta_tools/generate_authenticating_services.py +93 -0
  4. {paasta-tools-1.0.5 → paasta-tools-1.1.0}/paasta_tools/generate_services_file.py +12 -50
  5. {paasta-tools-1.0.5 → paasta-tools-1.1.0}/paasta_tools/generate_services_yaml.py +3 -2
  6. {paasta-tools-1.0.5 → paasta-tools-1.1.0}/paasta_tools/utils.py +67 -0
  7. {paasta-tools-1.0.5 → paasta-tools-1.1.0/paasta_tools.egg-info}/PKG-INFO +1 -1
  8. {paasta-tools-1.0.5 → paasta-tools-1.1.0}/paasta_tools.egg-info/SOURCES.txt +1 -0
  9. {paasta-tools-1.0.5 → paasta-tools-1.1.0}/setup.py +1 -0
  10. {paasta-tools-1.0.5 → paasta-tools-1.1.0}/MANIFEST.in +0 -0
  11. {paasta-tools-1.0.5 → paasta-tools-1.1.0}/README.md +0 -0
  12. {paasta-tools-1.0.5 → paasta-tools-1.1.0}/k8s_itests/__init__.py +0 -0
  13. {paasta-tools-1.0.5 → paasta-tools-1.1.0}/k8s_itests/test_autoscaling.py +0 -0
  14. {paasta-tools-1.0.5 → paasta-tools-1.1.0}/k8s_itests/utils.py +0 -0
  15. {paasta-tools-1.0.5 → paasta-tools-1.1.0}/paasta_tools/adhoc_tools.py +0 -0
  16. {paasta-tools-1.0.5 → paasta-tools-1.1.0}/paasta_tools/api/__init__.py +0 -0
  17. {paasta-tools-1.0.5 → paasta-tools-1.1.0}/paasta_tools/api/api.py +0 -0
  18. {paasta-tools-1.0.5 → paasta-tools-1.1.0}/paasta_tools/api/api_docs/swagger.json +0 -0
  19. {paasta-tools-1.0.5 → paasta-tools-1.1.0}/paasta_tools/api/client.py +0 -0
  20. {paasta-tools-1.0.5 → paasta-tools-1.1.0}/paasta_tools/api/settings.py +0 -0
  21. {paasta-tools-1.0.5 → paasta-tools-1.1.0}/paasta_tools/api/tweens/__init__.py +0 -0
  22. {paasta-tools-1.0.5 → paasta-tools-1.1.0}/paasta_tools/api/tweens/profiling.py +0 -0
  23. {paasta-tools-1.0.5 → paasta-tools-1.1.0}/paasta_tools/api/tweens/request_logger.py +0 -0
  24. {paasta-tools-1.0.5 → paasta-tools-1.1.0}/paasta_tools/api/views/__init__.py +0 -0
  25. {paasta-tools-1.0.5 → paasta-tools-1.1.0}/paasta_tools/api/views/autoscaler.py +0 -0
  26. {paasta-tools-1.0.5 → paasta-tools-1.1.0}/paasta_tools/api/views/exception.py +0 -0
  27. {paasta-tools-1.0.5 → paasta-tools-1.1.0}/paasta_tools/api/views/flink.py +0 -0
  28. {paasta-tools-1.0.5 → paasta-tools-1.1.0}/paasta_tools/api/views/instance.py +0 -0
  29. {paasta-tools-1.0.5 → paasta-tools-1.1.0}/paasta_tools/api/views/pause_autoscaler.py +0 -0
  30. {paasta-tools-1.0.5 → paasta-tools-1.1.0}/paasta_tools/api/views/resources.py +0 -0
  31. {paasta-tools-1.0.5 → paasta-tools-1.1.0}/paasta_tools/api/views/service.py +0 -0
  32. {paasta-tools-1.0.5 → paasta-tools-1.1.0}/paasta_tools/api/views/version.py +0 -0
  33. {paasta-tools-1.0.5 → paasta-tools-1.1.0}/paasta_tools/apply_external_resources.py +0 -0
  34. {paasta-tools-1.0.5 → paasta-tools-1.1.0}/paasta_tools/async_utils.py +0 -0
  35. {paasta-tools-1.0.5 → paasta-tools-1.1.0}/paasta_tools/autoscaling/__init__.py +0 -0
  36. {paasta-tools-1.0.5 → paasta-tools-1.1.0}/paasta_tools/autoscaling/autoscaling_service_lib.py +0 -0
  37. {paasta-tools-1.0.5 → paasta-tools-1.1.0}/paasta_tools/autoscaling/forecasting.py +0 -0
  38. {paasta-tools-1.0.5 → paasta-tools-1.1.0}/paasta_tools/autoscaling/max_all_k8s_services.py +0 -0
  39. {paasta-tools-1.0.5 → paasta-tools-1.1.0}/paasta_tools/autoscaling/pause_service_autoscaler.py +0 -0
  40. {paasta-tools-1.0.5 → paasta-tools-1.1.0}/paasta_tools/autoscaling/utils.py +0 -0
  41. {paasta-tools-1.0.5 → paasta-tools-1.1.0}/paasta_tools/bounce_lib.py +0 -0
  42. {paasta-tools-1.0.5 → paasta-tools-1.1.0}/paasta_tools/broadcast_log_to_services.py +0 -0
  43. {paasta-tools-1.0.5 → paasta-tools-1.1.0}/paasta_tools/cassandracluster_tools.py +0 -0
  44. {paasta-tools-1.0.5 → paasta-tools-1.1.0}/paasta_tools/check_autoscaler_max_instances.py +0 -0
  45. {paasta-tools-1.0.5 → paasta-tools-1.1.0}/paasta_tools/check_cassandracluster_services_replication.py +0 -0
  46. {paasta-tools-1.0.5 → paasta-tools-1.1.0}/paasta_tools/check_flink_services_health.py +0 -0
  47. {paasta-tools-1.0.5 → paasta-tools-1.1.0}/paasta_tools/check_kubernetes_api.py +0 -0
  48. {paasta-tools-1.0.5 → paasta-tools-1.1.0}/paasta_tools/check_kubernetes_services_replication.py +0 -0
  49. {paasta-tools-1.0.5 → paasta-tools-1.1.0}/paasta_tools/check_oom_events.py +0 -0
  50. {paasta-tools-1.0.5 → paasta-tools-1.1.0}/paasta_tools/check_services_replication_tools.py +0 -0
  51. {paasta-tools-1.0.5 → paasta-tools-1.1.0}/paasta_tools/check_spark_jobs.py +0 -0
  52. {paasta-tools-1.0.5 → paasta-tools-1.1.0}/paasta_tools/cleanup_kubernetes_cr.py +0 -0
  53. {paasta-tools-1.0.5 → paasta-tools-1.1.0}/paasta_tools/cleanup_kubernetes_crd.py +0 -0
  54. {paasta-tools-1.0.5 → paasta-tools-1.1.0}/paasta_tools/cleanup_kubernetes_jobs.py +0 -0
  55. {paasta-tools-1.0.5 → paasta-tools-1.1.0}/paasta_tools/cleanup_tron_namespaces.py +0 -0
  56. {paasta-tools-1.0.5 → paasta-tools-1.1.0}/paasta_tools/cli/__init__.py +0 -0
  57. {paasta-tools-1.0.5 → paasta-tools-1.1.0}/paasta_tools/cli/cli.py +0 -0
  58. {paasta-tools-1.0.5 → paasta-tools-1.1.0}/paasta_tools/cli/cmds/__init__.py +0 -0
  59. {paasta-tools-1.0.5 → paasta-tools-1.1.0}/paasta_tools/cli/cmds/autoscale.py +0 -0
  60. {paasta-tools-1.0.5 → paasta-tools-1.1.0}/paasta_tools/cli/cmds/check.py +0 -0
  61. {paasta-tools-1.0.5 → paasta-tools-1.1.0}/paasta_tools/cli/cmds/cook_image.py +0 -0
  62. {paasta-tools-1.0.5 → paasta-tools-1.1.0}/paasta_tools/cli/cmds/get_docker_image.py +0 -0
  63. {paasta-tools-1.0.5 → paasta-tools-1.1.0}/paasta_tools/cli/cmds/get_image_version.py +0 -0
  64. {paasta-tools-1.0.5 → paasta-tools-1.1.0}/paasta_tools/cli/cmds/get_latest_deployment.py +0 -0
  65. {paasta-tools-1.0.5 → paasta-tools-1.1.0}/paasta_tools/cli/cmds/info.py +0 -0
  66. {paasta-tools-1.0.5 → paasta-tools-1.1.0}/paasta_tools/cli/cmds/itest.py +0 -0
  67. {paasta-tools-1.0.5 → paasta-tools-1.1.0}/paasta_tools/cli/cmds/list.py +0 -0
  68. {paasta-tools-1.0.5 → paasta-tools-1.1.0}/paasta_tools/cli/cmds/list_clusters.py +0 -0
  69. {paasta-tools-1.0.5 → paasta-tools-1.1.0}/paasta_tools/cli/cmds/list_deploy_queue.py +0 -0
  70. {paasta-tools-1.0.5 → paasta-tools-1.1.0}/paasta_tools/cli/cmds/local_run.py +0 -0
  71. {paasta-tools-1.0.5 → paasta-tools-1.1.0}/paasta_tools/cli/cmds/logs.py +0 -0
  72. {paasta-tools-1.0.5 → paasta-tools-1.1.0}/paasta_tools/cli/cmds/mark_for_deployment.py +0 -0
  73. {paasta-tools-1.0.5 → paasta-tools-1.1.0}/paasta_tools/cli/cmds/mesh_status.py +0 -0
  74. {paasta-tools-1.0.5 → paasta-tools-1.1.0}/paasta_tools/cli/cmds/pause_service_autoscaler.py +0 -0
  75. {paasta-tools-1.0.5 → paasta-tools-1.1.0}/paasta_tools/cli/cmds/push_to_registry.py +0 -0
  76. {paasta-tools-1.0.5 → paasta-tools-1.1.0}/paasta_tools/cli/cmds/remote_run.py +0 -0
  77. {paasta-tools-1.0.5 → paasta-tools-1.1.0}/paasta_tools/cli/cmds/rollback.py +0 -0
  78. {paasta-tools-1.0.5 → paasta-tools-1.1.0}/paasta_tools/cli/cmds/secret.py +0 -0
  79. {paasta-tools-1.0.5 → paasta-tools-1.1.0}/paasta_tools/cli/cmds/security_check.py +0 -0
  80. {paasta-tools-1.0.5 → paasta-tools-1.1.0}/paasta_tools/cli/cmds/spark_run.py +0 -0
  81. {paasta-tools-1.0.5 → paasta-tools-1.1.0}/paasta_tools/cli/cmds/start_stop_restart.py +0 -0
  82. {paasta-tools-1.0.5 → paasta-tools-1.1.0}/paasta_tools/cli/cmds/status.py +0 -0
  83. {paasta-tools-1.0.5 → paasta-tools-1.1.0}/paasta_tools/cli/cmds/validate.py +0 -0
  84. {paasta-tools-1.0.5 → paasta-tools-1.1.0}/paasta_tools/cli/cmds/wait_for_deployment.py +0 -0
  85. {paasta-tools-1.0.5 → paasta-tools-1.1.0}/paasta_tools/cli/fsm/__init__.py +0 -0
  86. {paasta-tools-1.0.5 → paasta-tools-1.1.0}/paasta_tools/cli/fsm/autosuggest.py +0 -0
  87. {paasta-tools-1.0.5 → paasta-tools-1.1.0}/paasta_tools/cli/fsm/template/README.md +0 -0
  88. {paasta-tools-1.0.5 → paasta-tools-1.1.0}/paasta_tools/cli/fsm/template/cookiecutter.json +0 -0
  89. {paasta-tools-1.0.5 → paasta-tools-1.1.0}/paasta_tools/cli/fsm/template/{{cookiecutter.service}}/kubernetes-PROD.yaml +0 -0
  90. {paasta-tools-1.0.5 → paasta-tools-1.1.0}/paasta_tools/cli/fsm/template/{{cookiecutter.service}}/monitoring.yaml +0 -0
  91. {paasta-tools-1.0.5 → paasta-tools-1.1.0}/paasta_tools/cli/fsm/template/{{cookiecutter.service}}/service.yaml +0 -0
  92. {paasta-tools-1.0.5 → paasta-tools-1.1.0}/paasta_tools/cli/fsm/template/{{cookiecutter.service}}/smartstack.yaml +0 -0
  93. {paasta-tools-1.0.5 → paasta-tools-1.1.0}/paasta_tools/cli/fsm_cmd.py +0 -0
  94. {paasta-tools-1.0.5 → paasta-tools-1.1.0}/paasta_tools/cli/paasta_tabcomplete.sh +0 -0
  95. {paasta-tools-1.0.5 → paasta-tools-1.1.0}/paasta_tools/cli/schemas/adhoc_schema.json +0 -0
  96. {paasta-tools-1.0.5 → paasta-tools-1.1.0}/paasta_tools/cli/schemas/autoscaling_schema.json +0 -0
  97. {paasta-tools-1.0.5 → paasta-tools-1.1.0}/paasta_tools/cli/schemas/autotuned_defaults/cassandracluster_schema.json +0 -0
  98. {paasta-tools-1.0.5 → paasta-tools-1.1.0}/paasta_tools/cli/schemas/autotuned_defaults/kubernetes_schema.json +0 -0
  99. {paasta-tools-1.0.5 → paasta-tools-1.1.0}/paasta_tools/cli/schemas/deploy_schema.json +0 -0
  100. {paasta-tools-1.0.5 → paasta-tools-1.1.0}/paasta_tools/cli/schemas/eks_schema.json +0 -0
  101. {paasta-tools-1.0.5 → paasta-tools-1.1.0}/paasta_tools/cli/schemas/kubernetes_schema.json +0 -0
  102. {paasta-tools-1.0.5 → paasta-tools-1.1.0}/paasta_tools/cli/schemas/rollback_schema.json +0 -0
  103. {paasta-tools-1.0.5 → paasta-tools-1.1.0}/paasta_tools/cli/schemas/service_schema.json +0 -0
  104. {paasta-tools-1.0.5 → paasta-tools-1.1.0}/paasta_tools/cli/schemas/smartstack_schema.json +0 -0
  105. {paasta-tools-1.0.5 → paasta-tools-1.1.0}/paasta_tools/cli/schemas/tron_schema.json +0 -0
  106. {paasta-tools-1.0.5 → paasta-tools-1.1.0}/paasta_tools/cli/utils.py +0 -0
  107. {paasta-tools-1.0.5 → paasta-tools-1.1.0}/paasta_tools/clusterman.py +0 -0
  108. {paasta-tools-1.0.5 → paasta-tools-1.1.0}/paasta_tools/config_utils.py +0 -0
  109. {paasta-tools-1.0.5 → paasta-tools-1.1.0}/paasta_tools/contrib/__init__.py +0 -0
  110. {paasta-tools-1.0.5 → paasta-tools-1.1.0}/paasta_tools/contrib/bounce_log_latency_parser.py +0 -0
  111. {paasta-tools-1.0.5 → paasta-tools-1.1.0}/paasta_tools/contrib/check_manual_oapi_changes.sh +0 -0
  112. {paasta-tools-1.0.5 → paasta-tools-1.1.0}/paasta_tools/contrib/check_orphans.py +0 -0
  113. {paasta-tools-1.0.5 → paasta-tools-1.1.0}/paasta_tools/contrib/create_dynamodb_table.py +0 -0
  114. {paasta-tools-1.0.5 → paasta-tools-1.1.0}/paasta_tools/contrib/create_paasta_playground.py +0 -0
  115. {paasta-tools-1.0.5 → paasta-tools-1.1.0}/paasta_tools/contrib/emit_allocated_cpu_metrics.py +0 -0
  116. {paasta-tools-1.0.5 → paasta-tools-1.1.0}/paasta_tools/contrib/get_running_task_allocation.py +0 -0
  117. {paasta-tools-1.0.5 → paasta-tools-1.1.0}/paasta_tools/contrib/habitat_fixer.py +0 -0
  118. {paasta-tools-1.0.5 → paasta-tools-1.1.0}/paasta_tools/contrib/ide_helper.py +0 -0
  119. {paasta-tools-1.0.5 → paasta-tools-1.1.0}/paasta_tools/contrib/is_pod_healthy_in_proxy.py +0 -0
  120. {paasta-tools-1.0.5 → paasta-tools-1.1.0}/paasta_tools/contrib/is_pod_healthy_in_smartstack.py +0 -0
  121. {paasta-tools-1.0.5 → paasta-tools-1.1.0}/paasta_tools/contrib/kill_bad_containers.py +0 -0
  122. {paasta-tools-1.0.5 → paasta-tools-1.1.0}/paasta_tools/contrib/mass-deploy-tag.sh +0 -0
  123. {paasta-tools-1.0.5 → paasta-tools-1.1.0}/paasta_tools/contrib/mock_patch_checker.py +0 -0
  124. {paasta-tools-1.0.5 → paasta-tools-1.1.0}/paasta_tools/contrib/paasta_update_soa_memcpu.py +0 -0
  125. {paasta-tools-1.0.5 → paasta-tools-1.1.0}/paasta_tools/contrib/render_template.py +0 -0
  126. {paasta-tools-1.0.5 → paasta-tools-1.1.0}/paasta_tools/contrib/rightsizer_soaconfigs_update.py +0 -0
  127. {paasta-tools-1.0.5 → paasta-tools-1.1.0}/paasta_tools/contrib/service_shard_remove.py +0 -0
  128. {paasta-tools-1.0.5 → paasta-tools-1.1.0}/paasta_tools/contrib/service_shard_update.py +0 -0
  129. {paasta-tools-1.0.5 → paasta-tools-1.1.0}/paasta_tools/contrib/shared_ip_check.py +0 -0
  130. {paasta-tools-1.0.5 → paasta-tools-1.1.0}/paasta_tools/contrib/timeouts_metrics_prom.py +0 -0
  131. {paasta-tools-1.0.5 → paasta-tools-1.1.0}/paasta_tools/delete_kubernetes_deployments.py +0 -0
  132. {paasta-tools-1.0.5 → paasta-tools-1.1.0}/paasta_tools/deployment_utils.py +0 -0
  133. {paasta-tools-1.0.5 → paasta-tools-1.1.0}/paasta_tools/docker_wrapper.py +0 -0
  134. {paasta-tools-1.0.5 → paasta-tools-1.1.0}/paasta_tools/docker_wrapper_imports.py +0 -0
  135. {paasta-tools-1.0.5 → paasta-tools-1.1.0}/paasta_tools/drain_lib.py +0 -0
  136. {paasta-tools-1.0.5 → paasta-tools-1.1.0}/paasta_tools/dump_locally_running_services.py +0 -0
  137. {paasta-tools-1.0.5 → paasta-tools-1.1.0}/paasta_tools/eks_tools.py +0 -0
  138. {paasta-tools-1.0.5 → paasta-tools-1.1.0}/paasta_tools/envoy_tools.py +0 -0
  139. {paasta-tools-1.0.5 → paasta-tools-1.1.0}/paasta_tools/firewall.py +0 -0
  140. {paasta-tools-1.0.5 → paasta-tools-1.1.0}/paasta_tools/firewall_logging.py +0 -0
  141. {paasta-tools-1.0.5 → paasta-tools-1.1.0}/paasta_tools/firewall_update.py +0 -0
  142. {paasta-tools-1.0.5 → paasta-tools-1.1.0}/paasta_tools/flink_tools.py +0 -0
  143. {paasta-tools-1.0.5 → paasta-tools-1.1.0}/paasta_tools/flinkeks_tools.py +0 -0
  144. {paasta-tools-1.0.5 → paasta-tools-1.1.0}/paasta_tools/frameworks/__init__.py +0 -0
  145. {paasta-tools-1.0.5 → paasta-tools-1.1.0}/paasta_tools/frameworks/adhoc_scheduler.py +0 -0
  146. {paasta-tools-1.0.5 → paasta-tools-1.1.0}/paasta_tools/frameworks/constraints.py +0 -0
  147. {paasta-tools-1.0.5 → paasta-tools-1.1.0}/paasta_tools/frameworks/native_scheduler.py +0 -0
  148. {paasta-tools-1.0.5 → paasta-tools-1.1.0}/paasta_tools/frameworks/native_service_config.py +0 -0
  149. {paasta-tools-1.0.5 → paasta-tools-1.1.0}/paasta_tools/frameworks/task_store.py +0 -0
  150. {paasta-tools-1.0.5 → paasta-tools-1.1.0}/paasta_tools/generate_all_deployments +0 -0
  151. {paasta-tools-1.0.5 → paasta-tools-1.1.0}/paasta_tools/generate_deployments_for_service.py +0 -0
  152. {paasta-tools-1.0.5 → paasta-tools-1.1.0}/paasta_tools/hacheck.py +0 -0
  153. {paasta-tools-1.0.5 → paasta-tools-1.1.0}/paasta_tools/instance/__init__.py +0 -0
  154. {paasta-tools-1.0.5 → paasta-tools-1.1.0}/paasta_tools/instance/hpa_metrics_parser.py +0 -0
  155. {paasta-tools-1.0.5 → paasta-tools-1.1.0}/paasta_tools/instance/kubernetes.py +0 -0
  156. {paasta-tools-1.0.5 → paasta-tools-1.1.0}/paasta_tools/iptables.py +0 -0
  157. {paasta-tools-1.0.5 → paasta-tools-1.1.0}/paasta_tools/kafkacluster_tools.py +0 -0
  158. {paasta-tools-1.0.5 → paasta-tools-1.1.0}/paasta_tools/kubernetes/__init__.py +0 -0
  159. {paasta-tools-1.0.5 → paasta-tools-1.1.0}/paasta_tools/kubernetes/application/__init__.py +0 -0
  160. {paasta-tools-1.0.5 → paasta-tools-1.1.0}/paasta_tools/kubernetes/application/controller_wrappers.py +0 -0
  161. {paasta-tools-1.0.5 → paasta-tools-1.1.0}/paasta_tools/kubernetes/application/tools.py +0 -0
  162. {paasta-tools-1.0.5 → paasta-tools-1.1.0}/paasta_tools/kubernetes/bin/__init__.py +0 -0
  163. {paasta-tools-1.0.5 → paasta-tools-1.1.0}/paasta_tools/kubernetes/bin/kubernetes_remove_evicted_pods.py +0 -0
  164. {paasta-tools-1.0.5 → paasta-tools-1.1.0}/paasta_tools/kubernetes/bin/paasta_cleanup_stale_nodes.py +0 -0
  165. {paasta-tools-1.0.5 → paasta-tools-1.1.0}/paasta_tools/kubernetes/bin/paasta_secrets_sync.py +0 -0
  166. {paasta-tools-1.0.5 → paasta-tools-1.1.0}/paasta_tools/kubernetes_tools.py +0 -0
  167. {paasta-tools-1.0.5 → paasta-tools-1.1.0}/paasta_tools/list_kubernetes_service_instances.py +0 -0
  168. {paasta-tools-1.0.5 → paasta-tools-1.1.0}/paasta_tools/list_tron_namespaces.py +0 -0
  169. {paasta-tools-1.0.5 → paasta-tools-1.1.0}/paasta_tools/log_task_lifecycle_events.py +0 -0
  170. {paasta-tools-1.0.5 → paasta-tools-1.1.0}/paasta_tools/long_running_service_tools.py +0 -0
  171. {paasta-tools-1.0.5 → paasta-tools-1.1.0}/paasta_tools/mac_address.py +0 -0
  172. {paasta-tools-1.0.5 → paasta-tools-1.1.0}/paasta_tools/marathon_dashboard.py +0 -0
  173. {paasta-tools-1.0.5 → paasta-tools-1.1.0}/paasta_tools/mesos/__init__.py +0 -0
  174. {paasta-tools-1.0.5 → paasta-tools-1.1.0}/paasta_tools/mesos/cfg.py +0 -0
  175. {paasta-tools-1.0.5 → paasta-tools-1.1.0}/paasta_tools/mesos/cluster.py +0 -0
  176. {paasta-tools-1.0.5 → paasta-tools-1.1.0}/paasta_tools/mesos/exceptions.py +0 -0
  177. {paasta-tools-1.0.5 → paasta-tools-1.1.0}/paasta_tools/mesos/framework.py +0 -0
  178. {paasta-tools-1.0.5 → paasta-tools-1.1.0}/paasta_tools/mesos/log.py +0 -0
  179. {paasta-tools-1.0.5 → paasta-tools-1.1.0}/paasta_tools/mesos/master.py +0 -0
  180. {paasta-tools-1.0.5 → paasta-tools-1.1.0}/paasta_tools/mesos/mesos_file.py +0 -0
  181. {paasta-tools-1.0.5 → paasta-tools-1.1.0}/paasta_tools/mesos/parallel.py +0 -0
  182. {paasta-tools-1.0.5 → paasta-tools-1.1.0}/paasta_tools/mesos/slave.py +0 -0
  183. {paasta-tools-1.0.5 → paasta-tools-1.1.0}/paasta_tools/mesos/task.py +0 -0
  184. {paasta-tools-1.0.5 → paasta-tools-1.1.0}/paasta_tools/mesos/util.py +0 -0
  185. {paasta-tools-1.0.5 → paasta-tools-1.1.0}/paasta_tools/mesos/zookeeper.py +0 -0
  186. {paasta-tools-1.0.5 → paasta-tools-1.1.0}/paasta_tools/mesos_maintenance.py +0 -0
  187. {paasta-tools-1.0.5 → paasta-tools-1.1.0}/paasta_tools/mesos_tools.py +0 -0
  188. {paasta-tools-1.0.5 → paasta-tools-1.1.0}/paasta_tools/metrics/__init__.py +0 -0
  189. {paasta-tools-1.0.5 → paasta-tools-1.1.0}/paasta_tools/metrics/metastatus_lib.py +0 -0
  190. {paasta-tools-1.0.5 → paasta-tools-1.1.0}/paasta_tools/metrics/metrics_lib.py +0 -0
  191. {paasta-tools-1.0.5 → paasta-tools-1.1.0}/paasta_tools/monitoring/__init__.py +0 -0
  192. {paasta-tools-1.0.5 → paasta-tools-1.1.0}/paasta_tools/monitoring/check_k8s_api_performance.py +0 -0
  193. {paasta-tools-1.0.5 → paasta-tools-1.1.0}/paasta_tools/monitoring/kill_orphaned_docker_containers.py +0 -0
  194. {paasta-tools-1.0.5 → paasta-tools-1.1.0}/paasta_tools/monitoring_tools.py +0 -0
  195. {paasta-tools-1.0.5 → paasta-tools-1.1.0}/paasta_tools/monkrelaycluster_tools.py +0 -0
  196. {paasta-tools-1.0.5 → paasta-tools-1.1.0}/paasta_tools/nrtsearchservice_tools.py +0 -0
  197. {paasta-tools-1.0.5 → paasta-tools-1.1.0}/paasta_tools/nrtsearchserviceeks_tools.py +0 -0
  198. {paasta-tools-1.0.5 → paasta-tools-1.1.0}/paasta_tools/oom_logger.py +0 -0
  199. {paasta-tools-1.0.5 → paasta-tools-1.1.0}/paasta_tools/paasta_deploy_tron_jobs +0 -0
  200. {paasta-tools-1.0.5 → paasta-tools-1.1.0}/paasta_tools/paasta_execute_docker_command.py +0 -0
  201. {paasta-tools-1.0.5 → paasta-tools-1.1.0}/paasta_tools/paasta_native_serviceinit.py +0 -0
  202. {paasta-tools-1.0.5 → paasta-tools-1.1.0}/paasta_tools/paasta_remote_run.py +0 -0
  203. {paasta-tools-1.0.5 → paasta-tools-1.1.0}/paasta_tools/paasta_service_config_loader.py +0 -0
  204. {paasta-tools-1.0.5 → paasta-tools-1.1.0}/paasta_tools/paastaapi/__init__.py +0 -0
  205. {paasta-tools-1.0.5 → paasta-tools-1.1.0}/paasta_tools/paastaapi/api/__init__.py +0 -0
  206. {paasta-tools-1.0.5 → paasta-tools-1.1.0}/paasta_tools/paastaapi/api/autoscaler_api.py +0 -0
  207. {paasta-tools-1.0.5 → paasta-tools-1.1.0}/paasta_tools/paastaapi/api/default_api.py +0 -0
  208. {paasta-tools-1.0.5 → paasta-tools-1.1.0}/paasta_tools/paastaapi/api/resources_api.py +0 -0
  209. {paasta-tools-1.0.5 → paasta-tools-1.1.0}/paasta_tools/paastaapi/api/service_api.py +0 -0
  210. {paasta-tools-1.0.5 → paasta-tools-1.1.0}/paasta_tools/paastaapi/api_client.py +0 -0
  211. {paasta-tools-1.0.5 → paasta-tools-1.1.0}/paasta_tools/paastaapi/apis/__init__.py +0 -0
  212. {paasta-tools-1.0.5 → paasta-tools-1.1.0}/paasta_tools/paastaapi/configuration.py +0 -0
  213. {paasta-tools-1.0.5 → paasta-tools-1.1.0}/paasta_tools/paastaapi/exceptions.py +0 -0
  214. {paasta-tools-1.0.5 → paasta-tools-1.1.0}/paasta_tools/paastaapi/model/__init__.py +0 -0
  215. {paasta-tools-1.0.5 → paasta-tools-1.1.0}/paasta_tools/paastaapi/model/adhoc_launch_history.py +0 -0
  216. {paasta-tools-1.0.5 → paasta-tools-1.1.0}/paasta_tools/paastaapi/model/autoscaler_count_msg.py +0 -0
  217. {paasta-tools-1.0.5 → paasta-tools-1.1.0}/paasta_tools/paastaapi/model/deploy_queue.py +0 -0
  218. {paasta-tools-1.0.5 → paasta-tools-1.1.0}/paasta_tools/paastaapi/model/deploy_queue_service_instance.py +0 -0
  219. {paasta-tools-1.0.5 → paasta-tools-1.1.0}/paasta_tools/paastaapi/model/envoy_backend.py +0 -0
  220. {paasta-tools-1.0.5 → paasta-tools-1.1.0}/paasta_tools/paastaapi/model/envoy_location.py +0 -0
  221. {paasta-tools-1.0.5 → paasta-tools-1.1.0}/paasta_tools/paastaapi/model/envoy_status.py +0 -0
  222. {paasta-tools-1.0.5 → paasta-tools-1.1.0}/paasta_tools/paastaapi/model/flink_cluster_overview.py +0 -0
  223. {paasta-tools-1.0.5 → paasta-tools-1.1.0}/paasta_tools/paastaapi/model/flink_config.py +0 -0
  224. {paasta-tools-1.0.5 → paasta-tools-1.1.0}/paasta_tools/paastaapi/model/flink_job.py +0 -0
  225. {paasta-tools-1.0.5 → paasta-tools-1.1.0}/paasta_tools/paastaapi/model/flink_job_details.py +0 -0
  226. {paasta-tools-1.0.5 → paasta-tools-1.1.0}/paasta_tools/paastaapi/model/flink_jobs.py +0 -0
  227. {paasta-tools-1.0.5 → paasta-tools-1.1.0}/paasta_tools/paastaapi/model/float_and_error.py +0 -0
  228. {paasta-tools-1.0.5 → paasta-tools-1.1.0}/paasta_tools/paastaapi/model/hpa_metric.py +0 -0
  229. {paasta-tools-1.0.5 → paasta-tools-1.1.0}/paasta_tools/paastaapi/model/inline_object.py +0 -0
  230. {paasta-tools-1.0.5 → paasta-tools-1.1.0}/paasta_tools/paastaapi/model/inline_response200.py +0 -0
  231. {paasta-tools-1.0.5 → paasta-tools-1.1.0}/paasta_tools/paastaapi/model/inline_response2001.py +0 -0
  232. {paasta-tools-1.0.5 → paasta-tools-1.1.0}/paasta_tools/paastaapi/model/instance_bounce_status.py +0 -0
  233. {paasta-tools-1.0.5 → paasta-tools-1.1.0}/paasta_tools/paastaapi/model/instance_mesh_status.py +0 -0
  234. {paasta-tools-1.0.5 → paasta-tools-1.1.0}/paasta_tools/paastaapi/model/instance_status.py +0 -0
  235. {paasta-tools-1.0.5 → paasta-tools-1.1.0}/paasta_tools/paastaapi/model/instance_status_adhoc.py +0 -0
  236. {paasta-tools-1.0.5 → paasta-tools-1.1.0}/paasta_tools/paastaapi/model/instance_status_cassandracluster.py +0 -0
  237. {paasta-tools-1.0.5 → paasta-tools-1.1.0}/paasta_tools/paastaapi/model/instance_status_flink.py +0 -0
  238. {paasta-tools-1.0.5 → paasta-tools-1.1.0}/paasta_tools/paastaapi/model/instance_status_kafkacluster.py +0 -0
  239. {paasta-tools-1.0.5 → paasta-tools-1.1.0}/paasta_tools/paastaapi/model/instance_status_kubernetes.py +0 -0
  240. {paasta-tools-1.0.5 → paasta-tools-1.1.0}/paasta_tools/paastaapi/model/instance_status_kubernetes_autoscaling_status.py +0 -0
  241. {paasta-tools-1.0.5 → paasta-tools-1.1.0}/paasta_tools/paastaapi/model/instance_status_kubernetes_v2.py +0 -0
  242. {paasta-tools-1.0.5 → paasta-tools-1.1.0}/paasta_tools/paastaapi/model/instance_status_tron.py +0 -0
  243. {paasta-tools-1.0.5 → paasta-tools-1.1.0}/paasta_tools/paastaapi/model/instance_tasks.py +0 -0
  244. {paasta-tools-1.0.5 → paasta-tools-1.1.0}/paasta_tools/paastaapi/model/integer_and_error.py +0 -0
  245. {paasta-tools-1.0.5 → paasta-tools-1.1.0}/paasta_tools/paastaapi/model/kubernetes_container.py +0 -0
  246. {paasta-tools-1.0.5 → paasta-tools-1.1.0}/paasta_tools/paastaapi/model/kubernetes_container_v2.py +0 -0
  247. {paasta-tools-1.0.5 → paasta-tools-1.1.0}/paasta_tools/paastaapi/model/kubernetes_healthcheck.py +0 -0
  248. {paasta-tools-1.0.5 → paasta-tools-1.1.0}/paasta_tools/paastaapi/model/kubernetes_pod.py +0 -0
  249. {paasta-tools-1.0.5 → paasta-tools-1.1.0}/paasta_tools/paastaapi/model/kubernetes_pod_event.py +0 -0
  250. {paasta-tools-1.0.5 → paasta-tools-1.1.0}/paasta_tools/paastaapi/model/kubernetes_pod_v2.py +0 -0
  251. {paasta-tools-1.0.5 → paasta-tools-1.1.0}/paasta_tools/paastaapi/model/kubernetes_replica_set.py +0 -0
  252. {paasta-tools-1.0.5 → paasta-tools-1.1.0}/paasta_tools/paastaapi/model/kubernetes_version.py +0 -0
  253. {paasta-tools-1.0.5 → paasta-tools-1.1.0}/paasta_tools/paastaapi/model/resource.py +0 -0
  254. {paasta-tools-1.0.5 → paasta-tools-1.1.0}/paasta_tools/paastaapi/model/resource_item.py +0 -0
  255. {paasta-tools-1.0.5 → paasta-tools-1.1.0}/paasta_tools/paastaapi/model/resource_value.py +0 -0
  256. {paasta-tools-1.0.5 → paasta-tools-1.1.0}/paasta_tools/paastaapi/model/smartstack_backend.py +0 -0
  257. {paasta-tools-1.0.5 → paasta-tools-1.1.0}/paasta_tools/paastaapi/model/smartstack_location.py +0 -0
  258. {paasta-tools-1.0.5 → paasta-tools-1.1.0}/paasta_tools/paastaapi/model/smartstack_status.py +0 -0
  259. {paasta-tools-1.0.5 → paasta-tools-1.1.0}/paasta_tools/paastaapi/model/task_tail_lines.py +0 -0
  260. {paasta-tools-1.0.5 → paasta-tools-1.1.0}/paasta_tools/paastaapi/model_utils.py +0 -0
  261. {paasta-tools-1.0.5 → paasta-tools-1.1.0}/paasta_tools/paastaapi/models/__init__.py +0 -0
  262. {paasta-tools-1.0.5 → paasta-tools-1.1.0}/paasta_tools/paastaapi/rest.py +0 -0
  263. {paasta-tools-1.0.5 → paasta-tools-1.1.0}/paasta_tools/prune_completed_pods.py +0 -0
  264. {paasta-tools-1.0.5 → paasta-tools-1.1.0}/paasta_tools/puppet_service_tools.py +0 -0
  265. {paasta-tools-1.0.5 → paasta-tools-1.1.0}/paasta_tools/py.typed +0 -0
  266. {paasta-tools-1.0.5 → paasta-tools-1.1.0}/paasta_tools/remote_git.py +0 -0
  267. {paasta-tools-1.0.5 → paasta-tools-1.1.0}/paasta_tools/run-paasta-api-in-dev-mode.py +0 -0
  268. {paasta-tools-1.0.5 → paasta-tools-1.1.0}/paasta_tools/run-paasta-api-playground.py +0 -0
  269. {paasta-tools-1.0.5 → paasta-tools-1.1.0}/paasta_tools/secret_providers/__init__.py +0 -0
  270. {paasta-tools-1.0.5 → paasta-tools-1.1.0}/paasta_tools/secret_providers/vault.py +0 -0
  271. {paasta-tools-1.0.5 → paasta-tools-1.1.0}/paasta_tools/secret_tools.py +0 -0
  272. {paasta-tools-1.0.5 → paasta-tools-1.1.0}/paasta_tools/setup_istio_mesh.py +0 -0
  273. {paasta-tools-1.0.5 → paasta-tools-1.1.0}/paasta_tools/setup_kubernetes_cr.py +0 -0
  274. {paasta-tools-1.0.5 → paasta-tools-1.1.0}/paasta_tools/setup_kubernetes_crd.py +0 -0
  275. {paasta-tools-1.0.5 → paasta-tools-1.1.0}/paasta_tools/setup_kubernetes_internal_crd.py +0 -0
  276. {paasta-tools-1.0.5 → paasta-tools-1.1.0}/paasta_tools/setup_kubernetes_job.py +0 -0
  277. {paasta-tools-1.0.5 → paasta-tools-1.1.0}/paasta_tools/setup_prometheus_adapter_config.py +0 -0
  278. {paasta-tools-1.0.5 → paasta-tools-1.1.0}/paasta_tools/setup_tron_namespace.py +0 -0
  279. {paasta-tools-1.0.5 → paasta-tools-1.1.0}/paasta_tools/slack.py +0 -0
  280. {paasta-tools-1.0.5 → paasta-tools-1.1.0}/paasta_tools/smartstack_tools.py +0 -0
  281. {paasta-tools-1.0.5 → paasta-tools-1.1.0}/paasta_tools/spark_tools.py +0 -0
  282. {paasta-tools-1.0.5 → paasta-tools-1.1.0}/paasta_tools/synapse_srv_namespaces_fact.py +0 -0
  283. {paasta-tools-1.0.5 → paasta-tools-1.1.0}/paasta_tools/tron/__init__.py +0 -0
  284. {paasta-tools-1.0.5 → paasta-tools-1.1.0}/paasta_tools/tron/client.py +0 -0
  285. {paasta-tools-1.0.5 → paasta-tools-1.1.0}/paasta_tools/tron/tron_command_context.py +0 -0
  286. {paasta-tools-1.0.5 → paasta-tools-1.1.0}/paasta_tools/tron/tron_timeutils.py +0 -0
  287. {paasta-tools-1.0.5 → paasta-tools-1.1.0}/paasta_tools/tron_tools.py +0 -0
  288. {paasta-tools-1.0.5 → paasta-tools-1.1.0}/paasta_tools/vitesscluster_tools.py +0 -0
  289. {paasta-tools-1.0.5 → paasta-tools-1.1.0}/paasta_tools.egg-info/dependency_links.txt +0 -0
  290. {paasta-tools-1.0.5 → paasta-tools-1.1.0}/paasta_tools.egg-info/entry_points.txt +0 -0
  291. {paasta-tools-1.0.5 → paasta-tools-1.1.0}/paasta_tools.egg-info/requires.txt +0 -0
  292. {paasta-tools-1.0.5 → paasta-tools-1.1.0}/paasta_tools.egg-info/top_level.txt +0 -0
  293. {paasta-tools-1.0.5 → paasta-tools-1.1.0}/pyproject.toml +0 -0
  294. {paasta-tools-1.0.5 → paasta-tools-1.1.0}/requirements-minimal.txt +0 -0
  295. {paasta-tools-1.0.5 → paasta-tools-1.1.0}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 1.2
2
2
  Name: paasta-tools
3
- Version: 1.0.5
3
+ Version: 1.1.0
4
4
  Summary: Tools for Yelps SOA infrastructure
5
5
  Home-page: UNKNOWN
6
6
  Author: Compute Infrastructure @ Yelp
@@ -17,4 +17,4 @@
17
17
  # setup phase, the dependencies may not exist on disk yet.
18
18
  #
19
19
  # Don't bump version manually. See `make release` docs in ./Makefile
20
- __version__ = "1.0.5"
20
+ __version__ = "1.1.0"
@@ -0,0 +1,93 @@
1
+ #!/usr/bin/env python3
2
+ # Copyright 2015-2016 Yelp Inc.
3
+ #
4
+ # Licensed under the Apache License, Version 2.0 (the "License");
5
+ # you may not use this file except in compliance with the License.
6
+ # You may obtain a copy of the License at
7
+ #
8
+ # http://www.apache.org/licenses/LICENSE-2.0
9
+ #
10
+ # Unless required by applicable law or agreed to in writing, software
11
+ # distributed under the License is distributed on an "AS IS" BASIS,
12
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ # See the License for the specific language governing permissions and
14
+ # limitations under the License.
15
+ """
16
+ A simple script to enumerate all services partecipating in authenticated
17
+ communications, and list them in a YAML/JSON file.
18
+ """
19
+ import argparse
20
+ import glob
21
+ import logging
22
+ import os
23
+ from typing import Dict
24
+ from typing import List
25
+ from typing import Set
26
+
27
+ import yaml
28
+
29
+ from paasta_tools.utils import DEFAULT_SOA_DIR
30
+ from paasta_tools.utils import write_json_configuration_file
31
+ from paasta_tools.utils import write_yaml_configuration_file
32
+
33
+
34
+ AUTHORIZATION_CONFIG_FILE = "authorization.yaml"
35
+
36
+
37
+ def list_services_in_authz_config(config_path: str) -> Set[str]:
38
+ auth_config: dict = {}
39
+ try:
40
+ with open(config_path) as f:
41
+ auth_config = yaml.safe_load(f)
42
+ except Exception as e:
43
+ logging.warning(f"Issue loading {config_path}: {e}")
44
+ return {
45
+ service
46
+ for rule in auth_config.get("authorization", {}).get("rules", [])
47
+ for service in rule.get("identity_groups", {}).get("services", [])
48
+ }
49
+
50
+
51
+ def enumerate_authenticating_services() -> Dict[str, List[str]]:
52
+ result = set()
53
+ config_path_pattern = os.path.join(DEFAULT_SOA_DIR, "*", AUTHORIZATION_CONFIG_FILE)
54
+ for authz_config in glob.glob(config_path_pattern):
55
+ result.update(list_services_in_authz_config(authz_config))
56
+ return {"services": sorted(result)}
57
+
58
+
59
+ def parse_args():
60
+ parser = argparse.ArgumentParser(description="")
61
+ parser.add_argument(
62
+ "-o",
63
+ "--output",
64
+ help="Output filepath",
65
+ dest="output_filename",
66
+ required=True,
67
+ )
68
+ parser.add_argument(
69
+ "-f",
70
+ "--format",
71
+ help="Output format. Defaults to %(default)s",
72
+ dest="output_format",
73
+ choices=["yaml", "json"],
74
+ default="yaml",
75
+ )
76
+ args = parser.parse_args()
77
+ return args
78
+
79
+
80
+ def main():
81
+ args = parse_args()
82
+ if args.output_format == "yaml":
83
+ writer = write_yaml_configuration_file
84
+ elif args.output_format == "json":
85
+ writer = write_json_configuration_file
86
+ else:
87
+ raise NotImplementedError(f"Unknown format: {args.output_format}")
88
+ configuration = enumerate_authenticating_services()
89
+ writer(filename=args.output_filename, configuration=configuration)
90
+
91
+
92
+ if __name__ == "__main__":
93
+ main()
@@ -17,19 +17,17 @@ A simple script to enumerate all smartstack namespaces and output
17
17
  a /etc/services compatible file
18
18
  """
19
19
  import argparse
20
- import json
21
20
  import os
22
- import socket
23
- from datetime import datetime
24
21
 
25
22
  import service_configuration_lib
26
- import yaml
27
23
 
28
24
  from paasta_tools.long_running_service_tools import get_all_namespaces
29
25
  from paasta_tools.long_running_service_tools import get_all_namespaces_for_service
30
26
  from paasta_tools.utils import atomic_file_write
31
27
  from paasta_tools.utils import compose_job_id
32
28
  from paasta_tools.utils import DEFAULT_SOA_DIR
29
+ from paasta_tools.utils import write_json_configuration_file
30
+ from paasta_tools.utils import write_yaml_configuration_file
33
31
 
34
32
 
35
33
  YOCALHOST = "169.254.255.254"
@@ -71,40 +69,6 @@ def get_service_lines_for_service(service):
71
69
  return lines
72
70
 
73
71
 
74
- def write_yaml_file(filename):
75
- previous_config = maybe_load_previous_config(filename, yaml.safe_load)
76
- configuration = generate_configuration()
77
-
78
- if previous_config and previous_config == configuration:
79
- return
80
-
81
- with atomic_file_write(filename) as fp:
82
- fp.write(
83
- "# This file is automatically generated by paasta_tools.\n"
84
- "# It was automatically generated at {now} on {host}.\n".format(
85
- host=socket.getfqdn(), now=datetime.now().isoformat()
86
- )
87
- )
88
- yaml.safe_dump(
89
- configuration,
90
- fp,
91
- indent=2,
92
- explicit_start=True,
93
- default_flow_style=False,
94
- allow_unicode=False,
95
- )
96
-
97
-
98
- def maybe_load_previous_config(filename, config_loader):
99
- try:
100
- with open(filename, "r") as fp:
101
- previous_config = config_loader(fp)
102
- return previous_config
103
- except Exception:
104
- pass
105
- return None
106
-
107
-
108
72
  def generate_configuration():
109
73
  service_data = get_all_namespaces()
110
74
  config = {}
@@ -116,14 +80,6 @@ def generate_configuration():
116
80
  return config
117
81
 
118
82
 
119
- def write_json_file(filename):
120
- configuration = generate_configuration()
121
- with atomic_file_write(filename) as fp:
122
- json.dump(
123
- obj=configuration, fp=fp, indent=2, sort_keys=True, separators=(",", ": ")
124
- )
125
-
126
-
127
83
  def write_rfc1700_file(filename):
128
84
  strings = [
129
85
  "# This file is generated by generate_services_file",
@@ -140,10 +96,16 @@ def main():
140
96
  args = parse_args()
141
97
  if args.output_format == "rfc1700":
142
98
  write_rfc1700_file(filename=args.output_filename)
143
- elif args.output_format == "yaml":
144
- write_yaml_file(filename=args.output_filename)
145
- elif args.output_format == "json":
146
- write_json_file(filename=args.output_filename)
99
+ elif args.output_format in ("json", "yaml"):
100
+ writer = (
101
+ write_json_configuration_file
102
+ if args.output_format == "json"
103
+ else write_yaml_configuration_file
104
+ )
105
+ writer(
106
+ filename=args.output_filename,
107
+ configuration=generate_configuration(),
108
+ )
147
109
  else:
148
110
  raise (NotImplementedError)
149
111
 
@@ -14,7 +14,8 @@
14
14
  # limitations under the License.
15
15
  import argparse
16
16
 
17
- from paasta_tools.generate_services_file import write_yaml_file
17
+ from paasta_tools.generate_services_file import generate_configuration
18
+ from paasta_tools.utils import write_yaml_configuration_file
18
19
 
19
20
 
20
21
  def main(argv=None):
@@ -22,7 +23,7 @@ def main(argv=None):
22
23
  parser.add_argument("output_path")
23
24
  args = parser.parse_args(argv)
24
25
 
25
- write_yaml_file(args.output_path)
26
+ write_yaml_configuration_file(args.output_path, generate_configuration())
26
27
 
27
28
 
28
29
  if __name__ == "__main__":
@@ -63,6 +63,7 @@ from typing import NamedTuple
63
63
  from typing import Optional
64
64
  from typing import Sequence
65
65
  from typing import Set
66
+ from typing import TextIO
66
67
  from typing import Tuple
67
68
  from typing import Type
68
69
  from typing import TypeVar
@@ -73,6 +74,7 @@ import dateutil.tz
73
74
  import ldap3
74
75
  import requests_cache
75
76
  import service_configuration_lib
77
+ import yaml
76
78
  from docker import Client
77
79
  from docker.utils import kwargs_from_env
78
80
  from kazoo.client import KazooClient
@@ -4137,3 +4139,68 @@ def get_k8s_url_for_cluster(cluster: str) -> Optional[str]:
4137
4139
  @lru_cache(maxsize=1)
4138
4140
  def is_using_unprivileged_containers() -> bool:
4139
4141
  return "podman" in os.getenv("DOCKER_HOST", "")
4142
+
4143
+
4144
+ def maybe_load_previous_config(
4145
+ filename: str, config_loader: Callable[[TextIO], dict]
4146
+ ) -> Optional[dict]:
4147
+ """Try to load configuration file
4148
+
4149
+ :param str filename: path to load from
4150
+ :param Callable[[TextIO], dict] config_loader: parser for the configuration
4151
+ :return: configuration data, None if loading fails
4152
+ """
4153
+ try:
4154
+ with open(filename, "r") as fp:
4155
+ previous_config = config_loader(fp)
4156
+ return previous_config
4157
+ except Exception:
4158
+ pass
4159
+ return None
4160
+
4161
+
4162
+ def write_json_configuration_file(filename: str, configuration: dict) -> None:
4163
+ """Atomically write configuration to JSON file
4164
+
4165
+ :param str filename: path to write to
4166
+ :param dict configuration: configuration data
4167
+ """
4168
+ with atomic_file_write(filename) as fp:
4169
+ json.dump(
4170
+ obj=configuration,
4171
+ fp=fp,
4172
+ indent=2,
4173
+ sort_keys=True,
4174
+ separators=(",", ": "),
4175
+ )
4176
+
4177
+
4178
+ def write_yaml_configuration_file(
4179
+ filename: str, configuration: dict, check_existing: bool = True
4180
+ ) -> None:
4181
+ """Atomically write configuration to YAML file
4182
+
4183
+ :param str filename: path to write to
4184
+ :param dict configuration: configuration data
4185
+ :param bool check_existing: if existing file already matches config, do not overwrite
4186
+ """
4187
+ if check_existing:
4188
+ previous_config = maybe_load_previous_config(filename, yaml.safe_load)
4189
+ if previous_config and previous_config == configuration:
4190
+ return
4191
+
4192
+ with atomic_file_write(filename) as fp:
4193
+ fp.write(
4194
+ "# This file is automatically generated by paasta_tools.\n"
4195
+ "# It was automatically generated at {now} on {host}.\n".format(
4196
+ host=socket.getfqdn(), now=datetime.datetime.now().isoformat()
4197
+ )
4198
+ )
4199
+ yaml.safe_dump(
4200
+ configuration,
4201
+ fp,
4202
+ indent=2,
4203
+ explicit_start=True,
4204
+ default_flow_style=False,
4205
+ allow_unicode=False,
4206
+ )
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 1.2
2
2
  Name: paasta-tools
3
- Version: 1.0.5
3
+ Version: 1.1.0
4
4
  Summary: Tools for Yelps SOA infrastructure
5
5
  Home-page: UNKNOWN
6
6
  Author: Compute Infrastructure @ Yelp
@@ -41,6 +41,7 @@ paasta_tools/firewall_update.py
41
41
  paasta_tools/flink_tools.py
42
42
  paasta_tools/flinkeks_tools.py
43
43
  paasta_tools/generate_all_deployments
44
+ paasta_tools/generate_authenticating_services.py
44
45
  paasta_tools/generate_deployments_for_service.py
45
46
  paasta_tools/generate_services_file.py
46
47
  paasta_tools/generate_services_yaml.py
@@ -57,6 +57,7 @@ setup(
57
57
  "paasta_tools/generate_deployments_for_service.py",
58
58
  "paasta_tools/generate_services_file.py",
59
59
  "paasta_tools/generate_services_yaml.py",
60
+ "paasta_tools/generate_authenticating_services.py",
60
61
  "paasta_tools/kubernetes/bin/kubernetes_remove_evicted_pods.py",
61
62
  "paasta_tools/kubernetes/bin/paasta_cleanup_stale_nodes.py",
62
63
  "paasta_tools/kubernetes/bin/paasta_secrets_sync.py",
File without changes
File without changes