zrb 0.6.0__py3-none-any.whl → 0.6.1__py3-none-any.whl

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 (316) hide show
  1. zrb/__init__.py +24 -20
  2. zrb/__main__.py +5 -5
  3. zrb/action/runner.py +22 -30
  4. zrb/advertisement.py +10 -9
  5. zrb/builtin/__init__.py +18 -16
  6. zrb/builtin/base64.py +13 -18
  7. zrb/builtin/devtool/__init__.py +14 -3
  8. zrb/builtin/devtool/devtool_install.py +207 -221
  9. zrb/builtin/env.py +9 -12
  10. zrb/builtin/eval.py +9 -9
  11. zrb/builtin/explain.py +73 -74
  12. zrb/builtin/generator/__init__.py +7 -11
  13. zrb/builtin/generator/app_generator/add.py +86 -87
  14. zrb/builtin/generator/app_generator/template/base/_automate/generate_snake_zrb_meta_template_name/add.py +78 -77
  15. zrb/builtin/generator/app_generator/template/base/_automate/generate_snake_zrb_meta_template_name/template/_automate/snake_zrb_app_name/_checker.py +6 -6
  16. zrb/builtin/generator/app_generator/template/base/_automate/generate_snake_zrb_meta_template_name/template/_automate/snake_zrb_app_name/_common.py +14 -15
  17. zrb/builtin/generator/app_generator/template/base/_automate/generate_snake_zrb_meta_template_name/template/_automate/snake_zrb_app_name/container.py +32 -32
  18. zrb/builtin/generator/app_generator/template/base/_automate/generate_snake_zrb_meta_template_name/template/_automate/snake_zrb_app_name/deployment.py +29 -30
  19. zrb/builtin/generator/app_generator/template/base/_automate/generate_snake_zrb_meta_template_name/template/_automate/snake_zrb_app_name/image.py +1 -3
  20. zrb/builtin/generator/app_generator/template/base/_automate/generate_snake_zrb_meta_template_name/template/_automate/snake_zrb_app_name/local.py +5 -4
  21. zrb/builtin/generator/app_generator/template/base/_automate/generate_snake_zrb_meta_template_name/template/src/kebab-zrb-app-name/deployment/__main__.py +24 -32
  22. zrb/builtin/generator/app_generator/template/build-custom-image/_automate/generate_snake_zrb_meta_template_name/add.py +89 -87
  23. zrb/builtin/generator/app_generator/template/build-custom-image/_automate/generate_snake_zrb_meta_template_name/template/_automate/snake_zrb_app_name/_common.py +14 -15
  24. zrb/builtin/generator/app_generator/template/build-custom-image/_automate/generate_snake_zrb_meta_template_name/template/_automate/snake_zrb_app_name/container.py +42 -54
  25. zrb/builtin/generator/app_generator/template/build-custom-image/_automate/generate_snake_zrb_meta_template_name/template/_automate/snake_zrb_app_name/deployment.py +34 -32
  26. zrb/builtin/generator/app_generator/template/build-custom-image/_automate/generate_snake_zrb_meta_template_name/template/_automate/snake_zrb_app_name/image.py +19 -22
  27. zrb/builtin/generator/app_generator/template/build-custom-image/_automate/generate_snake_zrb_meta_template_name/template/_automate/snake_zrb_app_name/local.py +18 -18
  28. zrb/builtin/generator/app_generator/template/http-port/_automate/generate_snake_zrb_meta_template_name/template/_automate/snake_zrb_app_name/_checker.py +10 -10
  29. zrb/builtin/generator/app_generator/template/http-port-build-custom-image/_automate/generate_snake_zrb_meta_template_name/template/_automate/snake_zrb_app_name/local.py +19 -19
  30. zrb/builtin/generator/app_generator/template/use-helm/_automate/generate_snake_zrb_meta_template_name/template/src/kebab-zrb-app-name/deployment/__main__.py +12 -14
  31. zrb/builtin/generator/cmd_task/add.py +23 -25
  32. zrb/builtin/generator/cmd_task/template/_automate/snake_zrb_task_name.py +3 -5
  33. zrb/builtin/generator/common/helper.py +15 -20
  34. zrb/builtin/generator/common/task_factory.py +29 -26
  35. zrb/builtin/generator/common/task_input.py +97 -91
  36. zrb/builtin/generator/docker_compose_task/add.py +38 -39
  37. zrb/builtin/generator/docker_compose_task/template/_automate/snake_zrb_task_name.py +13 -19
  38. zrb/builtin/generator/docker_compose_task/template/src/kebab-zrb-task-name/image/main.py +18 -14
  39. zrb/builtin/generator/fastapp/add.py +94 -90
  40. zrb/builtin/generator/fastapp/template/_automate/snake_zrb_app_name/_checker.py +28 -27
  41. zrb/builtin/generator/fastapp/template/_automate/snake_zrb_app_name/_config.py +68 -39
  42. zrb/builtin/generator/fastapp/template/_automate/snake_zrb_app_name/_env.py +24 -22
  43. zrb/builtin/generator/fastapp/template/_automate/snake_zrb_app_name/_env_file.py +12 -12
  44. zrb/builtin/generator/fastapp/template/_automate/snake_zrb_app_name/_get_start_microservices.py +43 -41
  45. zrb/builtin/generator/fastapp/template/_automate/snake_zrb_app_name/_helper.py +23 -24
  46. zrb/builtin/generator/fastapp/template/_automate/snake_zrb_app_name/_input.py +21 -20
  47. zrb/builtin/generator/fastapp/template/_automate/snake_zrb_app_name/cmd/app-load-test.sh +1 -1
  48. zrb/builtin/generator/fastapp/template/_automate/snake_zrb_app_name/cmd/app-start.sh +1 -1
  49. zrb/builtin/generator/fastapp/template/_automate/snake_zrb_app_name/cmd/app-test.sh +2 -2
  50. zrb/builtin/generator/fastapp/template/_automate/snake_zrb_app_name/container.py +46 -39
  51. zrb/builtin/generator/fastapp/template/_automate/snake_zrb_app_name/deployment.py +28 -20
  52. zrb/builtin/generator/fastapp/template/_automate/snake_zrb_app_name/frontend.py +21 -27
  53. zrb/builtin/generator/fastapp/template/_automate/snake_zrb_app_name/image.py +23 -18
  54. zrb/builtin/generator/fastapp/template/_automate/snake_zrb_app_name/load_test.py +35 -36
  55. zrb/builtin/generator/fastapp/template/_automate/snake_zrb_app_name/local.py +68 -58
  56. zrb/builtin/generator/fastapp/template/_automate/snake_zrb_app_name/test.py +24 -38
  57. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/deployment/__main__.py +23 -21
  58. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/deployment/_common.py +72 -75
  59. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/deployment/app_helper.py +70 -75
  60. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/deployment/helm_postgresql_helper.py +18 -21
  61. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/deployment/helm_rabbitmq_helper.py +11 -19
  62. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/deployment/helm_redpanda_helper.py +18 -15
  63. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/deployment/helm_signoz_helper.py +17 -21
  64. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/docker-compose.yml +12 -12
  65. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/loadtest/locustfile.py +10 -12
  66. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/Dockerfile +1 -0
  67. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/component/app.py +35 -30
  68. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/component/app_lifespan.py +21 -17
  69. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/component/app_state.py +3 -2
  70. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/component/db_connection.py +18 -20
  71. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/component/frontend_index.py +5 -6
  72. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/component/log.py +7 -15
  73. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/component/messagebus.py +38 -34
  74. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/component/rpc.py +19 -18
  75. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/config.py +68 -103
  76. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/core/error.py +11 -10
  77. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/core/messagebus/__init__.py +2 -4
  78. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/core/messagebus/kafka/admin.py +38 -35
  79. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/core/messagebus/kafka/consumer.py +38 -45
  80. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/core/messagebus/kafka/publisher.py +26 -29
  81. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/core/messagebus/messagebus.py +8 -14
  82. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/core/messagebus/mock.py +12 -8
  83. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/core/messagebus/rabbitmq/admin.py +37 -44
  84. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/core/messagebus/rabbitmq/consumer.py +42 -67
  85. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/core/messagebus/rabbitmq/publisher.py +32 -55
  86. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/core/model/repo_model.py +11 -10
  87. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/core/repo/__init__.py +2 -2
  88. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/core/repo/db_entity_mixin.py +3 -6
  89. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/core/repo/db_repo.py +76 -83
  90. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/core/repo/repo.py +5 -5
  91. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/core/repo/search_filter.py +1 -0
  92. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/core/rpc/__init__.py +1 -1
  93. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/core/rpc/messagebus/caller.py +17 -19
  94. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/core/rpc/messagebus/server.py +14 -18
  95. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/core/rpc/rpc.py +15 -28
  96. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/core/schema/__init__.py +1 -1
  97. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/core/schema/base_schema.py +6 -5
  98. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/core/serializer/__init__.py +1 -3
  99. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/core/serializer/serializer.py +3 -4
  100. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/helper/async_task.py +3 -5
  101. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/helper/conversion.py +10 -10
  102. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/helper/migration.py +6 -10
  103. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/migrate.py +3 -2
  104. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/auth/api.py +7 -12
  105. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/auth/component/__init__.py +4 -6
  106. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/auth/component/access_token_scheme.py +9 -10
  107. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/auth/component/access_token_util.py +6 -5
  108. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/auth/component/authorizer.py +4 -4
  109. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/auth/component/bearer_token_scheme.py +1 -1
  110. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/auth/component/model/user_model.py +8 -10
  111. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/auth/component/password_hasher.py +1 -1
  112. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/auth/component/refresh_token_util.py +7 -6
  113. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/auth/component/repo/group_repo.py +3 -8
  114. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/auth/component/repo/permission_repo.py +3 -7
  115. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/auth/component/repo/user_repo.py +3 -5
  116. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/auth/component/user.py +12 -7
  117. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/auth/core/__init__.py +7 -12
  118. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/auth/core/access_token/scheme.py +7 -12
  119. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/auth/core/access_token/util.py +20 -30
  120. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/auth/core/authorizer/authorizer.py +1 -3
  121. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/auth/core/authorizer/rpc_authorizer.py +5 -12
  122. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/auth/core/password_hasher/bcrypt_password_hasher.py +3 -8
  123. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/auth/core/password_hasher/password_hasher.py +0 -1
  124. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/auth/core/refresh_token/util.py +15 -21
  125. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/auth/entity/group/api.py +42 -49
  126. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/auth/entity/group/model.py +3 -7
  127. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/auth/entity/group/repo.py +18 -16
  128. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/auth/entity/group/rpc.py +26 -41
  129. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/auth/entity/permission/api.py +46 -51
  130. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/auth/entity/permission/model.py +5 -7
  131. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/auth/entity/permission/repo.py +11 -8
  132. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/auth/entity/permission/rpc.py +28 -45
  133. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/auth/entity/table.py +10 -10
  134. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/auth/entity/user/api.py +60 -72
  135. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/auth/entity/user/model.py +32 -61
  136. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/auth/entity/user/repo.py +33 -36
  137. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/auth/entity/user/rpc.py +42 -61
  138. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/auth/event.py +2 -4
  139. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/auth/migrate.py +3 -5
  140. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/auth/register_module.py +11 -12
  141. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/auth/register_permission.py +19 -26
  142. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/auth/rpc.py +5 -13
  143. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/auth/schema/group.py +6 -4
  144. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/auth/schema/permission.py +3 -1
  145. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/auth/schema/request.py +1 -0
  146. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/auth/schema/token.py +2 -2
  147. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/auth/schema/user.py +4 -3
  148. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/log/api.py +4 -5
  149. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/log/component/model/activity_model.py +3 -9
  150. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/log/component/repo/activity_repo.py +3 -7
  151. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/log/core/historical_repo_model.py +13 -13
  152. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/log/entity/activity/api.py +22 -23
  153. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/log/entity/activity/event.py +5 -7
  154. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/log/entity/activity/model.py +2 -6
  155. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/log/entity/activity/repo.py +8 -8
  156. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/log/entity/activity/rpc.py +28 -45
  157. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/log/entity/table.py +3 -3
  158. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/log/event.py +4 -8
  159. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/log/migrate.py +2 -4
  160. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/log/register_module.py +10 -11
  161. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/log/rpc.py +3 -5
  162. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/log/schema/activity.py +3 -1
  163. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/requirements.txt +12 -12
  164. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/test/auth/test_group_crud.py +76 -106
  165. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/test/auth/test_permission_crud.py +73 -103
  166. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/test/auth/test_user_crud.py +92 -122
  167. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/test/auth/test_user_login.py +107 -134
  168. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/test/conftest.py +2 -2
  169. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/test/test_liveness_and_readiness.py +8 -15
  170. zrb/builtin/generator/fastapp_crud/add.py +74 -79
  171. zrb/builtin/generator/fastapp_crud/helper.py +51 -48
  172. zrb/builtin/generator/fastapp_crud/task_factory.py +17 -14
  173. zrb/builtin/generator/fastapp_crud/template/src/kebab-zrb-app-name/src/module/snake_zrb_module_name/component/model/snake_zrb_entity_name_model.py +2 -2
  174. zrb/builtin/generator/fastapp_crud/template/src/kebab-zrb-app-name/src/module/snake_zrb_module_name/component/repo/snake_zrb_entity_name_repo.py +3 -2
  175. zrb/builtin/generator/fastapp_crud/template/src/kebab-zrb-app-name/src/module/snake_zrb_module_name/entity/snake_zrb_entity_name/api.py +58 -40
  176. zrb/builtin/generator/fastapp_crud/template/src/kebab-zrb-app-name/src/module/snake_zrb_module_name/entity/snake_zrb_entity_name/model.py +7 -3
  177. zrb/builtin/generator/fastapp_crud/template/src/kebab-zrb-app-name/src/module/snake_zrb_module_name/entity/snake_zrb_entity_name/repo.py +9 -4
  178. zrb/builtin/generator/fastapp_crud/template/src/kebab-zrb-app-name/src/module/snake_zrb_module_name/entity/snake_zrb_entity_name/rpc.py +32 -39
  179. zrb/builtin/generator/fastapp_crud/template/src/kebab-zrb-app-name/src/module/snake_zrb_module_name/schema/snake_zrb_entity_name.py +3 -1
  180. zrb/builtin/generator/fastapp_crud/template/src/kebab-zrb-app-name/test/snake_zrb_module_name/test_snake_zrb_entity_name.py +68 -98
  181. zrb/builtin/generator/fastapp_field/add.py +143 -85
  182. zrb/builtin/generator/fastapp_field/helper.py +184 -125
  183. zrb/builtin/generator/fastapp_module/add.py +90 -67
  184. zrb/builtin/generator/fastapp_module/helper.py +141 -155
  185. zrb/builtin/generator/fastapp_module/template/src/kebab-zrb-app-name/src/module/snake_zrb_module_name/api.py +3 -2
  186. zrb/builtin/generator/fastapp_module/template/src/kebab-zrb-app-name/src/module/snake_zrb_module_name/entity/table.py +3 -3
  187. zrb/builtin/generator/fastapp_module/template/src/kebab-zrb-app-name/src/module/snake_zrb_module_name/event.py +3 -5
  188. zrb/builtin/generator/fastapp_module/template/src/kebab-zrb-app-name/src/module/snake_zrb_module_name/migrate.py +2 -4
  189. zrb/builtin/generator/fastapp_module/template/src/kebab-zrb-app-name/src/module/snake_zrb_module_name/register_module.py +10 -11
  190. zrb/builtin/generator/fastapp_module/template/src/kebab-zrb-app-name/src/module/snake_zrb_module_name/rpc.py +3 -5
  191. zrb/builtin/generator/pip_package/add.py +39 -40
  192. zrb/builtin/generator/pip_package/template/_automate/snake_zrb_package_name/local.py +30 -30
  193. zrb/builtin/generator/pip_package/template/src/kebab-zrb-package-name/src/snake_zrb_package_name/__init__.py +1 -0
  194. zrb/builtin/generator/pip_package/template/src/kebab-zrb-package-name/src/snake_zrb_package_name/__main__.py +1 -0
  195. zrb/builtin/generator/pip_package/template/src/kebab-zrb-package-name/src/snake_zrb_package_name/util.py +2 -2
  196. zrb/builtin/generator/plugin/create.py +39 -36
  197. zrb/builtin/generator/plugin/template/src/snake_zrb_package_name/__init__.py +1 -1
  198. zrb/builtin/generator/plugin/template/src/snake_zrb_package_name/__main__.py +1 -0
  199. zrb/builtin/generator/plugin/template/src/snake_zrb_package_name/task/example_task.py +6 -4
  200. zrb/builtin/generator/plugin/template/zrb_init.py +27 -27
  201. zrb/builtin/generator/project/create.py +38 -46
  202. zrb/builtin/generator/project/template/.flake8 +3 -0
  203. zrb/builtin/generator/project/template/project.sh +19 -10
  204. zrb/builtin/generator/project_task/task_factory.py +60 -61
  205. zrb/builtin/generator/project_task/template/_automate/_project/__init__.py +2 -2
  206. zrb/builtin/generator/project_task/template/_automate/_project/build_project_images.py +4 -4
  207. zrb/builtin/generator/project_task/template/_automate/_project/deploy_project.py +4 -4
  208. zrb/builtin/generator/project_task/template/_automate/_project/destroy_project.py +4 -4
  209. zrb/builtin/generator/project_task/template/_automate/_project/push_project_images.py +4 -4
  210. zrb/builtin/generator/project_task/template/_automate/_project/remove_project_containers.py +4 -4
  211. zrb/builtin/generator/project_task/template/_automate/_project/start_project.py +4 -4
  212. zrb/builtin/generator/project_task/template/_automate/_project/start_project_containers.py +4 -4
  213. zrb/builtin/generator/project_task/template/_automate/_project/stop_project_containers.py +4 -4
  214. zrb/builtin/generator/python_task/add.py +25 -33
  215. zrb/builtin/generator/python_task/template/_automate/snake_zrb_task_name.py +8 -7
  216. zrb/builtin/generator/simple_python_app/add.py +81 -75
  217. zrb/builtin/generator/simple_python_app/template/_automate/snake_zrb_app_name/_common.py +14 -15
  218. zrb/builtin/generator/simple_python_app/template/_automate/snake_zrb_app_name/container.py +46 -61
  219. zrb/builtin/generator/simple_python_app/template/_automate/snake_zrb_app_name/deployment.py +34 -32
  220. zrb/builtin/generator/simple_python_app/template/_automate/snake_zrb_app_name/image.py +19 -22
  221. zrb/builtin/generator/simple_python_app/template/_automate/snake_zrb_app_name/local.py +23 -25
  222. zrb/builtin/generator/simple_python_app/template/src/kebab-zrb-app-name/deployment/__main__.py +24 -32
  223. zrb/builtin/generator/simple_python_app/template/src/kebab-zrb-app-name/src/main.py +18 -14
  224. zrb/builtin/git.py +46 -46
  225. zrb/builtin/group.py +13 -34
  226. zrb/builtin/helper/reccuring_action.py +26 -29
  227. zrb/builtin/md5.py +17 -30
  228. zrb/builtin/process.py +19 -19
  229. zrb/builtin/project.py +13 -15
  230. zrb/builtin/say.py +69 -88
  231. zrb/builtin/schedule.py +15 -19
  232. zrb/builtin/ubuntu.py +44 -35
  233. zrb/builtin/update.py +5 -5
  234. zrb/builtin/version.py +3 -7
  235. zrb/builtin/watch_changes.py +24 -25
  236. zrb/config/config.py +19 -18
  237. zrb/helper/accessories/color.py +18 -6
  238. zrb/helper/accessories/icon.py +24 -3
  239. zrb/helper/accessories/name.py +120 -28
  240. zrb/helper/advertisement.py +9 -13
  241. zrb/helper/callable.py +2 -4
  242. zrb/helper/cli.py +27 -31
  243. zrb/helper/codemod/add_argument_to_function.py +3 -4
  244. zrb/helper/codemod/add_argument_to_function_call.py +4 -7
  245. zrb/helper/codemod/add_assert_resource.py +7 -7
  246. zrb/helper/codemod/add_function_call.py +3 -5
  247. zrb/helper/codemod/add_import_module.py +15 -26
  248. zrb/helper/codemod/add_key_value_to_dict.py +7 -10
  249. zrb/helper/codemod/add_property_to_class.py +10 -8
  250. zrb/helper/codemod/add_upstream_to_task.py +21 -33
  251. zrb/helper/codemod/append_code_to_function.py +6 -13
  252. zrb/helper/codemod/format_code.py +2 -1
  253. zrb/helper/default_env.py +25 -25
  254. zrb/helper/docker_compose/fetch_external_env.py +18 -18
  255. zrb/helper/docker_compose/file.py +5 -4
  256. zrb/helper/docstring.py +44 -47
  257. zrb/helper/env_map/fetch.py +7 -12
  258. zrb/helper/file/copy_tree.py +12 -17
  259. zrb/helper/file/match.py +6 -7
  260. zrb/helper/file/text.py +8 -6
  261. zrb/helper/git/detect_changes.py +9 -8
  262. zrb/helper/loader/load_module.py +14 -13
  263. zrb/helper/log.py +4 -3
  264. zrb/helper/map/conversion.py +4 -5
  265. zrb/helper/python_task.py +2 -4
  266. zrb/helper/render_data.py +25 -18
  267. zrb/helper/string/constant.py +2 -2
  268. zrb/helper/string/conversion.py +17 -16
  269. zrb/helper/string/jinja.py +2 -2
  270. zrb/helper/typecheck.py +6 -4
  271. zrb/helper/typing.py +10 -2
  272. zrb/helper/util.py +44 -40
  273. zrb/task/any_task.py +251 -251
  274. zrb/task/base_remote_cmd_task.py +76 -59
  275. zrb/task/base_task/base_task.py +95 -108
  276. zrb/task/base_task/component/base_task_model.py +73 -71
  277. zrb/task/base_task/component/common_task_model.py +42 -29
  278. zrb/task/base_task/component/pid_model.py +3 -5
  279. zrb/task/base_task/component/renderer.py +26 -36
  280. zrb/task/base_task/component/trackers.py +6 -9
  281. zrb/task/checker.py +14 -9
  282. zrb/task/cmd_task.py +102 -100
  283. zrb/task/decorator.py +19 -13
  284. zrb/task/docker_compose_task.py +127 -98
  285. zrb/task/flow_task.py +16 -19
  286. zrb/task/http_checker.py +40 -36
  287. zrb/task/notifier.py +50 -38
  288. zrb/task/parallel.py +3 -3
  289. zrb/task/path_checker.py +34 -27
  290. zrb/task/path_watcher.py +49 -40
  291. zrb/task/port_checker.py +33 -26
  292. zrb/task/recurring_task.py +36 -42
  293. zrb/task/remote_cmd_task.py +31 -28
  294. zrb/task/resource_maker.py +66 -52
  295. zrb/task/rsync_task.py +24 -21
  296. zrb/task/task.py +4 -3
  297. zrb/task/time_watcher.py +36 -31
  298. zrb/task_env/constant.py +1 -1
  299. zrb/task_env/env.py +33 -31
  300. zrb/task_env/env_file.py +24 -23
  301. zrb/task_group/group.py +27 -30
  302. zrb/task_input/any_input.py +18 -16
  303. zrb/task_input/base_input.py +26 -26
  304. zrb/task_input/bool_input.py +6 -6
  305. zrb/task_input/choice_input.py +11 -9
  306. zrb/task_input/constant.py +1 -1
  307. zrb/task_input/float_input.py +6 -5
  308. zrb/task_input/int_input.py +8 -8
  309. zrb/task_input/password_input.py +9 -9
  310. zrb/task_input/str_input.py +8 -8
  311. zrb/task_input/task_input.py +4 -2
  312. {zrb-0.6.0.dist-info → zrb-0.6.1.dist-info}/METADATA +3 -1
  313. {zrb-0.6.0.dist-info → zrb-0.6.1.dist-info}/RECORD +316 -315
  314. {zrb-0.6.0.dist-info → zrb-0.6.1.dist-info}/LICENSE +0 -0
  315. {zrb-0.6.0.dist-info → zrb-0.6.1.dist-info}/WHEEL +0 -0
  316. {zrb-0.6.0.dist-info → zrb-0.6.1.dist-info}/entry_points.txt +0 -0
@@ -1,82 +1,85 @@
1
- from typing import Mapping, List
2
- from dotenv import dotenv_values
3
1
  import copy
4
- import jsons
5
2
  import os
6
3
  import re
4
+ from typing import List, Mapping
7
5
 
8
- NON_ALPHA_NUM = re.compile(r'[^a-zA-Z0-9]+')
9
- CURRENT_DIR: str = os.path.dirname(__file__)
10
- MODE: str = os.getenv('MODE', 'monolith')
11
- NAMESPACE: str = os.getenv('NAMESPACE', 'default')
6
+ import jsons
7
+ from dotenv import dotenv_values
12
8
 
13
- ENABLE_MONITORING: bool = os.getenv('ENABLE_MONITORING', '0') in [
14
- '1', 'true', 'True', 'Yes', 'yes', 'Y', 'y'
9
+ NON_ALPHA_NUM = re.compile(r"[^a-zA-Z0-9]+")
10
+ CURRENT_DIR: str = os.path.dirname(__file__)
11
+ MODE: str = os.getenv("MODE", "monolith")
12
+ NAMESPACE: str = os.getenv("NAMESPACE", "default")
13
+
14
+ ENABLE_MONITORING: bool = os.getenv("ENABLE_MONITORING", "0") in [
15
+ "1",
16
+ "true",
17
+ "True",
18
+ "Yes",
19
+ "yes",
20
+ "Y",
21
+ "y",
15
22
  ]
16
23
 
17
- MODULE_JSON_STR: str = os.getenv('MODULES', '[]')
24
+ MODULE_JSON_STR: str = os.getenv("MODULES", "[]")
18
25
  MODULES: List[str] = jsons.loads(MODULE_JSON_STR)
19
26
 
20
- APP_DIR: str = os.path.abspath(os.path.join(CURRENT_DIR, '..', 'src'))
21
- TEMPLATE_ENV_FILE_NAME: str = os.path.join(APP_DIR, 'template.env')
27
+ APP_DIR: str = os.path.abspath(os.path.join(CURRENT_DIR, "..", "src"))
28
+ TEMPLATE_ENV_FILE_NAME: str = os.path.join(APP_DIR, "template.env")
22
29
  TEMPLATE_ENV_MAP: Mapping[str, str] = {
23
30
  key: os.getenv(key, default_value)
24
31
  for key, default_value in dotenv_values(TEMPLATE_ENV_FILE_NAME).items()
25
32
  }
26
33
 
27
- BROKER_TYPE: str = os.getenv('BROKER_TYPE', '')
28
- if BROKER_TYPE == '':
29
- BROKER_TYPE = TEMPLATE_ENV_MAP.get('APP_BROKER_TYPE', 'rabbitmq')
34
+ BROKER_TYPE: str = os.getenv("BROKER_TYPE", "")
35
+ if BROKER_TYPE == "":
36
+ BROKER_TYPE = TEMPLATE_ENV_MAP.get("APP_BROKER_TYPE", "rabbitmq")
30
37
 
31
- RABBITMQ_AUTH_USERNAME: str = os.getenv('RABBITMQ_AUTH_USERNAME', 'root')
32
- RABBITMQ_AUTH_PASSWORD: str = os.getenv('RABBITMQ_AUTH_PASSWORD', 'toor')
38
+ RABBITMQ_AUTH_USERNAME: str = os.getenv("RABBITMQ_AUTH_USERNAME", "root")
39
+ RABBITMQ_AUTH_PASSWORD: str = os.getenv("RABBITMQ_AUTH_PASSWORD", "toor")
33
40
 
34
- REDPANDA_AUTH_SASL_ENABLED: bool = os.getenv(
35
- 'REDPANDA_AUTH_SASL_ENABLED', 'true'
36
- ).lower() == 'true'
37
- REDPANDA_AUTH_MECHANISM: str = os.getenv(
38
- 'REDPANDA_AUTH_MECHANISM', 'SCRAM-SHA-512'
39
- )
40
- REDPANDA_AUTH_USER_NAME: str = os.getenv('REDPANDA_AUTH_USER_NAME', 'root')
41
- REDPANDA_AUTH_USER_PASSWORD: str = os.getenv(
42
- 'REDPANDA_AUTH_USER_PASSWORD', 'toor'
41
+ REDPANDA_AUTH_SASL_ENABLED: bool = (
42
+ os.getenv("REDPANDA_AUTH_SASL_ENABLED", "true").lower() == "true"
43
43
  )
44
+ REDPANDA_AUTH_MECHANISM: str = os.getenv("REDPANDA_AUTH_MECHANISM", "SCRAM-SHA-512")
45
+ REDPANDA_AUTH_USER_NAME: str = os.getenv("REDPANDA_AUTH_USER_NAME", "root")
46
+ REDPANDA_AUTH_USER_PASSWORD: str = os.getenv("REDPANDA_AUTH_USER_PASSWORD", "toor")
44
47
 
45
- POSTGRESQL_AUTH_POSTGRES_PASSWORD: str = os.getenv(
46
- 'POSTGRESQL_AUTH_POSTGRES_PASSWORD'
47
- )
48
- POSTGRESQL_AUTH_USERNAME: str = os.getenv('POSTGRESQL_AUTH_USERNAME', 'root')
49
- POSTGRESQL_AUTH_PASSWORD: str = os.getenv('POSTGRESQL_AUTH_PASSWORD', 'toor')
50
- POSTGRESQL_DB: str = os.getenv('POSTGRESQL_DB', 'snake_zrb_app_name')
48
+ POSTGRESQL_AUTH_POSTGRES_PASSWORD: str = os.getenv("POSTGRESQL_AUTH_POSTGRES_PASSWORD")
49
+ POSTGRESQL_AUTH_USERNAME: str = os.getenv("POSTGRESQL_AUTH_USERNAME", "root")
50
+ POSTGRESQL_AUTH_PASSWORD: str = os.getenv("POSTGRESQL_AUTH_PASSWORD", "toor")
51
+ POSTGRESQL_DB: str = os.getenv("POSTGRESQL_DB", "snake_zrb_app_name")
51
52
 
52
- SIGNOZ_CLICKHOUSE_NAMESPACE: str = os.getenv(
53
- 'SIGNOZ_CLICKHOUSE_NAMESPACE', NAMESPACE
54
- )
55
- SIGNOZ_CLICKHOUSE_USER: str = os.getenv('SIGNOZ_CLICKHOUSE_USER', 'root')
56
- SIGNOZ_CLICKHOUSE_PASSWORD: str = os.getenv(
57
- 'SIGNOZ_CLICKHOUSE_PASSWORD', 'toor'
58
- )
53
+ SIGNOZ_CLICKHOUSE_NAMESPACE: str = os.getenv("SIGNOZ_CLICKHOUSE_NAMESPACE", NAMESPACE)
54
+ SIGNOZ_CLICKHOUSE_USER: str = os.getenv("SIGNOZ_CLICKHOUSE_USER", "root")
55
+ SIGNOZ_CLICKHOUSE_PASSWORD: str = os.getenv("SIGNOZ_CLICKHOUSE_PASSWORD", "toor")
59
56
 
60
57
 
61
58
  def get_app_monolith_env_map(
62
59
  template_env_map: Mapping[str, str], modules: List[str]
63
60
  ) -> Mapping[str, str]:
64
61
  env_map = copy.deepcopy(template_env_map)
65
- env_map['APP_RMQ_CONNECTION'] = f'amqp://{RABBITMQ_AUTH_USERNAME}:{RABBITMQ_AUTH_PASSWORD}@rabbitmq' # noqa
66
- env_map['APP_KAFKA_BOOTSTRAP_SERVERS'] = 'redpanda:9092'
67
- env_map['APP_KAFKA_SASL_MECHANISM'] = REDPANDA_AUTH_MECHANISM
68
- env_map['APP_KAFKA_SASL_USER'] = REDPANDA_AUTH_USER_NAME
69
- env_map['APP_KAFKA_SASL_PASSWORD'] = REDPANDA_AUTH_USER_PASSWORD
70
- env_map['APP_DB_CONNECTION'] = f'postgresql+psycopg2://{POSTGRESQL_AUTH_USERNAME}:{POSTGRESQL_AUTH_PASSWORD}@postgresql:5432/{POSTGRESQL_DB}' # noqa
62
+ env_map[
63
+ "APP_RMQ_CONNECTION"
64
+ ] = f"amqp://{RABBITMQ_AUTH_USERNAME}:{RABBITMQ_AUTH_PASSWORD}@rabbitmq" # noqa
65
+ env_map["APP_KAFKA_BOOTSTRAP_SERVERS"] = "redpanda:9092"
66
+ env_map["APP_KAFKA_SASL_MECHANISM"] = REDPANDA_AUTH_MECHANISM
67
+ env_map["APP_KAFKA_SASL_USER"] = REDPANDA_AUTH_USER_NAME
68
+ env_map["APP_KAFKA_SASL_PASSWORD"] = REDPANDA_AUTH_USER_PASSWORD
69
+ env_map[
70
+ "APP_DB_CONNECTION"
71
+ ] = f"postgresql+psycopg2://{POSTGRESQL_AUTH_USERNAME}:{POSTGRESQL_AUTH_PASSWORD}@postgresql:5432/{POSTGRESQL_DB}" # noqa
71
72
  for module_name in modules:
72
73
  env_name = get_module_flag_env_name(module_name)
73
- env_map[env_name] = 'true'
74
- env_map['APP_ENABLE_EVENT_HANDLER'] = 'true'
75
- env_map['APP_ENABLE_RPC_SERVER'] = 'true'
76
- env_map['APP_ENABLE_FRONTEND'] = 'true'
77
- env_map['APP_ENABLE_API'] = 'true'
78
- env_map['APP_ENABLE_OTEL'] = 'true' if ENABLE_MONITORING else 'false'
79
- env_map['APP_OTEL_EXPORTER_OTLP_ENDPOINT'] = 'http://signoz-otel-collector:4317' # noqa
74
+ env_map[env_name] = "true"
75
+ env_map["APP_ENABLE_EVENT_HANDLER"] = "true"
76
+ env_map["APP_ENABLE_RPC_SERVER"] = "true"
77
+ env_map["APP_ENABLE_FRONTEND"] = "true"
78
+ env_map["APP_ENABLE_API"] = "true"
79
+ env_map["APP_ENABLE_OTEL"] = "true" if ENABLE_MONITORING else "false"
80
+ env_map[
81
+ "APP_OTEL_EXPORTER_OTLP_ENDPOINT"
82
+ ] = "http://signoz-otel-collector:4317" # noqa
80
83
  return env_map
81
84
 
82
85
 
@@ -86,52 +89,46 @@ def get_app_gateway_env_map(
86
89
  env_map = get_app_monolith_env_map(template_env_map, modules)
87
90
  for module_name in modules:
88
91
  env_name = get_module_flag_env_name(module_name)
89
- env_map[env_name] = 'true'
90
- env_map['APP_ENABLE_EVENT_HANDLER'] = 'false'
91
- env_map['APP_ENABLE_RPC_SERVER'] = 'false'
92
- env_map['APP_ENABLE_FRONTEND'] = 'true'
93
- env_map['APP_ENABLE_API'] = 'true'
94
- env_map['APP_DB_AUTO_MIGRATE'] = 'false'
92
+ env_map[env_name] = "true"
93
+ env_map["APP_ENABLE_EVENT_HANDLER"] = "false"
94
+ env_map["APP_ENABLE_RPC_SERVER"] = "false"
95
+ env_map["APP_ENABLE_FRONTEND"] = "true"
96
+ env_map["APP_ENABLE_API"] = "true"
97
+ env_map["APP_DB_AUTO_MIGRATE"] = "false"
95
98
  return env_map
96
99
 
97
100
 
98
101
  def get_app_service_env_map(
99
- template_env_map: Mapping[str, str],
100
- modules: List[str],
101
- current_module: str
102
+ template_env_map: Mapping[str, str], modules: List[str], current_module: str
102
103
  ) -> Mapping[str, str]:
103
104
  env_map = get_app_monolith_env_map(template_env_map, modules)
104
105
  for module_name in modules:
105
106
  env_name = get_module_flag_env_name(module_name)
106
107
  if module_name == current_module:
107
- env_map[env_name] = 'true'
108
+ env_map[env_name] = "true"
108
109
  continue
109
- env_map[env_name] = 'false'
110
- env_map['APP_ENABLE_EVENT_HANDLER'] = 'true'
111
- env_map['APP_ENABLE_RPC_SERVER'] = 'true'
112
- env_map['APP_ENABLE_FRONTEND'] = 'false'
113
- env_map['APP_ENABLE_API'] = 'false'
110
+ env_map[env_name] = "false"
111
+ env_map["APP_ENABLE_EVENT_HANDLER"] = "true"
112
+ env_map["APP_ENABLE_RPC_SERVER"] = "true"
113
+ env_map["APP_ENABLE_FRONTEND"] = "false"
114
+ env_map["APP_ENABLE_API"] = "false"
114
115
  return env_map
115
116
 
116
117
 
117
118
  def get_module_flag_env_name(module_name: str) -> str:
118
119
  upper_snake_module_name = to_snake_case(module_name).upper()
119
- return f'APP_ENABLE_{upper_snake_module_name}_MODULE'
120
+ return f"APP_ENABLE_{upper_snake_module_name}_MODULE"
120
121
 
121
122
 
122
123
  def to_kebab_case(text: str) -> str:
123
124
  text = to_alphanum(text)
124
- return '-'.join([
125
- x.lower() for x in text.split(' ')
126
- ])
125
+ return "-".join([x.lower() for x in text.split(" ")])
127
126
 
128
127
 
129
128
  def to_snake_case(text: str) -> str:
130
129
  text = to_alphanum(text)
131
- return '_'.join([
132
- x.lower() for x in text.split(' ')
133
- ])
130
+ return "_".join([x.lower() for x in text.split(" ")])
134
131
 
135
132
 
136
133
  def to_alphanum(text: str) -> str:
137
- return NON_ALPHA_NUM.sub(' ', text)
134
+ return NON_ALPHA_NUM.sub(" ", text)
@@ -1,92 +1,97 @@
1
- from typing import Mapping, List
2
- from _common import (
3
- NAMESPACE, MODULES, TEMPLATE_ENV_MAP, get_app_monolith_env_map,
4
- get_app_gateway_env_map, get_app_service_env_map, to_kebab_case,
5
- to_snake_case
6
- )
1
+ import os
2
+ from typing import List, Mapping
7
3
 
8
4
  import pulumi_kubernetes as k8s
9
- import os
5
+ from _common import (
6
+ MODULES,
7
+ NAMESPACE,
8
+ TEMPLATE_ENV_MAP,
9
+ get_app_gateway_env_map,
10
+ get_app_monolith_env_map,
11
+ get_app_service_env_map,
12
+ to_kebab_case,
13
+ to_snake_case,
14
+ )
10
15
 
11
- image = os.getenv('IMAGE', 'kebab-zrb-app-name:latest')
12
- app_monolith_replica = int(os.getenv('REPLICA', '1'))
13
- app_monolith_labels = {'app': 'kebab-zrb-app-name'}
14
- app_gateway_replica = int(os.getenv('REPLICA_GATEWAY'))
15
- app_gateway_labels = {'app': 'kebab-zrb-app-name-gateway'}
16
+ image = os.getenv("IMAGE", "kebab-zrb-app-name:latest")
17
+ app_monolith_replica = int(os.getenv("REPLICA", "1"))
18
+ app_monolith_labels = {"app": "kebab-zrb-app-name"}
19
+ app_gateway_replica = int(os.getenv("REPLICA_GATEWAY"))
20
+ app_gateway_labels = {"app": "kebab-zrb-app-name-gateway"}
16
21
 
17
22
  app_monolith_env_map = get_app_monolith_env_map(TEMPLATE_ENV_MAP, MODULES)
18
- app_port = int(os.getenv(
19
- 'APP_PORT', app_monolith_env_map.get('APP_PORT', '8080')
20
- ))
23
+ app_port = int(os.getenv("APP_PORT", app_monolith_env_map.get("APP_PORT", "8080")))
21
24
  app_gateway_env_map = get_app_gateway_env_map(TEMPLATE_ENV_MAP, MODULES)
22
25
 
23
26
 
24
27
  def create_app_microservices_deployments() -> List[k8s.apps.v1.Deployment]:
25
28
  deployments: List[k8s.apps.v1.Deployment] = []
26
- deployments.append(_create_app_deployment(
27
- resource_name='kebab-zrb-app-name-gateway',
28
- image=image,
29
- replica=app_gateway_replica,
30
- app_labels=app_gateway_labels,
31
- env_map=app_gateway_env_map,
32
- app_port=app_port
33
- ))
29
+ deployments.append(
30
+ _create_app_deployment(
31
+ resource_name="kebab-zrb-app-name-gateway",
32
+ image=image,
33
+ replica=app_gateway_replica,
34
+ app_labels=app_gateway_labels,
35
+ env_map=app_gateway_env_map,
36
+ app_port=app_port,
37
+ )
38
+ )
34
39
  for module in MODULES:
35
40
  kebab_module_name = to_kebab_case(module)
36
41
  snake_module_name = to_snake_case(module)
37
42
  upper_snake_module_name = snake_module_name.upper()
38
- app_service_replica = int(os.getenv(
39
- f'REPLICA_{upper_snake_module_name}_SERVICE', '1'
40
- ))
41
- app_service_env_map = get_app_service_env_map(
42
- TEMPLATE_ENV_MAP, MODULES, module
43
+ app_service_replica = int(
44
+ os.getenv(f"REPLICA_{upper_snake_module_name}_SERVICE", "1")
45
+ )
46
+ app_service_env_map = get_app_service_env_map(TEMPLATE_ENV_MAP, MODULES, module)
47
+ app_service_labels = {"app": f"kebab-zrb-app-name-{kebab_module_name}-service"}
48
+ deployments.append(
49
+ _create_app_deployment(
50
+ resource_name=f"kebab-zrb-app-name-{kebab_module_name}-service",
51
+ app_labels=app_service_labels,
52
+ image=image,
53
+ replica=app_service_replica,
54
+ env_map=app_service_env_map,
55
+ app_port=app_port,
56
+ )
43
57
  )
44
- app_service_labels = {
45
- 'app': f'kebab-zrb-app-name-{kebab_module_name}-service'
46
- }
47
- deployments.append(_create_app_deployment(
48
- resource_name=f'kebab-zrb-app-name-{kebab_module_name}-service',
49
- app_labels=app_service_labels,
50
- image=image,
51
- replica=app_service_replica,
52
- env_map=app_service_env_map,
53
- app_port=app_port
54
- ))
55
58
  return deployments
56
59
 
57
60
 
58
61
  def create_app_microservices_services() -> List[k8s.core.v1.Service]:
59
62
  services: List[k8s.core.v1.Service] = []
60
- services.append(_create_app_service(
61
- resource_name='kebab-zrb-app-name-gateway',
62
- app_labels=app_gateway_labels,
63
- app_port=app_port,
64
- service_type='LoadBalancer',
65
- service_port=app_port,
66
- service_port_protocol='TCP'
67
- ))
63
+ services.append(
64
+ _create_app_service(
65
+ resource_name="kebab-zrb-app-name-gateway",
66
+ app_labels=app_gateway_labels,
67
+ app_port=app_port,
68
+ service_type="LoadBalancer",
69
+ service_port=app_port,
70
+ service_port_protocol="TCP",
71
+ )
72
+ )
68
73
  return services
69
74
 
70
75
 
71
76
  def create_app_monolith_deployment() -> k8s.apps.v1.Deployment:
72
77
  return _create_app_deployment(
73
- resource_name='kebab-zrb-app-name',
78
+ resource_name="kebab-zrb-app-name",
74
79
  image=image,
75
80
  replica=app_monolith_replica,
76
81
  app_labels=app_monolith_labels,
77
82
  env_map=app_monolith_env_map,
78
- app_port=app_port
83
+ app_port=app_port,
79
84
  )
80
85
 
81
86
 
82
87
  def create_app_monolith_service() -> k8s.core.v1.Service:
83
88
  return _create_app_service(
84
- resource_name='kebab-zrb-app-name',
89
+ resource_name="kebab-zrb-app-name",
85
90
  app_labels=app_monolith_labels,
86
91
  app_port=app_port,
87
- service_type='LoadBalancer',
92
+ service_type="LoadBalancer",
88
93
  service_port=app_port,
89
- service_port_protocol='TCP'
94
+ service_port_protocol="TCP",
90
95
  )
91
96
 
92
97
 
@@ -96,7 +101,7 @@ def _create_app_deployment(
96
101
  replica: int,
97
102
  app_labels: Mapping[str, str],
98
103
  env_map: Mapping[str, str],
99
- app_port: int
104
+ app_port: int,
100
105
  ) -> k8s.apps.v1.Deployment:
101
106
  # Pulumi deployment docs:
102
107
  # https://www.pulumi.com/registry/packages/kubernetes/api-docs/apps/v1/deployment/
@@ -107,8 +112,7 @@ def _create_app_deployment(
107
112
  replicas=replica,
108
113
  template=k8s.core.v1.PodTemplateSpecArgs(
109
114
  metadata=k8s.meta.v1.ObjectMetaArgs(
110
- labels=app_labels,
111
- namespace=NAMESPACE
115
+ labels=app_labels, namespace=NAMESPACE
112
116
  ),
113
117
  spec=k8s.core.v1.PodSpecArgs(
114
118
  containers=[
@@ -116,34 +120,27 @@ def _create_app_deployment(
116
120
  name=resource_name,
117
121
  image=image,
118
122
  env=[
119
- k8s.core.v1.EnvVarArgs(
120
- name=env_name,
121
- value=env_value
122
- )
123
+ k8s.core.v1.EnvVarArgs(name=env_name, value=env_value)
123
124
  for env_name, env_value in env_map.items()
124
125
  ],
125
126
  ports=[
126
- k8s.core.v1.ContainerPortArgs(
127
- container_port=app_port
128
- )
127
+ k8s.core.v1.ContainerPortArgs(container_port=app_port)
129
128
  ],
130
129
  liveness_probe=k8s.core.v1.ProbeArgs(
131
130
  http_get=k8s.core.v1.HTTPGetActionArgs(
132
- port=app_port,
133
- path='/liveness'
131
+ port=app_port, path="/liveness"
134
132
  )
135
133
  ),
136
134
  readiness_probe=k8s.core.v1.ProbeArgs(
137
135
  http_get=k8s.core.v1.HTTPGetActionArgs(
138
- port=app_port,
139
- path='/readiness'
136
+ port=app_port, path="/readiness"
140
137
  )
141
138
  ),
142
139
  )
143
140
  ]
144
- )
145
- )
146
- )
141
+ ),
142
+ ),
143
+ ),
147
144
  )
148
145
  return deployment
149
146
 
@@ -152,17 +149,15 @@ def _create_app_service(
152
149
  resource_name: str,
153
150
  app_labels: Mapping[str, str],
154
151
  app_port: int,
155
- service_type: str = 'LoadBalancer',
152
+ service_type: str = "LoadBalancer",
156
153
  service_port: int = 8080,
157
- service_port_protocol: str = 'TCP',
154
+ service_port_protocol: str = "TCP",
158
155
  ) -> k8s.core.v1.Service:
159
156
  # Pulumi services docs:
160
157
  # https://www.pulumi.com/registry/packages/kubernetes/api-docs/core/v1/service/
161
158
  service = k8s.core.v1.Service(
162
159
  resource_name=resource_name,
163
- metadata=k8s.meta.v1.ObjectMetaArgs(
164
- namespace=NAMESPACE
165
- ),
160
+ metadata=k8s.meta.v1.ObjectMetaArgs(namespace=NAMESPACE),
166
161
  spec=k8s.core.v1.ServiceSpecArgs(
167
162
  selector=app_labels,
168
163
  ports=[
@@ -173,6 +168,6 @@ def _create_app_service(
173
168
  )
174
169
  ],
175
170
  type=service_type,
176
- )
171
+ ),
177
172
  )
178
173
  return service
@@ -1,35 +1,32 @@
1
- from pulumi_kubernetes.helm.v3 import Chart, LocalChartOpts
2
1
  from _common import (
3
- NAMESPACE, POSTGRESQL_AUTH_PASSWORD, POSTGRESQL_AUTH_USERNAME,
4
- POSTGRESQL_AUTH_POSTGRES_PASSWORD, POSTGRESQL_DB
2
+ NAMESPACE,
3
+ POSTGRESQL_AUTH_PASSWORD,
4
+ POSTGRESQL_AUTH_POSTGRES_PASSWORD,
5
+ POSTGRESQL_AUTH_USERNAME,
6
+ POSTGRESQL_DB,
5
7
  )
8
+ from pulumi_kubernetes.helm.v3 import Chart, LocalChartOpts
6
9
 
7
10
 
8
11
  def create_postgresql() -> Chart:
9
12
  postgresql = Chart(
10
- 'postgresql',
13
+ "postgresql",
11
14
  LocalChartOpts(
12
- path='./helm-charts/postgresql',
15
+ path="./helm-charts/postgresql",
13
16
  namespace=NAMESPACE,
14
17
  values={
15
- 'auth': {
16
- 'postgresPassword': POSTGRESQL_AUTH_POSTGRES_PASSWORD,
17
- 'username': POSTGRESQL_AUTH_USERNAME,
18
- 'password': POSTGRESQL_AUTH_PASSWORD,
19
- 'database': POSTGRESQL_DB,
18
+ "auth": {
19
+ "postgresPassword": POSTGRESQL_AUTH_POSTGRES_PASSWORD,
20
+ "username": POSTGRESQL_AUTH_USERNAME,
21
+ "password": POSTGRESQL_AUTH_PASSWORD,
22
+ "database": POSTGRESQL_DB,
23
+ },
24
+ "resources": {
25
+ "limits": {"cpu": "250m", "memory": "256Mi"},
26
+ "requests": {"cpu": "250m", "memory": "156Mi"},
20
27
  },
21
- 'resources': {
22
- 'limits': {
23
- 'cpu': '250m',
24
- 'memory': '256Mi'
25
- },
26
- 'requests': {
27
- 'cpu': '250m',
28
- 'memory': '156Mi'
29
- },
30
- }
31
28
  },
32
- skip_await=True
29
+ skip_await=True,
33
30
  ),
34
31
  )
35
32
  return postgresql
@@ -1,32 +1,24 @@
1
+ from _common import NAMESPACE, RABBITMQ_AUTH_PASSWORD, RABBITMQ_AUTH_USERNAME
1
2
  from pulumi_kubernetes.helm.v3 import Chart, LocalChartOpts
2
- from _common import (
3
- NAMESPACE, RABBITMQ_AUTH_USERNAME, RABBITMQ_AUTH_PASSWORD
4
- )
5
3
 
6
4
 
7
5
  def create_rabbitmq() -> Chart:
8
6
  rabbitmq = Chart(
9
- 'rabbitmq',
7
+ "rabbitmq",
10
8
  LocalChartOpts(
11
- path='./helm-charts/rabbitmq',
9
+ path="./helm-charts/rabbitmq",
12
10
  namespace=NAMESPACE,
13
11
  values={
14
- 'auth': {
15
- 'username': RABBITMQ_AUTH_USERNAME,
16
- 'password': RABBITMQ_AUTH_PASSWORD
12
+ "auth": {
13
+ "username": RABBITMQ_AUTH_USERNAME,
14
+ "password": RABBITMQ_AUTH_PASSWORD,
15
+ },
16
+ "resources": {
17
+ "limits": {"cpu": "1000m", "memory": "2Gi"},
18
+ "requests": {"cpu": "1000m", "memory": "1Gi"},
17
19
  },
18
- 'resources': {
19
- 'limits': {
20
- 'cpu': '1000m',
21
- 'memory': '2Gi'
22
- },
23
- 'requests': {
24
- 'cpu': '1000m',
25
- 'memory': '1Gi'
26
- },
27
- }
28
20
  },
29
- skip_await=True
21
+ skip_await=True,
30
22
  ),
31
23
  )
32
24
  return rabbitmq
@@ -1,32 +1,35 @@
1
- from pulumi_kubernetes.helm.v3 import Chart, LocalChartOpts
2
1
  from _common import (
3
- NAMESPACE, REDPANDA_AUTH_MECHANISM, REDPANDA_AUTH_SASL_ENABLED,
4
- REDPANDA_AUTH_USER_NAME, REDPANDA_AUTH_USER_PASSWORD
2
+ NAMESPACE,
3
+ REDPANDA_AUTH_MECHANISM,
4
+ REDPANDA_AUTH_SASL_ENABLED,
5
+ REDPANDA_AUTH_USER_NAME,
6
+ REDPANDA_AUTH_USER_PASSWORD,
5
7
  )
8
+ from pulumi_kubernetes.helm.v3 import Chart, LocalChartOpts
6
9
 
7
10
 
8
11
  def create_redpanda() -> Chart:
9
12
  redpanda = Chart(
10
- 'redpanda',
13
+ "redpanda",
11
14
  LocalChartOpts(
12
- path='./helm-charts/redpanda',
15
+ path="./helm-charts/redpanda",
13
16
  namespace=NAMESPACE,
14
17
  values={
15
- 'auth': {
16
- 'sasl': {
17
- 'enabled': REDPANDA_AUTH_SASL_ENABLED,
18
- 'mechanism': REDPANDA_AUTH_MECHANISM,
19
- 'users': [
18
+ "auth": {
19
+ "sasl": {
20
+ "enabled": REDPANDA_AUTH_SASL_ENABLED,
21
+ "mechanism": REDPANDA_AUTH_MECHANISM,
22
+ "users": [
20
23
  {
21
- 'name': REDPANDA_AUTH_USER_NAME,
22
- 'password': REDPANDA_AUTH_USER_PASSWORD,
23
- 'mechanism': REDPANDA_AUTH_MECHANISM
24
+ "name": REDPANDA_AUTH_USER_NAME,
25
+ "password": REDPANDA_AUTH_USER_PASSWORD,
26
+ "mechanism": REDPANDA_AUTH_MECHANISM,
24
27
  }
25
- ]
28
+ ],
26
29
  }
27
30
  },
28
31
  },
29
- skip_await=True
32
+ skip_await=True,
30
33
  ),
31
34
  )
32
35
  return redpanda
@@ -1,35 +1,31 @@
1
- from pulumi_kubernetes.helm.v3 import Chart, LocalChartOpts
2
1
  from _common import (
3
- NAMESPACE, SIGNOZ_CLICKHOUSE_NAMESPACE, SIGNOZ_CLICKHOUSE_USER,
4
- SIGNOZ_CLICKHOUSE_PASSWORD
2
+ NAMESPACE,
3
+ SIGNOZ_CLICKHOUSE_NAMESPACE,
4
+ SIGNOZ_CLICKHOUSE_PASSWORD,
5
+ SIGNOZ_CLICKHOUSE_USER,
5
6
  )
7
+ from pulumi_kubernetes.helm.v3 import Chart, LocalChartOpts
6
8
 
7
9
 
8
10
  def create_signoz() -> Chart:
9
11
  signoz = Chart(
10
- 'signoz',
12
+ "signoz",
11
13
  LocalChartOpts(
12
- path='./helm-charts/signoz',
14
+ path="./helm-charts/signoz",
13
15
  namespace=NAMESPACE,
14
16
  values={
15
- 'clickhouse': {
16
- 'enabled': True,
17
- 'user': SIGNOZ_CLICKHOUSE_USER,
18
- 'password': SIGNOZ_CLICKHOUSE_PASSWORD,
19
- 'namespace': SIGNOZ_CLICKHOUSE_NAMESPACE,
17
+ "clickhouse": {
18
+ "enabled": True,
19
+ "user": SIGNOZ_CLICKHOUSE_USER,
20
+ "password": SIGNOZ_CLICKHOUSE_PASSWORD,
21
+ "namespace": SIGNOZ_CLICKHOUSE_NAMESPACE,
22
+ },
23
+ "resources": {
24
+ "limits": {"cpu": "250m", "memory": "4Gi"},
25
+ "requests": {"cpu": "250m", "memory": "200Mi"},
20
26
  },
21
- 'resources': {
22
- 'limits': {
23
- 'cpu': '250m',
24
- 'memory': '4Gi'
25
- },
26
- 'requests': {
27
- 'cpu': '250m',
28
- 'memory': '200Mi'
29
- },
30
- }
31
27
  },
32
- skip_await=True
28
+ skip_await=True,
33
29
  ),
34
30
  )
35
31
  return signoz