Merge branch '21644-flaky-test'
[arvados.git] / doc / install / arvados-on-kubernetes-minikube.html.textile.liquid
1 ---
2 layout: default
3 navsection: installguide
4 title: Arvados on Minikube
5 ...
6 {% comment %}
7 Copyright (C) The Arvados Authors. All rights reserved.
8
9 SPDX-License-Identifier: CC-BY-SA-3.0
10 {% endcomment %}
11
12 This page documents setting up and running the "Arvados on Kubernetes":{{ site.baseurl }}/install/arvados-on-kubernetes.html @Helm@ chart on @Minikube@.
13
14 h2. Prerequisites
15
16 h3. Install tooling
17
18 Install @kubectl@:
19
20 * Follow the instructions at "https://kubernetes.io/docs/tasks/tools/install-kubectl/":https://kubernetes.io/docs/tasks/tools/install-kubectl/
21
22 Install @helm@:
23
24 * Follow the instructions at "https://docs.helm.sh/using_helm/#installing-helm":https://docs.helm.sh/using_helm/#installing-helm
25
26 h3. Install Minikube
27
28 Follow the instructions at "https://kubernetes.io/docs/setup/minikube/":https://kubernetes.io/docs/setup/minikube/
29
30 Test the connection:
31
32 <pre>
33 $ kubectl get nodes
34 </pre>
35
36 Test @helm@ by running
37
38 <pre>
39 $ helm ls
40 </pre>
41
42 There should be no errors. The command will return nothing.
43
44 h2(#git). Clone the repository
45
46 Clone the repository and nagivate to the @arvados-k8s/charts/arvados@ directory:
47
48 <pre>
49 $ git clone https://github.com/arvados/arvados-k8s.git
50 $ cd arvados-k8s/charts/arvados
51 </pre>
52
53 h2(#Start). Start the Arvados cluster
54
55 All Arvados services will be accessible on Minikube's IP address. This will be a local IP address, you can see what it is by running
56
57 <pre>
58 $ minikube ip
59 192.168.39.15
60 </pre>
61
62 Generate self-signed SSL certificates for the Arvados services:
63
64 <pre>
65 $ ./cert-gen.sh `minikube ip`
66 </pre>
67
68 The @values.yaml@ file contains a number of variables that can be modified. At a minimum, review and/or modify the values for
69
70 <pre>
71   adminUserEmail
72   adminUserPassword
73   superUserSecret
74   anonymousUserSecret
75 </pre>
76
77 Now start the Arvados cluster:
78
79 <pre>
80 $ helm install arvados . --set externalIP=`minikube ip`
81 </pre>
82
83 And update the Kubernetes services to have the Minikube IP as their 'external' IP:
84
85 <pre>
86 $ ./minikube-external-ip.sh
87 </pre>
88
89 At this point, you can use kubectl to see the Arvados cluster boot:
90
91 <pre>
92 $ kubectl get pods
93 $ kubectl get svc
94 </pre>
95
96 After a few minutes, you can access Arvados Workbench at the Minikube IP address:
97
98 * https://&lt;MINIKUBE IP&gt;
99
100 with the username and password specified in the @values.yaml@ file.
101
102 Alternatively, use the Arvados cli tools or SDKs. First set the environment variables:
103
104 <pre>
105 $ export ARVADOS_API_TOKEN=<superUserSecret from values.yaml>
106 $ export ARVADOS_API_HOST=<MINIKUBE IP>:444
107 $ export ARVADOS_API_HOST_INSECURE=true
108 </pre>
109
110 Test access with:
111
112 <pre>
113 $ arv user current
114 </pre>
115
116 h2(#reload). Reload
117
118 If you make changes to the Helm chart (e.g. to @values.yaml@), you can reload Arvados with
119
120 <pre>
121 $ helm upgrade arvados .
122 </pre>
123
124 h2. Shut down
125
126 {% include 'notebox_begin_warning' %}
127 This Helm chart uses Kubernetes <i>persistent volumes</i> for the Postgresql and Keepstore data volumes. These volumes will be retained after you delete the Arvados helm chart with the command below. Because those volumes are stored in the local Minikube Kubernetes cluster, if you delete that cluster (e.g. with <i>minikube delete</i>) the Kubernetes persistent volumes will also be deleted.
128 {% include 'notebox_end' %}
129
130 <pre>
131 $ helm del arvados
132 </pre>