34
Help us understand the problem. What are the problem?

More than 5 years have passed since last update.

posted at

gcloud confing configurations コマンドでconfig設定を切り替える

機能が追加されたみたい

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あたりが妥当かなぁと思ってます。

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Sign upLogin
34
Help us understand the problem. What are the problem?