1.4. OCI レジストリーへの認証
署名を OCI レジストリーにプッシュする前に、クラスター管理者は、レジストリーで認証するように Tekton Chains を設定する必要があります。Tekton Chains コントローラーは、タスクの実行と同じサービスアカウントを使用します。署名を OCI レジストリーにプッシュするために必要な認証情報を使用してサービスアカウントを設定するには、次の手順を実行します。
手順
Kubernetes サービスアカウントの namespace と名前を設定します。
export NAMESPACE=<namespace> export SERVICE_ACCOUNT_NAME=<service_account>
$ export NAMESPACE=<namespace>
1 $ export SERVICE_ACCOUNT_NAME=<service_account>
2 Copy to Clipboard Copied! Toggle word wrap Toggle overflow Kubernetes シークレットを作成します。
oc create secret registry-credentials \ --from-file=.dockerconfigjson \ --type=kubernetes.io/dockerconfigjson \ -n $NAMESPACE
$ oc create secret registry-credentials \ --from-file=.dockerconfigjson \
1 --type=kubernetes.io/dockerconfigjson \ -n $NAMESPACE
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- Docker 設定ファイルへのパスに置き換えます。デフォルトのパスは
~/.docker/config.json
です。
サービスアカウントにシークレットへのアクセス権限を付与します。
oc patch serviceaccount $SERVICE_ACCOUNT_NAME \ -p "{\"imagePullSecrets\": [{\"name\": \"registry-credentials\"}]}" -n $NAMESPACE
$ oc patch serviceaccount $SERVICE_ACCOUNT_NAME \ -p "{\"imagePullSecrets\": [{\"name\": \"registry-credentials\"}]}" -n $NAMESPACE
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Red Hat OpenShift Pipelines がすべてのタスク実行に割り当てるデフォルトの
pipeline
サービスアカウントにパッチを適用すると、Red Hat OpenShift Pipelines Operator はサービスアカウントをオーバーライドします。ベストプラクティスとして、次の手順を実行できます。ユーザーのタスク実行に割り当てる別のサービスアカウントを作成します。
oc create serviceaccount <service_account_name>
$ oc create serviceaccount <service_account_name>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow タスク実行テンプレートの
serviceaccountname
フィールドの値を設定して、サービスアカウントをタスク実行に関連付けます。Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 新しく作成したサービスアカウントの名前に置き換えます。