You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
feat(contrib): add DigitalOcean provisioner booting CoreOS via kexec
This introduces a provisioning script for Deis on DigitalOcean droplets. As DigitalOcean
does not (currently) support CoreOS, we deploy CoreOS on top of Ubuntu 14.04 using kexec
on boot to switch to the CoreOS kernel and initrd. The state filesystem is a loop
mounted btrfs.
The CoreOS bootstrapping is heavily based on Levi Aul's code:
https://gist.github.com/tsutsu/490f35f48897df0f5173
We don't use Debian 7.0 as base distribution because kexec is unstable on the Debian
kernel.
# How to Provision a Deis Controller on Digital Ocean
3
2
4
-
Unfortunately, DigitalOcean does not yet provide CoreOS images. This
5
-
prevents Deis from being deployed on DigitalOcean.
3
+
Here are the steps to get started on Digital Ocean:
6
4
7
-
If you use DigitalOcean, please
8
-
[show your support](http://digitalocean.uservoice.com/forums/136585-digital-ocean/suggestions/4250154-suport-coreos-as-a-deployment-platform)
9
-
for CoreOS and help us to support Deis on DO.
5
+
## Customize cloud-config.yml
6
+
Edit [user-data](../coreos/user-data) and add a discovery URL. This URL will be used by all nodes in this Deis cluster. You can get a new discovery URL by sending a request to http://discovery.etcd.io/new.
7
+
8
+
## Install DO command line client and authorize:
9
+
```console
10
+
$ gem install tugboat
11
+
$ tugboat authorize
12
+
```
13
+
You can leave all but the client and API keys as the defaults.
14
+
15
+
Find out about the ID of your ssh key (import it into DO if it's not listed):
Not all regions allow private networks. Choose one which does, e.g. NY 2, Amsterdam 2 or
33
+
Singapore 1 at the time of this writing (check the web UI for the current private network
34
+
support).
35
+
36
+
The provisioning script uses a 512 MB droplet by default because for iamge creation
37
+
more memory is not needed. Deis controller nodes will need at least 2 GB to even start all
38
+
the services. Add the memory requirements of deployed applications and choose an adequat
39
+
droplet size, e.g. 8 GB (ID "65").
40
+
41
+
## Initialize the cluster
42
+
Once the cluster is up, get the IPs of any of the machines using `tugboat droplets`, set
43
+
FLEETCTL_TUNNEL to one of these IPs:
44
+
```console
45
+
$ export FLEETCTL_TUNNEL=23.253.219.94
46
+
$ cd ../.. && make run
47
+
```
48
+
The script will deploy Deis and make sure the services start properly.
49
+
50
+
### Configure DNS
51
+
You'll need to configure DNS records so you can access applications hosted on Deis. See [Configuring DNS](http://docs.deis.io/en/latest/operations/configure-dns/) for details.
52
+
53
+
### Use Deis!
54
+
After that, register with Deis!
55
+
```console
56
+
$ deis register http://deis.example.org
57
+
username: deis
58
+
password:
59
+
password (confirm):
60
+
email: info@opdemand.com
61
+
```
62
+
63
+
## Hack on Deis
64
+
If you'd like to use this deployment to build Deis, you'll need to set `DEIS_HOSTS` to an array of your cluster hosts:
SSH_KEY="$(cat /root/.ssh/authorized_keys | head -n1)"
22
+
sed "s,HOSTNAME,$HOSTNAME,;s,PUBLIC_IP,$PUBLIC_IP,;s,PRIVATE_IP,$PRIVATE_IP,;s,GATEWAY,$GATEWAY,;s,SSH_KEY,$SSH_KEY," /usr/share/oem/cloud-config.yml.template > /usr/share/oem/cloud-config.yml
0 commit comments