Skip to main content

Make it easy to maintain docker-compose files and helm-charts across projects with pants-py-deploy

Project description

Pants py_deploy plugin

  • Purpose: Make it easy to maintain docker-compose files and helm-charts across projects
  • Goals
    • Support updating services.{service_name}.
      • environment by scanning source code
      • ports by 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

Draft api

  • BUILD file
py_deploy(
    name="app-name",
    entrypoint=package_name,
    docker={},
    helm={},# support more config in the future
)
  • generates
    • 4 pex_binary targets
      • Each platform has one pex_binary for sources and one pex_binary for requirements
    • 2 docker_image targets
      • Both pex_binaries are copied, copies requirements 1st to take advantage of docker build cache
    • 1 helm_chart with a resource of all the files u
  • Usage in pants publish ::
    • docker and helm repository = app-name
    • tags:, app-name-amd, app-name-arm, app-name-chart
  • Usage in pants fix ::
    • docker-compose.yaml file & 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

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distribution

pants_py_deploy-0.0.23-py3-none-any.whl (11.6 kB view details)

Uploaded Python 3

File details

Details for the file pants_py_deploy-0.0.23-py3-none-any.whl.

File metadata

File hashes

Hashes for pants_py_deploy-0.0.23-py3-none-any.whl
Algorithm Hash digest
SHA256 0d673509f40c4708a0052bebfc74d04f4f05389dc080272b6cfdd69253160ea0
MD5 a6638b771bbcfbaefa95f4a30af076ce
BLAKE2b-256 776223f69a1d171e9ce0b0e76fef596a7bb906ab62294815f306f5594f20adec

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page