第3章 Red Hat Developer Hub と Amazon Web Services (AWS) の統合
Red Hat Developer Hub アプリケーションを Amazon Web Services (AWS) と統合すると、AWS エコシステム内のワークフローを合理化できます。Developer Hub リソースを AWS と統合することで、ツール、サービス、ソリューションの包括的なスイートにアクセスできるようになります。
AWS との統合には、次のいずれかの方法を使用して Elastic Kubernetes Service (EKS) の Developer Hub のデプロイメントが必要です。
- Helm チャート
- Red Hat Developer Hub Operator
3.1. Helm Chart を使用した Elastic Kubernetes Service (EKS) への Red Hat Developer Hub のデプロイ
Helm Chart を使用して Elastic Kubernetes Service (EKS) に Developer Hub をデプロイすると、AWS エコシステム内で堅牢な開発環境がオーケストレーションされます。
前提条件
- AWS Application Load Balancer (ALB) アドオンがインストールされた EKS クラスターがある。詳細は、Application load balancing on Amazon Developer Hub および Installing the AWS Load Balancer Controller add-on を参照してください。
- Developer Hub インスタンスのドメイン名が設定されている。ドメイン名は、Route 53 上のホストゾーンエントリーにすることも、AWS の外部で管理することもできます。詳細は、Configuring Amazon Route 53 as your DNS service ドキュメントを参照してください。
- AWS Certificate Manager (ACM) に、希望するドメイン名のエントリーがある。証明書 ARN の記録は必ず保管してください。
-
registry.redhat.io
にサブスクライブされている。詳細は、Red Hat コンテナーレジストリーの認証 を参照してください。 -
現在の
kubeconfig
で、EKS クラスターにコンテキストが設定されている。詳細は、Creating or updating a kubeconfig file for an Amazon EKS cluster を参照してください。 -
kubectl
がインストールされている。詳細は、Installing or updating kubectl を参照してください。 - Helm 3 以降がインストールされている。詳細は、Using Helm with Amazon EKS を参照してください。
手順
ターミナルに移動し、次のコマンドを実行して、Developer Hub チャートを含む Helm チャートリポジトリーを、ローカルの Helm レジストリーに追加します。
helm repo add openshift-helm-charts https://charts.openshift.io/
次のコマンドを使用してプルシークレットを作成します。
kubectl create secret docker-registry rhdh-pull-secret \ --docker-server=registry.redhat.io \ --docker-username=<user_name> \ 1 --docker-password=<password> \ 2 --docker-email=<email> 3
作成されたプルシークレットは、Red Hat エコシステムから Developer Hub イメージをプルするために使用されます。
次のテンプレートを使用して、
values.yaml
という名前のファイルを作成します。global: # TODO: Set your application domain name. host: <your Developer Hub domain name> route: enabled: false upstream: service: # NodePort is required for the ALB to route to the Service type: NodePort ingress: enabled: true annotations: kubernetes.io/ingress.class: alb alb.ingress.kubernetes.io/scheme: internet-facing # TODO: Using an ALB HTTPS Listener requires a certificate for your own domain. Fill in the ARN of your certificate, e.g.: alb.ingress.kubernetes.io/certificate-arn: arn:aws:acm:xxx:xxxx:certificate/xxxxxx alb.ingress.kubernetes.io/listen-ports: '[{"HTTP": 80}, {"HTTPS":443}]' alb.ingress.kubernetes.io/ssl-redirect: '443' # TODO: Set your application domain name. external-dns.alpha.kubernetes.io/hostname: <your rhdh domain name> backstage: image: pullSecrets: - rhdh-pull-secret podSecurityContext: # you can assign any random value as fsGroup fsGroup: 2000 postgresql: image: pullSecrets: - rhdh-pull-secret primary: podSecurityContext: enabled: true # you can assign any random value as fsGroup fsGroup: 3000 volumePermissions: enabled: true
ターミナルで次のコマンドを実行し、最新バージョンの Helm Chart と前の手順で作成した value.yaml ファイルを使用して Developer Hub をデプロイします。
helm install rhdh \ openshift-helm-charts/redhat-developer-hub \ [--version 1.1.4] \ --values /path/to/values.yaml
注記最新のチャートバージョンについては、https://github.com/openshift-helm-charts/charts/tree/main/charts/redhat/redhat/redhat-developer-hub を参照してください。
検証
DNS 名が応答し、Developer Hub インスタンスが使用できる状態になったことを示すまで待ちます。