Skip to main content

Kubernetes Broker for MongoDB Atlas Cloud provider

Project description

Atlas Broker for Kubernetes Service Catalog

Code documentation (sphinx)

Docker

The docker folder provides everything to create an image that will serve Service Catalog requests in Kubernetes.

Atlasbroker module

Installation

This package is available for Python 3.5+.

pip3 install atlasbroker

Or install the development version from github:

pip3 install git+https://github.com/mickybart/python-atlasbroker.git

Prerequisite

Examples in this README are using the secret.json file to inject Atlas and Mongo credentials. Of course you can use any other solution provided by your infrastructure.

# Secrets structure
#
secrets = {
    "mongo" : {
        "uri": "",
        "db": "",
        "timeoutms": 5000,
        "collection" : ""
    },
    "atlas" : {
        "user": "",
        "password" : "",
        "group" : ""
    }
}

Quick start

from atlasbroker.broker import Broker
from atlasbroker.config import Config

secrets = Config.load_json("secret.json")

config = Config(secrets["atlas"], secrets["mongo"])

Broker(config).run()

Custom Config

The class Config is the main way to customize the broker. All important functions like generate credentials, database name, permissions of the database user, UUID, etc are exposed on this class.

Please read the Code documentation for more details.

from atlasbroker.broker import Broker
from atlasbroker.config import Config

secrets = Config.load_json("secret.json")

class CustomConfig(Config):
    PARAMETER_NAMESPACE="ns"

    def generate_binding_username(self, binding):
        return binding.binding_id + '-rw'

    def generate_instance_dbname(self, instance):
        return instance.parameters[self.PARAMETER_NAMESPACE]

config = CustomConfig(secrets["atlas"], secrets["mongo"])

Broker(config).run()

Error Types

Exceptions

  • ErrClusterNotFound

    Cluster not found

  • ErrClusterConfig

    Cluster configuration not found

  • ErrStorageMongoConnection

    The storage is not able to communicate with MongoDB

  • ErrStorageTypeUnsupported

    Type unsupported

  • ErrStorageRemoveInstance

    Failed to remove the instance

  • ErrStorageRemoveBinding

    Failed to remove the binding

  • ErrStorageStore

    Failed to store the instance or binding

  • ErrStorageFindInstance

    Failed to find the instance

  • ErrPlanUnsupported

    Plan not supported

Internal Notes

Code documentation (sphinx)

Bugs or Issues

Please report bugs, issues or feature requests to Github Issues

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

atlasbroker-2.0.0-py3-none-any.whl (18.1 kB view details)

Uploaded Python 3

File details

Details for the file atlasbroker-2.0.0-py3-none-any.whl.

File metadata

File hashes

Hashes for atlasbroker-2.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 7f9529495155496d96d1aa9ef4bb985bad23c0f48bdb3d1a6f6c3f0e07edc009
MD5 d7106b0a27e61188f111b1a2fe3d7d5d
BLAKE2b-256 b39aa0ba7e3304a2e2543e92c98e76f6eeffabbd5d6ecb0380233148deaef8be

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