Skip to content

Commit b89d817

Browse files
committed
docs: add documentation
1 parent 5ffb017 commit b89d817

File tree

2 files changed

+111
-1
lines changed

2 files changed

+111
-1
lines changed

Diff for: README.md

+111-1
Original file line numberDiff line numberDiff line change
@@ -1 +1,111 @@
1-
# Running Gitpod in [Azure AKS](https://azure.microsoft.com/en-gb/services/kubernetes-service/)
1+
# Running Gitpod in [Azure AKS](https://azure.microsoft.com/en-gb/services/kubernetes-service/)
2+
3+
Before starting the installation process, you need:
4+
5+
- An Azure account
6+
- [Create one now by clicking here](https://azure.microsoft.com/en-gb/free/)
7+
- Azure [service principal](https://docs.microsoft.com/en-us/azure/active-directory/develop/howto-create-service-principal-portal). This needs to have "Owner" IAM rights on the subscription and set up with "Group Administrator" ActiveDirectory role
8+
- Log into [portal.azure.com](https://portal.azure.com/) and navigate to [Azure Active Directory](https://portal.azure.com/?quickstart=True#blade/Microsoft_AAD_IAM/ActiveDirectoryMenuBlade/Overview).
9+
- Select the [Roles and Administrators](https://portal.azure.com/?quickstart=True#blade/Microsoft_AAD_IAM/ActiveDirectoryMenuBlade/RolesAndAdministrators)
10+
- Select the role Groups Administrator
11+
- Select "Add assignments" and add your service principal
12+
- A `.env` file with basic details about the environment.
13+
- We provide an example of such file [here](.env.example).
14+
- [Docker](https://docs.docker.com/engine/install/) installed on your machine, or better, a Gitpod workspace :)
15+
16+
**To start the installation, execute:**
17+
18+
```shell
19+
make install
20+
```
21+
22+
The whole process takes around twenty minutes. In the end, the following resources are created:
23+
24+
- an AKS cluster running Kubernetes v1.20.
25+
- Azure load balancer.
26+
- ~~Azure MySQL database.~~ MySQL will be provided by Helm under [#5508](https://github.com/gitpod-io/gitpod/issues/5508) solved
27+
- ~~Azure Blob Storage.~~ Minio will be used until [Azure storage gateway](https://github.com/gitpod-io/gitpod-azure-aks-guide/issues/1) is configured
28+
- Azure DNS zone.
29+
- Azure container registry.
30+
- [calico](https://docs.projectcalico.org) as CNI and NetworkPolicy implementation.
31+
- [cert-manager](https://cert-manager.io/) for self-signed SSL certificates.
32+
- [Jaeger operator](https://github.com/jaegertracing/helm-charts/tree/main/charts/jaeger-operator) - and Jaeger deployment for gitpod distributed tracing.
33+
- [gitpod.io](https://github.com/gitpod-io/gitpod) deployment.
34+
35+
### Common errors running make install
36+
37+
- Insufficient regional quota to satisfy request
38+
39+
Depending on the size of the configured `disks size` and `machine-type`,
40+
it may be necessary to request an [increase in the service quota](https://docs.microsoft.com/en-us/azure/azure-resource-manager/management/azure-subscription-service-limits)
41+
42+
*After increasing the quota, retry the installation running `make install`*
43+
44+
## Verify the installation
45+
46+
First, check that Gitpod components are running.
47+
48+
```shell
49+
kubectl get pods
50+
NAME READY STATUS RESTARTS AGE
51+
blobserve-5584456c68-t2vf6 2/2 Running 0 7m40s
52+
content-service-69fbcdf9fc-ngq9n 1/1 Running 0 7m39s
53+
dashboard-86877b7779-8rtdj 1/1 Running 0 7m40s
54+
image-builder-6557d4b5cf-xl9xf 3/3 Running 0 7m39s
55+
jaeger-5dfd44f668-8tj9x 1/1 Running 0 7m46s
56+
messagebus-0 1/1 Running 0 7m40s
57+
minio-76f8b45fb7-brr96 1/1 Running 0 7m40s
58+
mysql-0 1/1 Running 0 7m40s
59+
proxy-69d87469f9-fdx9l 1/1 Running 0 7m40s
60+
proxy-69d87469f9-qsmwg 1/1 Running 0 7m40s
61+
registry-facade-5xlhh 2/2 Running 0 7m39s
62+
registry-facade-qzmft 2/2 Running 0 7m39s
63+
registry-facade-vk9q4 2/2 Running 0 7m39s
64+
server-6bfdcbfd5b-2kwbt 2/2 Running 0 7m39s
65+
ws-daemon-7fqd5 2/2 Running 0 7m39s
66+
ws-daemon-jl46t 2/2 Running 0 7m39s
67+
ws-daemon-q9k9l 2/2 Running 0 7m39s
68+
ws-manager-66f6b48c8-ts286 2/2 Running 0 7m40s
69+
ws-manager-bridge-5dfb558c96-kcxvr 1/1 Running 0 7m40s
70+
ws-proxy-979dd587b-ghjf4 1/1 Running 0 7m39s
71+
ws-proxy-979dd587b-mtkxt 1/1 Running 0 7m39s
72+
```
73+
74+
### Test Gitpod workspaces
75+
76+
When the provisioning and configuration of the cluster is done, the script shows the URL of the load balancer,
77+
like:
78+
79+
Please open the URL `https://<domain>/workspaces`.
80+
It should display the Gitpod login page similar to the next image.
81+
82+
*DNS propagation* can take several minutes.
83+
84+
![Gitpod login page](./images/gitpod-login.png "Gitpod Login Page")
85+
86+
----
87+
88+
## Update Gitpod auth providers
89+
90+
Please check the [OAuth providers integration documentation](https://www.gitpod.io/docs/self-hosted/0.5.0/install/oauth) expected format.
91+
92+
We provide an [example here](./auth-providers-patch.yaml). Fill it with your OAuth providers data.
93+
94+
```console
95+
make auth
96+
```
97+
98+
> We are aware of the limitation of this approach, and we are working to improve the Helm chart to avoid this step.
99+
100+
## Destroy the cluster and Azure resources
101+
102+
Remove the Azure cluster running:
103+
104+
```shell
105+
make uninstall
106+
```
107+
108+
> The command asks for a confirmation:
109+
> `Are you sure you want to delete: Gitpod (y/n)?`
110+
111+
This will destroy the Kubernetes cluster and allow you to manually delete the cloud storage.

Diff for: images/gitpod-login.png

93 KB
Loading

0 commit comments

Comments
 (0)