Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Containerize connector plugins #545

Open
petermetz opened this issue Feb 5, 2021 · 0 comments
Open

Containerize connector plugins #545

petermetz opened this issue Feb 5, 2021 · 0 comments
Assignees
Labels
API_Server Besu Corda Developer_Experience enhancement New feature or request Epic Fabric good-first-issue Good for newcomers Hacktoberfest Hacktoberfest participants are welcome to take a stab at issues marked with this label. Quorum

Comments

@petermetz
Copy link
Member

petermetz commented Feb 5, 2021

Is your feature request related to a problem? Please describe.

Cloud has became the de-facto way of running applications on computers.
Containers are rapidly becoming (have become?) the de-facto way of running applications in the cloud.
We therefore need to make sure that Cactus is not just built and distributed as the language native artifacts (e.g. npm packages/webpack bundles) but that it's also distributed as containers.
This doesn't just mean containerizing the API server that can host the plugins, but also means containerizing each plugin individually as well OR providing a generic image of the API server that can be configured to run any and all of the available Cactus plugins on-demand.

Note

It is necessary to separate this issue into an issue for each ledger connector.

Describe the solution you'd like

I want to be able to whisper things like this to my terminal and expect to have a fully functional connector for Ledger X up and running in a few seconds and with the config.json file mounted at the specified path/volume that gets picked up by the API server running inside the container as well.

Fabric

echo "{ \"some-configuration\": 42 } " > config.json

docker run \
  --rm \
  --volume ./config.json:/opt/hyperledger/cactus/cactus-plugin-ledger-connector-fabric/config.json \ 
  hyperledger/cactus-plugin-ledger-connector-fabric

Besu

echo "{ \"some-configuration\": 42 } " > config.json

docker run \
  --rm \
  --volume ./config.json:/opt/hyperledger/cactus/cactus-plugin-ledger-connector-besu/config.json \ 
  hyperledger/cactus-plugin-ledger-connector-besu

Corda

echo "{ \"some-configuration\": 42 } " > config.json

docker run \
  --rm \
  --volume ./config.json:/opt/hyperledger/cactus/cactus-plugin-ledger-connector-corda/config.json \ 
  hyperledger/cactus-plugin-ledger-connector-corda

Quorum

echo "{ \"some-configuration\": 42 } " > config.json

docker run \
  --rm \
  --volume ./config.json:/opt/hyperledger/cactus/cactus-plugin-ledger-connector-quorum/config.json \ 
  hyperledger/cactus-plugin-ledger-connector-quorum

Describe alternatives you've considered

The other alternative is to have a single image that can be configured at runtime to import the connector plugins as defined by the configuration. I'm still undecided on which path is easier and more convenient for people who will deploy Cactus so willing to hear opinions in the comments section of this issue.

cc: @takeutak @sfuji822 @hartm @jonathan-m-hamilton @AzaharaC @jordigiam @kikoncuo

@petermetz petermetz added enhancement New feature or request good-first-issue Good for newcomers API_Server Fabric Quorum Corda Besu Developer_Experience Hacktoberfest Hacktoberfest participants are welcome to take a stab at issues marked with this label. labels Feb 5, 2021
@petermetz petermetz added this to the v0.9.0 milestone Feb 5, 2021
@kikoncuo kikoncuo removed this from the v0.9.0 milestone Mar 29, 2021
@jordigiam jordigiam added the Epic label Apr 13, 2021
@jordigiam jordigiam changed the title feat: containerize connector plugins Containerize connector plugins Apr 13, 2021
@petermetz petermetz assigned petermetz and unassigned jordigiam Aug 14, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
API_Server Besu Corda Developer_Experience enhancement New feature or request Epic Fabric good-first-issue Good for newcomers Hacktoberfest Hacktoberfest participants are welcome to take a stab at issues marked with this label. Quorum
Projects
None yet
Development

No branches or pull requests

3 participants