3.6.4. 入力シークレットおよび config map の追加
認証情報およびその他の設定データをソース管理に配置せずにビルドに提供するには、入力シークレットおよび入力 config map を定義します。
シナリオによっては、ビルド操作で、依存するリソースにアクセスするための認証情報や他の設定データが必要になる場合があります。この情報をソース管理に配置せずに利用可能にするには、入力シークレットおよび入力 config map を定義します。
手順
既存の BuildConfig オブジェクトに入力シークレットおよび/または config map を追加するには、以下を行います。
ConfigMapオブジェクトが存在しない場合は、次のコマンドを入力して作成します。$ oc create configmap settings-mvn \ --from-file=settings.xml=<path/to/settings.xml>これにより、
settings-mvnという名前の新しい config map が作成されます。これには、settings.xmlファイルのプレーンテキストのコンテンツが含まれます。ヒントまたは、以下の YAML を適用して config map を作成できます。
apiVersion: core/v1 kind: ConfigMap metadata: name: settings-mvn data: settings.xml: | <settings> … # Insert maven settings here </settings>Secretオブジェクトが存在しない場合は、次のコマンドを入力して作成します。$ oc create secret generic secret-mvn \ --from-file=ssh-privatekey=<path/to/.ssh/id_rsa> \ --type=kubernetes.io/ssh-authこれにより、
secret-mvnという名前の新規シークレットが作成されます。これには、id_rsaプライベートキーの base64 でエンコードされたコンテンツが含まれます。ヒントまたは、以下の YAML を適用して入力シークレットを作成できます。
apiVersion: core/v1 kind: Secret metadata: name: secret-mvn type: kubernetes.io/ssh-auth data: ssh-privatekey: | # Insert ssh private key, base64 encodedconfig map およびシークレットを既存の
BuildConfigオブジェクトのsourceセクションに追加します。source: git: uri: https://github.com/wildfly/quickstart.git contextDir: helloworld configMaps: - configMap: name: settings-mvn secrets: - secret: name: secret-mvnシークレットおよび config map を新規の
BuildConfigオブジェクトに追加するには、以下のコマンドを実行します。$ oc new-build \ openshift/wildfly-101-centos7~https://github.com/wildfly/quickstart.git \ --context-dir helloworld --build-secret “secret-mvn” \ --build-config-map "settings-mvn"ビルド中に、ビルドプロセスは、
settings.xmlファイルとid_rsaファイルをソースコードが配置されているディレクトリーにコピーします。OpenShift Container Platform S2I ビルダーイメージでは、これはイメージの作業ディレクトリーで、DockerfileのWORKDIRの指示を使用して設定されます。別のディレクトリーを指定するには、destinationDirを定義に追加します。source: git: uri: https://github.com/wildfly/quickstart.git contextDir: helloworld configMaps: - configMap: name: settings-mvn destinationDir: ".m2" secrets: - secret: name: secret-mvn destinationDir: ".ssh"次のコマンドを入力して、新しい
BuildConfigオブジェクトを作成するときに、宛先ディレクトリーを指定することもできます。$ oc new-build \ openshift/wildfly-101-centos7~https://github.com/wildfly/quickstart.git \ --context-dir helloworld --build-secret “secret-mvn:.ssh” \ --build-config-map "settings-mvn:.m2"いずれの場合も、
settings.xmlファイルがビルド環境の./.m2ディレクトリーに追加され、id_rsaキーは./.sshディレクトリーに追加されます。