Open3

🐙公式Helm Chartを使用してKubernetes上に構築したAirbyteにOctavia CLIで接続する🐙

Ry1eRy1e

はじめに

Airbyte公式のHelm Chart (https://airbytehq.github.io/helm-charts)を使用してKubernetes上に構築したAirbyteは、Serviceの命名が他の一般的なChartとは異なっているため、普段ハマらないところでハマってしまいました。
いくつか注意点があったので残しておきます。

Ry1eRy1e

やりたいこと

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

Ry1eRy1e

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_URLhttp://airbyte-airbyte-webapp-svcに設定します。
(release nameによって異なる場合があります。注意すべきは-svcが付くというところ)

ちなみに、Airbyte URLは--airbyte-url Optionsで上書きすることができます。
octavia --airbyte-url "http://localhost:8080" init