機能が追加されたみたい
gcloud 2015.09.21
からgcloud config configurations
コマンドがGAになり、gcloud config list
実行時に以下設定が追加されるようになった。
[meta]
active_config = default
どうもgcloud config list
で設定している設定ごと切り替えられるようになったらしい。
業務で複数のprojectやzoneをglcoud config set
コマンドで行ったり来たりしていたので使えそうだ、ということで使えるのか設定・検証してみた。
設定方法
configurationの作成
gcloud config configurations create CONFIGURATION名
兎にも角にもまずはconfigurationを作ってみる。名前は適当でいいだろう。
% gcloud config configurations create hoge
Created [hoge].
To use this configuration, activate it using `gcloud config configurations activate`.
命名規則違反するとクッソ怒られる。
% gcloud config configurations create HOGE
ERROR: (gcloud.config.configurations.create) Invalid name [HOGE] for a configuration. Except for special cases (NONE), configuration names start with a lower case letter and contain only lower case letters a-z, digits 0-9, and hyphens '-'.
configurationの切り替え
gcloud config configurations activate CONFIGURATION名
長い。alias必須だろこんなもん。
% gcloud config configurations activate hoge
Activated [hoge].
ちなみに作ったばっかりのconfigurationにはactive_config以外の設定は入っていない。
% gcloud config list
[meta]
active_config = hoge
gcloud config set コマンドで記載してもいいんだけど(本来はそれが正攻法のはず)だが、面倒なのでファイルに直接書いちゃう。
~/.config/gcloud/configurations
の中にconfig_CONFIGURATION名
のファイル名があるので今までの設定であるconfig_default
を真似て直接書いちゃえます。
configurationの確認
gcloud config configurations list
作ったconfigurationsと今どのconfigurationが有効なのか確認できます。
NAME IS_ACTIVE
default False
hoge True
これ情報どこから取ってきてるかというと~/.config/gcloud/configurations
からのようです。
touch ~/.config/gcloud/configurations/config_fuga
って実行したらfuga出てきちゃったからね。内緒だよ。
% touch ~/.config/gcloud/configurations/config_fuga
% gcloud config configurations list
NAME IS_ACTIVE
default False
fuga False
hoge True
この機能の使い所とは
今持ってるサービスではenvironment/partitionごとにVMインスタンス群を持っていて、複数存在するGCP projectとzoneの組み合わせと紐付けて作業をする必要があります。
今回environment/partitionの名前でconfigurationを作ってしまえばGCP projectやzoneが何かを気にすることなく作業ができそうだな、ということで使い始めています。
あとはGKEのcluster([container]cluster
)の切り替えなんかにも使えそうですね。
ちなみにaliasはgcloud config configurationsを略したらgcc
なのでこれはないな、と思いgcfg
あたりが妥当かなぁと思ってます。