第1章 OLM フレームワークを使用した Developer Hub Operator のインストール


Operator Lifecycle Manager (OLM) フレームワーク を使用して、Developer Hub Operator を GKE にインストールできます。その後、GKE に Developer Hub インスタンスをデプロイできます。

OLM の詳細は、Operator Lifecycle Manager (OLM) のドキュメントを参照してください。

前提条件

手順

  1. 次のコマンドを使用して GKE クラスターに接続します。

    gcloud container clusters get-credentials <cluster-name> \ 
    1
    
        --location=<cluster-location> 
    2
    Copy to Clipboard Toggle word wrap
    1
    GKE クラスター名を入力します。
    2
    GKE クラスターの場所を入力します。

    このコマンドは、Kubernetes クライアントが GKE クラスターを指定するように設定します。

  2. ターミナルで次のコマンドを実行して、Operator がインストールされている rhdh-operator namespace を作成します。

    kubectl create namespace rhdh-operator
    Copy to Clipboard Toggle word wrap
  3. 次のコマンドを使用してプルシークレットを作成します。

    kubectl -n rhdh-operator 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
    Copy to Clipboard Toggle word wrap
    1
    コマンドにユーザー名を入力します。
    2
    コマンドにパスワードを入力します。
    3
    コマンドにメールアドレスを入力します。

    作成されたプルシークレットは、Red Hat Ecosystem から Developer Hub イメージをプルするために使用されます。

  4. Red Hat Ecosystem の Operator を含む CatalogSource リソースを作成します。

    CatalogSource リソースの例

    cat <<EOF | kubectl -n rhdh-operator apply -f -
    apiVersion: operators.coreos.com/v1alpha1
    kind: CatalogSource
    metadata:
      name: redhat-catalog
    spec:
      sourceType: grpc
      image: registry.redhat.io/redhat/redhat-operator-index:v4.18
      secrets:
      - "rhdh-pull-secret"
      displayName: Red Hat Operators
    EOF
    Copy to Clipboard Toggle word wrap

  5. 次のように OperatorGroup リソースを作成します。

    OperatorGroup リソースの例

    cat <<EOF | kubectl apply -n rhdh-operator -f -
    apiVersion: operators.coreos.com/v1
    kind: OperatorGroup
    metadata:
      name: rhdh-operator-group
    EOF
    Copy to Clipboard Toggle word wrap

  6. 次のコードを使用して Subscription リソースを作成します。

    Subscription リソースの例

    cat <<EOF | kubectl apply -n rhdh-operator -f -
    apiVersion: operators.coreos.com/v1alpha1
    kind: Subscription
    metadata:
      name: rhdh
      namespace: rhdh-operator
    spec:
      channel: fast
      installPlanApproval: Automatic
      name: rhdh
      source: redhat-catalog
      sourceNamespace: rhdh-operator
      startingCSV: rhdh-operator.v1.5.3
    EOF
    Copy to Clipboard Toggle word wrap

  7. 次のコマンドを実行して、作成した Operator が実行されていることを確認します。

    kubectl -n rhdh-operator get pods -w
    Copy to Clipboard Toggle word wrap

    Operator Pod に ImagePullBackOff ステータスが表示される場合は、Operator デプロイメントのマニフェスト内でイメージを直接プルする権限が必要になる可能性があります。

    ヒント

    必要なシークレット名を deployment.spec.template.spec.imagePullSecrets リストに含め、kubectl get deployment -n rhdh-operator コマンドを使用してデプロイメント名を確認できます。以下に例を示します。

    kubectl -n rhdh-operator patch deployment \
        rhdh.fast --patch '{"spec":{"template":{"spec":{"imagePullSecrets":[{"name":"rhdh-pull-secret"}]}}}}' \
        --type=merge
    Copy to Clipboard Toggle word wrap

1.1. Operator を使用して GKE に Developer Hub インスタンスをデプロイする

Operator を使用して、Developer Hub インスタンスを GKE にデプロイできます。

前提条件

  • クラスター管理者が Red Hat Developer Hub Operator をインストールしている。
  • registry.redhat.io にサブスクライブされている。詳細は、Red Hat コンテナーレジストリーの認証 を参照してください。
  • kubectl がインストールされている。詳細は、kubetl のインストール を参照してください。
  • Developer Hub インスタンスのドメイン名が設定されている。
  • どの仮想マシン (VM) にも接続されていない静的な外部プレミアム IPv4 グローバル IP アドレスを予約している。詳細は、Reserve a new static external IP address を参照してください。
  • ドメイン名の DNS レコードが、予約済みの IP アドレスを指定するように設定されている。

    注記

    IP アドレスと同じ値を持つ A レコードを作成する必要があります。このプロセスが伝播するまでに最大 1 時間かかる場合があります。

手順

  1. 次のテンプレートを使用して、app-config.yaml Developer Hub 設定ファイルを含む app-config.yaml config map を作成します。

    app-config.yaml フラグメント

    apiVersion: v1
    kind: ConfigMap
    metadata:
      name: my-rhdh-app-config
    data:
      "app-config.yaml": |
        app:
          title: Red Hat Developer Hub
          baseUrl: https://<rhdh_domain_name>
        backend:
          auth:
            externalAccess:
                - type: legacy
                  options:
                    subject: legacy-default-config
                    secret: "${BACKEND_SECRET}"
          baseUrl: https://<rhdh_domain_name>
          cors:
            origin: https://<rhdh_domain_name>
    Copy to Clipboard Toggle word wrap

  2. 次の例に示すように、<my_product_secrets> シークレットを作成し、Base64-encoded 文字列値を持つ BACKEND_SECRET という名前のキーを追加します。

    apiVersion: v1
    kind: Secret
    metadata:
      name: <my_product_secrets> 
    1
    
    stringData:
      # TODO: See https://backstage.io/docs/auth/service-to-service-auth/#setup
      BACKEND_SECRET: "xxx"
    Copy to Clipboard Toggle word wrap
    1
    <my_product_secrets> は、任意の Developer Hub シークレット名です。<my_product_secrets> は、Developer Hub 内のシークレット設定の識別子を指定します。
    重要

    各 Developer Hub インスタンスには、必ず一意の値の BACKEND_SECRET を使用してください。

    次のコマンドを使用してキーを生成できます。

    node-p'require("crypto").randomBytes(24).toString("base64")'
    Copy to Clipboard Toggle word wrap
  3. Red Hat エコシステムカタログから PostgreSQL イメージをプルできるようにするには、Developer Hub インスタンスがデプロイされている namespace 内のデフォルトのサービスアカウントにイメージプルシークレットを追加します。

    kubectl patch serviceaccount default \
        -p '{"imagePullSecrets": [{"name": "rhdh-pull-secret"}]}' \
        -n <your_namespace>
    Copy to Clipboard Toggle word wrap
  4. 次のテンプレートを使用して、Backstage カスタムリソース (CR) ファイルを作成します。

    カスタムリソースフラグメント

    apiVersion: rhdh.redhat.com/v1alpha3
    kind: Backstage
    metadata:
      # This is the name of your Developer Hub instance
      name: my-rhdh
    spec:
      application:
        imagePullSecrets:
        - "rhdh-pull-secret"
        route:
          enabled: false
        appConfig:
          configMaps:
            - name: my-rhdh-app-config
        extraEnvs:
          secrets:
            - name: <my_product_secrets> 
    1
    Copy to Clipboard Toggle word wrap

    1
    <my_product_secrets> は、任意の Developer Hub シークレット名です。<my_product_secrets> は、Developer Hub 内のシークレット設定の識別子を指定します。
  5. 次の例に示すように、Ingress にアタッチする必要がある ManagedCertificate オブジェクトを作成して、Google マネージド証明書を設定します。

    apiVersion: networking.gke.io/v1
    kind: ManagedCertificate
    metadata:
      name: <rhdh_certificate_name>
    spec:
      domains:
        - <rhdh_domain_name>
    Copy to Clipboard Toggle word wrap

    Google マネージド証明書の設定の詳細は、Setting up a Google-managed certificate を参照してください。

  6. HTTPS にリダイレクトするためのポリシーを設定するには、FrontendConfig オブジェクトを作成します。このポリシーを Ingress にアタッチする必要があります。

    FrontendConfig オブジェクトの例

    apiVersion: networking.gke.io/v1beta1
    kind: FrontendConfig
    metadata:
      name: <ingress_security_config>
    spec:
      sslPolicy: gke-ingress-ssl-policy-https
      redirectToHttps:
        enabled: true
    Copy to Clipboard Toggle word wrap

    HTTPS にリダイレクトするポリシーの設定の詳細は、HTTP から HTTPS へのリダイレクト を参照してください。

  7. 次のテンプレートを使用して Ingress リソースを作成し、必要に応じて名前をカスタマイズします。

    Ingress リソース設定の例

    apiVersion: networking.k8s.io/v1
    kind: Ingress
    metadata:
      # TODO: this the name of your Developer Hub Ingress
      name: my-rhdh
      annotations:
        # If the class annotation is not specified it defaults to "gce".
        kubernetes.io/ingress.class: "gce"
        kubernetes.io/ingress.global-static-ip-name: <ADDRESS_NAME>
        networking.gke.io/managed-certificates: <rhdh_certificate_name>
        networking.gke.io/v1beta1.FrontendConfig: <ingress_security_config>
    spec:
      ingressClassName: gce
      rules:
        # TODO: Set your application domain name.
        - host: <rhdh_domain_name>
          http:
            paths:
            - path: /
              pathType: Prefix
              backend:
                service:
                  # TODO: my-rhdh is the name of your `Backstage` custom resource.
                  # Adjust if you changed it!
                  name: backstage-my-rhdh
                  port:
                    name: http-backend
    Copy to Clipboard Toggle word wrap

検証

  • ManagedCertificate がプロビジョニングされるまで待ちます。このプロセスには数時間かかる場合があります。
  • https://<rhdh_domain_name> を使用して RHDH にアクセスします

関連情報

TLS を使用した Ingress を使用して GKE を設定する方法の詳細は、Secure GKE Ingress を参照してください。

Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。 最新の更新を見る.

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

Theme

© 2026 Red Hat
トップに戻る