Chapter 1. Deploying Developer Hub on AKS with the Operator
You can deploy your Developer Hub on AKS using the Red Hat Developer Hub Operator.
Procedure
Create an
ImagePull Secretnamedrhdh-pull-secretusing your Red Hat credentials to access images from the protectedregistry.redhat.ioas shown in the following example:kubectl -n <your_namespace> create secret docker-registry rhdh-pull-secret \ --docker-server=registry.redhat.io \ --docker-username=<redhat_user_name> \ --docker-password=<redhat_password> \ --docker-email=<email>Create an Ingress manifest file, named
rhdh-ingress.yaml, specifying your Developer Hub service name as follows:apiVersion: networking.k8s.io/v1 kind: Ingress metadata: name: rhdh-ingress namespace: my-rhdh-project spec: ingressClassName: webapprouting.kubernetes.azure.com rules: - http: paths: - path: / pathType: Prefix backend: service: name: backstage-<your-CR-name> port: name: http-backendTo deploy the created Ingress, run the following command:
kubectl -n <your_namespace> apply -f rhdh-ingress.yamlCreate a
my-rhdh-app-configconfig map containing theapp-config.yamlDeveloper Hub configuration file by using the following example:apiVersion: v1 kind: ConfigMap metadata: name: my-rhdh-app-config data: "app-config.yaml": | app: title: Red Hat Developer Hub baseUrl: https://<app_address> backend: auth: externalAccess: - type: legacy options: subject: legacy-default-config secret: "${BACKEND_SECRET}" baseUrl: https://<app_address> cors: origin: https://<app_address>Create a
<my_product_secrets>secret and add a key namedBACKEND_SECRETwith aBase64-encodedstring value as shown in the following example:apiVersion: v1 kind: Secret metadata: name: <my_product_secrets>1 stringData: BACKEND_SECRET: "xxx"- 1
<my_product_secrets>is your preferred Developer Hub secret name, where<my_product_secrets>specifies the identifier for your secret configuration within Developer Hub.
Create your
Backstagecustom resource (CR) manifest file named<your-rhdh-cr>and include the previously createdrhdh-pull-secretas follows:apiVersion: rhdh.redhat.com/v1alpha3 kind: Backstage metadata: name: <your-rhdh-cr> spec: application: imagePullSecrets: - rhdh-pull-secret appConfig: configMaps: - name: my-rhdh-app-config extraEnvs: secrets: - name: <my_product_secrets>1 - 1
<my_product_secrets>is your preferred Developer Hub secret name, where<my_product_secrets>specifies the identifier for your secret configuration within Developer Hub.
Apply the CR manifest to your namespace:
kubectl -n my-rhdh-project apply -f rhdh.yaml-
Access the deployed Developer Hub using the URL:
https://<app_address>, where <app_address> is the Ingress address obtained earlier (for example,https://108.141.70.228). Optional: To delete the CR, run the following command:
kubectl -n my-rhdh-project delete -f rhdh.yaml