Skip to content

Deploy Fabric Network using Operator

Introduction

The bevel-operator-fabric provides a streamlined way to deploy a Fabric network. It leverages the Kubernetes operator to manage the deployment of Certificate Authorities (CAs), Orderers, and Peers. This guide covers the deployment process using bevel-operator-fabric version 1.9.0 and the Fabric platforms it supports.

Important

Chaincode and user/certificate management are not yet supported by this Bevel release. There will be separate issues to address these features. The current implementation supports channel creation and joining.

Note

The bevel-operator-fabric automated deployment has been tested with Fabric 2.5.4.

Understanding the Configuration File

A Sample configuration file for deploying using bevel-operator-fabric is available here.

Here are the key changes from other versions:

  1. network.env.type: Must be set to operator. This tells Ansible to use bevel-operator-fabric for deployment.
  2. network.env.proxy: Must be set to istio as bevel-operator-fabric currently only supports Istio as a proxy.
  3. External Port: Only port 443 is supported for external access.
  4. Removed Sections: The vault and gitops sections are removed as they are not applicable to this deployment method.
# yaml-language-server: $schema=../../../../platforms/network-schema.json
# This is a sample configuration file for setting up initial Fabric network with 1 RAFT Orderer and 5 Nodes.
network:
  # Network level configuration specifies the attributes required for each organization
  # to join an existing network.
  type: fabric
  version: 2.5.3                 # currently tested on 2.5.3

  #Environment section for Kubernetes setup
  env:
    type: "operator"          # Do not change this for using 'bevel-operator-fabric'. Any other value will trigger Flux based deployment
    proxy: istio              # values can be 'istio' only. No other proxy is supported at the moment
    retry_count: 20           # Retry count for the checks
    external_dns: enabled     # Should be enabled if using external-dns for automatic route configuration
    ..
    .. 

For a comprehensive guide on the Fabric configuration file, refer to this guide.

Running the Deployment Playbook

After updating the network.yaml file with the necessary configurations, follow these steps to create your DLT network.

  1. Run the provisioning scripts:

    ansible-playbook platforms/shared/configuration/site.yaml -e "@./build/network.yaml" 
    

    The site.yaml playbook will call various other playbooks based on your configuration file and set up your DLT/Blockchain network.

  2. Alternative Deployment Method (Pre-requisites installed):

    If you have already installed and configured Istio and krew, you can use the deploy-operator-network.yaml playbook:

    ansible-playbook platforms/hyperledger-fabric/configuration/deploy-operator-network.yaml -e "@/path/to/network.yaml"
    

Manual Deployment

For detailed information about the operator and latest releases, and also for manual deployment instructions, refer to the bevel-operator-fabric documentation.