Pants py_deploy plugin
- Purpose: Make it easy to maintain docker-compose files and helm-charts across projects
- Goals
- Support updating services.{service_name}.
environmentby scanning source codeportsby scanning source code
- Support updating {chart}/
values.yaml{deployment|statefulset}.yaml
- Use Pantsbuild pants to write a plugin that can be pip installed
- Then invoking it should be
pants fix :: - Less pants boilerplate and support multi-platform (arm+amd) with a macro
- Enabling docker-compose|helm-chart templates by using the macro and adding fields to pex_binary
- Support updating services.{service_name}.
Draft api
BUILDfile
py_deploy(
name="app-name",
entrypoint=package_name,
docker={},
helm={},# support more config in the future
)
- generates
- 4
pex_binarytargets- Each platform has one
pex_binaryfor sources and onepex_binaryfor requirements
- Each platform has one
- 2
docker_imagetargets- Both pex_binaries are copied, copies requirements 1st to take advantage of docker build cache
- 1
helm_chartwith aresourceof all the files u
- 4
- Usage in
pants publish ::- docker and helm repository =
app-name - tags:,
app-name-amd,app-name-arm,app-name-chart
- docker and helm repository =
- Usage in
pants fix ::docker-compose.yamlfile &chart/*are create if they don't exist- if they exist: ensure environment & ports are up-to-date
Later ideas
- support analyzing env-vars and using them for adding services like postgres/rabbitmq/mongo etc. to the docker-compose file
Metadata
Release files for pants-py-deploy 0.0.29
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| pants_py_deploy-0.0.29-py3-none-any.whl | Python 3 | none | any | Details |
Release files / pants_py_deploy-0.0.29-py3-none-any.whl
| Download URL | pants_py_deploy-0.0.29-py3-none-any.whl |
|---|---|
| Size | 12.4 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
8992a0d05a9e7b0f38c1c40aacc0c83091ccd8f83e7136495b3f3a68ec570416
|
|
BLAKE2b-256 checksum How to use checksums |
826e18509e3211f6502a7d5a4e610c44b94c49497a8bda5d156bd346722e236f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/4.0.2 CPython/3.9.17
|