genvid.toolbox.SDK¶
-
class
genvid.toolbox.
SDK
(cluster_id='', **kwargs)¶ ベースクラス:
genvid.toolbox.aws.AWSTool
,genvid.toolbox.consul_template.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'¶
-
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
¶
-
cloud_provider
¶
-
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 – イメージ用バケットのプレフィックスキー。
- bucket – バケット名。デフォルトは
-
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 を読み込みます。
-
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)¶
-
is_jobs_running
()¶ ジョブが設定されており、実行中の場合、True を返す。
-
start_jobs
(jobs: typing.Optional[typing.List[str]] = None)¶ すべてのジョブ、または指定したジョブを開始する。:param jobs: 開始するジョブのリスト。
-
stop_jobs
(jobs: typing.Optional[typing.List[str]] = None)¶ すべてのジョブ、または指定したジョブを停止する。
パラメータ: jobs – 停止するジョブのリスト。
-
default_images_sdk_path
¶ SDK イメージのデフォルト S3 キーのプレフィックスを取得。
バージョン 1.20.0 で追加.
-
upload_images_sdk
(bucket=None, path=None, update_config: bool = False, cloud_provider: typing.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 環境変数のものと異なる場合は、それが使用されます。
- bucket (str) – バケット ID (デフォルト:
-
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.Optional[str] = None, path: str = '/images/custom', *, delete: bool = False, region: typing.Optional[str] = None)¶ クラスタのイメージ構成を更新する。
パラメータ: - bucket – バケット ID (デフォルト:
get_s3_bucket_id()
)。 - path – バケットで使用するキープレフィックス。
- delete – 構成を更新せず、削除する。
- region – S3 バケットを含む領域。
警告
このメソッドは、ローカルでないクラスタでのみ呼び出し可能。
バージョン 1.20.0 で追加.
- bucket – バケット ID (デフォルト:
-
upload_images
(prefixes: typing.List[str], bucket: typing.Optional[str] = None, path: str = '/images/custom', update_config: bool = False, basedir: typing.Union[pathlib.Path, str, NoneType] = None, cloud_provider: typing.Optional[str] = None, *, region: typing.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: typing.Optional[str] = None, path: str = '/images/custom', *, region: typing.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: typing.Optional[str] = None, path: str = '/images/custom', update_config: bool = False, *, region: typing.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()
となります。
- bucket – バケット ID (デフォルト:
-
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)¶ 想定されるイメージフォーマットに対応するように、バイナリアーカイブを更新します。
param archive: アーカイブファイルのパス。ファイル名は必ず name.archfmt
の形式である必要があります。param version: アーカイブのバージョン。 param destdir: 対象ディレクトリ。デフォルトはオリジナルアーカイブと同じです。 param clean: アーカイブの旧バージョンを消去 (同じ名前のもの) する。 param keep: オリジナルアーカイブを保持します。ほとんどの場合、別の destdir
で使用する必要があります。バージョン 1.20.0 で追加.
バージョン 1.30.0 で撤廃: メソッドは
PackageArchiver
に移動。
-
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
のサポートを修正。負荷パラメータを追加。バージョン 1.30.0 で変更:
ProjectTool
の新しいインスタンスを作成する代わりに、load_config_folder()
を使用するようリファクタリング。バージョン 1.33.0 で変更: ローカルのconsul-templateの代わりに、新しいrender_templateコマンドを使用します。
-
get_output_public_ips
() → list¶ terraform モジュールの出力からパブリック IP をすべて取得する。
戻り値: パブリック IP アドレスの一覧。
-
get_cloud_provider
() → str¶ terraform モジュールの出力からクラウドプロバイダをすべて取得する。
terraform のクラスタの出力にクラウドプロバイダが見つからない場合、デフォルトで aws が返されます。
戻り値: クラウドプロバイダ。
-
load_config_template
(template: typing.Union[pathlib.Path, str], env: typing.Optional[typing.Mapping[str, str]] = None) → typing.Any¶ バージョン 1.33.0 で撤廃:
ConsulTemplateTool
は今後 SDK の祖先の一部ではなくなります。代わりにrender_template()
を使用します。
-
consul_template_once
(*, use_consul: bool = False, use_vault: bool = False, env: typing.Optional[typing.Mapping[str, str]] = None, **kwargs) → genvid.toolbox.consul_template.ConsulTemplateOutput¶ バージョン 1.33.0 で撤廃:
ConsulTemplateTool
は今後 SDK の祖先の一部ではなくなります。代わりにrender_template()
を使用します。
-
consul_template
¶ バージョン 1.33.0 で撤廃:
ConsulTemplateTool
は今後 SDK の祖先の一部ではなくなります。代わりにrender_template()
を使用します。
-
-
class
sdk.
SDK
¶