Self-service onboarding and management platform for your cloud projects.
Project description
Cloud Projects for Django
A pluggable Django web application for onboarding and managing applications and microservices on cloud platforms, the DevOps (DevSecOps) way.
Who Should Use This Application
Any sufficiently large organization runs a significant amount of software on modern cloud infrastructure nowadays, either in public clouds or on premise, in a private cloud. Onboarding this software, typically microservice or monolithic applications, is far from trivial though, especially on premise or with hybrid clouds. Unlike public clouds, which usually have onboarding processes well-defined for single applications, corporate environments run highly custom processes.
Cloud Projects allows organizations to build a self-service infrastructure that can be used by system engineers to automate parts of their usually manual onboarding activities and monitor the progress of those slow-moving activities. Mature agile organizations can even allow software development agencies to service themselves entirely and request corporate project management, DevOps and security specialists to support their engineering workforce through Cloud Projects.
Features
Mature software development capabilities (Django Web framework)
Pluggable infrastructure for flexible application development (Django apps)
Usable defaults and easy configuration (Django settings)
Installation
The easiest way to install django-cloudprojects is with pip:
pip install django-cloudprojects
SAML support is available as an installation option:
pip install django-cloudprojects[saml]
Note that SAML support requires additional libraries installed on your target system, e.g. for Debian/Ubuntu- and RedHat/CentOS-based systems:
sudo apt-get install libxml2-dev libxmlsec1-dev libxmlsec1-openssl
sudo yum install libxml2-devel xmlsec1-devel xmlsec1-openssl-devel libtool-ltdl-devel
Basic Usage
In your Django project settings, add cloudprojects and its dependencies to INSTALLED_APPS, optionally omitting the authentication providers you don’t intend to use, add the required authentication backends for Allauth and the Django Admin, and make sure SITE_ID is defined, e.g.
INSTALLED_APPS = [
'django.contrib.auth',
'django.contrib.messages',
'django.contrib.sites',
...
# 'django_saml',
'allauth',
'allauth.account',
'allauth.socialaccount',
# 'allauth.socialaccount.providers.bitbucket_oauth2',
# 'allauth.socialaccount.providers.github',
'allauth.socialaccount.providers.gitlab',
'cloudprojects',
]
AUTHENTICATION_BACKENDS = [
'django.contrib.auth.backends.ModelBackend',
'django_saml.backends.SamlUserBackend',
'allauth.account.auth_backends.AuthenticationBackend',
]
SITE_ID = 1
Add cloudprojects to your project’s urls module, e.g.
urlpatterns = [
...
path('', include('cloudprojects.urls')),
]
In your Django project settings, configure the authentication providers as described in the Allauth documentation, e.g.
SOCIALACCOUNT_PROVIDERS = {
'github': {
'GITHUB_URL': 'https://github.enterprise.local',
'SCOPE': ['api'],
},
'gitlab': {
'GITLAB_URL': 'https://gitlab.selfhosted.local',
'SCOPE': ['api'],
},
}
Register the authentication apps with your VCS services as described in the Allauth documentation:
We recommend writing a management command to automatically configure those values during deployment. See our test project for a suggestion on how an implementation may look like.
If you intend to use SAML you need to add all required settings to your project’s Django settings, as described in the python3-saml-django docs.
Development
You may use the included test project for developing interactively, e.g.
pip install .[saml]
pip install pip-tools tox
pip-compile # generates requirements.txt
Set DEBUG = True in Django settings to persist changes in a local database, e.g.
export DJANGO_DEBUG=true
tests/testproject/manage.py migrate
tests/testproject/manage.py runserver
Run the tests using Tox, e.g.
tox -lv
tox -e flake8,py39-django40
tox -e clean
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for django-cloudprojects-0.3.0.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | 24180557f5761c974de1201b6e3fd90a8fb64a063afd1ef51222ae21e665627f |
|
MD5 | 9c2e101d1722111f2174b23a38c76345 |
|
BLAKE2b-256 | 5079620c9b643c3f8154e852aee437e3db46db78c8ecc9cdba9d48128223f9b9 |
Hashes for django_cloudprojects-0.3.0-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8a54ec13310b5da8fe84745f939ae1c1d313f24e4f8e8a247e982d3c285f58f7 |
|
MD5 | 297c04088270cfef1ec3b33d323c7f98 |
|
BLAKE2b-256 | 9dbbef8f61a5b145b7da718caf91a2eaed7d6b4cc54f2b5b964db83a87b6a93b |