genvid.toolbox.SDK
- class genvid.toolbox.SDK(cluster_id='', **kwargs)
ベースクラス:
AWSTool
,ConsulTemplateTool
SDK を設定するための一般的なコマンドです。
この class は、現在のクラスタに新しい Genvid SDK を構成するために、
ClusterAPI
とBastionAPI
をラップする。バージョン 1.29.0 で変更:
load_config_template()
をベースクラスConsulTemplateTool
移動。バージョン 1.29.0 で変更:
merge_dict()
をベースクラスBaseTool
に移動。バージョン 1.30.0 で変更: 原型である
ConsulTemplateTool
の代わりにProjectTool
から派生。バージョン 1.30.0 で変更: すでに ConsulTemplateTool の一部であるため、その系統から VaultTool および ConsulTool を削除。
バージョン 1.30.0 で変更:
load_nomad_job_template()
をベース class であるProjectTool
に移動。バージョン 1.31.0 で変更:
update_config()
をベースクラスProjectTool
に移動。バージョン 1.33.0 で変更: ローカルクラスタのバイナリパスを、ハードコードではなく
GENVID_SDK_FOLDER/local-services/init
フォルダーからロードするようにしました。 また、静的フォルダーからの初期化をsetup_jobs()
からsetup()
に移動させました。バージョン 1.33.0 で変更:
ProjectTool
をConfigurationLoader
に置き換えて、代わりにConsulTemplateTool
を継承するようにしました。- NAME = 'sdk'
このツールのロガー名。子 class (children) で再定義する必要があります。
- SDK_CONFIG_VERSION = '1.7.0'
- cluster_id
クラスタ ID。
- bastionAPI
Bastion-API インスタンスへのインターフェイス。
- clusterAPI
Cluster-API クラスタインスタンスへのインターフェイス。
- cluster_vault_secret
クラスタ vault key が保存される bastion の Vault。
- GENVID_SDK_SETTINGS_SCHEMA
デフォルトの設定スキーマへのパスを含む
GENVID_SDK_SETTINGS_SCHEMA
のミラーを指定します。バージョン 1.41.0 で追加.
- property cloud_provider
- get_remote_cluster_conn()
クラスタ IP とプライベートキーを返す。
- get_remote_cluster_secrets()
クラスタ vault 初期化シークレットを戻す。
- setup(bucket: Optional[str] = None, path: str = '/', *, region=None)
ベース SDK サービスを開始する。
- パラメータ
bucket -- バケット名。デフォルトは
get_s3_bucket_id()
の戻り値。path -- イメージ用バケットのプレフィックスキー。
- clean()
SDK の基本サービスを停止し、ジョブを削除して設定を消去する。
- get_sdk_config() dict
デフォルトの SDK 設定を取得する。
設定は、
cluster_id
がlocal
であればGENVID_SDK_FOLDER/local-services/config
に、そうでなければGENVID_SDK_FOLDER/cloud-services/config
に格納されます。 設定は最初に consul-template によって読み込まれ、ジョブテンプレートはtemplates
という名前の兄弟フォルダにあることが期待されます。バージョン 1.31.0 で変更: フォルダから config を読み込みます。
- clean_config()
設定を消去する。
- static update_dict_no_create(source, dest)
- is_jobs_running()
ジョブが設定されており、実行中の場合、True を返す。
- property default_images_sdk_path
SDK イメージのデフォルト S3 キーのプレフィックスを取得。
バージョン 1.20.0 で追加.
- upload_images_sdk(bucket=None, path=None, update_config: bool = False, cloud_provider: Optional[str] = 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: Optional[str] = None, path: str = '/images/custom', *, delete: bool = False, region: Optional[str] = None)
クラスタのイメージ構成を更新する。
- パラメータ
bucket -- バケット ID (デフォルト:
get_s3_bucket_id()
)。path -- バケットで使用するキープレフィックス。
delete -- 構成を更新せず、削除する。
region -- S3 バケットを含む領域。
警告
このメソッドは、ローカルでないクラスタでのみ呼び出し可能。
バージョン 1.20.0 で追加.
- upload_images(prefixes: List[str], bucket: Optional[str] = None, path: str = '/images/custom', update_config: bool = False, basedir: Optional[Union[Path, str]] = None, cloud_provider: Optional[str] = None, *, region: Optional[str] = None)
指定のプレフィックスをつけてイメージをアップロードする。
注釈
イメージ名は
DockerTool.RE_IMAGE_IMAGEID
と一致する必要があります。- パラメータ
prefixes -- このプレフィックスのファイルのみアップロードする。
bucket (str) -- バケット ID (デフォルト:
get_s3_bucket_id()
)。path -- バケットで使用するキープレフィックス。
update_config (bool) -- クラスタのイメージ設定を更新する。
basedir -- ソースディレクトリ (デフォルト:
GENVID_SDK_FOLDER/images
)。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-window
パッケージを作成します。バージョン 1.32.0 で変更: バイナリファイルを使用して Linux 上で動作させます。
- get_images_config(bucket: Optional[str] = None, path: str = '/images/custom', *, region: Optional[str] = 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: Optional[str] = None, path: str = '/images/custom', update_config: bool = False, *, region: Optional[str] = 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: Union[Path, str], version: str = 'dev', destdir: Optional[Union[Path, str]] = None, clean: bool = True, keep: bool = False)
想定されるイメージフォーマットに対応するように、バイナリアーカイブを更新します。
- param archive
アーカイブファイルのパス。ファイル名は必ず
name.archfmt
の形式である必要があります。- param version
アーカイブのバージョン。
- param destdir
対象ディレクトリ。デフォルトはオリジナルアーカイブと同じです。
- param clean
アーカイブの旧バージョンを消去 (同じ名前のもの) する。
- param keep
オリジナルアーカイブを保持します。ほとんどの場合、別の
destdir
で使用する必要があります。
バージョン 1.20.0 で追加.
バージョン 1.30.0 で非推奨: メソッドは
PackageArchiver
に移動。
- load_config(source: Union[Path, str], *, job_template_dir: Optional[Union[Path, str]], with_consul_template: bool, dryrun: bool = False) dict
設定ファイル (ディレクトリ内のすべてのファイルまたは特定のファイル) をソースから読み込みます。
- パラメータ
source -- 設定ファイル/フォルダのパス。
with_consul_template -- true に設定されている場合にのみ、設定ファイル (ソースがディレクトリの場合) に対して consul-template を実行し使用する。
job_template_dir -- nomad テンプレートが読み込まれるフォルダへのパス。指定されていない場合、ジョブは読み込まれません。
dryrun -- True の場合、ソースの解析のみを行い、設定を返します。
- 戻り値
set_config()
で直接使用することができるディクショナリーとしての設定。
- :raises FileNotFoundErrorjob_template_dirがNoneでなく、かつ
有効なディレクトリではない場合。
バージョン 1.26.0 で変更: 引数の
pathlib.Path
のサポートを修正。負荷パラメータを追加。バージョン 1.30.0 で変更:
ProjectTool
の新しいインスタンスを作成する代わりに、load_config_folder()
を使用するようリファクタリング。バージョン 1.33.0 で変更: ローカルのconsul-templateの代わりに、新しいrender_templateコマンドを使用します。
- get_cloud_provider() str
terraform モジュールの出力からクラウドプロバイダをすべて取得する。
terraform のクラスタの出力にクラウドプロバイダが見つからない場合、デフォルトで aws が返されます。
- 戻り値
クラウドプロバイダ。
- load_config_template(template: Union[Path, str], env: Optional[Mapping[str, str]] = None) Any
バージョン 1.33.0 で非推奨:
ConsulTemplateTool
は今後 SDK の祖先の一部ではなくなります。代わりにrender_template()
を使用します。
- consul_template_once(*, use_consul: bool = False, use_vault: bool = False, env: Optional[Mapping[str, str]] = None, **kwargs) ConsulTemplateOutput
バージョン 1.33.0 で非推奨:
ConsulTemplateTool
は今後 SDK の祖先の一部ではなくなります。代わりにrender_template()
を使用します。
- property consul_template
バージョン 1.33.0 で非推奨:
ConsulTemplateTool
は今後 SDK の祖先の一部ではなくなります。代わりにrender_template()
を使用します。
- class sdk.SDK