🐙公式Helm Chartを使用してKubernetes上に構築したAirbyteにOctavia CLIで接続する🐙
はじめに
Airbyte公式のHelm Chart (https://airbytehq.github.io/helm-charts)を使用してKubernetes上に構築したAirbyteは、Serviceの命名が他の一般的なChartとは異なっているため、普段ハマらないところでハマってしまいました。
いくつか注意点があったので残しておきます。
やりたいこと
Octavia CLIを使って、Airbyteの構成をコードで管理したい🐙
- Airbyteは、Kubernetes上に構築する
- Octavia CLIは、Airbyteと同じNamespaceでDeploymentとして動かす
背景
AirbyteはGUIでの操作で、Sources・Destinations・Connectionsを定義することで、容易にETL処理を実装することができます。
しかし、設定が増えてくると管理が煩雑になりますし、環境移行する際にはコードで処理する方が便利です。
2022年4月に発表されたOctavia CLIを用いることで、Airbyteの構成をYAMLとして定義し適用する、逆に、GUIで作成した構成をインポートする、といったことができるようになります。
公式チュートリアルでは、Octavia CLIのインストールにシェルスクリプトを使用していますが、環境を汚したくないため、Airbyteと同じNamespaceにDeploymentとして構築します。
Octavia CLIのContainer Imageは公式からリリースされています。
https://hub.docker.com/r/airbyte/octavia-cli
Airbyte URL
Deploymentの環境変数にAIRBYTE_URL
を設定することで、接続先のAirbyteホストを指定できます。
AIRBYTE_URL
には、Web UIのホストを指定します。公式Chartの場合、airbyte-webapp
のServiceになります。
(ここをairbyte-server
だと思い込んでいたので、ハマりました🐙
よくよく考えると、ローカル環境のOctavia CLIからリモート環境のAirbyteに接続する、という使い方が想定されるので、airbyte-serverにアクセスさせるようなことはしないですね。)
また、一般的なHelm Chartでは、Service名とDeployment名が同じパターンが多いのですが、Airbyte公式Chartは異なるので、これもまたハマりました🐙
というわけで、公式Chartの場合、AIRBYTE_URL
をhttp://airbyte-airbyte-webapp-svc
に設定します。
(release nameによって異なる場合があります。注意すべきは-svc
が付くというところ)
ちなみに、Airbyte URLは--airbyte-url
Optionsで上書きすることができます。
octavia --airbyte-url "http://localhost:8080" init