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 passing env_config=dict(ignore_globs=[], include_globs=[])
  • 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.15rc7-py3-none-any.whl (10.9 kB view details)

Uploaded Python 3

File details

Details for the file pants_py_deploy-0.0.15rc7-py3-none-any.whl.

File metadata

File hashes

Hashes for pants_py_deploy-0.0.15rc7-py3-none-any.whl
Algorithm Hash digest
SHA256 c05789f93410122dbcbf1c8838fade9b0618158e98e9aa55689ee8497556d8a7
MD5 e5e5f1149fafd1291f27bdf1d4710a0b
BLAKE2b-256 693d7f238357dea1f9bd82271c22a5a116df461a47cd211778c00273f94ca660

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