Project

General

Profile

All-in-one package » History » Version 1

Tom Clegg, 08/07/2020 03:29 PM

1 1 Tom Clegg
h1. All-in-one package
2
3
(draft / work in progress, see #16306 and "arvados-server boot (google doc)":https://docs.google.com/document/d/1UvABO9WOg5svK2LIETaEgg9jZQp6Lydb47HrG3NMsFM/edit)
4
5
"arvados-server-easy" is a debian/rpm package that can be used to create a single-node production cluster from scratch with minimal effort:
6
7
<pre>
8
apt-get install arvados-server-easy
9
arvados-server init -cluster-id x1234
10
systemctl start arvados
11
</pre>
12
13
This page is mostly about how we build/maintain the package, rather than how to use it.
14
15
h2. Building
16
17
source:cmd/arvados-dev (similar to arvados-client/server) has:
18
* a "buildpackage" subcommand that creates a deb/rpm package from source (i.e., a checkout of the arvados source tree, possibly with local modifications). It takes care of installing dependencies, fpm, etc.
19
* a bash script (could move to Go) that builds a package for a given OS version by injecting the buildpackage command into a docker container with that OS version, installs the resulting package into a new base OS image, and saves the resulting image for testing purposes. (currently, debian:10 is implemented)
20
* a bash script (could move to Go) that brings up a cluster using the testing image (the one with arvados-server-easy already installed), optionally injecting local changes to enable a quicker dev cycle. For example, "docker-boot.sh cmd/arvados-server" builds a new arvados-server binary on the host, then starts a container using the test image but with the new arvados-server binary bind-mounted over the packaged one.
21
22
Package publishing outline (pseudocode):
23
<pre>
24
./cmd/arvados-dev/docker-build-install.sh -os debian:10
25
</pre>
26
27
Development cycle:
28
<pre>
29
./cmd/arvados-dev/docker-build-install.sh -os debian:10 # (just once, takes 10+ minutes)
30
./cmd/arvados-dev/docker-boot.sh
31
# (edit some Go code locally)
32
./cmd/arvados-dev/docker-boot.sh cmd/arvados-server     # takes 15 seconds, mostly starting postgresql, creating db, etc
33
# (edit some Go code locally)
34
./cmd/arvados-dev/docker-boot.sh cmd/arvados-server
35
# ...
36
</pre>