Kubernetes proposes Hyperledger Fabric


Hakan Eryargi
 

Dear Hyperledger Fabric Community,

I'd like to introduce Hyperledger Fabric Operator for Kubernetes:
https://github.com/raftAtGit/hl-fabric-operator

It's a wrapper around our previous work PIVT Helm charts and makes running and operating Hyperledger Fabric in Kubernetes even more easier.

It allows managing the whole HL Fabric network or part of it declaratively through the FabricNetwork CRD (Custom Resource Definition).

In particular it allows to:
  • Configure and launch the whole HL Fabric network or part of it, either:
    • A simple one, one peer per organization and Solo orderer
    • Or scaled up one, multiple peers per organization and Kafka or Raft orderer
  • Populate the network declaratively:
    • Create the channels, join peers to channels, update channels for Anchor peers
    • Install/Instantiate all chaincodes, or some of them, or upgrade them to newer version
  • Add new peer organizations to an already running network declaratively
This work started as an experimental/PoC hobby project of myself, but turned out to be quite complete and functional.

Apologies for the title. As we called the previous work as "Hyperledger Fabric meets Kubernetes", which I truly believe deserves its name, this one felt like a proper continuation :)

Any feedback is more than welcome!

Cheers,
Hakan


Gari Singh
 

Thanks for sharing this, Hakan.  Will try to have a look soon and provide comments/suggestions.


Jay Guo
 

Thanks Hakan! It would be nice to add operator capability level to readme.

- J

On Sun, Apr 18, 2021 at 5:37 PM Gari Singh <gari.r.singh@gmail.com> wrote:

Thanks for sharing this, Hakan. Will try to have a look soon and provide comments/suggestions.


Hakan Eryargi
 

Hi Jay,

That's a good point. Thanks for the pointer.

However, based on the criteria in the Operator Capability Levels page, the answer is a bit blurry. 

As it's now, Fabric Operator spans capabilities from level 2 up to 4. But I won't call it level 4. 

For example some supported capabilities:

Level 2
Operand can be upgraded as part of changing the CR

Level 3
Operator orchestrates complex re-configuration flows on the Operand
Operator orchestrates complex re-configuration flows on the Operand
Operator supports add/removing members to a clustered Operand
Operator enables application-aware scaling of the Operand

Level 4
Operator exposing metrics about its health (provided by default by Operator-SDK)
Operand sends useful alerts (not alerts but exposes status field)

On the other hand, it doesn't perform even some basic checks. For example it doesn't monitor if the resources created by the underlying Helm chart is deleted, or the Helm chart is deleted itself.

Best,
Hakan 




On Wed, Apr 21, 2021 at 2:23 PM Jay Guo <guojiannan1101@...> wrote:
Thanks Hakan! It would be nice to add operator capability level to readme.

- J

On Sun, Apr 18, 2021 at 5:37 PM Gari Singh <gari.r.singh@...> wrote:
>
> Thanks for sharing this, Hakan.  Will try to have a look soon and provide comments/suggestions.
>