Back to the news overview

LXD 2.14 リリースのお知らせ

30th of May 2017
新機能:

  • 新しいクライアントライブラリ
    • CreateContainerFromImage 関数を追加しました
    • イメージのアップロードを実装しました
    • リモート操作を実装しました
  • API の追加
    • コンテナ、ネットワーク、ストレージプール、ストレージボリュームに新たに "description" フィールドを追加しました
    • イメージのリフレッシュが可能になりました (lxc image refresh)
  • コンテナを起動する際、リフレッシュされたダウンロードしたイメージより既存のキャッシュされたイメージが優先されるようになりました
  • "lxd init" に "--preseed" オプションと YAML ファイルを与えることで、あらかじめ準備した設定を与えられるようになりました
  • 新たに btrfs.mount_options でプールのプロパティを設定できるようになりました
  • LVM のボリュームのリサイズを実装しました (ext4 は拡張・縮小、xfs は拡張のみ)

バグ修正:

  • client: 後方互換性のために image_create_aliases を追加しました
  • client: 常に queryStruct 関数にポインタを渡すようにしました
  • client: GetServer ではキャッシュを返さなくなりました
  • client: サーバ証明書のフィンガープリントが設定されていない場合、設定するようにしました
  • client: プライベートイメージの扱いの問題を修正しました
  • client: オペレーションハンドラの競合問題を修正しました
  • client: イメージコピーの際のエラーを改良しました
  • client: プロトコルを追跡するようにしました
  • client: CopyImage をターゲットサーバへ移動しました (訳注: 処理の重複を防ぎ整合性を取れるように関数が属する構造体を変更した)
  • client: 不要な条件を削除しました
  • client: ストレージボリュームではボリュームタイプを必須としました
  • client: フィンガープリントの一部でのチェックをサポートしました
  • client: クライアントでなくサーバの証明書を追跡するようにしました
  • client: CopyImage では RemoteOperation を使うようにしました
  • doc: init に YAML で設定を与える方法を記載しました
  • doc: デバイスタイプ名の typo を修正しました
  • doc: markdown のエスケープを修正しました
  • doc: README.md の Docker に関する説明を更新しました
  • doc/network: macvlan とブリッジに関するセクションを追加しました (Issue #3273)
  • doc/storage: 文法を修正しました
  • doc/storage: ZFS の quota と refquota に関する記述を追加しました (Issue #2959)
  • doc/storage: 表内の行の順序の調整を行いました
  • extra/lxc-to-lxd: mount ファイルがない場合もクラッシュしなくなりました (Issue #3237)
  • global: typo を修正しました
  • global: file の Chmod() を os.Chmod() に置き換えました (Issue #3275)
  • global: containerGetParentAndSnapshotName() を使うようにしました
  • i18n: リリース前の更新を行いました
  • i18n: Weblate から翻訳を更新しました
  • lxc: オブジェクト名 (訳注: ネットワーク名やストレージプール名) が指定されていない場合に意味不明なエラーが出るのを修正しました (Issue #3230)
  • lxc: 操作の進捗トラッキングの処理を実装しました
  • lxc/copy: エラーハンドリングを改良しました (Issue #3243)
  • lxc/copy: コードを簡素化しました
  • lxc/file: Windows でのファイルの push の問題を修正しました
  • lxc/file: Windows での再帰的なファイルの push の問題を修正しました
  • lxc/init: 不要な else ステートメントを削除しました
  • lxc/remote: hex でなく文字列としてフィンガープリントを表示するようにしました (Issue #3293)
  • lxc/storage: YAML のエラーを無視しなくなりました
  • lxd: testify で一部のテストを独立して実行できるようにしました
  • lxd/containers: 一時的なキーである host_name もクリアするようにしました
  • lxd/containers: update 時に一時的なキーをクリアするようにしました (Issue #3231)
  • lxd/containers: macvlan インターフェースを作成する際には親インターフェースで IPv6 を無効化するようにしました
  • lxd/containers: fillNetworkDevice は nic に対してのみ実行するようにしました
  • lxd/containers: 可能な限り networkSysctl を使うようにしました
  • lxd/daemon: /1.0 の際の ETag の扱いを修正しました
  • lxd/daemon: サーバのフィンガープリントを設定するようにしました
  • lxd/db: db のテストに testify のテストを追加しました。既存のテストを作りなおしました
  • lxd/db: lxdSuiteTest が終了するごとにモックデーモンでデータベースの状態をクリアするようにしました
  • lxd/db: db へのパッチで不要である特別なモックモードを実行しないようにしました
  • lxd/db: ストレージプールがない場合に NoSuchObjectError を返すようになりました (Issue #3257)
  • lxd/db: デーモンレベルのロジックから DB レベルの更新ロジックを分離しました
  • lxd/images: アップロード時にイメージが既に存在しているかどうかをチェックするようになりました
  • lxd/images: 複数回アンロックの可能性があったのを修正しました
  • lxd/images: イメージの自動更新ロジックにあったリグレッションを修正しました
  • lxd/images: イメージ取得元の証明書を保存し、ダウンロード時に与えるようにしました
  • lxd/images: autoUpdateImage 関数を分割しました
  • lxd/import: コンテナ名を指定しない場合、エラーになるようにしました
  • lxd/init: --auto を与えた場合のバリデーション機能を別メソッドに分けました
  • lxd/init: 状態を帰るインライン関数を独立したメソッドに移動させました
  • lxd/init: 問題が起こった場合、初期状態にロールバックするようにしました
  • lxd/init: デフォルトポートを適切に設定するようにしました (Issue #3341)
  • lxd/networks: ETag のリグレッションを修正しました
  • lxd/patches: 使われてない変数を削除しました
  • lxd/profiles: Docker プロファイルを削除しました
  • lxd/storage: プールが使用中かどうかを検出するヘルパーを追加しました
  • lxd/storage: lxdResolveMountoptions() を追加しました
  • lxd/storage: MS_LAZYTIME をマウントオプションに追加しました
  • lxd/storage: 各種のファイルパーミッションの定数を定義しました
  • lxd/storage: 無限ループを防ぐように修正しました
  • lxd/storage: 問題のある内部の型を修正しました
  • lxd/storage: マウントヘルパーをストレージユーティリティへ移動させました
  • lxd/storage: カスタムボリュームだけを消去するようにしました
  • lxd/storage: コンテナ構造体を ContainerMount() に与えるようにしました
  • lxd/storage: ストレージプールチェックの順序を変更しました
  • lxd/storage/btrfs: getBtrfsPoolMountOptions() を追加しました
  • lxd/storage/btrfs: 異なるバージョンの LXD 間のマイグレーションが扱えるようになりました (Issue #3323)
  • lxd/storage/btrfs: 使われていない変数を削除しました
  • lxd/storage/btrfs: lxdResolveMountoptions() を使うようにしました
  • lxd/storage/lvm: 既存の Thin pool を再利用できるようにしました (Issue #3351)
  • lxd/storage/lvm: ボリュームグループが使用中かどうかチェックするようにしました
  • lxd/storage/lvm: 空でないボリュームグループは使えないようにしました (Issue #3351)
  • lxd/storage/lvm: 空のときだけ VG を削除するようにしました (Issue #3351)
  • lxd/storage/lvm: 適切にマウントオプションを解決するようになりました (Issue #3284)
  • lxd/storage/lvm: プールの作成を簡素化し、改良しました
  • lxd/storage/zfs: mountpoint=none を与えてイメージデータセットを作成するようにしました (Issue #3359)
  • lxd/storage/zfs: データセット作成後にフォルダのパーミッションを設定するようにしました (Issue #3090)
  • lxd/storage/zfs: zfs の EBUSY バグを回避しようとするようにしました (Issue #3228)
  • Makefile: i18n ターゲットに update-po を追加しました
  • Makefile: static-analysis ターゲットを修正しました
  • shared: "lxc edit" の実行で、テンプレートがエディタの yaml-mode で起動するようにしました
  • shared/cmd: 初期コマンドの I/O ロジックを持つ新しい shared/cmd パッケージを追加しました
  • shared/cmd: 色々な AskXXX メソッドに対して cmd.Context を完全にサポートしました
  • shared/cmd: testify に依存しなくなりました
  • shared/cmd: cmdInit をユニットテスト可能なようにログを生成するようにしました
  • shared/logger: golint がクリーンに実行できるようにしました
  • shared/logger: PrintStack を GetStack に置き換えました
  • shared/logging: LogfmtFormat を export しました
  • shared/logging: golint がクリーンに実行できるようにしました
  • shared/termios: golint がクリーンに実行できるようにしました
  • tests: btrfs.mount_options のテストを追加しました (Issue #3264)
  • tests: LV リサイズのテストを追加しました
  • tests: LVM のマウントオプションのテストを追加しました (Issue #3284)
  • tests: quota のテストを追加しました
  • tests: ランダムにストレージバックエンドを選択できるようにしました
  • tests: busybox がうまくシャットダウンするのに依存しなくなりました
  • tests: 再度 jenkins 特有のチェックを削除しました (訳注: 一度削除した処理がどこかのコミットで戻ってた?)
  • tests: 明確にシェルのタイプを shellcheck に与えるようにしました
  • tests: ストレージのテストでは LXD_BACKEND 環境変数を使うようにしました
  • tests: 確実にストレージボリュームがマウントされるようにしました
  • tests: Jenkins の無効なテストを削除しました
  • tests: テストスイートではインデントにスペースを使うようにしました
  • tests/deps: golint がクリーンに実行できるようにしました

試用環境

この新しい LXD のリリースが、すでに私たちの デモサービス で利用できます。

ダウンロード

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