Questo contenuto non è disponibile nella lingua selezionata.
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 Copia collegamentoCollegamento copiato negli appunti!
To configure Red Hat Developer Hub, provision your custom Red Hat Developer Hub config maps and secrets to Red Hat OpenShift Container Platform (RHOCP) before running Red Hat Developer Hub.
On Red Hat OpenShift Container Platform, 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 cluster aimed at containing your Developer Hub instance.
Procedure
Author your custom
<my_product_secrets>.txt
file to provision your secrets as environment variables values in an OpenShift secret, rather than in clear text in your configuration files. It contains one secret per line inKEY=value
form.Author your custom
app-config.yaml
file. This is the main Developer Hub configuration file. You need a customapp-config.yaml
file to avoid the Developer Hub installer to revert user edits during upgrades. When your customapp-config.yaml
file is empty, Developer Hub is using default values.- To prepare a deployment with the Red Hat Developer Hub Operator on OpenShift Container Platform, you can start with an empty file.
To prepare a deployment with the Red Hat Developer Hub Helm chart, or on Kubernetes, enter the Developer Hub base URL in the relevant fields in your
app-config.yaml
file to ensure proper functionality of Developer Hub. The base URL is what a Developer Hub user sees in their browser when accessing Developer Hub. The relevant fields arebaseUrl
in theapp
andbackend
sections, andorigin
in thebackend.cors
subsection:Example 1.1. Configuring the
baseUrl
inapp-config.yaml
Copy 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> {namespace} aimed at containing your Developer Hub instance.
oc create namespace my-rhdh-project
$ oc create namespace my-rhdh-project
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Provision your
app-config.yaml
file to themy-rhdh-app-config
config 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-project
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Provision your
<my_product_secrets>.txt
file 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<my_product_secrets>.txt --namespace=my-rhdh-project
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
Next steps
- 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 Copia collegamentoCollegamento copiato negli appunti!
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 administrator has installed the Red Hat Developer Hub Operator in the cluster.
-
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.yaml
file to use your custom config maps and secrets.Minimal
my-rhdh-custom-resource.yaml
custom resource example:Copy to Clipboard Copied! Toggle word wrap Toggle overflow my-rhdh-custom-resource.yaml
custom 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-config
config map:Copy to Clipboard Copied! Toggle word wrap Toggle overflow Mount files in the
my-rhdh-app-config
andrbac-policies
config maps:Copy to Clipboard Copied! Toggle word wrap Toggle overflow spec.application.extraEnvs.envs
Optionally, enter your additional environment variables that are not secrets, such as your proxy environment variables.
Inject your
HTTP_PROXY
,HTTPS_PROXY
andNO_PROXY
environment variables:Copy to Clipboard Copied! Toggle word wrap Toggle overflow spec.application.extraEnvs.secrets
Enter your environment variables secret name list.
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 Inject the environment variables in the Red Hat Developer Hub and
my-rhdh-database-secrets
secrets:Copy to Clipboard Copied! Toggle word wrap Toggle overflow Note<my_product_secrets>
is your preferred Developer Hub secret name, specifying the identifier for your secret configuration within Developer Hub.spec.application.extraFiles.secrets
Enter your certificates files secret name and files list.
Mount the
postgres-crt.pem
,postgres-ca.pem
, andpostgres-key.key
files contained in themy-rhdh-database-certificates-secrets
secret:Copy to Clipboard Copied! Toggle word wrap Toggle overflow spec.database.enableLocalDb
Enable or disable the local PostgreSQL database.
Disable the local PostgreSQL database generation to use an external postgreSQL database:
spec: database: enableLocalDb: false
spec: database: enableLocalDb: false
Copy to Clipboard Copied! Toggle word wrap Toggle overflow On a development environment, use the local PostgreSQL database:
spec: database: enableLocalDb: true
spec: database: enableLocalDb: true
Copy to Clipboard Copied! Toggle word wrap Toggle overflow spec.deployment
- Optionally, 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-project
Copy 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 Copia collegamentoCollegamento copiato negli appunti!
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
key
andmountPath
are not specified: Each key or value is mounted as afilename
or content with asubPath
. -
If
key
is specified with or withoutmountPath
: The specified key or value is mounted with asubPath
. -
If only
mountPath
is 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.2. Minimal
my-project-configmap
ConfigMap exampleCopy to Clipboard Copied! Toggle word wrap Toggle overflow Example 1.3. 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 name
to the name of the ConfigMap orsecrets name
to the name of the Secret in yourBackstage
CR. 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 Copia collegamentoCollegamento copiato negli appunti!
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.configMapRef
andupstream.backstage.extraAppConfig.filename
parameters as follows:Helm configuration excerpt
upstream: backstage: extraAppConfig: - configMapRef: my-rhdh-app-config filename: app-config.yaml
upstream: backstage: extraAppConfig: - configMapRef: my-rhdh-app-config filename: app-config.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - Click Upgrade.
Next steps
- Install Developer Hub by using Helm.