15.2. ConfigMap の作成
以下のコマンドを使用して、ディレクトリー、特定のファイルまたはリテラル値から ConfigMap を作成できます。
手順
- ConfigMap を作成します。
$ oc create configmap <configmap_name> [options]
15.2.1. ディレクトリーからの ConfigMap の作成
ディレクトリーから ConfigMap を作成できます。この方法では、ディレクトリー内の複数のファイルを使用して ConfigMap を作成できます。
手順
以下の例の手順は、ディレクトリーから ConfigMap を作成する方法を説明しています。
ConfigMap の設定に必要なデータがすでに含まれるファイルのあるディレクトリーについて見てみましょう。
$ ls example-files
出力例
game.properties ui.properties
$ cat example-files/game.properties
出力例
enemies=aliens lives=3 enemies.cheat=true enemies.cheat.level=noGoodRotten secret.code.passphrase=UUDDLRLRBABAS secret.code.allowed=true secret.code.lives=30
$ cat example-files/ui.properties
出力例
color.good=purple color.bad=yellow allow.textmode=true how.nice.to.look=fairlyNice
以下のコマンドを使用して、このディレクトリーの各ファイルの内容を保持する ConfigMap を作成します。
$ oc create configmap game-config \ --from-file=example-files/
--from-file
オプションがディレクトリーを参照する場合、そのディレクトリーに直接含まれる各ファイルが ConfigMap でキーを設定するために使用されます。 このキーの名前はファイル名であり、キーの値はファイルの内容になります。たとえば、上記のコマンドは以下の ConfigMap を作成します。
$ oc describe configmaps game-config
出力例
Name: game-config Namespace: default Labels: <none> Annotations: <none> Data game.properties: 158 bytes ui.properties: 83 bytes
マップにある 2 つのキーが、コマンドで指定されたディレクトリーのファイル名に基づいて作成されていることに気づかれることでしょう。それらのキーの内容のサイズは大きくなる可能性があるため、
oc describe
の出力はキーの名前とキーのサイズのみを表示します。-o
オプションを使用してオブジェクトのoc get
コマンドを入力し、キーの値を表示します。$ oc get configmaps game-config -o yaml
出力例
apiVersion: v1 data: game.properties: |- enemies=aliens lives=3 enemies.cheat=true enemies.cheat.level=noGoodRotten secret.code.passphrase=UUDDLRLRBABAS secret.code.allowed=true secret.code.lives=30 ui.properties: | color.good=purple color.bad=yellow allow.textmode=true how.nice.to.look=fairlyNice kind: ConfigMap metadata: creationTimestamp: 2016-02-18T18:34:05Z name: game-config namespace: default resourceVersion: "407"- selflink: /api/v1/namespaces/default/configmaps/game-config uid: 30944725-d66e-11e5-8cd0-68f728db1985
15.2.2. ファイルからの ConfigMap の作成
ファイルから ConfigMap を作成できます。
手順
以下の手順例では、ファイルから ConfigMap を作成する方法を説明します。
ファイルから configmap を作成する場合、UTF8 以外のデータを破損することなく、UTF8 以外のデータを含むファイルをこの新規フィールドに配置できます。OpenShift Container Platform はバイナリーファイルを検出し、ファイルを MIME
として透過的にエンコーディングします。サーバーでは、データを破損することなく MIME
ペイロードがデコーディングされ、保存されます。
--from-file
オプションを CLI に複数回渡すことができます。以下の例を実行すると、ディレクトリーからの作成の例と同等の結果を出すことができます。
特定のファイルを指定して ConfigMap を作成します。
$ oc create configmap game-config-2 \ --from-file=example-files/game.properties \ --from-file=example-files/ui.properties
結果を確認します。
$ oc get configmaps game-config-2 -o yaml
出力例
apiVersion: v1 data: game.properties: |- enemies=aliens lives=3 enemies.cheat=true enemies.cheat.level=noGoodRotten secret.code.passphrase=UUDDLRLRBABAS secret.code.allowed=true secret.code.lives=30 ui.properties: | color.good=purple color.bad=yellow allow.textmode=true how.nice.to.look=fairlyNice kind: ConfigMap metadata: creationTimestamp: 2016-02-18T18:52:05Z name: game-config-2 namespace: default resourceVersion: "516" selflink: /api/v1/namespaces/default/configmaps/game-config-2 uid: b4952dc3-d670-11e5-8cd0-68f728db1985
ファイルからインポートされたコンテンツの ConfigMap に設定するキーを指定できます。これは、key=value
式を --from-file
オプションに渡すことで設定できます。以下は例になります。
キーと値のペアを指定して ConfigMap を作成します。
$ oc create configmap game-config-3 \ --from-file=game-special-key=example-files/game.properties
結果を確認します。
$ oc get configmaps game-config-3 -o yaml
出力例
apiVersion: v1 data: game-special-key: |- 1 enemies=aliens lives=3 enemies.cheat=true enemies.cheat.level=noGoodRotten secret.code.passphrase=UUDDLRLRBABAS secret.code.allowed=true secret.code.lives=30 kind: ConfigMap metadata: creationTimestamp: 2016-02-18T18:54:22Z name: game-config-3 namespace: default resourceVersion: "530" selflink: /api/v1/namespaces/default/configmaps/game-config-3 uid: 05f8da22-d671-11e5-8cd0-68f728db1985
- 1
- これは、先の手順で設定したキーです。
15.2.3. リテラル値からの ConfigMap の作成
ConfigMap にリテラル値を指定することができます。
手順
--from-literal
オプションは、リテラル値をコマンドラインに直接指定できる key=value
構文を取ります。
リテラル値を指定して ConfigMap を作成します。
$ oc create configmap special-config \ --from-literal=special.how=very \ --from-literal=special.type=charm
結果を確認します。
$ oc get configmaps special-config -o yaml
出力例
apiVersion: v1 data: special.how: very special.type: charm kind: ConfigMap metadata: creationTimestamp: 2016-02-18T19:14:38Z name: special-config namespace: default resourceVersion: "651" selflink: /api/v1/namespaces/default/configmaps/special-config uid: dadce046-d673-11e5-8cd0-68f728db1985