Pre-install preparations
This document covers our weekly demos preparation steps but can also be useful to anyone who tries to install using the charts before going through the installation.
The person giving the demo needs to go throw this document before the demo, and should perform the setup the day prior to the demo itself:
GKE setup
Make sure to have a gcloud
user with permissions to access the cloud-native
project. All the installation procedures will
need to be done in this project.
-
You will need to have the
gcloud
tool installed on your system:mkdir gcloud-build && cd gcloud-build; wget https://dl.google.com/dl/cloudsdk/channels/rapid/downloads/google-cloud-sdk-189.0.0-linux-x86_64.tar.gz; tar -xzf google-cloud-sdk-189.0.0-linux-x86_64.tar.gz ./google-cloud-sdk/install.sh source google-cloud-sdk/path.bash.inc && echo "source google-cloud-sdk/path.bash.inc" >> $HOME/.profile
-
Run
gcloud
and interactively go through its authentication and initialization:./google-cloud-sdk/bin/gcloud init
Domain name
During the demo you will need a valid domain name that will resolve to our cluster load balancer through a wild card entry. Make sure to have one of the Domain names ready for the demo either by creating a new one or by using an existing one.
We usually use cloud-native-win
or k8s-ftw
.
ChaosKube
Follow our ChaosKube guide for running ChaosKube, this is usually done after the demo.
Git LFS
In order to test LFS storage in the chart, you will need to have the ability to
use git lfs
:
- Start by installing
git-lfs
. -
Next, have a non-text file on hand to add to your test repository via LFS. A good example is the GitLab logo:
git clone URL cd project curl -JLO "https://gitlab.com/gitlab-com/gitlab-artwork/raw/master/logo/logo.png" git lfs track "*.png" git add .gitattributes git add logo.png git commit -m "Add logo via LFS" git push origin master
External resources
As a part of the demo, we also wish to provide for testing the use of external resources for PostgreSQL and Redis.
Ensure that these external sources will be reachable from the deployed
cluster, which may mean configuring firewall rules. The cloud-native
GCP
project used for our CI has firewall rules in place, which can be used by
applying the demo-pgsql
and demo-redis
tags to any VM instance created
within the project.
PostgreSQL
Preparation of chart-external PostgreSQL services (as a pet or SaaS), can
be found in advanced/external-db. This
can be done several ways documented there. Once that is configured, the chart
should be configured with the external service by making use of the globals.psql
properties section of the global chart.
Redis
Preparation of chart-external Redis services (as a pet or SaaS), can
be found in advanced/external-redis
.
This can be done as documented there. Once that is configured, the chart should
be configured with the external service by making use of the globals.redis
properties section of the global chart.
Gitaly
Preparation of chart-external Gitaly services can
be found in advanced/external-gitaly
.
This can be done as documented there. Once that is configured, the chart should
be configured with the external service by making use of the globals.gitaly
properties section of the global chart.
OmniAuth for Google OAuth2
Configuring a deployment with the capability to integrate with GKE requires the use of OmniAuth. You will need to ensure that a set of OAuth Client ID credentials have been created for the hostname of the GitLab endpoint in your cluster.
Cursory instructions for creating a set of OAuth credentials can be found here.
The credentials from GCP can be added per the
globals
chart’s omniauth.providers
configuration documentation.
Run GitLab QA
As preparation for the demo, one should also run GitLab QA against the deployed chart