Substrate Charts
The structure below represents the Chart structure for Substrate components in Hyperledger Bevel implementation.
/substrate
|-- charts
| |-- dscp-ipfs-node
| |-- substrate-genesis
| |-- substrate-key-mgmt
| |-- substrate-node
| |-- vault-k8s-mgmt
Pre-requisites
helm to be installed and configured on the cluster.
substrate-genesis
About
This chart is used to deploy substrate genesis block.
Folder Structure
/substrate-genesis
|-- templates
| |-- _helpers.tpl
| |-- job.yaml
|-- Chart.yaml
|-- values.yaml
Charts description
templates
This folder contains template structures which, when combined with values, will generate valid kubernetes manifest files for substrate genesis block deployment.
This folder contains the following template files for substrate genesis implementation.
_helpers.tpl
This file doesn’t output a Kubernetes manifest file as it begins with underscore (_). And it’s a place to put template helpers that we can re-use throughout the chart. That file is the default location for template partials, as we have defined a template to encapsulate a Kubernetes block of labels for substrate-genesis.
job.yaml
This file is used as a basic manifest for creating a Kubernetes job. For the substrate-genesis, this file creates a genesis block deployment. The file defines 1 main container which gets all the secrets from the vault.
Chart.yaml
This file contains the information about the chart such as apiversion, appversion, name, etc.
values.yaml
This file contains the default configuration values for the chart.
substrate-key-mgmt
About
This chart is used for generating crypto material for substrate node.
Folder Structure
/substrate-key-mgmt
|-- templates
| |-- _helpers.tpl
| |-- job.yaml
|-- Chart.yaml
|-- values.yaml
Charts Description
templates
This folder contains template structures which, when combined with values, will generate valid Kubernetes manifest files for substrate key management implementation.
This folder contains following template files for substrate-key-mgmt implementation
helpers.tpl This file doesn’t output a Kubernetes manifest file as it begins with underscore (). And it’s a place to put template helpers that we can re-use throughout the chart. That file is the default location for template partials, as we have defined a template to encapsulate a Kubernetes block of labels for substrate-key-mgmt.
job.yaml
This file is used as a basic manifest for creating a Kubernetes job. For the substrate-key-mgmt, this file creates a genesis block deployment. The file defines 1 init container and 1 main container which gets all the secrets from the vault.
Chart.yaml
This file contains the information about the chart such as apiversion, appversion, name, etc.
values.yaml
This file contains the default configuration values for the chart.
substrate-node
About
This chart is used for deploying a substrate node.
Folder Structure
/substrate-node
|-- templates
| |-- _helpers.tpl
| |-- customNodeKeySecret.yaml
| |-- googleServiceAccountKeySecret.yaml
| |-- ingress.yaml
| |-- keys.yaml
| |-- service.yaml
| |-- serviceAccount.yaml
| |-- serviceMonitor.yaml
| |-- statefulset.yaml
|-- .helmignore
|-- Chart.yaml
|-- values.yaml
Charts Description
templates
This folder contains template structures which, when combined with values, will generate valid Kubernetes manifest files for substrate node implementation.
This folder contains following template files for substrate-node implementation
_helpers.tpl
This file doesn’t output a Kubernetes manifest file as it begins with underscore (_). And it’s a place to put template helpers that we can re-use throughout the chart. That file is the default location for template partials, as we have defined a template to encapsulate a Kubernetes block of labels for substrate-node.
customNodeKeySecret.yaml
This component generates a customised node key in base64 format for the substrate blocks if there isn’t already an existing persistant node key.
googleServiceAccountKeySecret.yaml
This component generates a google service account key in base64 format to be injected into the Sync-chain-gcs init container using a Kubernetes secret.
ingress.yaml
Ingress exposes HTTP and HTTPS routes from outside the cluster to services within the cluster. Traffic routing is controlled by rules defined on the Ingress resource. This file containes those resources.
keys.yaml
This component generates the list of keys in base64 format to be injected into the node before it starts up. The keys consist of type, scheme and secret seed.
service.yaml
This template is used as a basic manifest for creating service endpoints for our deployment. This service.yaml creates endpoints for the substrate node.
serviceAccount.yaml
This gives identity to the pods to enable thtem to authenticate themselves to the Kubernetes API server to allow deployment of substrate network.
serviceMonitor.yaml
This is used to define services to be monitored by Prometheus and specifying labels so the services can be identified as well as ports and namespaces.
statefulset.yaml
Statefulsets is used for Stateful applications, each replica of the pod will have its own state, and will be using its own Volume. This statefulset is used to create substrate nodes.
Chart.yaml
This file contains the information about the chart such as apiversion, appversion, name, etc.
values.yaml
This file contains the default configuration values for the chart.
vault-k8s-mgmt
About
This chart uses vault to provide kubernetes authentication method so vault can connect with the kubernetes application pods and send or retrieve secrets.
Folder Structure
/vault-k8s-mgmt
|-- templates
| |-- _helpers.tpl
| |-- configmap.yaml
| |-- job.yaml
|-- Chart.yaml
|-- values.yaml
Charts description
templates
This folder contains template structures which, when combined with values, will generate valid Kubernetes manifest files for vault auth implementation.
This folder contains following template files for vault-k8s-mgmt implementation
_helpers.tpl
This file doesnt output a Kubernetes manifest file as it begins with underscore (_). And it’s a place to put template helpers that we can re-use throughout the chart. That file is the default location for template partials, as we have defined a template to encapsulate a Kubernetes block of labels for vault-k8s-mgmt.
configmap.yaml
The ConfigMap API resource provides mechanisms to inject containers with configuration data while keeping containers agnostic of Kubernetes. Here it is used to store the vault auth policies.
job.yaml
This file is used as a basic manifest for creating a Kubernetes job. For the vault-k8s-mgmt, this file creates vault auth to kubernetes pods. The file defines 1 main container, vault-kubernetes, which gives vault authuthorisation to kubernetes pods.
Chart.yaml
This file contains the information about the chart such as apiversion, appversion, name, etc.
values.yaml
This file contains the default configuration values for the chart.
dscp-ipfs-node
About
This chart is used to deploy dscp-ipfs-node.
Folder Structure
/dscp-ipfs-node
| |-- _helpers.tpl
| |-- configmap.yaml
| |-- secret.yaml
| |-- service.yaml
| |-- statefulset.yaml
|-- Chart.yaml
|-- values.yaml
Charts description
templates
This folder contains template structures which, when combined with values, will generate valid Kubernetes manifest files for ipfs node creation.
This folder contains following template files for dscp-ipfs-node implementation
_helpers.tpl
This file doesnt output a Kubernetes manifest file as it begins with underscore (_). And it’s a place to put template helpers that we can re-use throughout the chart. That file is the default location for template partials, as we have defined a template to encapsulate a Kubernetes block of labels for dscp-ipfs-node.
configmap.yaml
The ConfigMap API resource provides mechanisms to inject containers with configuration data while keeping containers agnostic of Kubernetes. Here it is used to store the ipfs-node config data.
secret.yaml
The Secret resource provides mechanisms to inject containers with sensitive data while keeping containers agnostic of Kubernetes. Here it is used to store the ipfs-node secrets data.
service.yaml
This template is used as a basic manifest for creating a service endpoint for our deployment. The file basically specifies service type and kind of service ports for the ipfs node.
statefulset.yaml
Statefulsets is used for Stateful applications, each repliCA of the pod will have its own state, and will be using its own Volume. This statefulset is used to create ipfs nodes.
Chart.yaml
This file contains the information about the chart such as apiversion, appversion, name, etc.
values.yaml
This file contains the default configuration values for the chart.