10.5. SharedSecret オブジェクトを使用したビルドの実行


SharedSecret オブジェクトを使用すると、ビルドでクラスターのエンタイトルメントキーにセキュアにアクセスできます。

SharedSecret オブジェクトを使用すると、namespace 間でシークレットを共有および同期できます。

重要

Shared Resource CSI Driver は、テクノロジープレビュー機能としてのみ提供されます。テクノロジープレビュー機能は、Red Hat 製品のサービスレベルアグリーメント (SLA) の対象外であり、機能的に完全ではないことがあります。Red Hat は、実稼働環境でこれらを使用することを推奨していません。テクノロジープレビューの機能は、最新の製品機能をいち早く提供して、開発段階で機能のテストを行いフィードバックを提供していただくことを目的としています。

Red Hat のテクノロジープレビュー機能のサポート範囲に関する詳細は、テクノロジープレビュー機能のサポート範囲 を参照してください。

前提条件

  • フィーチャーゲートを使用して TechPreviewNoUpgrade 機能セットを有効にしている。詳細は、フィーチャーゲートを使用した機能の有効化 を参照してください。
  • 次のアクションを実行するためのパーミッションがある。

    • ビルド設定を作成し、ビルドを開始します。
    • oc get sharedsecretsコマンドを入力し、空でないリストを取得して、使用可能なSharedSecret CR インスタンスを見つけます。
    • namespace で使用可能な builder サービスアカウントが、指定された SharedSecret CR インスタンスの使用を許可されているかどうかを確認します。つまり、oc adm policy who-can use <identifier of specific SharedSecret> を使用して、namespace のbuilderサービスアカウントが一覧表示されているかどうかを確認できます。
注記

このリストの最後の 2 つの前提条件のいずれも満たされない場合は、必要なロールベースアクセス制御 (RBAC) を自身で確立するか、誰かに依頼して確立します。これにより、SharedSecret CR インスタンスを検出し、サービスアカウントを有効にして SharedSecret CR インスタンスを使用できるようになります。

手順

  1. oc apply を使用して、クラスターのエンタイトルメントシークレットで SharedSecret オブジェクトインスタンスを作成します。

    重要

    SharedSecret オブジェクトを作成するには、クラスター管理者の権限が必要です。

    YAML Role オブジェクト定義を使用した oc apply -f コマンドの例

    $ oc apply -f - <<EOF
    kind: SharedSecret
    apiVersion: sharedresource.openshift.io/v1alpha1
    metadata:
      name: etc-pki-entitlement
    spec:
      secretRef:
        name: etc-pki-entitlement
        namespace: openshift-config-managed
    EOF

  2. SharedSecret オブジェクトにアクセスするための権限を builder サービスアカウントに付与するロールを作成します。

    oc apply -f コマンドの例

    $ oc apply -f - <<EOF
    apiVersion: rbac.authorization.k8s.io/v1
    kind: Role
    metadata:
      name: builder-etc-pki-entitlement
      namespace: build-namespace
    rules:
      - apiGroups:
          - sharedresource.openshift.io
        resources:
          - sharedsecrets
        resourceNames:
          - etc-pki-entitlement
        verbs:
          - use
    EOF

  3. 次のコマンドを実行して、builder サービスアカウントに SharedSecret オブジェクトにアクセスするための権限を付与する RoleBinding オブジェクトを作成します。

    oc create rolebinding コマンドの例

    $ oc create rolebinding builder-etc-pki-entitlement --role=builder-etc-pki-entitlement --serviceaccount=build-namespace:builder

  4. CSI ボリュームマウントを使用して、エンタイトルメントシークレットを BuildConfig オブジェクトに追加します。

    YAML BuildConfig オブジェクト定義の例

    apiVersion: build.openshift.io/v1
    kind: BuildConfig
    metadata:
      name: uid-wrapper-rhel9
      namespace: build-namespace
    spec:
      runPolicy: Serial
      source:
        dockerfile: |
          FROM registry.redhat.io/ubi9/ubi:latest
          RUN rm -rf /etc/rhsm-host 1
          RUN yum --enablerepo=codeready-builder-for-rhel-9-x86_64-rpms install \ 2
              nss_wrapper \
              uid_wrapper -y && \
              yum clean all -y
          RUN ln -s /run/secrets/rhsm /etc/rhsm-host 3
      strategy:
        type: Docker
        dockerStrategy:
          volumes:
            - mounts:
                - destinationPath: "/etc/pki/entitlement"
              name: etc-pki-entitlement
              source:
                csi:
                  driver: csi.sharedresource.openshift.io
                  readOnly: true 4
                  volumeAttributes:
                    sharedSecret: etc-pki-entitlement 5
                type: CSI

    1
    yum または dnf コマンドを実行する前に、/etc/rhsm-host ディレクトリーとそのすべての内容を削除するコマンドを Dockerfile に含める必要があります。
    2
    Red Hat Package Browser を使用して、インストールされているパッケージの正しいリポジトリーを見つけます。
    3
    イメージと他の Red Hat コンテナーイメージとの互換性を維持するために、/etc/rhsm-host のシンボリックリンクを復元する必要があります。
    4
    ビルドで共有リソースをマウントするには、readOnlytrue に設定する必要があります。
    5
    ビルドに含める SharedSecret オブジェクトの名前を参照します。
  5. BuildConfig オブジェクトからビルドを開始し、oc コマンドを使用してログを追跡します。

    $ oc start-build uid-wrapper-rhel9 -n build-namespace -F
Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

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

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

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

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

会社概要

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

© 2024 Red Hat, Inc.