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.15rc6-py3-none-any.whl (10.9 kB view details)

Uploaded Python 3

File details

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

File metadata

File hashes

Hashes for pants_py_deploy-0.0.15rc6-py3-none-any.whl
Algorithm Hash digest
SHA256 e97020cb696a5d61c2f4765b84f045ecee899fb801b98db7da1961ea61a7bbb4
MD5 18700b56cdb236eead0f3342f29fdae3
BLAKE2b-256 1ddb35b38832ac2ea6ee9339dd509732954c1d3c273f22862f98927bb68c23ca

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