Skip to main content

Companion library for 12-factor app support in Charmcraft & Rockcraft.

Project description

PaaS Charm

Easily deploy and operate your Flask or Django applications and associated infrastructure, such as databases and ingress, using open source tooling. This lets you focus on creating applications for your users backed with the confidence that your operations are taken care of by world class tooling developed by Canonical, the creators of Ubuntu.

Have you ever created an application and then wanted to deploy it for your users only to either be forced to use a proprietary public cloud platform or manage the deployment and operations yourself? PaaS Charm will take your application and create an OCI image using Rockcraft and operations code using Charmcraft for you. The full suite of tools is open source so you can see exactly how it works and even contribute! After creating the app charm and image, you can then deploy your application into any Kubernetes cluster using Juju. Need a database? Using Juju you can deploy a range of popular open source databases, such as PostgreSQL or MySQL, and integrate them with your application with a few commands. Need an ingress to serve traffic? Use Juju to deploy and integrate a range of ingresses, such as Traefik, and expose your application to external traffic in seconds.

Getting Started

There are 2 requirements for the flask application:

  • There is a requirements.txt file in the project root
  • The WSGI path is app:app

Make sure that you have the latest/edge version of Charmcraft and Rockcraft installed:

sudo snap install charmcraft --channel latest/edge --classic
sudo snap install rockcraft --channel latest/edge --classic

Both have the flask-framework profile to create the required files and include the flask-framework extension which will do all the hard operational work for you and you just need to fill in some metadata in the rockcraft.yaml and charmcraft.yaml files. To create the necessary files:

rockcraft init --profile flask-framework
mkdir charm
cd charm
charmcraft init --profile flask-framework

After packing the rock and charm using rockcraft pack and charmcraft pack and uploading the rock to a k8s registry, you can juju deploy your flask application, integrate it with ingress and start serving traffic to your users!

Read the comprehensive getting started tutorial for more!

Additional resources:

Documentation

The 12-Factor framework support documentation provides guidance and learning material about the tooling, getting started, customization, and usage. The documentation is hosted on Read the Docs.

Build the 12-Factor app support documentation located in this repository:

cd docs
make run

If you have any documentation-related comments, issues, or suggestions, please open an issue or pull request in this repository, or reach out to us on Matrix.

Additional resources:

Contributing

Is there something missing from the 12-Factor app support framework? We welcome contributions! See CONTRIBUTING.md for more details.

Reach out to us on Matrix with your questions and use cases.

Project details


Download files

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

Source Distribution

paas_charm-1.9.1.tar.gz (66.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

paas_charm-1.9.1-py3-none-any.whl (84.7 kB view details)

Uploaded Python 3

File details

Details for the file paas_charm-1.9.1.tar.gz.

File metadata

  • Download URL: paas_charm-1.9.1.tar.gz
  • Upload date:
  • Size: 66.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for paas_charm-1.9.1.tar.gz
Algorithm Hash digest
SHA256 285a8b79896808199729f723f9f8df0d9da49ad2e789a2025ff0f0017f565cc4
MD5 1834dcf6169ef74d233f76300725c8bc
BLAKE2b-256 29414c5eb7d5164134ac6abb8953397f5bbc717ccf28c856d0211dea3ef2d0bc

See more details on using hashes here.

Provenance

The following attestation bundles were made for paas_charm-1.9.1.tar.gz:

Publisher: release.yaml on canonical/paas-charm

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file paas_charm-1.9.1-py3-none-any.whl.

File metadata

  • Download URL: paas_charm-1.9.1-py3-none-any.whl
  • Upload date:
  • Size: 84.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for paas_charm-1.9.1-py3-none-any.whl
Algorithm Hash digest
SHA256 99f70ba9b45cd5b9ce6642616ed888803aef1984580e6249a9cbec8170867cdf
MD5 1cf487dcac5a6434ad1221e23673a032
BLAKE2b-256 4b40501a124034c9fb5ba95605a9ae508837a8d637e7793fb9c2811449a9f1cb

See more details on using hashes here.

Provenance

The following attestation bundles were made for paas_charm-1.9.1-py3-none-any.whl:

Publisher: release.yaml on canonical/paas-charm

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

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