Skip to content

Commit 1216493

Browse files
authored
Merge pull request #2580 from sownak/develop
[fabric] Operator readme updates
2 parents f34ec67 + 5161cb8 commit 1216493

File tree

6 files changed

+41
-42
lines changed

6 files changed

+41
-42
lines changed

docs/source/guides/fabric/deploy-fabric-operator.md

+31-32
Original file line numberDiff line numberDiff line change
@@ -3,59 +3,58 @@
33
[//]: # (SPDX-License-Identifier: Apache-2.0)
44
[//]: # (##############################################################################################)
55

6-
<a name = "deploy-fabric-network-using-operator"></a>
76
# Deploy Fabric Network using Operator
87

9-
- [Introduction](#introduction)
10-
- [Modifying Configuration File](#modifying-configuration-file)
11-
- [Run playbook](#run-playbook)
12-
138
## Introduction
14-
The [bevel-operator-fabric](https://github.com/hyperledger/bevel-operator-fabric) provides a different approach to deploying the Fabric Network. It uses
15-
the kubernetes operator to deploy CAs, Orderers and Peers.
16-
This release supports bevel-operator-fabric version 1.9.0 and all the Fabric platforms supported by it. Also, chaincode and user/certificate management is not yet supported, there will be separate issues to handle this. Current implementation supports till Channel creation and joining.
179

18-
Due to open issues with bevel-operator-fabric, it is not recommended for Production workloads yet.
10+
The [bevel-operator-fabric](https://github.com/hyperledger/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.
11+
12+
!!! important
13+
14+
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.
1915

20-
---
21-
**NOTE**: The bevel-operator-fabric deployment has been tested only for Fabric 2.5.3
2216

23-
---
17+
!!! note
2418

25-
## Modifying Configuration File
19+
The bevel-operator-fabric automated deployment has been tested with Fabric 2.5.4.
2620

27-
A Sample configuration file for deploying using bevel-operator-fabric is available [here](https://github.com/hyperledger/bevel/blob/main/platforms/hyperledger-fabric/configuration/samples/network-operator-fabric.yaml). Following are the main changes in this file from previous versions:
21+
## Understanding the Configuration File
2822

29-
1. `network.env.type` must be `operator`. This is how Ansible will understand that bevel-operator-fabric will be used.
30-
2. `network.env.proxy` must be `istio` as no other proxy is supported by bevel-operator-fabric.
31-
3. Only `443` is supported as external port because that is what bevel-operator-fabric supports.
32-
4. `vault` and `gitops` sections are removed as they are not applicable.
23+
A Sample configuration file for deploying using _bevel-operator-fabric_ is available [here](https://github.com/hyperledger/bevel/blob/main/platforms/hyperledger-fabric/configuration/samples/network-operator-fabric.yaml).
3324

25+
Here are the key changes from other versions:
26+
27+
1. **`network.env.type`:** Must be set to `operator`. This tells Ansible to use _bevel-operator-fabric_ for deployment.
28+
1. **`network.env.proxy`:** Must be set to `istio` as _bevel-operator-fabric_ currently only supports Istio as a proxy.
29+
1. **External Port:** Only port `443` is supported for external access.
30+
1. **Removed Sections:** The `vault` and `gitops` sections are removed as they are not applicable to this deployment method.
3431

3532
```yaml
3633
--8<-- "platforms/hyperledger-fabric/configuration/samples/network-operator-fabric.yaml:8:21"
3734
..
3835
..
3936
```
4037

38+
For a comprehensive guide on the Fabric configuration file, refer to [this guide](../networkyaml-fabric.md).
4139

42-
For generic instructions on the Fabric configuration file, refer [this guide](../networkyaml-fabric.md).
40+
## Running the Deployment Playbook
4341

44-
<a name = "run-playbook"></a>
45-
## Run playbook
42+
After updating the `network.yaml` file with the necessary configurations, follow these steps to create your DLT network.
4643

47-
After all the configurations are updated in the `network.yaml`, execute the following to create the DLT network
48-
```
49-
# Run the provisioning scripts
50-
ansible-playbook platforms/shared/configuration/site.yaml -e "@./build/network.yaml"
44+
1. Run the provisioning scripts:
45+
```
46+
ansible-playbook platforms/shared/configuration/site.yaml -e "@./build/network.yaml"
47+
```
5148

52-
```
53-
The `site.yaml` playbook, in turn calls various playbooks depending on the configuration file and sets up your DLT/Blockchain network.
49+
The `site.yaml` playbook will call various other playbooks based on your configuration file and set up your DLT/Blockchain network.
5450

55-
The [deploy-operator-network.yaml](https://github.com/hyperledger/bevel/tree/main/platforms/hyperledger-fabric/configuration/deploy-operator-network.yaml) playbook can be used as well if the pre-requisites like Istio and krew is already installed. This can be done using the following command
51+
1. Alternative Deployment Method (Pre-requisites installed):
5652

57-
```
58-
ansible-playbook platforms/hyperledger-fabric/configuration/deploy-operator-network.yaml -e "@/path/to/network.yaml"
59-
```
53+
If you have already installed and configured Istio and krew, you can use the [deploy-operator-network.yaml](https://github.com/hyperledger/bevel/tree/main/platforms/hyperledger-fabric/configuration/deploy-operator-network.yaml) playbook:
54+
55+
```
56+
ansible-playbook platforms/hyperledger-fabric/configuration/deploy-operator-network.yaml -e "@/path/to/network.yaml"
57+
```
6058

61-
Refer to [bevel-operator-fabric docs](https://hyperledger.github.io/bevel-operator-fabric/) for details the operator and latest releases.
59+
## Manual Deployment
60+
For detailed information about the operator and latest releases, and also for manual deployment instructions, refer to the [bevel-operator-fabric documentation](https://hyperledger.github.io/bevel-operator-fabric/).

platforms/hyperledger-fabric/configuration/roles/delete/operator/tasks/delete_channel.yaml

+2-2
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
state: absent
1414
kubeconfig: "{{ kubernetes.config_file }}"
1515
context: "{{ kubernetes.context }}"
16-
ignore_errors: yes
16+
ignore_errors: true
1717

1818
# Delete main channel
1919
- name: Delete main channel
@@ -24,4 +24,4 @@
2424
state: absent
2525
kubeconfig: "{{ kubernetes.config_file }}"
2626
context: "{{ kubernetes.context }}"
27-
ignore_errors: yes
27+
ignore_errors: true

platforms/hyperledger-fabric/configuration/roles/operator/create/ca/user/tasks/main.yaml

+3-3
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
until: this.status == 200
1818
retries: "{{ network.env.retry_count }}"
1919
delay: 20
20-
ignore_errors: yes
20+
ignore_errors: true
2121

2222
# Create main user for orderer org
2323
- name: "Create main user for orderer org"
@@ -33,7 +33,7 @@
3333
when:
3434
- component_type == 'orderer'
3535
- user_type == 'default'
36-
ignore_errors: yes
36+
ignore_errors: true
3737

3838
# Create main user for peer org
3939
- name: "Create main user for peer org"
@@ -63,7 +63,7 @@
6363
kubeconfig_path: "{{ item.k8s.config_file }}"
6464
when:
6565
- user_type == 'admin'
66-
ignore_errors: yes
66+
ignore_errors: true
6767

6868
# Create admin user identity for orderer
6969
- name: "Create admin user identity for orderer"

platforms/hyperledger-fabric/configuration/roles/operator/create/orderer/tasks/main.yaml

+1-1
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
until: this.status == 200
1818
retries: "{{ network.env.retry_count }}"
1919
delay: 20
20-
ignore_errors: yes
20+
ignore_errors: true
2121

2222
# Create orderer node
2323
- name: "Create orderer node"

platforms/hyperledger-fabric/configuration/roles/operator/create/peer/tasks/main.yaml

+1-1
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
until: this.status == 200
1818
retries: "{{ network.env.retry_count }}"
1919
delay: 20
20-
ignore_errors: yes
20+
ignore_errors: true
2121

2222
# Create peer node
2323
- name: "Create peer node"

platforms/shared/configuration/roles/setup/istio/tasks/main.yaml

+3-3
Original file line numberDiff line numberDiff line change
@@ -28,9 +28,9 @@
2828
shell: |
2929
KUBECONFIG={{ kubeconfig_path }} helm repo add istio https://istio-release.storage.googleapis.com/charts --force-update
3030
KUBECONFIG={{ kubeconfig_path }} helm repo update
31-
KUBECONFIG={{ kubeconfig_path }} helm install istio-base istio/base -n istio-system --create-namespace
32-
KUBECONFIG={{ kubeconfig_path }} helm install istiod istio/istiod -n istio-system --wait
33-
KUBECONFIG={{ kubeconfig_path }} helm install istio-ingressgateway istio/gateway -n istio-system
31+
KUBECONFIG={{ kubeconfig_path }} helm install istio-base istio/base -n istio-system --version=1.20.7 --create-namespace
32+
KUBECONFIG={{ kubeconfig_path }} helm install istiod istio/istiod -n istio-system --version=1.20.7 --wait
33+
KUBECONFIG={{ kubeconfig_path }} helm install istio-ingressgateway istio/gateway -n istio-system --version=1.20.7
3434
when: (not istio_installed)
3535
tags:
3636
- istio

0 commit comments

Comments
 (0)