The official Helm chart for Hypeledger Firefly and its
related connector microservices. See the chart README
for installation and
configuration instructions.
If you want to run these charts locally on your own machine, you can run a single command to get a fully working stack, end-to-end:
make stack
This will create a pre-set environment with the following configuration:
- Runs all containers in kind
- Sets up a PostgreSQL DB in the K8s cluster
- Creates a basic single node Besu blockchain also running in the K8s cluster
- Sets up FireFly and all of its dependencies to use these services
- Sets up an ERC-20 / ERC-721 Token Connector in this stack
- Provides an optional script to enable multiparty mode after initial set up
If you wish to make changes to your stack you can modify ./charts/firefly/local-kind-values.yaml
and run:
helm upgrade --install firefly ./charts/firefly -f ./charts/firefly/local-kind-values.yaml
After you run the quickstart command above, you can also (optionally) enable Multiparty mode. This will enabled FireFly's advanced Messaging features. To enable that, you can run the shell script:
./hack/multiparty.sh
This will deploy the multiparty contract, update the config file, and register the org/node for you automatically. If you need to upgrade the multiparty in the future, you can run this script again and it will deploy and configure a new contract. It will not re-run registration if the org/node are already registered.
NOTE: If you have enabled multiparty mode and you wish to make changes by customizing your values file, be sure to include the multiparty values as well, otherwise they will be removed and your multiparty network will not work.
helm upgrade --install firefly ./charts/firefly -f ./charts/firefly/local-kind-values.yaml -f ./hack/multiparty-values.yaml
Configuration of the stack for non-default options is possible using these charts, broadly there are 2 places to make changes. For Besu charts, the appropriate values.yaml
files in the values
directory allows for configuration of values such as the genesis block, and Besu-specific options. For FireFly related components the values.yaml
file within the sub-directory for the chart (stored in charts/
) contains the configuration for options.
Viewing the appropriate README for each microservice, will give information around the values and structure of the configuration in the values.yaml
files.
Helm's experimental OCI registry support is used for publishing and retrieving the FireFly Helm chart, as a result one must log into GHCR to download the chart:
export HELM_EXPERIMENTAL_OCI=1
helm registry login ghcr.io
NOTE: you must use a GitHub personal access token when authenticating to the GHCR registry as opposed to using your GitHub password.
Lint the chart using ct
and ensure it adheres to the project conventions:
make lint
Create a local Kubernetes cluster in Docker via kind
:
make kind
Then install FireFly dependencies to the cluster (i.e. PostgreSQL, cert-manager, Prometheus):
make deps
Run the E2E tests:
make test
Or deploy the chart using your own customized charts/firefly/local-values.yaml
:
make deploy
If you are unsure of what to initially put in your charts/firefly/locall-values.yaml
file, we
suggest using the Ethereum CI values as a starting point
and reading the chart configuration documentation:
make starter
If you are developing with a Fabric blockchain see the Fabric CI values and additional chart documentation.