Here are two charts for running production ready ink! network.
In the ink-network folder to deploy a network use
sh deploy.sh
or follow the steps bellow.
Templates consist of backend and frontend statefullsets (which represent server and plugin dockerfiles) and service which exposes ports and networking inside cluster. There are also ingress-rules for these services that are used on Ingress for network routing and as a rules for load balancer.
For generating certs run generate-certs.sh if you want to generate certificate with let's encrypt on Digital Ocean DNS.
Reserving static ip address can be computed using reserve-static-ip.sh.
- Minikube or your GKE/AKS/EKS cluster
- Helm (https://helm.sh/docs/intro/install/)
- Tiller
Update values in values.yaml file to your requirements (can be used as is)
Start minikube with default values.
minkube start
Once it's finished you can proceed to next step.
helm install --namespace ink --name ink .
Once it finishes you can open dashboard on your cloud provider or with minikube use:
minikube dashboard &
helm upgrade ink .
If you want to delete just run
helm del --purge ink
For running in single cluster go to single_cluster_deployment.sh
For running multicluster deployments setup mesh and then install helm chart for both clusters (production.sh)
If you are missing Tiller just run:
helm init
Hacky solution for tiller problems:
kubectl --namespace kube-system create serviceaccount tiller
kubectl create clusterrolebinding tiller-cluster-rule \
--clusterrole=cluster-admin --serviceaccount=kube-system:tiller
kubectl --namespace kube-system patch deploy tiller-deploy \
-p '{"spec":{"template":{"spec":{"serviceAccount":"tiller"}}}}'
If you see that some pods are not running, check if your clusters have enough RAM. If not, you can set "--num-nodes 2" when creating cluster or manually expand him.
helm install stable/nginx-ingress --namespace ink --name ink-ingress --set controller.replicaCount=2 --set rbac.create=true
kubectl apply -f ingress-rules.yaml