The following describes how to use the scripts in provisioning/initial-setup
to provision a GKE Kubernetes cluster and prepare for settings up an actual
installation of OS2display.
The documentation assumes you have the following installed
- The gcloud sdk
- The Helm client
And that you've created a google cloud project.
- Edit _settings.sh and fill out the project and cluster details, leave
EXTERNAL_IP
out for now - Run
01-setup-cluster.sh
to provision the cluster and IP - Run
configure-kubectl.sh
to configure your local kubectl - this might require a couple of tries as the cluster is being provisioned. - Verify that the cluster is available by running
kubectl get nodes
- Run
02-helm.sh
to prepare the cluster for Helm and install Tiller. - Run
get-external-ip.sh
, insert the ip-address listet under "address" in_settings.sh
and uncomment the line. (Try a couple of times if the IP is not available yet). - Run
03-setup-ingress.sh
to install an Ingress controller and certificate manager.
You a now ready to create a namespace and deploy OS2Display to it.
First create a kubernetes namespace
kubectl create namespace <namespace>
Then customize the manifests in provisioning/kubernetes-manifests/configuration
.
We currently do not have a good solution for handling secrets, so don't commit
the files in configuration, instead keep them somewhere safe or store the
secrets somewhere else.
Then ensure all image-references in provisioning/kubernetes-manifests/static
are as you expect, in particular take notice of
provisioning/kubernetes-manifests/configuration/admin/deployment.yml
Then apply the manifests
kubectl apply --recursive -n <namespace> provisioning/kubernetes-manifests
See Deploying on how to do the subsequent deployments.