Fess 13.12.2のリリース

Fess 13.12.2をリリースしました。

今回、修正したのは以下。

#2567は不要なオプションが残りっぱなしになっていたのを削除しました。

#2564は管理画面のクロール設定で検索するときにワイルドカードクエリーになっていて、日本語がうまく検索できないケースがあるので、フレーズクエリーに変えました。

という感じで、他にはコードをリファクタリングして整理したくらいで大した変更はありません。

大した変更はないのですが、今回、リリースしておきたかった理由としてはDockerイメージのARM対応をしておきたかったためです。13.12.2からDockerイメージをマルチアーキテクチャ対応して、amd64系とarm系の2種類の環境で動きます。elasticsearchはすでにARM対応しているので、Fessも対応することで、ARM環境でも動くようになります(AWSのGraviton環境で動いていたので、たぶん、普通に動くはず…)。

という感じで、新たにARM環境をサポートしてみたりしたので、何かあれば、フォーラムをご利用ください。

Fess on Kubernetes

Helm対応はできていないのだが、eckctlを作り、elastic cloud on k8sを試せる環境を作っていたので、それをベースにして、kubernetes-fessを作ってみた。簡単にいうと、FessをKubernetesにデプロイして簡単に試せる環境を作るツールみたいな感じです。

デフォルトでは、kindでk8s環境を作るので、ローカルでも簡単に試せると思います。eksctlコマンドを入れておけば、AWSのEKS上にも構築することができます。クラスタの構築内容とかはmanifestsディレクトリに置いてあるファイルを編集すれば調整できます。taintsで配置するPodのノードを指定して、resourceのrequestで1ノード1Podにしているので、AWSでインスタンスタイプを変えるときとかは合わせて変更する必要があります。

今回、EKSで試す環境が欲しかったかというと、elasticsearchのDockerイメージはマルチアーキテクチャに対応していて、ARM環境でも動きます。そこで、FessもARM対応したいなーと思い、検証環境が必要になったので、その環境を作った感じです。ということで、次のリリースから、FessのDockerイメージはARM対応していきます。

docker buildxでarmがない

Ubuntu 20.04でDockerのマルチアーキテクチャのビルドをしようとしているが、docker buildx lsしても以下のような感じでarmが表示されない…。

$ docker buildx ls
NAME/NODE DRIVER/ENDPOINT STATUS PLATFORMS
default * docker
default default running linux/amd64, linux/386

QEMUを入れてみたり、環境変数を設定したところで変わらない。ググってもいまいち良いものがヒットしないのだが、github.com/docker/buildxを読むと、以下を実行すれば良いっぽい。

$ docker run --privileged --rm tonistiigi/binfmt --install all

QEMUも入れておく必要があると思うが、無事にarmが表示されるようになった。

$ docker buildx ls
NAME/NODE DRIVER/ENDPOINT STATUS PLATFORMS
default * docker
default default running linux/amd64, linux/386, linux/arm64, linux/riscv64, linux/ppc64le, linux/s390x, linux/arm/v7, linux/arm/v6