Commit Graph

28 Commits

Author SHA1 Message Date
Vanshdeep Singh c7503f5689 Problem: Support for latest Tendermint missing (#2375)
Solution: Upgrade to py-abci 0.5.1 to use latest Tendermint
2018-07-10 14:16:02 +02:00
Troy McConaghy 241db4ee48 Problem: backlog_reassign_delay is defunct but still listed (#2332)
* Fixed 2 PEP257 compliance errors

* Upgrade Tendermint to 0.19.7 except for Docker image, which is still at 0.19.2

* Problem: backlog_reassign_delay is defunct but still listed

Solution: remove all mentions of & calls for backlog_reassign_delay
2018-06-04 12:19:24 +02:00
Ahmed Muawia Khan 82e3f21c9a Merge branch 'alpha-3' 2018-05-02 16:35:49 +02:00
Ahmed Muawia Khan 5ce0538c61 Problem: Old --p2p.seeds is now --p2p.persistent_peers (#2249)
Solution
As per Tendermint 0.16.0 , --p2p.seeds is now --p2p.persistent_peers. Update bigchaindb/tendermint container to use that configuration. Also disable --p2p.pex, we currently don't want the peer exchange.
2018-04-30 17:42:14 +02:00
Ahmed Muawia Khan dbabe94887 Problem: BigchainDB and Tendermint inconsistencies because disjoint services (#2242)
Solution
Since BigchainDB and Tendermint are so tightly coupled we need to introduce a process supervisor to make them act like a single microservice, so that if BigchainDB crashes, Tendermint does as well and both are restarted and Tendermint requests a connection towards the proxy app.

In Kubernetes, they can be exposed as part of a one POD.
For BigchainDB as a system service/process, we need to introduce a process supervisor such as systemd.
This PR only solves the former.

Changes
Upgrade deployment from Tendermint v0.12.0 to v0.19.0
Update some documentation
Fix nginx-http entrypoint issues.
Update generate-configs.sh script to handle config generation without https-certificates.
Update Dockerfile to process dependency links introduced by abci
Integrate BigchainDB and Tendermint as a single microservice.
This required making BigchainDB to be exposed as a statefulset.
Introduce new liveness probe checks.
Issues Resolved
Partially fixes #2232
2018-04-27 15:54:47 +02:00
Ahmed Muawia Khan 119420785d
Problem: Kubernetes template broken for threescale/apicast deployment (#2206) 2018-04-26 11:37:41 +02:00
Ahmed Muawia Khan 339078ae68 Address comments
- remove confusion between NODE-IP<->CLUSTER-IP just replace with IP
- remove confusion between node<->cluster just replace with Kubernetes
  cluster
2018-03-26 15:37:05 +02:00
Ahmed Muawia Khan 757b4fc14c Remove cluster-dns 2018-03-20 19:34:01 +01:00
Ahmed Muawia Khan 0125368d8e Problem: K8s deployment with Access Token Authorization expects Access Token for GET calls and others (#2134)
* Fix for access token authorization for GET calls

- Naming inconsistency for cluster-fqdn causing issues
- Change cluster-frontend-port to node-frontend-port

* Change hardcoded 9984 to configurable
2018-03-15 16:20:15 +01:00
Ahmed Muawia Khan d977753831 Automate MongoDB user creation for prod/test deployments
- Currently, we had to manually log into the MongoDB container
  and create users, this change will configure the relevant users
  from a single script `configure_mdb.sh`
- Improvements can be done but keeping it minimal for the workshop
2018-02-26 03:37:43 +01:00
Shahbaz Nazir 0ddfc62e3b
Problem: No authorization mode without threescale (#2088)
Problem
The current production deployment template uses 3scale to ensure that POST requests to the network (from anyone) only get through if they come from a client with an account (app_id and app_key).

A private network wants to launch so that all HTTP requests (POST and GET) sent to the nodes in the network get be dropped unless they come from a small set of known (and unchanging) clients/sources. They don't need 3scale. They will want a modified version of the production deployment template.

Solution
Generate a special HTTP header and share it with all the known clients/sources.
Have a single NGINX in each node which checks for that HTTP header value. If it's present, let the request pass through to the network. (HTTP headers are encrypted if HTTPS is used.)
Are there other simpler or better options?
2018-02-23 16:00:36 +01:00
muawiakh 1a0c165487 Address comments
- Keep only tendermint specific files, remove reference to older
  deployment strategy
- Update Bigchaindb Dockerfile
2018-02-01 13:02:39 +01:00
muawiakh 688831467e Update naming convention in configMap 2018-01-08 12:50:38 +01:00
muawiakh a348c72696 Deployment of Tendermint + BigchainDB cluster
- Update existing docker-containers to support tendermint integration, nginx,
  mongodb, bigchaindb
- Add tendermint configuration files for statefulset, pvc, pv and service.
- Update some READMEs.
2018-01-02 14:51:23 +01:00
muawiakh 1e53f13be3 Use config map for storage engine cache size 2017-09-27 14:40:12 +02:00
Muawia Khan 0cf46b331f Verify and fix BDB multi node deployment guide
- Documentation support to add a new BDB node to an existing
  replica set, using x.509 certificates and SSL/TSL connections, across
  geographically dispersed clusters.
- Fix some documentation issues and add more references i.e.
  specifically about signing of MongoDB member certificates.
- Minor fixes for nginx-https-dep.yaml(invalid configMap var)
- Reconfigure nginx keep_alive between MongoDB front and backend ports.
- Editor removed whitespaces
2017-08-16 10:27:17 +02:00
Krish c2d726d584 Support proper Websocket host and port settings in root API endpoint (#1715)
* Support proper Websocket host and port settings in root API endpoint

* Documentation change
2017-08-09 09:40:41 +02:00
Muawia Khan b56f8a6213 Update guide to setup bdb+kubernetes+azure setup
-- Fixed typos in the guide
-- Fixed some syntax errors in commandline instructions
-- Fixed strucuture of sample jsons
-- Fixed bugs in nginx-https-dep file, it was trying to access
an invalid variable in the configmap.
-- Improved some docs to give more clarity for the user.
Atleast all the issues I faced. :)
2017-07-21 15:01:20 +02:00
Krish 4c8b0fc828 Healthchecks for NGINX in nginx-http-dep.yaml and dev-setup/nginx-http.yaml (#1679) 2017-07-17 18:59:11 +02:00
Krish 9116836e4c Simpler BigchainDB Instance Configuration in K8s (#1677)
* Simpler configuration of BigchainDB instance in a node

* Update docs for BDB configuration

* Changes as per @ttmc's comments
2017-07-17 17:29:51 +02:00
Krish c640313003 Remove 3scale port number from configs (#1676)
* Remove 'threescale-api-port' from all configs in node setup

* Update docs - remove references to threescale-api-port

* Fix typo
2017-07-17 14:46:06 +02:00
Krish b7e13fd087 Secure WebSocket Support (#1619)
* Remove support for whitelist

* Rename nginx to nginx-api

* Remove websocket support from nginx-api

* Change nginx to nginx-api service
The nginx-api service will proxy requests to the BigchainDB HTTP API.

* Rename ngx-instance-0 to ngx-api-instance-0 in nginx_3scale

* Update nginx-api service base docker image and README

* Add nginx-ws service to support Websocket

* Add config files for simple dev setup

* WS support with split NGINX

* NGINX module as single entrypoint into the cluster.

* Tested HTTP and WS with latest configs

* Openresty as separate service

* Remove upstream api port as configuration parameter

* Changes while testing

* Adding READMEs for nginx-http and nginx-https modules

* Documentation update

* Change 'Openresty' to 'OpenResty'.
2017-07-17 13:46:05 +02:00
Krish ece195ff8d Deployment changes: (#1623)
Update MongoDB container tag to `3.0`.

Doc change to reflect bdb-config.bdb-user parameter usage.

Fix typo in configuration.md.

Add BIGCHAINDB_DATABASE_SSL parameter to bigchaindb-dep.yaml for
Kubernetes deployments.

Refer the the `bdb-user` parameter from ConfigMap in
bigchaindb-dep.yaml.

Consolidate all BigchainDB parameter values under the
`bdb-config` ConfigMap.

Remove `bdb-user` from secrets.yaml.
2017-07-03 15:55:43 +02:00
Troy McConaghy 945ed81038 Responses to review comments from @krish7919 on #1526 2017-06-09 14:32:39 +02:00
Troy McConaghy 03e9020909 Added helper comments to config-map.yaml 2017-06-08 17:41:38 +02:00
krish7919 (Krish) 75c33dbcf1 Remove base 64 encoding requirement from ConfigMap 2017-06-06 10:01:53 +02:00
krish7919 (Krish) 7208310111 Global ConfigMap and Secret 2017-06-06 10:01:53 +02:00
Krish cc66d5aaa5 Single node setup (#1418)
* Add more tools to the toolbox container

* Add mongodb monitoring agent
* Add a bigchaindb/mongodb-monitoring-agent container that includes the
monitoring agent.
* It makes use of an api key provided by MongoDB Cloud Manager. This is
included in the configuration/config-map.yaml file.

* Changes to mongodb StatefulSet configuration
Changes to bump up mongodb version to v3.4.3.
Add configuration settings for mongodb instance name in ConfigMap.
Split the mongodb service to a new configuration file.

* Modify bigchaindb deployment config
* Bugfix to remove keyring field for the first node.
* Split the mongodb service to a new configuration file.

* Add mongodb backup agent
* Add a bigchaindb/mongodb-backup-agent container that includes the
backup agent.
* It makes use of an api key provided by MongoDB Cloud Manager. This is
included in the configuration/config-map.yaml file.

* Changes to nginx deployment config
* Allow 'all' by default for now. This is included in the
configuration/config-map.yaml file.
* Dynamically resolve DNS addresses of our backend services; cache DNS
resolution for 20s.
* Configure DNS based on user provided resolver. This helps in user
deciding to provide 8.8.8.8 or a custom DNS for name resolution. For k8s
deployments, we use the hardcoded k8s DNS IP of 10.0.0.10.

* Changes to nginx-3scale deployment config
* Use the common ConfigMap in configuration/config-map.yaml file.

* Removing prefix `v` from the docker tag for mongodb-monitoring-agent and mongodb containers

* Bumping up version for nginx-3scale container

* Add small helper scripts for docker build and push of mongodb monitoring
and backup agents

* Documentation for setting up the first node with monitoring and backup
agents
2017-04-21 14:41:12 +02:00