3.6.4. Adding input secrets and config maps
To provide credentials and other configuration data to a build without placing them in source control, you can define input secrets and input config maps.
In some scenarios, build operations require credentials or other configuration data to access dependent resources. To make that information available without placing it in source control, you can define input secrets and input config maps.
Procedure
To add an input secret, config maps, or both to an existing BuildConfig object:
If the
ConfigMapobject does not exist, create it by entering the following command:$ oc create configmap settings-mvn \ --from-file=settings.xml=<path/to/settings.xml>This creates a new config map named
settings-mvn, which contains the plain text content of thesettings.xmlfile.작은 정보You can alternatively apply the following YAML to create the config map:
apiVersion: core/v1 kind: ConfigMap metadata: name: settings-mvn data: settings.xml: | <settings> … # Insert maven settings here </settings>If the
Secretobject does not exist, create it by entering the following command:$ oc create secret generic secret-mvn \ --from-file=ssh-privatekey=<path/to/.ssh/id_rsa> \ --type=kubernetes.io/ssh-authThis creates a new secret named
secret-mvn, which contains the base64 encoded content of theid_rsaprivate key.작은 정보You can alternatively apply the following YAML to create the input secret:
apiVersion: core/v1 kind: Secret metadata: name: secret-mvn type: kubernetes.io/ssh-auth data: ssh-privatekey: | # Insert ssh private key, base64 encodedAdd the config map and secret to the
sourcesection in the existingBuildConfigobject:source: git: uri: https://github.com/wildfly/quickstart.git contextDir: helloworld configMaps: - configMap: name: settings-mvn secrets: - secret: name: secret-mvnTo include the secret and config map in a new
BuildConfigobject, enter the following command:$ 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"During the build, the build process copies the
settings.xmlandid_rsafiles into the directory where the source code is located. In OpenShift Container Platform S2I builder images, this is the image working directory, which is set using theWORKDIRinstruction in theDockerfile. If you want to specify another directory, add adestinationDirto the definition: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"You can also specify the destination directory when creating a new
BuildConfigobject by entering the following command:$ 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"In both cases, the
settings.xmlfile is added to the./.m2directory of the build environment, and theid_rsakey is added to the./.sshdirectory.