From 2d3e0c163088e5ca0940a5b70b8f347c66d982a4 Mon Sep 17 00:00:00 2001 From: Duncan Johnston-Watt Date: Fri, 16 Sep 2022 19:59:25 +0100 Subject: [PATCH] docs: revise overview and stub out chronicle domains Signed-off-by: Duncan Johnston-Watt --- docs/chronicle/domain1.md | 0 docs/chronicle/domain2.md | 0 docs/chronicle/index.md | 1 + docs/equinix/index.md | 58 +++++++++++++++++++++------------------ docs/index.md | 20 +++++++++++++- docs/rancher/index.md | 7 +++-- mkdocs.yml | 4 +++ 7 files changed, 60 insertions(+), 30 deletions(-) create mode 100644 docs/chronicle/domain1.md create mode 100644 docs/chronicle/domain2.md create mode 100644 docs/chronicle/index.md diff --git a/docs/chronicle/domain1.md b/docs/chronicle/domain1.md new file mode 100644 index 0000000..e69de29 diff --git a/docs/chronicle/domain2.md b/docs/chronicle/domain2.md new file mode 100644 index 0000000..e69de29 diff --git a/docs/chronicle/index.md b/docs/chronicle/index.md new file mode 100644 index 0000000..2e6fb79 --- /dev/null +++ b/docs/chronicle/index.md @@ -0,0 +1 @@ +# Chronicle Domains diff --git a/docs/equinix/index.md b/docs/equinix/index.md index 0ea8852..b9e2c87 100644 --- a/docs/equinix/index.md +++ b/docs/equinix/index.md @@ -1,6 +1,6 @@ # Equinix Metal Cookbook -Recipe for setting up a Kubernetes cluster on Equinix Metal and installing +Recipe for setting up a Kubernetes cluster on Equinix Metal, and installing Sextant Community Edition to deploy and manage blockchain networks. ## Prerequisites @@ -41,21 +41,24 @@ with the exception of Chronicle and Daml support which is subject to our * Select the number of servers and server names. We recommend using at least three servers as controllers for HA when creating Kubernetes cluster, and any number after can be used as agent nodes. - (**Note**: in our project we used three servers for the Admin cluster for - Sextant and between 5-6 for the three blockchain network - clusters). * Optionally `Add user data` (_handy feature to customize server provisioning_). * Optionally `Configure IPs` (_we kept defaults_). * Optionally `Customize SSH keys` (_we are using keys already configured for the project_). +!!!Note + In our project we used three servers for the admin cluster for Sextant and + minimum of four for the three blockchain network clusters. + ## Set up BGP * Set up [Local BGP](https://metal.equinix.com/developers/docs/networking/local-global-bgp/) for the project. * For each deployed server under Details/BGP/Manage, click on `Enable BGP` - (_Note: you should enable BGP on at least two servers, preferably all_). + +!!!Note + You should enable BGP on at least two servers, preferably all. ## Set up [RKE2 Kubernetes cluster](https://rancher.com/docs/rancher/v2.5/en/installation/resources/k8s-tutorials/ha-rke2/) @@ -91,19 +94,21 @@ token: ``` * To access the cluster from your workstation, copy the kubeconfig file - `/etc/rancher/rke2/rke2.yaml` to your localhost, replace `server: - [LOAD-BALANCER-DNS]:6443` with server external IP address. - -**Note**: We have tried setting up BGP/bird on systems to use for cluster load -balancing, only to find that there is a conflict with MetalLB we plan to use for -our deployments ingress. For our project, we opted to use individual system IPs -for cluster access. If the first system fails, swap that IP of the failed RKE2 -Server with another RKE2 Server node in `/etc/rancher/rke2/config.yaml` on all -nodes, as well your local workstation kubeconfig and Sextant. -For a Kubernetes enterprise cluster, we strongly recommend setting up a load -balancer for the cluster access. One solution is to use Equinix guide to set up -[HAProxy load balancer](https://metal.equinix.com/developers/guides/load-balancing-ha/) -outside the clusters. + `/etc/rancher/rke2/rke2.yaml` to your localhost, + replace `server: [LOAD-BALANCER-DNS]:6443` with server external IP address. + +!!!Note + We have tried setting up BGP/bird on systems to use for cluster load + balancing, only to find that there is a conflict with MetalLB which we plan + to use for our deployments ingress. For our project, we opted to use + individual system IPs for cluster access. If the first system fails, swap + that IP of the failed RKE2 Server with another RKE2 Server node in + `/etc/rancher/rke2/config.yaml` on all nodes, as well your local workstation + kubeconfig and Sextant. For a Kubernetes enterprise cluster, we strongly + recommend setting up a load balancer for the cluster access. + One solution is to use Equinix guide to set up + [HAProxy load balancer](https://metal.equinix.com/developers/guides/load-balancing-ha/) + outside the clusters. ### Set up the remaining RKE2 Server or Agent nodes @@ -284,7 +289,8 @@ STATUS: deployed REVISION: 1 TEST SUITE: None NOTES: -1. Get the initial Sextant application username and password by running this command +1. Get the initial Sextant application username and password by running this +command kubectl describe pod/sextant-0|grep INITIAL_ 2. Get the application URL by running these commands: @@ -302,10 +308,9 @@ Run this command: kubectl describe pod/sextant-0|grep INITIAL_ ``` -Make a note of the username and password for admin access to -*Sextant | Community*. You will need these to log into *Sextant | Community*. -Note that these details will persist even if you restart or delete/reinstall -*Sextant | Community*. +Make a note of the username and password for admin access to Sextant. You will +need these to log into Sextant. Note that these details will persist even if you +restart or delete/reinstall Sextant. ### Accessing Sextant @@ -317,7 +322,7 @@ You can use port forwarding using this command: kubectl port-forward sextant-0 8080:80 ``` -Connect to *Sextant | Community* +Connect to Sextant: ```bash http://localhost:8080 @@ -328,8 +333,9 @@ http://localhost:8080 If you want a persistent connection to your Sextant instance, you will need to create a load balancer. -(_Note that while this is acceptable for this evaluation we recommend setting -up a Kubernetes ingress controller for long term access._) +!!!Note + While this is acceptable for this evaluation we recommend setting + up a Kubernetes ingress controller for long term access. ```bash kubectl expose pod/sextant-0 --type=LoadBalancer \ diff --git a/docs/index.md b/docs/index.md index c7d4370..f0e75c6 100644 --- a/docs/index.md +++ b/docs/index.md @@ -1,7 +1,25 @@ # BTP Cookbooks -## Recipes for using and deploying DLTs with Sextant +This is a collection of cookbooks developed by BTP and its partners. + +## Equinix Metal + +Recipe for setting up a Kubernetes cluster on Equinix Metal and installing +Sextant Community Edition to deploy and manage blockchain networks. [Equinix Metal](equinix){ .md-button } +## SUSE Rancher + +Recipe for installing the Sextant Community Edition on a SUSE Rancher managed +Kubernetes cluster to deploy and manage blockchain networks. + [SUSE Rancher](rancher){ .md-button } + + +## Chronicle Domains + +A collection of Chronicle domains developed by BTP and its partners. + +[Chronicle](chronicle){ .md-button } +<--> diff --git a/docs/rancher/index.md b/docs/rancher/index.md index 035c764..5c8a451 100644 --- a/docs/rancher/index.md +++ b/docs/rancher/index.md @@ -85,7 +85,8 @@ installation. In our example, these are: ```text NOTES: 1. Get the initial Sextant application username and password by running this -command kubectl describe pod/sextant-0 --namespace sextant | grep INITIAL_ +command +kubectl describe pod/sextant-0 --namespace sextant | grep INITIAL_ 2. Get the application URL by running these commands: export POD_NAME=$(kubectl get pods -l "app.kubernetes.io/name=sextant" -o jsonpath="{.items[0].metadata.name}") echo "Visit http://127.0.0.1:8080 to use your application" @@ -129,8 +130,8 @@ echo "Visit http://127.0.0.1:8080 to use your application" kubectl port-forward $POD_NAME 8080:80 ``` -This will set up a port forward to your Sextant install, and make it accessible -on your local machine: +This will set up a port forward to your Sextant installation, and make it +accessible on your local machine: ![Port forward](../images/rancher/port-forward.png) diff --git a/mkdocs.yml b/mkdocs.yml index 31f6e45..c5f3cc1 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -9,5 +9,9 @@ markdown_extensions: permalink: true nav: - Overview: index.md +# - Chronicle: +# - Overview: chronicle/index.md +# - Domain1: chronicle/domain1.md +# - Domain2: chronicle/domain2.md - Equinix Metal: equinix/index.md - SUSE Rancher: rancher/index.md