oomichi / try-kubernetes

12 stars 5 forks source link

Implement the building amphora vm image method for OpenStack/Octavia #76

Closed oomichi closed 5 years ago

oomichi commented 5 years ago

DevStackではHAProxyのVMイメージを作成し、それをOctaviaでLBオブジェクト毎に作られるLB仮想マシンのベースイメージとして利用する。 DevStackのHAProxyのVMイメージ作成処理を抜き出し、このCI環境で作成できるようにする。

oomichi commented 5 years ago

作成方法

$ sudo apt-get install python-pip
$ sudo pip install diskimage-builder
$ sudo apt-get install qemu
$ git clone https://github.com/openstack/octavia
$ cd octavia/
$ ./diskimage-create/diskimage-create.sh
...
2019-03-02 02:56:01.510 | Converting image using qemu-img convert
2019-03-02 02:57:16.436 | Image file /home/ubuntu/octavia/amphora-x64-haproxy.qcow2 created...
2019-03-02 02:57:16.642 | Build completed successfully
$
$ ls amphora-x64-haproxy.qcow2
amphora-x64-haproxy.qcow2
$
oomichi commented 5 years ago

diskimage-create/diskimage-create.sh で作られるが、diskimage-builder の Element の一部 haproxy-octavia は Octavia 独自 Element であり openstack/octavia/elements/haproxy-octavia に存在する。 よって Octavia リポジトリから必要なものを抜き出して Build するよりは、Octavia リポジトリ上で diskimage-create/diskimage-create.sh を実行したほうが楽そう。

oomichi commented 5 years ago

問題発生

$ ./diskimage-create/diskimage-create.sh
ERROR: diskimage-builder repo directory not found at:  /home/ubuntu/diskimage-builder  or in path. Exiting.

disk-image-createコマンドの存在チェック方法にバグあり。 https://review.openstack.org/#/c/640562/ で修正

oomichi commented 5 years ago

問題発生

$ ./diskimage-create/diskimage-create.sh
Required package  qemu  is not installed.  Exiting.

qemuインストール手順を追加

oomichi commented 5 years ago

問題発生

$ ./diskimage-create/diskimage-create.sh
Building elements: base  base vm ubuntu-minimal pip-and-virtualenv haproxy-octavia rebind-sshd no-resolvconf amphora-agent sos keepalived-octavia ipvsadmin pip-cache certs-ramfs
ERROR: Element 'pip-and-virtualenv' not found in '/home/ubuntu/octavia/elements:/usr/bin/../share/diskimage-builder/elements'

https://docs.openstack.org/diskimage-builder/latest/elements.html によると pip-and-virtualenv は存在すべき。 うーん、ubuntu パッケージの diskimage-builder が怪しい感じがする。