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.
- zrb/__init__.py +24 -20
- zrb/__main__.py +5 -5
- zrb/action/runner.py +22 -30
- zrb/advertisement.py +10 -9
- zrb/builtin/__init__.py +18 -16
- zrb/builtin/base64.py +13 -18
- zrb/builtin/devtool/__init__.py +14 -3
- zrb/builtin/devtool/devtool_install.py +207 -221
- zrb/builtin/env.py +9 -12
- zrb/builtin/eval.py +9 -9
- zrb/builtin/explain.py +73 -74
- zrb/builtin/generator/__init__.py +7 -11
- zrb/builtin/generator/app_generator/add.py +86 -87
- zrb/builtin/generator/app_generator/template/base/_automate/generate_snake_zrb_meta_template_name/add.py +78 -77
- zrb/builtin/generator/app_generator/template/base/_automate/generate_snake_zrb_meta_template_name/template/_automate/snake_zrb_app_name/_checker.py +6 -6
- zrb/builtin/generator/app_generator/template/base/_automate/generate_snake_zrb_meta_template_name/template/_automate/snake_zrb_app_name/_common.py +14 -15
- zrb/builtin/generator/app_generator/template/base/_automate/generate_snake_zrb_meta_template_name/template/_automate/snake_zrb_app_name/container.py +32 -32
- zrb/builtin/generator/app_generator/template/base/_automate/generate_snake_zrb_meta_template_name/template/_automate/snake_zrb_app_name/deployment.py +29 -30
- zrb/builtin/generator/app_generator/template/base/_automate/generate_snake_zrb_meta_template_name/template/_automate/snake_zrb_app_name/image.py +1 -3
- zrb/builtin/generator/app_generator/template/base/_automate/generate_snake_zrb_meta_template_name/template/_automate/snake_zrb_app_name/local.py +5 -4
- 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
- zrb/builtin/generator/app_generator/template/build-custom-image/_automate/generate_snake_zrb_meta_template_name/add.py +89 -87
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- zrb/builtin/generator/cmd_task/add.py +23 -25
- zrb/builtin/generator/cmd_task/template/_automate/snake_zrb_task_name.py +3 -5
- zrb/builtin/generator/common/helper.py +15 -20
- zrb/builtin/generator/common/task_factory.py +29 -26
- zrb/builtin/generator/common/task_input.py +97 -91
- zrb/builtin/generator/docker_compose_task/add.py +38 -39
- zrb/builtin/generator/docker_compose_task/template/_automate/snake_zrb_task_name.py +13 -19
- zrb/builtin/generator/docker_compose_task/template/src/kebab-zrb-task-name/image/main.py +18 -14
- zrb/builtin/generator/fastapp/add.py +94 -90
- zrb/builtin/generator/fastapp/template/_automate/snake_zrb_app_name/_checker.py +28 -27
- zrb/builtin/generator/fastapp/template/_automate/snake_zrb_app_name/_config.py +68 -39
- zrb/builtin/generator/fastapp/template/_automate/snake_zrb_app_name/_env.py +24 -22
- zrb/builtin/generator/fastapp/template/_automate/snake_zrb_app_name/_env_file.py +12 -12
- zrb/builtin/generator/fastapp/template/_automate/snake_zrb_app_name/_get_start_microservices.py +43 -41
- zrb/builtin/generator/fastapp/template/_automate/snake_zrb_app_name/_helper.py +23 -24
- zrb/builtin/generator/fastapp/template/_automate/snake_zrb_app_name/_input.py +21 -20
- zrb/builtin/generator/fastapp/template/_automate/snake_zrb_app_name/cmd/app-load-test.sh +1 -1
- zrb/builtin/generator/fastapp/template/_automate/snake_zrb_app_name/cmd/app-start.sh +1 -1
- zrb/builtin/generator/fastapp/template/_automate/snake_zrb_app_name/cmd/app-test.sh +2 -2
- zrb/builtin/generator/fastapp/template/_automate/snake_zrb_app_name/container.py +46 -39
- zrb/builtin/generator/fastapp/template/_automate/snake_zrb_app_name/deployment.py +28 -20
- zrb/builtin/generator/fastapp/template/_automate/snake_zrb_app_name/frontend.py +21 -27
- zrb/builtin/generator/fastapp/template/_automate/snake_zrb_app_name/image.py +23 -18
- zrb/builtin/generator/fastapp/template/_automate/snake_zrb_app_name/load_test.py +35 -36
- zrb/builtin/generator/fastapp/template/_automate/snake_zrb_app_name/local.py +68 -58
- zrb/builtin/generator/fastapp/template/_automate/snake_zrb_app_name/test.py +24 -38
- zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/deployment/__main__.py +23 -21
- zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/deployment/_common.py +72 -75
- zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/deployment/app_helper.py +70 -75
- zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/deployment/helm_postgresql_helper.py +18 -21
- zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/deployment/helm_rabbitmq_helper.py +11 -19
- zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/deployment/helm_redpanda_helper.py +18 -15
- zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/deployment/helm_signoz_helper.py +17 -21
- zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/docker-compose.yml +12 -12
- zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/loadtest/locustfile.py +10 -12
- zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/Dockerfile +1 -0
- zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/component/app.py +35 -30
- zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/component/app_lifespan.py +21 -17
- zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/component/app_state.py +3 -2
- zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/component/db_connection.py +18 -20
- zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/component/frontend_index.py +5 -6
- zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/component/log.py +7 -15
- zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/component/messagebus.py +38 -34
- zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/component/rpc.py +19 -18
- zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/config.py +68 -103
- zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/core/error.py +11 -10
- zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/core/messagebus/__init__.py +2 -4
- zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/core/messagebus/kafka/admin.py +38 -35
- zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/core/messagebus/kafka/consumer.py +38 -45
- zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/core/messagebus/kafka/publisher.py +26 -29
- zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/core/messagebus/messagebus.py +8 -14
- zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/core/messagebus/mock.py +12 -8
- zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/core/messagebus/rabbitmq/admin.py +37 -44
- zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/core/messagebus/rabbitmq/consumer.py +42 -67
- zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/core/messagebus/rabbitmq/publisher.py +32 -55
- zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/core/model/repo_model.py +11 -10
- zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/core/repo/__init__.py +2 -2
- zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/core/repo/db_entity_mixin.py +3 -6
- zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/core/repo/db_repo.py +76 -83
- zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/core/repo/repo.py +5 -5
- zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/core/repo/search_filter.py +1 -0
- zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/core/rpc/__init__.py +1 -1
- zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/core/rpc/messagebus/caller.py +17 -19
- zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/core/rpc/messagebus/server.py +14 -18
- zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/core/rpc/rpc.py +15 -28
- zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/core/schema/__init__.py +1 -1
- zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/core/schema/base_schema.py +6 -5
- zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/core/serializer/__init__.py +1 -3
- zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/core/serializer/serializer.py +3 -4
- zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/helper/async_task.py +3 -5
- zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/helper/conversion.py +10 -10
- zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/helper/migration.py +6 -10
- zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/migrate.py +3 -2
- zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/auth/api.py +7 -12
- zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/auth/component/__init__.py +4 -6
- zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/auth/component/access_token_scheme.py +9 -10
- zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/auth/component/access_token_util.py +6 -5
- zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/auth/component/authorizer.py +4 -4
- zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/auth/component/bearer_token_scheme.py +1 -1
- zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/auth/component/model/user_model.py +8 -10
- zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/auth/component/password_hasher.py +1 -1
- zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/auth/component/refresh_token_util.py +7 -6
- zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/auth/component/repo/group_repo.py +3 -8
- zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/auth/component/repo/permission_repo.py +3 -7
- zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/auth/component/repo/user_repo.py +3 -5
- zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/auth/component/user.py +12 -7
- zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/auth/core/__init__.py +7 -12
- zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/auth/core/access_token/scheme.py +7 -12
- zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/auth/core/access_token/util.py +20 -30
- zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/auth/core/authorizer/authorizer.py +1 -3
- zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/auth/core/authorizer/rpc_authorizer.py +5 -12
- zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/auth/core/password_hasher/bcrypt_password_hasher.py +3 -8
- zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/auth/core/password_hasher/password_hasher.py +0 -1
- zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/auth/core/refresh_token/util.py +15 -21
- zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/auth/entity/group/api.py +42 -49
- zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/auth/entity/group/model.py +3 -7
- zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/auth/entity/group/repo.py +18 -16
- zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/auth/entity/group/rpc.py +26 -41
- zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/auth/entity/permission/api.py +46 -51
- zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/auth/entity/permission/model.py +5 -7
- zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/auth/entity/permission/repo.py +11 -8
- zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/auth/entity/permission/rpc.py +28 -45
- zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/auth/entity/table.py +10 -10
- zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/auth/entity/user/api.py +60 -72
- zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/auth/entity/user/model.py +32 -61
- zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/auth/entity/user/repo.py +33 -36
- zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/auth/entity/user/rpc.py +42 -61
- zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/auth/event.py +2 -4
- zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/auth/migrate.py +3 -5
- zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/auth/register_module.py +11 -12
- zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/auth/register_permission.py +19 -26
- zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/auth/rpc.py +5 -13
- zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/auth/schema/group.py +6 -4
- zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/auth/schema/permission.py +3 -1
- zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/auth/schema/request.py +1 -0
- zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/auth/schema/token.py +2 -2
- zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/auth/schema/user.py +4 -3
- zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/log/api.py +4 -5
- zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/log/component/model/activity_model.py +3 -9
- zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/log/component/repo/activity_repo.py +3 -7
- zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/log/core/historical_repo_model.py +13 -13
- zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/log/entity/activity/api.py +22 -23
- zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/log/entity/activity/event.py +5 -7
- zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/log/entity/activity/model.py +2 -6
- zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/log/entity/activity/repo.py +8 -8
- zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/log/entity/activity/rpc.py +28 -45
- zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/log/entity/table.py +3 -3
- zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/log/event.py +4 -8
- zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/log/migrate.py +2 -4
- zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/log/register_module.py +10 -11
- zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/log/rpc.py +3 -5
- zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/log/schema/activity.py +3 -1
- zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/requirements.txt +12 -12
- zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/test/auth/test_group_crud.py +76 -106
- zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/test/auth/test_permission_crud.py +73 -103
- zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/test/auth/test_user_crud.py +92 -122
- zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/test/auth/test_user_login.py +107 -134
- zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/test/conftest.py +2 -2
- zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/test/test_liveness_and_readiness.py +8 -15
- zrb/builtin/generator/fastapp_crud/add.py +74 -79
- zrb/builtin/generator/fastapp_crud/helper.py +51 -48
- zrb/builtin/generator/fastapp_crud/task_factory.py +17 -14
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- zrb/builtin/generator/fastapp_crud/template/src/kebab-zrb-app-name/test/snake_zrb_module_name/test_snake_zrb_entity_name.py +68 -98
- zrb/builtin/generator/fastapp_field/add.py +143 -85
- zrb/builtin/generator/fastapp_field/helper.py +184 -125
- zrb/builtin/generator/fastapp_module/add.py +90 -67
- zrb/builtin/generator/fastapp_module/helper.py +141 -155
- zrb/builtin/generator/fastapp_module/template/src/kebab-zrb-app-name/src/module/snake_zrb_module_name/api.py +3 -2
- zrb/builtin/generator/fastapp_module/template/src/kebab-zrb-app-name/src/module/snake_zrb_module_name/entity/table.py +3 -3
- zrb/builtin/generator/fastapp_module/template/src/kebab-zrb-app-name/src/module/snake_zrb_module_name/event.py +3 -5
- zrb/builtin/generator/fastapp_module/template/src/kebab-zrb-app-name/src/module/snake_zrb_module_name/migrate.py +2 -4
- zrb/builtin/generator/fastapp_module/template/src/kebab-zrb-app-name/src/module/snake_zrb_module_name/register_module.py +10 -11
- zrb/builtin/generator/fastapp_module/template/src/kebab-zrb-app-name/src/module/snake_zrb_module_name/rpc.py +3 -5
- zrb/builtin/generator/pip_package/add.py +39 -40
- zrb/builtin/generator/pip_package/template/_automate/snake_zrb_package_name/local.py +30 -30
- zrb/builtin/generator/pip_package/template/src/kebab-zrb-package-name/src/snake_zrb_package_name/__init__.py +1 -0
- zrb/builtin/generator/pip_package/template/src/kebab-zrb-package-name/src/snake_zrb_package_name/__main__.py +1 -0
- zrb/builtin/generator/pip_package/template/src/kebab-zrb-package-name/src/snake_zrb_package_name/util.py +2 -2
- zrb/builtin/generator/plugin/create.py +39 -36
- zrb/builtin/generator/plugin/template/src/snake_zrb_package_name/__init__.py +1 -1
- zrb/builtin/generator/plugin/template/src/snake_zrb_package_name/__main__.py +1 -0
- zrb/builtin/generator/plugin/template/src/snake_zrb_package_name/task/example_task.py +6 -4
- zrb/builtin/generator/plugin/template/zrb_init.py +27 -27
- zrb/builtin/generator/project/create.py +38 -46
- zrb/builtin/generator/project/template/.flake8 +3 -0
- zrb/builtin/generator/project/template/project.sh +19 -10
- zrb/builtin/generator/project_task/task_factory.py +60 -61
- zrb/builtin/generator/project_task/template/_automate/_project/__init__.py +2 -2
- zrb/builtin/generator/project_task/template/_automate/_project/build_project_images.py +4 -4
- zrb/builtin/generator/project_task/template/_automate/_project/deploy_project.py +4 -4
- zrb/builtin/generator/project_task/template/_automate/_project/destroy_project.py +4 -4
- zrb/builtin/generator/project_task/template/_automate/_project/push_project_images.py +4 -4
- zrb/builtin/generator/project_task/template/_automate/_project/remove_project_containers.py +4 -4
- zrb/builtin/generator/project_task/template/_automate/_project/start_project.py +4 -4
- zrb/builtin/generator/project_task/template/_automate/_project/start_project_containers.py +4 -4
- zrb/builtin/generator/project_task/template/_automate/_project/stop_project_containers.py +4 -4
- zrb/builtin/generator/python_task/add.py +25 -33
- zrb/builtin/generator/python_task/template/_automate/snake_zrb_task_name.py +8 -7
- zrb/builtin/generator/simple_python_app/add.py +81 -75
- zrb/builtin/generator/simple_python_app/template/_automate/snake_zrb_app_name/_common.py +14 -15
- zrb/builtin/generator/simple_python_app/template/_automate/snake_zrb_app_name/container.py +46 -61
- zrb/builtin/generator/simple_python_app/template/_automate/snake_zrb_app_name/deployment.py +34 -32
- zrb/builtin/generator/simple_python_app/template/_automate/snake_zrb_app_name/image.py +19 -22
- zrb/builtin/generator/simple_python_app/template/_automate/snake_zrb_app_name/local.py +23 -25
- zrb/builtin/generator/simple_python_app/template/src/kebab-zrb-app-name/deployment/__main__.py +24 -32
- zrb/builtin/generator/simple_python_app/template/src/kebab-zrb-app-name/src/main.py +18 -14
- zrb/builtin/git.py +46 -46
- zrb/builtin/group.py +13 -34
- zrb/builtin/helper/reccuring_action.py +26 -29
- zrb/builtin/md5.py +17 -30
- zrb/builtin/process.py +19 -19
- zrb/builtin/project.py +13 -15
- zrb/builtin/say.py +69 -88
- zrb/builtin/schedule.py +15 -19
- zrb/builtin/ubuntu.py +44 -35
- zrb/builtin/update.py +5 -5
- zrb/builtin/version.py +3 -7
- zrb/builtin/watch_changes.py +24 -25
- zrb/config/config.py +19 -18
- zrb/helper/accessories/color.py +18 -6
- zrb/helper/accessories/icon.py +24 -3
- zrb/helper/accessories/name.py +120 -28
- zrb/helper/advertisement.py +9 -13
- zrb/helper/callable.py +2 -4
- zrb/helper/cli.py +27 -31
- zrb/helper/codemod/add_argument_to_function.py +3 -4
- zrb/helper/codemod/add_argument_to_function_call.py +4 -7
- zrb/helper/codemod/add_assert_resource.py +7 -7
- zrb/helper/codemod/add_function_call.py +3 -5
- zrb/helper/codemod/add_import_module.py +15 -26
- zrb/helper/codemod/add_key_value_to_dict.py +7 -10
- zrb/helper/codemod/add_property_to_class.py +10 -8
- zrb/helper/codemod/add_upstream_to_task.py +21 -33
- zrb/helper/codemod/append_code_to_function.py +6 -13
- zrb/helper/codemod/format_code.py +2 -1
- zrb/helper/default_env.py +25 -25
- zrb/helper/docker_compose/fetch_external_env.py +18 -18
- zrb/helper/docker_compose/file.py +5 -4
- zrb/helper/docstring.py +44 -47
- zrb/helper/env_map/fetch.py +7 -12
- zrb/helper/file/copy_tree.py +12 -17
- zrb/helper/file/match.py +6 -7
- zrb/helper/file/text.py +8 -6
- zrb/helper/git/detect_changes.py +9 -8
- zrb/helper/loader/load_module.py +14 -13
- zrb/helper/log.py +4 -3
- zrb/helper/map/conversion.py +4 -5
- zrb/helper/python_task.py +2 -4
- zrb/helper/render_data.py +25 -18
- zrb/helper/string/constant.py +2 -2
- zrb/helper/string/conversion.py +17 -16
- zrb/helper/string/jinja.py +2 -2
- zrb/helper/typecheck.py +6 -4
- zrb/helper/typing.py +10 -2
- zrb/helper/util.py +44 -40
- zrb/task/any_task.py +251 -251
- zrb/task/base_remote_cmd_task.py +76 -59
- zrb/task/base_task/base_task.py +95 -108
- zrb/task/base_task/component/base_task_model.py +73 -71
- zrb/task/base_task/component/common_task_model.py +42 -29
- zrb/task/base_task/component/pid_model.py +3 -5
- zrb/task/base_task/component/renderer.py +26 -36
- zrb/task/base_task/component/trackers.py +6 -9
- zrb/task/checker.py +14 -9
- zrb/task/cmd_task.py +102 -100
- zrb/task/decorator.py +19 -13
- zrb/task/docker_compose_task.py +127 -98
- zrb/task/flow_task.py +16 -19
- zrb/task/http_checker.py +40 -36
- zrb/task/notifier.py +50 -38
- zrb/task/parallel.py +3 -3
- zrb/task/path_checker.py +34 -27
- zrb/task/path_watcher.py +49 -40
- zrb/task/port_checker.py +33 -26
- zrb/task/recurring_task.py +36 -42
- zrb/task/remote_cmd_task.py +31 -28
- zrb/task/resource_maker.py +66 -52
- zrb/task/rsync_task.py +24 -21
- zrb/task/task.py +4 -3
- zrb/task/time_watcher.py +36 -31
- zrb/task_env/constant.py +1 -1
- zrb/task_env/env.py +33 -31
- zrb/task_env/env_file.py +24 -23
- zrb/task_group/group.py +27 -30
- zrb/task_input/any_input.py +18 -16
- zrb/task_input/base_input.py +26 -26
- zrb/task_input/bool_input.py +6 -6
- zrb/task_input/choice_input.py +11 -9
- zrb/task_input/constant.py +1 -1
- zrb/task_input/float_input.py +6 -5
- zrb/task_input/int_input.py +8 -8
- zrb/task_input/password_input.py +9 -9
- zrb/task_input/str_input.py +8 -8
- zrb/task_input/task_input.py +4 -2
- {zrb-0.6.0.dist-info → zrb-0.6.1.dist-info}/METADATA +3 -1
- {zrb-0.6.0.dist-info → zrb-0.6.1.dist-info}/RECORD +316 -315
- {zrb-0.6.0.dist-info → zrb-0.6.1.dist-info}/LICENSE +0 -0
- {zrb-0.6.0.dist-info → zrb-0.6.1.dist-info}/WHEEL +0 -0
- {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
|
-
|
9
|
-
|
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
|
-
|
14
|
-
|
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(
|
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,
|
21
|
-
TEMPLATE_ENV_FILE_NAME: str = os.path.join(APP_DIR,
|
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(
|
28
|
-
if BROKER_TYPE ==
|
29
|
-
BROKER_TYPE = TEMPLATE_ENV_MAP.get(
|
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(
|
32
|
-
RABBITMQ_AUTH_PASSWORD: str = os.getenv(
|
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 =
|
35
|
-
|
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
|
-
|
47
|
-
)
|
48
|
-
|
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
|
-
|
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[
|
66
|
-
|
67
|
-
|
68
|
-
env_map[
|
69
|
-
env_map[
|
70
|
-
env_map[
|
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] =
|
74
|
-
env_map[
|
75
|
-
env_map[
|
76
|
-
env_map[
|
77
|
-
env_map[
|
78
|
-
env_map[
|
79
|
-
env_map[
|
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] =
|
90
|
-
env_map[
|
91
|
-
env_map[
|
92
|
-
env_map[
|
93
|
-
env_map[
|
94
|
-
env_map[
|
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] =
|
108
|
+
env_map[env_name] = "true"
|
108
109
|
continue
|
109
|
-
env_map[env_name] =
|
110
|
-
env_map[
|
111
|
-
env_map[
|
112
|
-
env_map[
|
113
|
-
env_map[
|
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
|
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
|
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
|
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(
|
134
|
+
return NON_ALPHA_NUM.sub(" ", text)
|
@@ -1,92 +1,97 @@
|
|
1
|
-
|
2
|
-
from
|
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
|
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(
|
12
|
-
app_monolith_replica = int(os.getenv(
|
13
|
-
app_monolith_labels = {
|
14
|
-
app_gateway_replica = int(os.getenv(
|
15
|
-
app_gateway_labels = {
|
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(
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
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(
|
39
|
-
f
|
40
|
-
)
|
41
|
-
app_service_env_map = get_app_service_env_map(
|
42
|
-
|
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(
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
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=
|
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=
|
89
|
+
resource_name="kebab-zrb-app-name",
|
85
90
|
app_labels=app_monolith_labels,
|
86
91
|
app_port=app_port,
|
87
|
-
service_type=
|
92
|
+
service_type="LoadBalancer",
|
88
93
|
service_port=app_port,
|
89
|
-
service_port_protocol=
|
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 =
|
152
|
+
service_type: str = "LoadBalancer",
|
156
153
|
service_port: int = 8080,
|
157
|
-
service_port_protocol: str =
|
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
|
zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/deployment/helm_postgresql_helper.py
CHANGED
@@ -1,35 +1,32 @@
|
|
1
|
-
from pulumi_kubernetes.helm.v3 import Chart, LocalChartOpts
|
2
1
|
from _common import (
|
3
|
-
NAMESPACE,
|
4
|
-
|
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
|
-
|
13
|
+
"postgresql",
|
11
14
|
LocalChartOpts(
|
12
|
-
path=
|
15
|
+
path="./helm-charts/postgresql",
|
13
16
|
namespace=NAMESPACE,
|
14
17
|
values={
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
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
|
zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/deployment/helm_rabbitmq_helper.py
CHANGED
@@ -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
|
-
|
7
|
+
"rabbitmq",
|
10
8
|
LocalChartOpts(
|
11
|
-
path=
|
9
|
+
path="./helm-charts/rabbitmq",
|
12
10
|
namespace=NAMESPACE,
|
13
11
|
values={
|
14
|
-
|
15
|
-
|
16
|
-
|
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
|
zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/deployment/helm_redpanda_helper.py
CHANGED
@@ -1,32 +1,35 @@
|
|
1
|
-
from pulumi_kubernetes.helm.v3 import Chart, LocalChartOpts
|
2
1
|
from _common import (
|
3
|
-
NAMESPACE,
|
4
|
-
|
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
|
-
|
13
|
+
"redpanda",
|
11
14
|
LocalChartOpts(
|
12
|
-
path=
|
15
|
+
path="./helm-charts/redpanda",
|
13
16
|
namespace=NAMESPACE,
|
14
17
|
values={
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
18
|
+
"auth": {
|
19
|
+
"sasl": {
|
20
|
+
"enabled": REDPANDA_AUTH_SASL_ENABLED,
|
21
|
+
"mechanism": REDPANDA_AUTH_MECHANISM,
|
22
|
+
"users": [
|
20
23
|
{
|
21
|
-
|
22
|
-
|
23
|
-
|
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
|
zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/deployment/helm_signoz_helper.py
CHANGED
@@ -1,35 +1,31 @@
|
|
1
|
-
from pulumi_kubernetes.helm.v3 import Chart, LocalChartOpts
|
2
1
|
from _common import (
|
3
|
-
NAMESPACE,
|
4
|
-
|
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
|
-
|
12
|
+
"signoz",
|
11
13
|
LocalChartOpts(
|
12
|
-
path=
|
14
|
+
path="./helm-charts/signoz",
|
13
15
|
namespace=NAMESPACE,
|
14
16
|
values={
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
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
|