10.4. CLI を使用してテンプレートからオブジェクトを作成する手順

CLI を使用して、テンプレートを処理し、オブジェクトを作成するために生成された設定を使用できます。

10.4.1. ラベルの追加

ラベルは、Pod などの生成されたオブジェクトを管理し、整理するために使用されます。テンプレートで指定されるラベルは、テンプレートから生成されるすべてのオブジェクトに適用されます。

手順

  • コマンドラインからテンプレートにラベルを追加します。

    $ oc process -f <filename> -l name=otherLabel

10.4.2. パラメーターの一覧表示

上書きできるパラメーターの一覧は、テンプレートの parameters セクションに表示されます。

手順

  1. 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 を使用して、標準出力にオブジェクト一覧を返すテンプレートを定義するファイルを処理できます。

手順

  1. 標準出力にオブジェクト一覧を返すテンプレートを定義するファイルを処理します。

    $ oc process -f <filename>

    または、テンプレートがすでに現在のプロジェクトにアップロードされている場合には以下を実行します。

    $ oc process <template_name>
  2. テンプレートを処理し、oc create の出力をパイプして、テンプレートからオブジェクトを作成します。

    $ oc process -f <filename> | oc create -f -

    または、テンプレートがすでに現在のプロジェクトにアップロードされている場合には以下を実行します。

    $ oc process <template> | oc create -f -
  3. 上書きする <name>=<value> の各ペアに、-p オプションを追加することで、ファイルに定義されたパラメーターの値を上書きできます。パラメーター参照は、テンプレートアイテム内のテキストフィールドに表示されます。

    たとえば、テンプレートの以下の POSTGRESQL_USER および POSTGRESQL_DATABASE パラメーターを上書きし、カスタマイズされた環境変数の設定を出力します。

    1. テンプレートからのオブジェクト一覧の作成

      $ oc process -f my-rails-postgresql \
          -p POSTGRESQL_USER=bob \
          -p POSTGRESQL_DATABASE=mydatabase
    2. JSON ファイルは、ファイルにリダイレクトすることも、oc create コマンドで処理済みの出力をパイプして、テンプレートをアップロードせずに直接適用することも可能です。

      $ oc process -f my-rails-postgresql \
          -p POSTGRESQL_USER=bob \
          -p POSTGRESQL_DATABASE=mydatabase \
          | oc create -f -
    3. 多数のパラメーターがある場合は、それらをファイルに保存してからそのファイルを oc process に渡すことができます。

      $ cat postgres.env
      POSTGRESQL_USER=bob
      POSTGRESQL_DATABASE=mydatabase
      $ oc process -f my-rails-postgresql --param-file=postgres.env
    4. --param-file の引数として "-" を使用して、標準入力から環境を読み込むこともできます。

      $ sed s/bob/alice/ postgres.env | oc process -f my-rails-postgresql --param-file=-