![見出し画像](https://assets.st-note.com/production/uploads/images/143696379/rectangle_large_type_2_0789a45c3218b64c17c4f74bc59adff1.png?width=1200)
Knitfab v1.1.0 をリリースしました
![](https://assets.st-note.com/img/1718086668025-QNFy6n4GUW.png?width=1200)
皆さんこんにちは。株式会社オープンストリーム・技術創発推進室の髙岡です。2024年6月7日に、Knitfab の最初の「マイナーアップデート」リリースとなる、v1.1.0 をリリースしました。
https://github.com/opst/knitfab/releases/tag/v1.1.0
このリリースでは、いくつかの新機能を導入しました。今日はそれら機能をご紹介します。
この記事は、技術創発推進室のブログ "Keep Innovating! Blog" の転載記事です。
https://www.opst.co.jp/keep_innovating_blog/20240611_1/
新機能
AMDプロセッサをサポート(クロスビルド)
Knitfabコンテナイメージは、従来の AMD(x86_64)に加えて、ARMプロセッサもサポートするようになりました。
より多くの Kubernetes クラスタで Knitfab をお使いいただけます。
検索機能強化: 時間ベースのクエリ
CLI の機能を強化しました。
knit data find (Data を検索する機能)と knit run find (Run を検索する機能)は、タイムスタンプに基づいたフィルタリングができるようになりました。このために、新しいフラグ --since および --duration が導入されました。
例えば、 knit data find --since 2024-06-01 --duration 24h とすると、6/1 から 24 時間(= 6/2 になる直前まで)の間に生成が完了した Data の一覧を得ることができます。
詳細については、knit data find --help または knit run find --help をご参照ください。
バックアップ&レストア用の補助ツール
バックアップおよびレストアツールを提供します。リリースページの assets から “admin-tools.tar.gz” として配信されています。
バックアップツールは、Knitfabのデータ、実行、およびプランをバックアップします。具体的には、RDBのダンプと永続ボリュームとそのクレームのコピーをローカルに取得します。
レストアツールは、レストアしたものと同じバージョンの Knitfab に対してバックアップを適用し、状態を復元します。
いずれも、シェルスクリプト(bash)として実装されています。
インテグレーション/プラグイン
Knitfab は v1.1.0 から、ユーザが自作したカスタムな追加機能と連携するための機能を提供し始めました。お使いの状況に合わせて工夫していただけるようにできたと思っています。
Lifecycle Hook
Run のステータスの更新の前後で、そのRun の情報を Web Hook として受け取ることができるようになりました。この機能を Lifecycle Hook と呼んでいます。
更新前 Hook では、「これからステータスが更新されようとしている」 Run の情報が、設定された Hook の URL に POST されます。更新後 Hook では「いまステータスが更新された」 Run の情報が、設定された Hook の URL に POST されます。
Run のライフサイクルが進むことをきっかけになにかをしたい(例: Slack に通知を送れるようにしたい)、といったユースケースで、カスタムな仕組みを開発する足がかりになります。
拡張 Web APIと、拡張 CLI サブコマンド
Knitfabは、Web API を拡張できるようになりました。Knitfab Web APIサーバー knitd は、受け取ったリクエストを、そのパスに従って設定された URL にプロキシします。この設定は、インストール設定ファイルで行うことができます。
この詳細については、docs/03.admin-guide を参照してください。
また、Knitfab CLI knit は、拡張コマンドをサポートするようになりました。PATH 環境変数から knit-
で始まるコマンドを探して、これをサブコマンドであるかのように呼び出します。
たとえば、knit-foo というコマンドが存在していれば、これを knit foo として呼び出すことができます。引数やフラグはサブコマンドの本体(knit-foo)に引き渡されます。また、標準入出力や標準エラーも引き継がれます。
さらに、knit コマンドとしての設定は、環境変数 KNIT_PROFILE、KNIT_PROFILE_STORE、KNIT_ENV を通じて引き渡されます。
詳細については、docs/02.user-guide を参照してください。
この 2 つの機能を組み合わせることで、Knitfab にカスタムな機能を統合できます。たとえば、Knitfab のデータベースを参照するような Web API を拡張 API として実装し、その拡張 API を呼び出す拡張 CLI サブコマンドを開発する、といった事が可能です。
ライセンスのCHANGE DATE
このリリースv1.1.0は2024-06-07に行われました。このリリースでは、ライセンス の CHANGE DATE が更新されました。
v1.1.x のCHANGE DATEはリリース日から4年後の2028-06-07です。このCHANGE DATEはバグ修正リリースでは変更されません。
v1.0.x のCHANGE DATEは従来のまま変更されません。
アップグレードパス
お使いの Knitfab v1.0.x をv1.1.0 にアップグレードするには、次のようにします。
新しいインストーラースクリプトをダウンロードし、Knitfabをインストールしたディレクトリで ./installer.sh --install を実行してください。
まとめ
今回の変更のご紹介は以上です。
今後も Knitfab をより使いやすくしてゆくつもりです。引き続き、どうぞよろしくお願いいたします。