Skip to content

Commit

Permalink
[CE-713] Faric Operator zip structure README
Browse files Browse the repository at this point in the history
Documents the zip structure for the fabric operator

Signed-off-by: Manank Patni <manank321@gmail.com>
  • Loading branch information
Man-Jain committed Oct 18, 2019
1 parent 2a628e1 commit a44d085
Show file tree
Hide file tree
Showing 3 changed files with 94 additions and 1 deletion.
54 changes: 54 additions & 0 deletions docs/agents/fabric-operator.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
Cello Fabric Operator how-to
===========================================

Cello Fabric Operator is a Kubernetes Operator which uses the Kubernetes Operator Framework to create Fabric Network and stand up nodes in a K8s Cluster

The following is the list of the general steps to make the Kubernetes Operator

1. [Create configuration zip](#create-configuration-zip)

## <a name="create-configuration-zip"></a>Create configuration zip

To stand up a fabric network, you will need a set of files, here is the list

1. K8s configuration file, to get access to a k8s cluster
2. Config file having the specifications of the K8s resource, as well as the certs needed for that node

The k8s configuration file is needed to gain access to a k8s cluster. Many cloud
providers provide the k8s configuration file for you to download once you have
a k8s cluster. If not download directly, these providers most likely provides you
a way to create such file.

The Fabric network spec file defines how your Fabric network will look,
how many organizations you would like to create, how many peers and orderers
each organization has, and how many kafka and zookeeper containers will be set
up. Additionally, it defines what names will be given to organizations, peers,
orderers etc. This file defines the topology of your Fabric network, and a good
understanding of this file is essential in order to create the Fabric network
you like.

The config file allows you to put in details like node name, allocate k8s resources such as cpu and memory, and the certificates needed for that.

[Download sample config.yaml file](https://github.com/hyperledger/cello/blob/master/src/agent/fabric-operator/agent/config.yaml)

Follow the below process to prepare for setting up your fabric network:

```
1. Create a directory named config, any file mentioned must be in this directory
2. Name your k8s configuration file config and put it in .kube folder
3. Download the sample config file and change it to put your desired values
4. Create a zip for the folder with the same name
```

The zip file created in the above process is to be uploaded during the node creation.

## Running the Fabric Operator Manually

To manually run the operator, guide is present here :- [Fabric Operator README](https://github.com/hyperledger/cello/blob/master/src/agent/fabric-operator/README.md)

<a rel="license" href="http://creativecommons.org/licenses/by/4.0/">
<img alt="Creative Commons License" style="border-width:0"
src="https://i.creativecommons.org/l/by/4.0/88x31.png" /></a><br />
This work is licensed under a
<a rel="license" href="http://creativecommons.org/licenses/by/4.0/">
Creative Commons Attribution 4.0 International License</a>.
6 changes: 5 additions & 1 deletion src/agent/fabric-operator/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -115,4 +115,8 @@ kubectl delete orderer orderer1st
[peer_spec]:https://github.com/hyperledger/cello/blob/master/src/agent/fabric-operator/deploy/crds/fabric_v1alpha1_peer_cr.yaml?raw=true
[orderer_spec]:https://github.com/hyperledger/cello/blob/master/src/agent/fabric-operator/deploy/crds/fabric_v1alpha1_orderer_cr.yaml?raw=true

<a rel="license" href="http://creativecommons.org/licenses/by/4.0/"><img alt="Creative Commons License" style="border-width:0" src="https://i.creativecommons.org/l/by/4.0/88x31.png" /></a><br />This work is licensed under a <a rel="license" href="http://creativecommons.org/licenses/by/4.0/">Creative Commons Attribution 4.0 International License</a>.
## Fabric Operator from the API / Dashboard

To run the operator using the cello API or dashboard follow the instructions here :- [Fabric Operator Agent README](https://github.com/hyperledger/cello/blob/master/src/agent/fabric-operator/README.md)

<a rel="license" href="http://creativecommons.org/licenses/by/4.0/"><img alt="Creative Commons License" style="border-width:0" src="https://i.creativecommons.org/l/by/4.0/88x31.png" /></a><br />This work is licensed under a <a rel="license" href="http://creativecommons.org/licenses/by/4.0/">Creative Commons Attribution 4.0 International License</a>.
35 changes: 35 additions & 0 deletions src/agent/fabric-operator/agent/config.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
# Config YAML File
# To be filled when using the agent

spec:
# Only Needed in case of CA
#admin: "sampleadmin"
#adminPassword: "samplepassword"

# To set up a node, a set of certs must be provided.
# You may choose a set from your company's CA issued certs or
# use Fabric CA to generate a set of certs. All fields of msp
# and tls are required.
# Certificates and private keys have to be base64 encoded
# The values in this file are examples.
msp:
adminCerts: ["LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUNCVENDQWF5Z0F3SUJBZ0lRU2E4RmZ0RkpHOXFtd0diNmMrVWtyREFLQmdncWhrak9QUVFEQWpCYk1Rc3cKQ1FZRFZRUUdFd0pWVXpFVE1CRUdBMVVFQ0JNS1EyRnNhV1p2Y201cFlURVdNQlFHQTFVRUJ4TU5VMkZ1SUVaeQpZVzVqYVhOamJ6RU5NQXNHQTFVRUNoTUViM0puTURFUU1BNEdBMVVFQXhNSFkyRXViM0puTURBZUZ3MHhPVEV3Ck1ESXhOak0xTURCYUZ3MHlPVEE1TWpreE5qTTFNREJhTUdBeEN6QUpCZ05WQkFZVEFsVlRNUk13RVFZRFZRUUkKRXdwRFlXeHBabTl5Ym1saE1SWXdGQVlEVlFRSEV3MVRZVzRnUm5KaGJtTnBjMk52TVE4d0RRWURWUVFMRXdaagpiR2xsYm5ReEV6QVJCZ05WQkFNTUNrRmtiV2x1UUc5eVp6QXdXVEFUQmdjcWhrak9QUUlCQmdncWhrak9QUU1CCkJ3TkNBQVJBNUNvUlhvRmFHZEEwM3JXL2xWVm95eFRHMzltM0lSYnl6Z0xGOGpYWGlSYTFWZHloQXNqMmRScy8KTjh2YWZyVmJHRmdVVFd5SnB2Y3VPS2FxVGV5L28wMHdTekFPQmdOVkhROEJBZjhFQkFNQ0I0QXdEQVlEVlIwVApBUUgvQkFJd0FEQXJCZ05WSFNNRUpEQWlnQ0RGVXR1QUpYYVlQSTRsQlNJeWhmOS9TUmdYeklpTGdha2wzdGlyCk1zT0szVEFLQmdncWhrak9QUVFEQWdOSEFEQkVBaUFrQXBtTXUzR1JIL1dVdXoxZEFZQ3E4MU0vaTlSQk16S1EKUXhrNVRvWm55Z0lnSDhRNkorTG5IUWE0ckJPelQ4SkMvODQxT3AzSy9UcXB3UHQ2ZEs1YU1nMD0KLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQo="]
caCerts: ["LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUNJRENDQWNlZ0F3SUJBZ0lRRGJUWUpiUmJrYnErQ3NQTFQ2b0VzekFLQmdncWhrak9QUVFEQWpCYk1Rc3cKQ1FZRFZRUUdFd0pWVXpFVE1CRUdBMVVFQ0JNS1EyRnNhV1p2Y201cFlURVdNQlFHQTFVRUJ4TU5VMkZ1SUVaeQpZVzVqYVhOamJ6RU5NQXNHQTFVRUNoTUViM0puTURFUU1BNEdBMVVFQXhNSFkyRXViM0puTURBZUZ3MHhPVEV3Ck1ESXhOak0xTURCYUZ3MHlPVEE1TWpreE5qTTFNREJhTUZzeEN6QUpCZ05WQkFZVEFsVlRNUk13RVFZRFZRUUkKRXdwRFlXeHBabTl5Ym1saE1SWXdGQVlEVlFRSEV3MVRZVzRnUm5KaGJtTnBjMk52TVEwd0N3WURWUVFLRXdSdgpjbWN3TVJBd0RnWURWUVFERXdkallTNXZjbWN3TUZrd0V3WUhLb1pJemowQ0FRWUlLb1pJemowREFRY0RRZ0FFClFRR2FsN3VmMkt3c3Bxa1NHd0NkVVd1emc3MnV6NXNRZS9LNE9lNUlaSVVDM2hwQWduRlpwQnlvTHNFTE1GNTgKNnY4NG1aK1dCVnFNa2Nra0xIcHdIcU50TUdzd0RnWURWUjBQQVFIL0JBUURBZ0dtTUIwR0ExVWRKUVFXTUJRRwpDQ3NHQVFVRkJ3TUNCZ2dyQmdFRkJRY0RBVEFQQmdOVkhSTUJBZjhFQlRBREFRSC9NQ2tHQTFVZERnUWlCQ0RGClV0dUFKWGFZUEk0bEJTSXloZjkvU1JnWHpJaUxnYWtsM3Rpck1zT0szVEFLQmdncWhrak9QUVFEQWdOSEFEQkUKQWlFQXBNMUQ0eVhEdXFBZ1ZzeW5KU1p3Q2hQa0JJZGJKNjNybiswQnloOHV4QlVDSHpIVUh0dkJMZ2RTOHdZTAp5UnRmakZtd25JaEVUODd5U2ZOS3JuejVURVE9Ci0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0K"]
keyStore: "LS0tLS1CRUdJTiBQUklWQVRFIEtFWS0tLS0tCk1JR0hBZ0VBTUJNR0J5cUdTTTQ5QWdFR0NDcUdTTTQ5QXdFSEJHMHdhd0lCQVFRZ1dtM3l3OUx6Z3FDREllekwKRU1MeUVxcldyQU1TWHhESmZMM2t2d3ZiWHBlaFJBTkNBQVF1Y3FVS2dldnc2ek9OVERrajdVMWplOXkyQzd2awpjdkRnWDh1Ujh1WkQ2NmxxcjI3UmRDbU5IcEJrU3JpWVlsU0o2QWQ4Q2VCTUJZSDlsbm9QdVNCMgotLS0tLUVORCBQUklWQVRFIEtFWS0tLS0tCg=="
signCerts: "LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUNDVENDQWJDZ0F3SUJBZ0lSQUo5MFY0VFBGYVJmOExIUXVFbnR4Rll3Q2dZSUtvWkl6ajBFQXdJd1d6RUwKTUFrR0ExVUVCaE1DVlZNeEV6QVJCZ05WQkFnVENrTmhiR2xtYjNKdWFXRXhGakFVQmdOVkJBY1REVk5oYmlCRwpjbUZ1WTJselkyOHhEVEFMQmdOVkJBb1RCRzl5WnpBeEVEQU9CZ05WQkFNVEIyTmhMbTl5WnpBd0hoY05NVGt4Ck1EQXlNVFl6TlRBd1doY05Namt3T1RJNU1UWXpOVEF3V2pCak1Rc3dDUVlEVlFRR0V3SlZVekVUTUJFR0ExVUUKQ0JNS1EyRnNhV1p2Y201cFlURVdNQlFHQTFVRUJ4TU5VMkZ1SUVaeVlXNWphWE5qYnpFTk1Bc0dBMVVFQ3hNRQpjR1ZsY2pFWU1CWUdBMVVFQXhNUGNHVmxjakV0YjNKbk1DNXZjbWN3TUZrd0V3WUhLb1pJemowQ0FRWUlLb1pJCnpqMERBUWNEUWdBRUxuS2xDb0hyOE9zempVdzVJKzFOWTN2Y3RndTc1SEx3NEYvTGtmTG1RK3VwYXE5dTBYUXAKalI2UVpFcTRtR0pVaWVnSGZBbmdUQVdCL1paNkQ3a2dkcU5OTUVzd0RnWURWUjBQQVFIL0JBUURBZ2VBTUF3RwpBMVVkRXdFQi93UUNNQUF3S3dZRFZSMGpCQ1F3SW9BZ3hWTGJnQ1YybUR5T0pRVWlNb1gvZjBrWUY4eUlpNEdwCkpkN1lxekxEaXQwd0NnWUlLb1pJemowRUF3SURSd0F3UkFJZ1piZ1JqZE52dHJXRnlpUStqVU5KVTRKQURMYXEKTVRXbEdXbUkxeVBheUZjQ0lGN2xscHJsa1pZMXB4RW16QWptMm1ueWxrNGl2cys0ZnNKRys4d2htOU4zCi0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0K"
tlsCacerts: ["LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUNLRENDQWM2Z0F3SUJBZ0lSQU1acmVFeVJaaUhhQTJYYUtVbTUrcXN3Q2dZSUtvWkl6ajBFQXdJd1hqRUwKTUFrR0ExVUVCaE1DVlZNeEV6QVJCZ05WQkFnVENrTmhiR2xtYjNKdWFXRXhGakFVQmdOVkJBY1REVk5oYmlCRwpjbUZ1WTJselkyOHhEVEFMQmdOVkJBb1RCRzl5WnpBeEV6QVJCZ05WQkFNVENuUnNjMk5oTG05eVp6QXdIaGNOCk1Ua3hNREF5TVRZek5UQXdXaGNOTWprd09USTVNVFl6TlRBd1dqQmVNUXN3Q1FZRFZRUUdFd0pWVXpFVE1CRUcKQTFVRUNCTUtRMkZzYVdadmNtNXBZVEVXTUJRR0ExVUVCeE1OVTJGdUlFWnlZVzVqYVhOamJ6RU5NQXNHQTFVRQpDaE1FYjNKbk1ERVRNQkVHQTFVRUF4TUtkR3h6WTJFdWIzSm5NREJaTUJNR0J5cUdTTTQ5QWdFR0NDcUdTTTQ5CkF3RUhBMElBQkhuWjV4Vng2b1YwaGVYQ0FqRnVnSFVLcDVZdFlmb0ZvOGk4Y2JhcEZKYmJYcnNsdkxTamdMRTYKTld4a21GNXkzRzNHMzJQcWEvTk4wVTZGdUVjNm1oNmpiVEJyTUE0R0ExVWREd0VCL3dRRUF3SUJwakFkQmdOVgpIU1VFRmpBVUJnZ3JCZ0VGQlFjREFnWUlLd1lCQlFVSEF3RXdEd1lEVlIwVEFRSC9CQVV3QXdFQi96QXBCZ05WCkhRNEVJZ1FnTWZBc3BjTjFaTTlLRlFpOTcwWVQwRHJmZ2RLVm1IQUhVUlpuSVRNMHg0VXdDZ1lJS29aSXpqMEUKQXdJRFNBQXdSUUloQUpobTZnVC9WNXJ1c3k5Y0pMSGt3aGpxaUhBN04yRGtVUUNhQ01nUFE5UjZBaUFROE1zdQpFRWF1SXk3ZlhvUVZTQjV2c1VFZXlCd3N5KytndWp0NVR6WlprZz09Ci0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0K"]
tls:
tlsCert: "LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUNnakNDQWlpZ0F3SUJBZ0lRQUlEN1FncCtGMzBHR2I1THhzVmdqekFLQmdncWhrak9QUVFEQWpCZU1Rc3cKQ1FZRFZRUUdFd0pWVXpFVE1CRUdBMVVFQ0JNS1EyRnNhV1p2Y201cFlURVdNQlFHQTFVRUJ4TU5VMkZ1SUVaeQpZVzVqYVhOamJ6RU5NQXNHQTFVRUNoTUViM0puTURFVE1CRUdBMVVFQXhNS2RHeHpZMkV1YjNKbk1EQWVGdzB4Ck9URXdNREl4TmpNMU1EQmFGdzB5T1RBNU1qa3hOak0xTURCYU1GUXhDekFKQmdOVkJBWVRBbFZUTVJNd0VRWUQKVlFRSUV3cERZV3hwWm05eWJtbGhNUll3RkFZRFZRUUhFdzFUWVc0Z1JuSmhibU5wYzJOdk1SZ3dGZ1lEVlFRRApFdzl3WldWeU1TMXZjbWN3TG05eVp6QXdXVEFUQmdjcWhrak9QUUlCQmdncWhrak9QUU1CQndOQ0FBUnROVDRkClFMTnRuS013WjJnRjF3RHIrRmpodXkyOW9lekJuVjREOXNiSHJpRWhFdWluYWxERlpYaVA2UmN4Q1kyTHFocDcKLzZTVGdFdXZsSkZvVU1JMG80SFJNSUhPTUE0R0ExVWREd0VCL3dRRUF3SUZvREFkQmdOVkhTVUVGakFVQmdncgpCZ0VGQlFjREFRWUlLd1lCQlFVSEF3SXdEQVlEVlIwVEFRSC9CQUl3QURBckJnTlZIU01FSkRBaWdDQXg4Q3lsCnczVmt6MG9WQ0wzdlJoUFFPdCtCMHBXWWNBZFJGbWNoTXpUSGhUQmlCZ05WSFJFRVd6QlpnZzl3WldWeU1TMXYKY21jd0xtOXlaekNDQ25CbFpYSXhMVzl5WnpDSEJLazh4M1dIQktrOHgzMkhCS2s4eDNTSEJLazh4M2lIQktrOAp4M3VIQkFxeGE4aUhCQXF4YSsySEJBcXhhKytIQkFxeGEveUhCQXF4YS80d0NnWUlLb1pJemowRUF3SURTQUF3ClJRSWhBSUxkLzhQQ0NnVGFFbWw2RW5tZUM3OTlVR3dpb0tHcUlqVmZxdlhGekF6N0FpQk50OEoxVjJKZUY3MjQKekhCR3hEc2pIc3BNekt0M3VjRnIxRStRUHcvNjJ3PT0KLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQo="
tlsKey: "LS0tLS1CRUdJTiBQUklWQVRFIEtFWS0tLS0tCk1JR0hBZ0VBTUJNR0J5cUdTTTQ5QWdFR0NDcUdTTTQ5QXdFSEJHMHdhd0lCQVFRZ2FqNlNud0pUZjRkclYyMzcKZFBEc2tDcDI4QnlXcXE4R0IrSXNBODZQWUFDaFJBTkNBQVJ0TlQ0ZFFMTnRuS013WjJnRjF3RHIrRmpodXkyOQpvZXpCblY0RDlzYkhyaUVoRXVpbmFsREZaWGlQNlJjeENZMkxxaHA3LzZTVGdFdXZsSkZvVU1JMAotLS0tLUVORCBQUklWQVRFIEtFWS0tLS0tCg=="
nodeSpec:
# To specify resource limits for node,
# use kubernetes resource requirements spec
# resources:
# requests:
# memory: "32Mi"
# cpu: "200m"
# limits:
# memory: "1024mi"
# cpu: "250"
storageSize: "1Gi"
storageClass: "default"

0 comments on commit a44d085

Please sign in to comment.