Dieser Inhalt ist in der von Ihnen ausgewählten Sprache nicht verfügbar.
Chapter 1. Provisioning and using your custom Red Hat Developer Hub configuration
To configure Red Hat Developer Hub, use these methods, which are widely used to configure a Red Hat OpenShift Container Platform application:
- Use config maps to mount files and directories.
- Use secrets to inject environment variables.
Learn to apply these methods to Developer Hub:
- Provision your custom config maps and secrets to OpenShift Container Platform.
Use your selected deployment method to mount the config maps and inject the secrets:
1.1. Provisioning your custom Red Hat Developer Hub configuration Link kopierenLink in die Zwischenablage kopiert!
To configure Red Hat Developer Hub, provision your custom Red Hat Developer Hub config maps and secrets to Red Hat OpenShift Container Platform before running Red Hat Developer Hub.
You can skip this step to run Developer Hub with the default config map and secret. Your changes on this configuration might get reverted on Developer Hub restart.
Prerequisites
-
By using the OpenShift CLI (
oc), you have access, with developer permissions, to the OpenShift Container Platform cluster aimed at containing your Developer Hub instance.
Procedure
Author your custom
<my_product_secrets>.txtfile to provision your secrets as environment variables values in an OpenShift Container Platform secret, rather than in clear text in your configuration files. It contains one secret per line inKEY=valueform.Author your custom
app-config.yamlfile. This is the main Developer Hub configuration file.The
baseUrlfield is mandatory in yourapp-config.yamlfile to ensure proper functionality of Developer Hub. You must specify thebaseUrlin both theappandbackendsections to avoid errors during initialization.Example 1.1. Configuring the
baseUrlinapp-config.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow Optionally, enter your configuration such as:
Provision your custom configuration files to your OpenShift Container Platform cluster.
Create the <my-rhdh-project> project aimed at containing your Developer Hub instance.
oc create namespace my-rhdh-project
$ oc create namespace my-rhdh-projectCopy to Clipboard Copied! Toggle word wrap Toggle overflow Alternatively, create the project by using the web console.
Provision your
app-config.yamlfile to themy-rhdh-app-configconfig map in the <my-rhdh-project> project.oc create configmap my-rhdh-app-config --from-file=app-config.yaml --namespace=my-rhdh-project
$ oc create configmap my-rhdh-app-config --from-file=app-config.yaml --namespace=my-rhdh-projectCopy to Clipboard Copied! Toggle word wrap Toggle overflow Alternatively, create the config map by using the web console.
Provision your
<my_product_secrets>.txtfile to the<my_product_secrets>secret in the <my-rhdh-project> project.oc create secret generic <my_product_secrets> --from-file=<my_product_secrets>.txt --namespace=my-rhdh-project
$ oc create secret generic <my_product_secrets> --from-file=<my_product_secrets>.txt --namespace=my-rhdh-projectCopy to Clipboard Copied! Toggle word wrap Toggle overflow Alternatively, create the secret by using the web console.
<my_product_secrets> is your preferred Developer Hub secret name, specifying the identifier for your secret configuration within Developer Hub.
Next steps
Consider provisioning additional config maps and secrets:
- To use an external PostgreSQL database, provision your PostgreSQL database secrets.
- To enable dynamic plugins, provision your dynamic plugins config map.
- To configure authorization by using external files, provision your RBAC policies config map.
1.2. Using the Red Hat Developer Hub Operator to run Developer Hub with your custom configuration Link kopierenLink in die Zwischenablage kopiert!
To use the Developer Hub Operator to run Red Hat Developer Hub with your custom configuration, create your Backstage custom resource (CR) that:
- Mounts files provisioned in your custom config maps.
- Injects environment variables provisioned in your custom secrets.
Prerequisites
-
By using the OpenShift CLI (
oc), you have access, with developer permissions, to the OpenShift Container Platform cluster aimed at containing your Developer Hub instance. - Your OpenShift Container Platform administrator has installed the Red Hat Developer Hub Operator in OpenShift Container Platform.
-
You have provisioned your custom config maps and secrets in your
<my-rhdh-project>project.
Procedure
Author your Backstage CR in a
my-rhdh-custom-resource.yamlfile to use your custom config maps and secrets.Example 1.2. Minimal
my-rhdh-custom-resource.yamlcustom resource exampleCopy to Clipboard Copied! Toggle word wrap Toggle overflow Example 1.3.
my-rhdh-custom-resource.yamlcustom resource example with dynamic plugins and RBAC policies config maps, and external PostgreSQL database secrets.Copy to Clipboard Copied! Toggle word wrap Toggle overflow - Mandatory fields
- No fields are mandatory. You can create an empty Backstage CR and run Developer Hub with the default configuration.
- Optional fields
spec.application.appConfig.configMaps- Enter your config map name list.
.Mount files in the
my-rhdh-app-configconfig map.Copy to Clipboard Copied! Toggle word wrap Toggle overflow Example 1.4. Mount files in the
my-rhdh-app-configandrbac-policiesconfig maps.Copy to Clipboard Copied! Toggle word wrap Toggle overflow spec.application.extraEnvs.envsOptionally, enter your additional environment variables that are not secrets, such as your proxy environment variables.
Example 1.5. Inject your
HTTP_PROXY,HTTPS_PROXYandNO_PROXYenvironment variables.Copy to Clipboard Copied! Toggle word wrap Toggle overflow spec.application.extraEnvs.secretsEnter your environment variables secret name list.
Example 1.6. Inject the environment variables in your Red Hat Developer Hub secret
spec: application: extraEnvs: secrets: - name: <my_product_secrets>spec: application: extraEnvs: secrets: - name: <my_product_secrets>Copy to Clipboard Copied! Toggle word wrap Toggle overflow Example 1.7. Inject the environment variables in the Red Hat Developer Hub and
my-rhdh-database-secretssecretsCopy to Clipboard Copied! Toggle word wrap Toggle overflow
<my_product_secrets> is your preferred Developer Hub secret name, specifying the identifier for your secret configuration within Developer Hub.
spec.application.extraFiles.secretsEnter your certificates files secret name and files list.
Mount the
postgres-crt.pem,postgres-ca.pem, andpostgres-key.keyfiles contained in themy-rhdh-database-certificates-secretssecretCopy to Clipboard Copied! Toggle word wrap Toggle overflow spec.database.enableLocalDbEnable or disable the local PostgreSQL database.
Disable the local PostgreSQL database generation to use an external postgreSQL database
spec: database: enableLocalDb: falsespec: database: enableLocalDb: falseCopy to Clipboard Copied! Toggle word wrap Toggle overflow On a development environment, use the local PostgreSQL database
spec: database: enableLocalDb: truespec: database: enableLocalDb: trueCopy to Clipboard Copied! Toggle word wrap Toggle overflow spec.deploymentOptionally, enter your deployment configuration.
Apply your Backstage CR to start or update your Developer Hub instance.
oc apply --filename=my-rhdh-custom-resource.yaml --namespace=my-rhdh-project
$ oc apply --filename=my-rhdh-custom-resource.yaml --namespace=my-rhdh-projectCopy to Clipboard Copied! Toggle word wrap Toggle overflow
1.2.1. Mounting additional files in your custom configuration using the Red Hat Developer Hub Operator Link kopierenLink in die Zwischenablage kopiert!
You can use the Developer Hub Operator to mount extra files, such as a ConfigMap or Secret, to the container in a preferred location.
The mountPath field specifies the location where a ConfigMap or Secret is mounted. The behavior of the mount, whether it includes or excludes a subPath, depends on the specification of the key or mountPath fields.
-
If
keyandmountPathare not specified: Each key or value is mounted as afilenameor content with asubPath. -
If
keyis specified with or withoutmountPath: The specified key or value is mounted with asubPath. -
If only
mountPathis specified: A directory containing all the keys or values is mounted without asubPath.
-
OpenShift Container Platform does not automatically update a volume mounted with
subPath. By default, the RHDH Operator monitors these ConfigMaps or Secrets and refreshes the RHDH Pod when changes occur. - For security purposes, Red Hat Developer Hub does not give the Operator Service Account read access to Secrets. As a result, mounting files from Secrets without specifying both mountPath and key is not supported.
Prerequisites
-
You have developer permissions to access the OpenShift Container Platform cluster containing your Developer Hub instance using the OpenShift CLI (
oc). - Your OpenShift Container Platform administrator has installed the Red Hat Developer Hub Operator in OpenShift Container Platform.
Procedure
In OpenShift Container Platform, create your ConfigMap or Secret with the following YAML codes:
Example 1.8. Minimal
my-project-configmapConfigMap exampleCopy to Clipboard Copied! Toggle word wrap Toggle overflow Example 1.9. Minimal Red Hat Developer Hub Secret example
Copy to Clipboard Copied! Toggle word wrap Toggle overflow For more information, see Provisioning and using your custom Red Hat Developer Hub configuration.
Set the value of the
configMaps nameto the name of the ConfigMap orsecrets nameto the name of the Secret in yourBackstageCR. For example:Copy to Clipboard Copied! Toggle word wrap Toggle overflow
<my_product_secrets> is your preferred Developer Hub secret name, specifying the identifier for your secret configuration within Developer Hub.
1.3. Using the Red Hat Developer Hub Helm chart to run Developer Hub with your custom configuration Link kopierenLink in die Zwischenablage kopiert!
You can use the Red Hat Developer Hub Helm chart to add a custom application configuration file to your OpenShift Container Platform instance.
Prerequisites
- By using the OpenShift Container Platform web console, you have access with developer permissions, to an OpenShift Container Platform project named <my-rhdh-project>, aimed at containing your Developer Hub instance.
-
You have uploaded your custom configuration files and secrets in your
<my-rhdh-project>project.
Procedure
Configure Helm to use your custom configuration files in Developer Hub.
- Go to the Helm tab to see the list of Helm releases.
- Click the overflow menu on the Helm release that you want to use and select Upgrade.
- Use the YAML view to edit the Helm configuration.
Set the value of the
upstream.backstage.extraAppConfig.configMapRefandupstream.backstage.extraAppConfig.filenameparameters as follows:Helm configuration excerpt
upstream: backstage: extraAppConfig: - configMapRef: my-rhdh-app-config filename: app-config.yamlupstream: backstage: extraAppConfig: - configMapRef: my-rhdh-app-config filename: app-config.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow - Click Upgrade.
Next steps
- Install Developer Hub by using Helm.