10.4. CLI を使用してテンプレートから作成する手順
CLI を使用して、テンプレートを処理し、オブジェクトを作成するために生成された設定を使用できます。
10.4.1. ラベル リンクのコピーリンクがクリップボードにコピーされました!
ラベルは、Pod などの生成されたオブジェクトを管理し、整理するために使用されます。テンプレートで指定されるラベルは、テンプレートから生成されるすべてのオブジェクトに適用されます。
コマンドラインからテンプレートにラベルを追加する機能もあります。
$ oc process -f <filename> -l name=otherLabel
10.4.2. パラメーター リンクのコピーリンクがクリップボードにコピーされました!
上書きできるパラメーターの一覧は、テンプレートの parameters セクションに表示されます。以下のコマンドで使用するファイルを指定して、CLI でパラメーター一覧を追加できます。
$ oc process --parameters -f <filename>
または、テンプレートがすでにアップロードされている場合には、以下を実行します。
$ oc process --parameters -n <project> <template_name>
たとえば、デフォルトの openshift プロジェクトにあるクイックスタートテンプレートのいずれかに対してパラメーターを一覧表示する場合に、以下のような出力が表示されます。
$ oc process --parameters -n openshift rails-postgresql-example
NAME DESCRIPTION GENERATOR VALUE
SOURCE_REPOSITORY_URL The URL of the repository with your application source code https://github.com/sclorg/rails-ex.git
SOURCE_REPOSITORY_REF Set this to a branch name, tag or other ref of your repository if you are not using the default branch
CONTEXT_DIR Set this to the relative path to your project if it is not in the root of your repository
APPLICATION_DOMAIN The exposed hostname that will route to the Rails service rails-postgresql-example.openshiftapps.com
GITHUB_WEBHOOK_SECRET A secret string used to configure the GitHub webhook expression [a-zA-Z0-9]{40}
SECRET_KEY_BASE Your secret key for verifying the integrity of signed cookies expression [a-z0-9]{127}
APPLICATION_USER The application user that is used within the sample application to authorize access on pages openshift
APPLICATION_PASSWORD The application password that is used within the sample application to authorize access on pages secret
DATABASE_SERVICE_NAME Database service name postgresql
POSTGRESQL_USER database username expression user[A-Z0-9]{3}
POSTGRESQL_PASSWORD database password expression [a-zA-Z0-9]{8}
POSTGRESQL_DATABASE database name root
POSTGRESQL_MAX_CONNECTIONS database max connections 10
POSTGRESQL_SHARED_BUFFERS database shared buffers 12MB
この出力から、テンプレートの処理時に正規表現のようなジェネレーターで生成された複数のパラメーターを特定できます。
10.4.3. オブジェクト一覧の生成 リンクのコピーリンクがクリップボードにコピーされました!
CLI を使用して、標準出力にオブジェクト一覧を返すテンプレートを定義するファイルを処理できます。
$ oc process -f <filename>
または、テンプレートがすでに現在のプロジェクトにアップロードされている場合には以下を実行します。
$ oc process <template_name>
テンプレートを処理し、oc create の出力をパイプして、テンプレートからオブジェクトを作成することができます。
$ oc process -f <filename> | oc create -f -
または、テンプレートがすでに現在のプロジェクトにアップロードされている場合には以下を実行します。
$ oc process <template> | oc create -f -
上書きする <name>=<value> の各ペアに -p オプションを追加することで、ファイルに定義された parameter の値を上書きできます。パラメーター参照は、テンプレートアイテム内のテキストフィールドに表示される場合があります。
たとえば、テンプレートの以下の POSTGRESQL_USER および POSTGRESQL_DATABASE パラメーターを上書きし、カスタマイズされた環境変数の設定を出力します。
例10.1 テンプレートからのオブジェクト一覧の作成
$ oc process -f my-rails-postgresql \
-p POSTGRESQL_USER=bob \
-p POSTGRESQL_DATABASE=mydatabase
JSON ファイルは、ファイルにリダイレクトすることも、oc create コマンドで処理済みの出力をパイプして、テンプレートをアップロードせずに直接適用することも可能です。
$ oc process -f my-rails-postgresql \
-p POSTGRESQL_USER=bob \
-p POSTGRESQL_DATABASE=mydatabase \
| oc create -f -
多数のパラメーターがある場合は、それらをファイルに保存してからそのファイルを oc process に渡すことができます。
$ cat postgres.env
POSTGRESQL_USER=bob
POSTGRESQL_DATABASE=mydatabase
$ oc process -f my-rails-postgresql --param-file=postgres.env
--param-file の引数として "-" を使用して、標準入力から環境を読み込むこともできます。
$ sed s/bob/alice/ postgres.env | oc process -f my-rails-postgresql --param-file=-