このプロジェクトについて

VirtFoundryは、既存のKubernetesクラスタをマルチテナントのプライベートクラウドに変える宣言型のクラウドネイティブIaaSレイヤーである。仮想マシンにはKubeVirt、ネットワーキングにはMultusを基盤とし、Apache 2.0ライセンスで配布されている。 このリポジトリ(virtfoundry/core)にはREST APIとWeb UIが含まれる。関連コンポーネントは別々のリポジトリにある。virtfoundry/operatorはvirtfoundry.io CRDとKubernetesオペレーターを提供し、virtfoundry/helm-chartsはHelmチャート、ドキュメント、デプロイスクリプトを保持し、virtfoundry/terraform-provider-virtfoundryはTerraformプロバイダーを提供する。 READMEに記載されている主な機能: - マルチテナンシー: テナントごとに分離された名前空間。 - ネットワーキング: VPC、プライベートサブネット、オプションのパブリックIPプール、NetworkPolicyで実装されたセキュリティグループ。 - コンピュート: KubeVirt仮想マシン、テンプレート、オファリング、VMスナップショット、noVNCコンソール。 - ストレージ: PVCボリュームとボリュームスナップショット。ただしCSI VolumeSnapshotプロバイダーが必要(local-pathでは不十分)。 - IAM: ユーザー、ロール、vfd_live_接頭辞のAPIキー。 - パッケージング: 公式Helmチャート。 インストールはHelmで行う。ドキュメント化されたクイックスタートでは、最初にオペレーターチャート(CRDとオペレーター)をインストールし、次にAPIとUI用のメインチャートをインストールする。どちらもvirtfoundry-system名前空間にインストールし、rootパスワードとJWTシークレットを値として指定する。READMEには、クイックスタートはクラスタにKubeVirt、Multus、CDIが既にあることを前提としており、完全な前提条件についてはクイックスタートガイドとインストールガイドを参照するよう記載されている。ボリュームスナップショットには、longhornなどのスナップショットクラスを設定する必要がある。 開発では、プラットフォームの状態はvirtfoundry.io CRDを介してKubernetesに保存するか(store.driver=kubernetes、本番およびホームラボでの使用を想定)、インメモリストアに保存できる。インメモリストアはgo runでサーバーを実行する際のデフォルトであり、クラスタを必要としない。クラスタに対して実行するには、CRDがインストールされたクラスタを指すKUBECONFIGが必要である。UIはnpmで別途開発する。 READMEにはプロジェクトの製品モデルも記載されている。Apache 2.0のオープンソースコアに加え、Thurler ITによるオプションのエンタープライズコンポーネントがあり、エンタープライズサポートはCloudStackやVMwareからの移行、SSO、請求、SLAサポートをカバーする。ガバナンス、メンテナー、採用者、ロードマップ、CI要件、アーキテクチャ、VMテンプレートカタログ、CNCF Sandbox申請ドラフトはすべて、リポジトリ内の別ドキュメントとして参照されている。