Back to the news overview

LXD 2.0.11 リリースのお知らせ

19th of October 2017

これは LXD 2.0 の 11 回目のバグフィックスリリースです。

LXD 2.0.10 以降の変更は以下の通りです

細かな改良点 :

  • LXD 2.0.11 は snap で利用できるようになり、"2.0" トラックからインストールできます
  • ドキュメントが ReadTheDocs で読めるようになりました
  • イメージのダウンロードを中断できるようになりました
  • 新たな security.idmap.base.config キーを追加しました (コンテナのベースの uid/gid を上書きします)
  • イメージの差分ダウンロードのサポートを追加しました
  • リソース制限のプロキシとしてインスタンスタイプを実装しました (訳注: リソース制限を簡単に設定できるようにインスタンスタイプを実装)
  • user-agent 文字列が OS とカーネルの情報を含むように拡張されました
  • クライアントライブラリと関連するコードが master と同期されました
  • コマンドラインクライアントが新たなクライアントライブラリに移植されました

Bugfixes:

  • client: RemoteOperation に CancelTarget を追加しました
  • client: CreateContainerFromImage 関数を追加しました
  • client: insecureSkipVerify フラグを ConnnectionArgs 構造体に追加しました
  • client: I/O の間操作をブロックする追加の実行オプションを追加しました
  • client: GetServerResources() を追加しました
  • client: GetStoragePoolResources() を追加しました
  • client: 後方互換性のために image_create_aliases を追加しました
  • client: RenameStoragePoolVolume() を追加しました
  • client: LXD からのイメージダウンロードのキャンセルができるようになりました
  • client: ベースとなる http クライアントを指定できるようになりました
  • client: イメージをダウンロードする関数内でのコードの重複をなくしました
  • client: エラーハンドリングの共通化を行いました
  • client: 停止しているコンテナのライブマイグレーションを行おうとしないようにしました
  • client: 新しいクライアントから experimental のタグを削除しました
  • client: イメージサーバがネットワーク経由で待ち受けてない場合、コピーが失敗するようにしました
  • client: オペレーションハンドラ内のクラッシュを修正しました
  • client: cookiejar がない場合にクラッシュする問題を修正しました
  • client: public な LXD のリモートホストを扱う際の問題を修正しました
  • client: イメージコピーの問題を修正しました
  • client: non-interactive モードの実行時にハングする問題を修正しました
  • client: イベントハンドラのセットアップで競合が起きる可能性があった問題を修正しました
  • client: 操作処理中の競合を修正しました
  • client: コンテナとスナップショットのコピーを実装しました
  • client: コンテナコピーの push モードと relay モードを実装しました
  • client: リモート操作を実装しました
  • client: イメージコピーの際のエラーを改良しました
  • client: マイグレーションをリレーするコードを改良しました
  • client: プロトコルを追跡するようにしました
  • client: 使用中の HTTP クライアントを取得できるようになりました
  • client: Authentication Interactor を設定できるようにしました
  • client: CopyImage をターゲットサーバへ移動しました (訳注: 処理の重複を防ぎ整合性を取れるように関数が属する構造体を変更した)
  • client: 値がある場合だけファイルに関するヘッダを設定するようにしました
  • client: リモートの切断を正しく扱うようにしました
  • client: リクエストに関するログを Debug レベルにしました
  • client: ConnectPublicLXD のロジックを簡素化しました
  • client: Macaroons ベースの認証をサポートしました
  • client: master ブランチと同期しました
  • client: CopyImage では RemoteOperation を使うようにしました
  • config: CookieJar のサポートを追加しました
  • config: スナップショット名中に ":" が含まれる場合の処理を改良しました
  • doc: blkio コントローラの制限について注意書きを追加しました
  • doc: macvlan とブリッジに関するセクションを追加しました
  • doc: SUPPORT.md を追加しました
  • doc: インスタンスタイプについて記載しました
  • doc: squashfs イメージも使えることを追加しました
  • doc: exec セッション中の control API を文書に追加しました
  • doc: セキュリティに関連する文書を作り直し詳細にしました
  • doc: Issue 用テンプレートの lxd.log の場所を修正しました
  • doc: 空白、カンマ、クオート、括弧を修正しました
  • doc: コンテナ内の環境についての文書を追加しました
  • doc: Issue 用のテンプレートを更新しました
  • doc: README の説明を見直しました
  • doc: コンテナの設定キーでソートしました
  • doc: server.md を設定キーでソートしました
  • doc: containers.md を更新しました
  • extra/lxc-to-lxd: 不適切なテストを修正しました
  • extra/lxc-to-lxd: デフォルトで drop されるケーパビリティを無視しました
  • extra/lxc-to-lxd: sysfs/proc のマウントを無視しました
  • extra/lxc-to-lxd: lxc.seccomp を適切に扱うようにしました
  • i18n: クライアントのメッセージの日本語翻訳を更新しました
  • lxc: 操作をキャンセルするための機能を追加しました
  • lxc: クロスプラットフォームで HOME を扱えるようにしました
  • lxc: 実際に動作するサンプルを示すように help を修正しました
  • lxc: プロパティを追加したとき、インポートがクラッシュする不具合を修正しました
  • lxc: 進捗レポートの競合を修正しました
  • lxc: コピー時にエイリアスのソースを適切に記録するようにしました
  • lxc: リモートのプロトコル変換を再導入しました
  • lxc: 設定されている場合は HOME を使うようにしました
  • lxc/config: 一度に複数のデバイスを削除できるようにしました
  • lxc/copy: 進捗をレポートするようにしました
  • lxc/delete: --force の使い方を修正しました
  • lxc/exec: Windows でのシグナルハンドラを修正しました
  • lxc/exec: Windows へのポーティングを修正しました
  • lxc/file: 名前にスペースが含まれたファイルの push/pull の問題を修正しました
  • lxc/file: Windows のファイルシステムからファイルのパーミッションを読み取るようにしました
  • lxc/file: push/pull で shared.HostPath を使うようにしました
  • lxc/image: エクスポートした際のファイル名では、常に長いフィンガープリントを使うようにしました
  • lxc/image: "cached" フラグを表示するようにしました
  • lxc/image: simplestreams リモートでのエイリアスの問題を修正しました
  • lxc/image: "ixc image copy" が取得元を記録していない問題を修正しました
  • lxc/image: export した際のファイル名に関するリグレッションを修正しました
  • lxc/image: フィルタのハンドリングを改良しました
  • lxc/image: "lxc image copy" を再度速くしました
  • lxc/image: イメージにエイリアスが設定されている場合、エイリアスを更新するようにしました
  • lxc/image: import/export で shared.HostPath を使うようにしました
  • lxc/init: ランダムな名前をつけたコンテナの起動に失敗する問題を修正しました
  • lxc/list: --columns と --fast を同時に指定した場合にエラーになっていた問題を修正しました
  • lxc/move: 強制的に削除するようにしました
  • lxc/publish: フィンガープリントの表示の問題を修正しました
  • lxc/remote: public なリモートサーバでは証明書が不要になりました
  • lxc/utils: 進捗表示での競合の可能性をなくしました
  • lxc/utils: エラー表示でフォーマット指定を行う処理が抜けていた問題を修正しました
  • lxd-benchmark: CreateContainers 関数を追加しました
  • lxd-benchmark: csv によるレポート出力を追加しました
  • lxd-benchmark: freezeContainer 関数を追加しました
  • lxd-benchmark: processBatch 関数を追加しました。この関数は SpawnContainers と DeleteContainers で使われます
  • lxd-benchmark: "launch" と同等の命令として廃止予定の "spawn" を追加しました
  • lxd-benchmark: start と stop コマンドを追加しました
  • lxd-benchmark: StartContainers 関数を追加しました
  • lxd-benchmark: StopContainers 関数を追加しました
  • lxd-benchmark: spawn コマンドの名前を launch に変更しました
  • lxd-benchmark: deleteContainer と copyImage を独立した関数にしました
  • lxd-benchmark: ensureImage を独立した関数にしました
  • lxd-benchmark: getBatchSize を独立した関数にしました
  • lxd-benchmark: GetContainers を独立した関数にしました
  • lxd-benchmark: ロジックを独立したパッケージにしました
  • lxd-benchmark: PrintServerInfo を独立した関数にしました
  • lxd-benchmark: printTestConfig を独立した関数にしました
  • lxd-benchmark: ローカルのエイリアスを与えられた場合の ensureImage の問題を修正しました
  • lxd-benchmark: ローカルイメージの扱いの問題を修正しました
  • lxd-benchmark: 操作時間を返すようにしました
  • lxd-benchmark: プライベートな関数を別のファイルにわけました
  • lxd-benchmark: デフォルトの設定値を取得する際に NewConfig を使うようにしました
  • lxd: 初期の lxd/sys サブパッケージと OperationSystem 構造体を追加しました
  • lxd: Typo を修正しました (now -> Know)
  • lxd: .dir-locals.el を flycheck でいい感じで動くようにしました
  • lxd: InternalError が使われているところの何箇所かを SmartError に置き換えました
  • lxd: 可能な場合は Daemon の代わりに sql.DB、sys.OS を使うようにしました
  • lxd/apparmor: apparmor の使われない deny を削除しました
  • lxd/apparmor: 新しい stacking 文法をサポートしました
  • lxd/containers: LXD snap にディスクデバイスを与えられるようになりました
  • lxd/containers: メモリ使用量の表示の際のエラー処理を改良しました
  • lxd/containers: コンテナのマウントポイントもチェックするようになりました
  • lxd/containers: ディスクデバイスの存在をチェックするようになりました
  • lxd/containers: update 時に一時的なキーをクリアするようにしました
  • lxd/containers: exec 中の poll で POLLNVAL を検出するようにしました
  • lxd/containers: ディレクトリマウント(訳注: bind マウント) の読み込み専用モードの際の問題を修正しました
  • lxd/containers: "dev" という名前のネットワークインターフェース名でも動くようにしました
  • lxd/containers: ストレージの作成に失敗した場合には DB から削除するようにしました
  • lxd/containers: コンテナの削除が失敗した場合の根本的なエラーを表示するようにしました
  • lxd/containers: LXC 2.1 の設定キーのサポートを追加しました
  • lxd/containers: lxc.network.N (訳注: LXC 2.1 形式のネットワーク設定) を使うようにしました
  • lxd/daemon: prune 中 (訳注: 期限切れのキャッシュの削除中) はイメージを更新しないようにしました
  • lxd/daemon: d.os.Init の実行をすべてのパスが作られた後に行われるようにしました
  • lxd/daemon: Daemon.ExpireLogs を独立した関数にしました
  • lxd/daemon: Daemon.GetListeners を独立した関数にしました
  • lxd/daemon: Daemon.httpClient を独立した関数にしました
  • lxd/daemon: Daemon.ListenAddresses を独立した関数にしました
  • lxd/daemon: Daemon.PasswordCheck を独立した関数にしました
  • lxd/daemon: Daemon.SetupStorageDriver を独立した関数にしました
  • lxd/daemon: 高レベルエンティティ API 中の Daemon を State に置き換える作業が完了しました
  • lxd/daemon: config のトリガーの扱いを修正しました
  • lxd/daemon: 不正な設定キーのエラーを改良しました
  • lxd/daemon: 存在しない設定項目に対する警告をログに出力するようになり、クラッシュしなくなりました
  • lxd/daemon: Daemon.BackingFs を OS 構造体に移動させました
  • lxd/daemon: Daemon.IdmapSet を OS.IdmapSet に移動させました
  • lxd/daemon: Daemon.isRecursionRequest を lxd/util サブパッケージに移動させました
  • lxd/daemon: Daemon.lxcpath を OS.LxcPath に移動させました
  • lxd/daemon: Daemon.MockMode を OS.MockMode に移動させました
  • lxd/daemon: Daemon.CheckTrustState と Daemon.isTrustedClient を lxd/util に移動させました
  • lxd/daemon: filesystemDetect 関数を lxd/util サブパッケージに移動させました
  • lxd/daemon: lxd/util.go を自身 lxd/util のサブパッケージに移動しました
  • lxd/daemon: すべてのモデルエンティティの Daemon を State に置き換えました
  • lxd/daemon: 設定が変わったときはイメージの自動更新ループをリセットするようにしました
  • lxd/daemon: タイマーの処理を簡素化しました
  • lxd/daemon: select を使用し、goroutine を節約するようにしました
  • lxd/db: 共通のクエリヘルパとして db/query サブパッケージを追加しました
  • lxd/db: データベースのスキーマを管理するための db/schema サブパッケージを追加しました
  • lxd/db: query.Transaction を追加しました
  • lxd/db: 一連のスキーマ更新を平坦化する Schema.Dump() メソッドを追加しました
  • lxd/db: Map からスキーマを作るのが便利なように schema.NewFromMap を追加しました
  • lxd/db: データベース更新から自動的にデータベーススキーマを生成するようになりました
  • lxd/db: db へのパッチで不要である特別なモックモードを実行しないようにしました
  • lxd/db: Daemon に対する依存を削除しました
  • lxd/db: スキーマバージョン 30 と 31 間の更新の不適切な DB スキーマを修正しました
  • lxd/db: 中間のバージョンを挿入しないデータベースの更新ロジックを修正しました
  • lxd/db: db*.go ファイルを自身の db/ サブパッケージへ移動させました
  • lxd/db: デーモンレベルのロジックから DB レベルの更新ロジックを分離しました
  • lxd/db: 新しいスキーマコードを db.go で使うようにしました
  • lxd/devices: CPU スケジューラの isolcpu をサポートしました
  • lxd/devices: デフォルトではすべての CPU を隔離しないようにしました
  • lxd/devices: デバイス ID のメジャーとマイナー番号の扱いを修正しました
  • lxd/devices: デバイスのソート順を修正しました
  • lxd/devices: 空の isolcpus を扱えるようにしました
  • lxd/devices: マイナーデバイス番号の 32bit すべてを取得するようにしました
  • lxd/events: イベントハンドラ中の競合を修正しました
  • lxd/images: 実際に消去するイメージのリストを取得するようにしました
  • lxd/images: 常にフィンガープリントを展開するようになりました
  • lxd/images: リフレッシュ時に古い "cached" という値も渡すようにしました
  • lxd/images: イメージが見つからない場合にエラー表示を行うようにしました
  • lxd/images: エラーの場合はリターン値の構造体にアクセスしないようにしました
  • lxd/images: フィンガープリントが与えられた場合のイメージのリフレッシュの問題を修正しました
  • lxd/images: 圧縮コマンドに与える引数の順序を修正しました
  • lxd/images: 複数回アンロックの可能性があったのを修正しました
  • lxd/images: 部分的なフィンガープリントを使ったプライベートイメージのコピーの問題を修正しました
  • lxd/images: イメージの自動更新ロジックにあったリグレッションを修正しました
  • lxd/images: アクセスプロトコルが "direct" の場合はイメージ情報を初期化するようにしました
  • lxd/images: イメージの有効期限を適切に取得するようにしました
  • lxd/images: キャッシュの期限切れを無効にする設定通りに動作するようにしました
  • lxd/images: RFC3339 形式で UploadedAt を保存するようにしました
  • lxd/init: コマンドラインのフラグをパースする cmd.Parser ヘルパを追加しました
  • lxd/init: インタラクティブ・自動の初期化ロジックとあらかじめ準備した設定を与える初期化ロジックを統合しました
  • lxd/init: 初期化の際の質問を行うコードを独立したメソッドに分離しました
  • lxd/init: 初期化の際のデータを構造体に設定するロジックを独立したメソッドに分離しました
  • lxd/init: --auto 引数のバリデーションを別のメソッドに分離しました
  • lxd/init: cmdInit をユニットテスト可能なようにログを生成するようにしました
  • lxd/init: 状態を変えるインライン関数を独立したメソッドに移動させました
  • lxd/init: cmd.Parser を main.go に追加しました
  • lxd/init: 適切にデフォルトのポートを設定するようにしました
  • lxd/main: ログのパスが設定されていないときのエラーメッセージを修正しました
  • lxd/migration: ライブマイグレーションでの不適切な URL の問題を修正しました
  • lxd/networks: ipt_checksum は不要になりました
  • lxd/patches: UploadAt を RFC3339 形式に変換するようにしました
  • lxd/rsync: rsync の際、sparse ファイルを扱えるようになりました
  • lxd/shutdown: 指定された場合だけタイムアウトを待つようにしました
  • lxd/storage/btrfs: btrfs のバグを回避するようにしました
  • lxd/storage/dir: sync がエラーになった際に unfreeze するようにしました
  • lxd/storage/rsync: sync 中の存在しないファイルの警告を無視するようになりました
  • Makefile: static-analysis ターゲットを修正しました
  • Makefile: po の前に pot を更新するようにしました
  • network: 無条件に制限を更新しないようにしました
  • shared: ホストのパスを変換するラッパーを追加しました
  • shared: log モジュールの使用をやめました
  • shared: snap のパスの不適切なチェックを修正しました
  • shared: GroupId 関数で buf が大きくなっていく問題を修正しました
  • shared: golint の警告が出る部分を修正しました
  • shared: GetRemoteCertificate を lxc/remote から (sharedに) 移動しました
  • shared: idmap と acl 関数は別パッケージに分離しました
  • shared: 当面 testhelpers を shared/osarch に移動します
  • shared: RunCommand のカスタムエラータイプを使うようにしました
  • shared: subtest の互換性を提供するパッケージを shared/subtest 与えるようにしました
  • shared: Websocket プロキシ はすべてをプロキシするようにしました
  • shared/api: コンテナの metadata.yaml とテンプレートファイルを編集する API を追加しました
  • shared/api: コンテナのテンプレートを操作する API を追加しました
  • shared/api: サーバのレスポンスに関する API 構造体を追加しました
  • shared/api: ストレージプールリソースを Resource API 構造体に追加しました
  • shared/api: StorageVolumePost を追加しました
  • shared/api: Macaroons ベースの認証の指示子のサポートを追加しました
  • shared/api: API 拡張は構造体の一番最後に移動しました
  • shared/api: 完全な push マイグレーションを実装しました
  • shared/api: Migration: ステートフル/ステートレスなスナップショットのマイグレーションを追加しました
  • shared/api: ストレージ関連のファイルをプールとボリュームに分けました
  • shared/api: master ブランチと Sync しました
  • shared/canceler: 並行ダウンロードをキャンセルできるようにしました
  • shared/canceler: 返り値の順序を修正しました (訳注: 関数の返り値を受け取る際、間違った変数で受け取っていた)
  • shared/canceler: Request のキャンセルチャンネルを使うようにしました
  • shared/cmd: cmd パッケージ内では testify に依存しなくなりました
  • shared/cmd: master と一致するように更新しました
  • shared/idmap: ホストのidとサブidが交差するのは許可されなくなりました
  • shared/idmap: 多数の問題を修正しました
  • shared/idmap: テストを修正しました
  • shared/idmap: CL に関するエラー出力をより冗長にしました
  • shared/logger: log15 API が壊れているのに対する一時的な回避策を取りました
  • shared/network: TLS Cipher をさらにいくつか追加しました
  • shared/network: TLS の扱いを master に Sync しました
  • shared/osarch: /etc/os-release をパースする関数を追加しました
  • shared/osarch: アーキテクチャのエイリアスを追加しました
  • shared/osarch: いくつかのアーキテクチャにおける uname の扱いを修正しました
  • shared/util: テンポラリファイルを作るヘルパーを追加しました
  • shared/util: uname を取得するヘルパーを独立させました
  • shared/util: ysconf() が -1 を返した時、サイズを推測するようにしました
  • shared/util: さらに snap を扱うロジックを追加しました
  • shared/util: xattr の ACL をコンテナ内の uid/gid にシフトさせるようにしました
  • shared/util: ParseLXDFileHeaders を master に sync しました
  • shared/version: プラットフォーム特有のバージョンを取得するヘルパを追加しました
  • shared/version: ビルド ID でなく、カーネルバージョンのみ含まれるようにしました
  • tests: 読み込み専用のディスクのテストを追加しました
  • tests: 依存パッケージのチェックに新たなパッケージを追加しました
  • tests: パフォーマンスのりグレッションテストを追加しました
  • tests: ストレージのヘルパを追加しました
  • tests: perf.sh に LXD_TMPFS のサポートを追加しました
  • tests: subuid 中に hostid を含めないためのテストを追加しました
  • tests: perf.sh でバッチの開始時刻も計測するようにしました
  • tests: イメージの自動アップデートの制限を 20min に増やしました
  • tests: lxdSuiteTest が終了するごとにモックデーモンでデータベースの状態をクリアするようにしました
  • tests: パブリックなリモートに対する finger を実行しないようにしました
  • tests: 実行中の lvm/ceph コンテナはコピーしないようにしました
  • tests: raw.lxc のテストの問題を修正しました
  • tests: 依存チェックを修正しました
  • tests: image_auto_update を修正しました
  • tests: イメージの Expire テストを修正しました
  • tests: シェルのリターン値のマスキングを修正しました
  • tests: ストレージバックエンドのヘルパを include する関数を追加しました
  • tests: イメージの自動更新に LVM を含めるようにしました
  • tests: apparmor の存在チェックを行うようにしました
  • tests: クリーンアップの関数をリファクタリングしました
  • tests: トリガー用の基本チャンネルハンドラのセットアップを行うようにしました
  • tests: カーネルがサポートしていない場合は apparmor のテストをスキップするようにしました
  • tests: スクリプトを lxc と lxd それぞれに関連したヘルパ関数に分離しました
  • tests: ネットワーク関連のヘルパ関数を分離しました
  • tests: ストレージ関連のヘルパ関数を分離しました
  • tests: テストのセットアップ関連のヘルパ関数を分離しました
  • tests: testify で一部のテストを独立して実行できるようにしました
  • tests: 新しいストレージヘルパにスイッチしました
  • tests: perf.sh 内の "lxd-benchmark spawn" 呼び出しを "lxd-benchmark launch" に更新しました
  • tests: stop を実行する場合は常に "--force" を使うようにしました
  • tests: スピードアップのため、テストの場合はインメモリデータベースを使うようにしました
  • tests: パフォーマンステストには testimage を使うようにしました
  • tests: 正しく busybox がインストールされているかを確認するようにしました
  • tests: イメージの更新は 2 分まで待つようにしました

ダウンロード

このリリースの tarball は ダウンロードページ から取得できます。