ぶていのログでぶログ

思い出したが吉日

OpenStack Octavia-1.0.1 で、VIPポートがadminになるバグ

バグフィクスされたバージョンが出たら記事にしようと思ったけど、こないままQueensが出てOctavia-2.0.0になってしまった…。

タイトルの通りなのだが、Octavia-1.0.1を含んでそれ以前までには、LBが作成するVIP用のポートが、LBを作成したユーザのプロジェクトにはならず、必ずadminになってしまう不具合があった。 これで何が困るかというと、Floating IPをVIP用のポートに関連付けようとするとエラーになる。 なぜかというと、関連付け用とするFloating IPとポートの所属しているプロジェクトを合わせないとイケないからだ。 これではさすがに使い物にならないので、ワークアラウンドとして、ロードバランサーを作る前にVIP用のポートを手動で作っておき、ロードバランサー作成時に作成したポートのIDを指定する方法をとっていた。

ある日、OctaviaのRelase Noteを見ていたらこれが直っていることを知った。

Neutron LBaaS was assigning the VIP port it created the user’s project-id, thus allowing the user to attach Floating-IPs to the VIP port. Octavia, on the other hand, was assigning the Octavia project-id to the port, making it impossible for the user to attach a Floating IP. This patch brings Octavia’s behavior in line with Neutron LBaaS and assigns the user’s project-id to the VIP port created by Octavia. https://docs.openstack.org/releasenotes/octavia/pike.html#id1

1.0.1-13とバージョンが打たれているのと、過去の経験から1.0.2としてリリースされるのかと思っているのだが、特にそんなことはなかった…*1。 このFixされたバージョンを使う場合は、git cloneしてセルフパッケージングするしかない。 幸い、stable/pikeタグには修正コミットが含まれているのでこのタグを使うと良いと思う。

github.com

修正コミットはこれ

なお、この修正は、Newton移行のNeutronでないとエラーになる。 会社のOpenStackはMitakaなので*2、forkして修正して利用している。

github.com

*1:今後出る可能性はある

*2:近いうちにNewtonにする!!!