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 Secret
namedrhdh-pull-secret
using your Red Hat credentials to access images from the protectedregistry.redhat.io
as 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>
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>
Copy to Clipboard Copied! 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-backend
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-backend
Copy to Clipboard Copied! To deploy the created Ingress, run the following command:
kubectl -n <your_namespace> apply -f rhdh-ingress.yaml
kubectl -n <your_namespace> apply -f rhdh-ingress.yaml
Copy to Clipboard Copied! Create a
my-rhdh-app-config
config map containing theapp-config.yaml
Developer 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>
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>
Copy to Clipboard Copied! Create a
<my_product_secrets>
secret and add a key namedBACKEND_SECRET
with aBase64-encoded
string value as shown in the following example:apiVersion: v1 kind: Secret metadata: name: <my_product_secrets> stringData: BACKEND_SECRET: "xxx"
apiVersion: v1 kind: Secret metadata: name: <my_product_secrets>
1 stringData: BACKEND_SECRET: "xxx"
Copy to Clipboard Copied! - 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
Backstage
custom resource (CR) manifest file named<your-rhdh-cr>
and include the previously createdrhdh-pull-secret
as 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>
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 Copy to Clipboard Copied! - 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
kubectl -n my-rhdh-project apply -f rhdh.yaml
Copy to Clipboard Copied! -
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
kubectl -n my-rhdh-project delete -f rhdh.yaml
Copy to Clipboard Copied!