This repository (https://github.com/corda/corda-kubernetes-deployment) contains the means with which you can stand up a Corda Enterprise Node.
This is meant to be a customizable version of the Node deployment that you can take as-is if it fits your needs or then customize it to your liking.
DISCLAIMER:
This Kubernetes deployment for a Corda Enterprise Node is considered a reference implementation and should not be used in a production environment until sufficient testing has been done.
Licensed under Apache License, version 2.0.
Kubernetes is a complex system and setting up a successful deployment for the first time can be challenging as well.
Please make sure you step through the SETUP CHECKLIST section carefully the first time you deploy, to avoid problems down the road.
Additional information on setup and usage of this Corda Kubernetes Deployment can be found on the Corda Solutions Docs site.
It is strongly recommended you review the documentation there before setting this up for the first time to familiarize yourself with the topic at hand.
Since there are a number of prerequisites that need to be met and then a certain order of running everything, a checklist has been collated that you may find useful.
Please see CHECKLIST.md for more information.
Note! It is strongly recommended you follow the CHECKLIST, to not skip an important step, especially the first time you set up this deployment,
- A cloud environment with Kubernetes Cluster Services that has access to a Docker Container Registry, see CLOUD_SETUP.md
- Building the images requires local Docker installation
- kubectl is used to manage Kubernetes cluster
- Helm version 2.x
- Access to Corda Enterprise binary files or access to R3 Artifactory for Enterprise (licensed users)
This deployment is targeting an Enterprise deployment, which should include a Corda Node, but also the Corda Firewall, which is an Enterprise only feature.
In order to execute the following scripts correctly, you will have to have access to the Corda Enterprise binaries.
The files should be downloaded first and placed in the following folder: docker-images/bin
You can use the helper script download_binaries.sh
to download binaries for you, as long as you have the necessary login details available for the R3 Artifactory.
If you have R3 Artifactory access, the download will be automatic as part of the one-time-setup.sh
script, which is the recommended way of performing the first time setup.
Please see docker-images/README.md for more information.
You must completely fill out the helm/values.yaml file according to your configuration. For more details on how it should be filled out, follow the CHECKLIST.md document.
SHORT USAGE GUIDE (see SETUP CHECKLIST for a full guide)
This is a brief view of the steps you will take, for the full set of steps, please review CHECKLIST.md.
- Customize the Helm
values.yaml
file according to your deployment (this step is used by initial-registration and Helm compile, very important to fill in correctly and completely) - Execute
one-time-setup.sh
which will do the following (you can also step through the steps on your own, just follow what the one-time-setup.sh would have done):- Build the docker images and push them to the Container Registry
- Generate the Corda Firewall PKI certificates
- Execute initial registration step (which should copy certificates to the correct locations under
helm/files
)
- Build Helm templates and install them onto the Kubernetes Cluster (by way of executing either
deploy.sh
orhelm/helm_compile.sh
) - Ensure that the deployment has been successful (log in to the pods and check that they are working correctly, please see below link for information on how to do that)
For more details and instructions it is strongly recommended to visit the following page on the Corda Solutions docs site: https://solutions.corda.net/deployment/kubernetes/intro.html
For additional documentation please find it here Documentation.
It also contains a helpful Cost calculation for evaluating production costs. (you can test this out in a much more affordable setup, in a test cluster you can run it with just 2x(Standard DS2 v2 (2 vcpus, 7 GiB memory)) worker nodes)
You may want to familiarize yourself with the key concepts of a production grade deployment and the tools being used in this deployment.
You can find the information in Key Concepts.
To see the intended direction that this deployment should take, please have a look at the Roadmap
The Corda Kubernetes Deployment is an open-source project and contributions are welcome as seen here: Contributing
The contributors can be found here: Contributors
Any suggestions / issues are welcome in the issues section: https://github.com/corda/corda-kubernetes-deployment/issues/new
Fin.