genvid.toolbox.SDK

class genvid.toolbox.SDK(cluster_id='', **kwargs)

ベースクラス: genvid.toolbox.aws.AWSTool, genvid.toolbox.config.ConfigTool, genvid.toolbox.consul_template.ConsulTemplateTool, genvid.toolbox.vault.VaultTool, genvid.toolbox.consul.ConsulTool

SDK を設定するための一般的なコマンドです。

この class は、現在のクラスタに新しい Genvid SDK を構成するために、 ClusterAPIBastionAPI をラップする。

NAME = 'sdk'
SDK_CONFIG_VERSION = '1.7.0'
cluster_id = None

クラスタ ID。

bastionAPI = None

Bastion-API インスタンスへのインターフェイス。

clusterAPI = None

Cluster-API クラスタインスタンスへのインターフェイス。

cluster_vault_secret = None

クラスタ vault key が保存される bastion の Vault。

azure
get_remote_cluster_conn()

クラスタ IP とプライベートキーを返す。

get_remote_cluster_secrets()

クラスタ vault 初期化シークレットを戻す。

setup(bucket: str = None, path: str = '/', *, region=None)

ベース SDK サービスを開始する。

パラメータ:
  • bucket – バケット名。デフォルトは get_s3_bucket_id() の戻り値。
  • path – イメージ用バケットのプレフィックスキー。
setup_remote(cluster_id: str, server_ip: str, ssh_private_key_pem_file: str, ssh_user: str)
clean()

SDK の基本サービスを停止し、ジョブを削除して設定を消去する。

get_sdk_config() → dict

デフォルトの SDK 設定を取得する。

get_config() → dict

現在のクラスタ構成を取得する。

set_config(config: dict = None)

指定の設定を、現在のものとマージする。:param config: マージする設定。

clean_config()

設定を消去する。

remove_config(config: dict)

設定から値を削除する。:param config: 値を削除する設定。

static update_dict_no_create(source, dest)
classmethod merge_dict(source, destination)

2 つの辞書をマージする。

パラメータ:
  • source – ソースの辞書。
  • destination – デスティネーションの辞書。
is_jobs_running()

ジョブが設定されており、実行中の場合、True を返す。

start_jobs(jobs: typing.Union[typing.List[str], NoneType] = None)

すべてのジョブ、または指定したジョブを開始する。:param jobs: 開始するジョブのリスト。

stop_jobs(jobs: typing.Union[typing.List[str], NoneType] = None)

すべてのジョブ、または指定したジョブを停止する。

パラメータ:jobs – 停止するジョブのリスト。
load_config_template(template: typing.Union[pathlib.Path, str], env: typing.Union[typing.Mapping[str, str], NoneType] = None) → typing.Mapping[str, str]

設定テンプレートファイルをロードする。

consul-template を使用して設定テンプレートファイルを処理し、辞書として返します。

バージョン 1.20.0 で追加.

    バージョン 1.21.0 で変更:
  • 新しい ConsulTemplateTool を使用するように調整。

update_config(config: dict = None)

指定の設定を更新する。

パラメータ:config – 更新する設定。
戻り値:更新された設定。
default_images_sdk_path

SDK イメージのデフォルト S3 キーのプレフィックスを取得。

バージョン 1.20.0 で追加.

upload_images_sdk(bucket=None, path=None, update_config: bool = False, cloud_provider: typing.Union[str, NoneType] = None, *, region=None)

SDK のイメージをアップロードする。

パラメータ:
  • bucket (str) – バケット ID (デフォルト: get_s3_bucket_id())。
  • path – バケットで使用するキープレフィックス。
  • update_config (bool) – クラスタのイメージ設定を更新する。
  • region (str) – S3 バケットを含む領域。

警告

update_config はローカルでないクラスタで設定可能。

バージョン 1.14.0 で変更: デフォルトパスを 『/』 から 『/images/sdk-{version}/』 に変更。

バージョン 1.20.0 で変更: AWSTool の規定に従った新しい region パラメータ。

    バージョン 1.26.0 で変更:
  • 画像がアップロードされる S3 バケットに別のリージョンを指定するパラメータ region を追加。

  • Bastion ID に対応する名前のバケットが存在しない場合、ターゲットの region に作成されます。

  • 他のリージョンにすでに存在する場合、基本的なコードが例外を発生させます。

  • デフォルトでは、バケットの作成に使用するリージョンは、現在の AWS プロファイルのリージョンになります。

  • また、環境変数 AWS_DEFAULT_REGION で上書きすることもできます。

  • region パラメータが None で、バケットリージョンがすでに存在していて、そのリージョンがプロファイルや AWS_DEFAULT_REGION 環境変数のものと異なる場合は、それが使用されます。

get_s3_bucket_id()

イメージ用 S3 バケット ID を取得する。

注釈

このメソッドは、AWS へのグローバル STS リクエストを行います。バケット自体の領域との混同を避けるため、領域設定はできません。

get_s3_bucket_with_bastion_id(bastion_id: str)

現在の AWS アカウントと Bastion ID を使用してイメージ用 S3 バケット ID を取得する。

注釈

このメソッドは、AWS へのグローバル STS リクエストを行います。バケット自体の領域との混同を避けるため、領域設定はできません。

update_images_config(bucket: typing.Union[str, NoneType] = None, path: str = '/images/custom', *, delete: bool = False, region: typing.Union[str, NoneType] = None)

クラスタのイメージ構成を更新する。

パラメータ:
  • bucket – バケット ID (デフォルト: get_s3_bucket_id())。
  • path – バケットで使用するキープレフィックス。
  • delete – 構成を更新せず、削除する。
  • region – S3 バケットを含む領域。

警告

このメソッドは、ローカルでないクラスタでのみ呼び出し可能。

バージョン 1.20.0 で追加.

upload_images(prefixes: typing.List[str], bucket: typing.Union[str, NoneType] = None, path: str = '/images/custom', update_config: bool = False, basedir: typing.Union[pathlib.Path, str, NoneType] = None, cloud_provider: typing.Union[str, NoneType] = None, *, region: typing.Union[str, NoneType] = None)

指定のプレフィックスをつけてイメージをアップロードする。

注釈

イメージ名は DockerTool.RE_IMAGE_IMAGEID と一致する必要があります。

パラメータ:
  • prefixes – このプレフィックスのファイルのみアップロードする。
  • bucket (str) – バケット ID (デフォルト: get_s3_bucket_id())。
  • path – バケットで使用するキープレフィックス。
  • update_config (bool) – クラスタのイメージ設定を更新する。
  • basedir – ソースディレクトリ (デフォルト: ARTIFACTS_DIR)。
  • region (str) – S3 バケットを含む領域。

警告

update_config はローカルでないクラスタで設定可能。

バージョン 1.14.0 で変更: デフォルトパスを 『/』 から 『/images/custom』 に変更する。

    バージョン 1.20.0 で変更:
  • basedir パラメータを追加。

  • エラー処理の強化。

  • AWSTool の規定に従った新しい region パラメータ。

  • メソッドの update_config 部分を独自のメソッドに分割。

    バージョン 1.26.0 で変更:
  • 画像がアップロードされる S3 バケットに別のリージョンを指定するパラメータ region を追加。

  • Bastion ID に対応する名前のバケットが存在しない場合、ターゲットの region に作成されます。

  • 他のリージョンにすでに存在する場合、基本的なコードが例外を発生させます。

  • デフォルトでは、バケットの作成に使用するリージョンは、現在の AWS プロファイルのリージョンになります。

  • また、環境変数 AWS_DEFAULT_REGION で上書きすることもできます。

  • region パラメータが None で、バケットリージョンがすでに存在していて、そのリージョンがプロファイルや AWS_DEFAULT_REGION 環境変数のものと異なる場合は、それが使用されます。

create_nats_window_package()

ツールボックスのバージョンに存在しない場合、nats ウィンドウパッケージを作成します。

get_images_config(bucket: typing.Union[str, NoneType] = None, path: str = '/images/custom', *, region: typing.Union[str, NoneType] = None) → dict
S3 バケットや Azure コンテナからイメージ構成を取得する
クラウド プロバイダに依存。
パラメータ:
  • bucket – バケット ID。
  • path – バケットのキープレフィックス (デフォルト: 『/images/custom』)。
  • region (str) – S3 バケット/Azure コンテナを含む領域。

重要

イメージ名は、選択される DockerTool.RE_IMAGE_IMAGEID と一致する必要があります。

戻り値:dict でイメージ設定。

バージョン 1.14.0 で変更: デフォルトパスを 『/』 から 『/images/custom』 に変更。

バージョン 1.20.0 で変更: AWSTool の規定に従った新しい region パラメータ。

clean_images(bucket: typing.Union[str, NoneType] = None, path: str = '/images/custom', update_config: bool = False, *, region: typing.Union[str, NoneType] = None)

S3 バケットからすべてのイメージを削除します。

パラメータ:
  • bucket – バケット ID (デフォルト: get_s3_bucket_id())。
  • path – バケットで使用するキープレフィックス。
  • update_config (bool) – クラスタのイメージ設定を更新する。
  • region (str) – S3 バケットを含む領域。

警告

update_config はローカルでないクラスタで設定可能。

バージョン 1.14.0 で変更: デフォルトパスを 『/』 から 『/images/custom』 に変更する。

    バージョン 1.20.0 で変更:
  • AWSTool の規定に従った新しい region パラメータ。

  • update_config に代わり、 update_images_config() となります。

update_archive(archive: typing.Union[pathlib.Path, str], version: str = 'dev', destdir: typing.Union[pathlib.Path, str, NoneType] = None, clean: bool = True, keep: bool = False)

想定されるイメージフォーマットに対応するように、バイナリアーカイブを更新します。

パラメータ:
  • archive – アーカイブファイルのパス。ファイル名は必ず name.archfmt の形式である必要があります。
  • version – アーカイブのバージョン。
  • destdir – 対象ディレクトリ。デフォルトはオリジナルアーカイブと同じです。
  • clean – アーカイブの旧バージョンを消去 (同じ名前のもの) する。
  • keep – オリジナルアーカイブを保持します。ほとんどの場合、別の destdir で使用する必要があります。

バージョン 1.20.0 で追加.

load_nomad_job_template(name, job_folder: typing.Union[pathlib.Path, str])

特定のディレクトリから nomad ジョブのテンプレートを読み込みます。拡張子が .nomad.tmpl のファイルのみ読み込みます。

パラメータ:
  • name – ファイル名 (拡張子なし)
  • job_folder – ジョブが格納されたディレクトリのパス。

バージョン 1.26.0 で変更: job_folder として pathlib.Path のサポートを追加。

load_config(source: typing.Union[pathlib.Path, str], *, job_template_dir: typing.Union[pathlib.Path, str, NoneType], with_consul_template: bool, dryrun: bool = False) → dict

設定ファイル (ディレクトリ内のすべてのファイルまたは特定のファイル) をソースから読み込みます。

パラメータ:
  • source – 設定ファイル/フォルダのパス。
  • with_consul_template – true に設定されている場合にのみ、設定ファイル (ソースがディレクトリの場合) に対して consul-template を実行し使用する。
  • job_template_dir – nomad テンプレートが読み込まれるフォルダへのパス。指定されていない場合、ジョブは読み込まれません。
  • dryrun – True の場合、ソースの解析のみを行い、設定を返します。
戻り値:

set_config() で直接使用することができるディクショナリーとしての設定。

:raises FileNotFoundError : If the job_template_dir is not None and
は有効なディレクトリではありません。

バージョン 1.26.0 で変更: 引数の pathlib.Path のサポートを修正。負荷パラメータを追加。

get_output_public_ips() → list

terraform モジュールの出力からパブリック IP をすべて取得する。

戻り値:パブリック IP アドレスの一覧。
get_cloud_provider() → str

terraform モジュールの出力からクラウドプロバイダをすべて取得する。

terraform のクラスタの出力にクラウドプロバイダが見つからない場合、デフォルトで aws が返されます。

戻り値:クラウドプロバイダ。
class sdk.SDK

genvid.toolbox.SDK の実装