{"id":26059803,"url":"https://github.com/orange-cloudfoundry/mongodb-boshrelease","last_synced_at":"2026-02-09T13:31:45.437Z","repository":{"id":48723375,"uuid":"103942327","full_name":"orange-cloudfoundry/mongodb-boshrelease","owner":"orange-cloudfoundry","description":null,"archived":false,"fork":false,"pushed_at":"2025-07-12T01:51:14.000Z","size":725,"stargazers_count":6,"open_issues_count":7,"forks_count":8,"subscribers_count":8,"default_branch":"master","last_synced_at":"2025-07-29T00:29:33.545Z","etag":null,"topics":["bosh","bosh-release","cloudfoundry","mongodb","mongodb-broker","osbapi"],"latest_commit_sha":null,"homepage":null,"language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/orange-cloudfoundry.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2017-09-18T13:26:38.000Z","updated_at":"2025-04-04T15:07:45.000Z","dependencies_parsed_at":"2025-04-11T06:50:59.469Z","dependency_job_id":"31781feb-24d8-43f0-a8d0-08c889317784","html_url":"https://github.com/orange-cloudfoundry/mongodb-boshrelease","commit_stats":null,"previous_names":[],"tags_count":19,"template":false,"template_full_name":null,"purl":"pkg:github/orange-cloudfoundry/mongodb-boshrelease","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/orange-cloudfoundry%2Fmongodb-boshrelease","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/orange-cloudfoundry%2Fmongodb-boshrelease/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/orange-cloudfoundry%2Fmongodb-boshrelease/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/orange-cloudfoundry%2Fmongodb-boshrelease/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/orange-cloudfoundry","download_url":"https://codeload.github.com/orange-cloudfoundry/mongodb-boshrelease/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/orange-cloudfoundry%2Fmongodb-boshrelease/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29266921,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-09T12:53:16.161Z","status":"ssl_error","status_checked_at":"2026-02-09T12:52:30.244Z","response_time":56,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["bosh","bosh-release","cloudfoundry","mongodb","mongodb-broker","osbapi"],"created_at":"2025-03-08T13:28:30.085Z","updated_at":"2026-02-09T13:31:45.422Z","avatar_url":"https://github.com/orange-cloudfoundry.png","language":"Shell","readme":"# \u003cp style=\"text-align:center\"\u003eMongodb Bosh Release\u003c/p\u003e\n\n## Contents\n\n  * [Purpose](#purpose)\n  * [What should the Release do](#what-should-the-release-do)\n  * [Packages versions summary](#packages-versions-summary)\n  * [Installation](#installation)\n    + [Clone the repository](#clone-the-repository)\n    + [Deployment manifests](#deployment-manifests)\n      - [Variables](#variables)\n    + [Operation files](#operation-files)\n    + [Deployment](#deployment)\n  * [Broker](#broker)\n    + [Mongodb Broker](#mongodb-broker-broker-job)\n    + [Mongodb Broker Smoke Tests](#mongodb-broker-smoke-tests-broker-smoke-tests-job)\n  * [Configuring CF to use Mongodb service](#configuring-cf-to-use-mongodb-service)\n    + [Available Plans](#available-plans)\n    + [Broker registration](#broker-registration)\n    + [Service provisioning](#service-provisioning)\n    + [Service binding](#service-binding)\n    + [Service unbinding](#service-unbinding)\n    + [Service deprovisioning](#service-deprovisioning)\n  * [Contributing](#contributing)\n    + [Ruby Env Setup](#ruby-env-setup)\n\n## Purpose\n\nThis project is a [Mongodb](https://www.mongodb.com) [Bosh](http://bosh.io) release.\nThe blobs are the provided ones from the mongodb community and are not compiled anymore. So the release can now only be deployed on an ubuntu stemcell.\n\nThis version exclude the rocksdb engine, which is not supported anymore. \n\n## What should the Release do\n\n\u003e \n* Configure a standalone or a set of standalone servers\n* Configure a replica set \n* Configure a sharded cluster including config server and mongos\n* Complete requirements for mongodb servers ([production notes](https://docs.mongodb.org/manual/administration/production-notes/))\n* Install mongodb component (shell / tools / mongod)\n* Authentification using bosh/credhub generated passwords (could be disable)\n\n## Packages versions summary\n\n* Mongodb database and modules version\n\n| Package         | Version     | Note                  |\n| --------------- | ----------- | --------------------- |\n| mongodb         | `3.6.12`    |                       |\n| ~~mongo-rocks~~ | ~~`3.4.7`~~ | Not supported anymore |\n| mongo-tools     | `3.6.12`    |                       |\n| ~~rocksdb~~     | ~~`3.4.7`~~ | Not supported anymore |\n\n\n## Installation\n\n### Clone the repository\n\n```sh\ngit clone --recursive https://github.com/orange-cloudfoundry/mongodb-boshrelease.git\n```\n\n### Deployment manifests\n\nTwo different base manifests are provided for single replicaset or sharded deployment and can be found in the `manifests` directory\n\n#### Variables\n\nRelease include a `deployment-vars-template.yml` file, which includes all the needed variables for  the deployment. Just copy and fill the variables for your needs.\n\n\n\n### Operation files\n\nThe release provides a set of operation files to enable or disable features. Operation files are located in the `operations`directory. This folder contains commons opsfiles and two subdirectories for sharding and replicaset  \n\n| Ops file                                      | feature                                                      | needed variable                                              | dependecies                                                  |\n| --------------------------------------------- | ------------------------------------------------------------ | ------------------------------------------------------------ | ------------------------------------------------------------ |\n| **rename-azs.yml**                            | *use specific azs*                                           | azs-list                                                     |                                                              |\n| **use-specific-mongodb-release.yml**          | *use a named uploaded mongodb release version instead of the latest one* | mongodb-release-version                                      |                                                              |\n| **use_mmapv1.yml**                            | *use mmapv1 engine instead of wiredtiger default*            |                                                              |                                                              |\n| **use-trusty.yml**                            | *use an ubuntu trusty stemcell instead of the xenial default* |                                                              |                                                              |\n| **use-specific-stemcell.yml**                 | *Use a specifically named stemcell version instead of the latest one* | stemcell-version                                             |                                                              |\n| **enable-mongodb-acceptance-test.yml**        | *Deploy the acceptance tests errand*                         | accept_vm_type                                               |                                                              |\n| **enable-mongodb-broker.yml**                 |                                                              | broker_vm_type\u003cbr /\u003ebroker_persistent_disk_type\u003cbr /\u003ebroker_catalog_yml |                                                              |\n| **enable-mongodb-broker-route-registrar.yml** |                                                              | cf.nats_host\u003cbr /\u003ecf.nats_password\u003cbr /\u003ecf.system_domain     | enable-mongodb-broker.yml                                    |\n| **enable-mongodb-broker-smoke-tests.yml**     |                                                              |                                                              | enable-mongodb-broker.yml\u003cbr /\u003eenable-mongodb-broker-route-registrar.yml |\n| **rename-broker-network.yml**                 | *use a specific network for the broker instead of the default one* |                                                              | enable-mongodb-broker.yml                                    |\n| **enable-prometheus-exporter.yml**            | *deploy the prometheus mongodb exporter from prometheus-addons bosh release* | clustermonitor_username                                      |                                                              |\n|                                               |                                                              |                                                              |                                                              |\n\n**Note that operations directory include some others opsfiles like ssl ones that are not fully tested yet and should not be use**\n\n### Deployment\n\n```sh\nbosh create-release\nbosh upload-release\nbosh -d [deployment name] -n deploy manifests/manifest[rs|shard].yml \u003c-o operations/[operation file name] -o ...\u003e -l \u003cdeployment-vars-file\u003e \u003c--vars-store=credentials.yml \u003e\n```\n*--vars-store=credentials.yml is uneeded if you are using credhub*\n\n## Broker\n\n### Mongodb Broker (broker job)\n\nThe mongodb broker implements the 5 REST endpoints required by Cloud Foundry to write V2 services : \n* Catalog management in order to register the broker to the platform\n* Provisioning in order to create resource in the mongodb server\n* Deprovisioning in order to release resource previously allocated\n* Binding (credentials type) in order to provide application with a set of information required to use the allocated service\n* Unbinding in order to delete credentials resources previously allocated\n\n### Mongodb Broker Smoke Tests (broker-smoke-tests job)\n\nThe mongodb broker smoke test acts as an end user developper who wants to host its application in a cloud foundry.\n\nFor that, it relies on a sample mongodb application : https://github.com/JCL38-ORANGE/cf-mongodb-example-app\n\nThe following steps are performed by the smoke tests job : \n* Authentication on Cloud Foundry by targeting org and space (cf auth and cf target)\n* Deployment of the sample mongodb application (cf push)\n* Provisioning of the service (cf create-service)\n* Binding of the service (cf bind-service)\n* Restaging of the sample mongodb application (cf restage)\n* Table creation in the mongodb cluster (HTTP POST command to the sample mongodb application)\n* Table deletion in the mongodb cluster (HTTP DELETE command to the sample mongodb application)\n\n## Configuring CF to use Mongodb service\n\n### Available Plans\n\nFor the moment, only 1 default plan available for shared Mongodb.\n\n### Broker registration\n\nThe broker uses HTTP basic authentication to authenticate clients. The `cf create-service-broker` command expects the credentials for the cloud\ncontroller to authenticate itself to the broker. \n\n```bash\ncf create-service-broker p-mongodb-broker \u003cuser\u003e \u003cpassword\u003e \u003curl\u003e \ncf enable-service-access mongodb\n```\n\n### Service provisioning\n\n```bash\ncf create-service mongodb default mongodb-instance\n```\n\n### Service binding\n\n```bash\ncf bind-service mongodb-example-app mongodb-instance\n```\n### Service unbinding\n\n```bash\ncf unbind-service mongodb-example-app mongodb-instance\n```\n### Service deprovisioning\n\n```bash\ncf delete-service mongodb-instance\n```\n\n## Contributing\n\n### Ruby Env Setup\n\nThis my setup:\n\n    brew install ruby-build chruby\n    ruby-build 2.4.2 --install-dir ~/.rubies/ruby-2.4.2\n    gem update --system\n    gem install bundler\n    bundle install\n\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Forange-cloudfoundry%2Fmongodb-boshrelease","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Forange-cloudfoundry%2Fmongodb-boshrelease","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Forange-cloudfoundry%2Fmongodb-boshrelease/lists"}