Menu Close
4.12.3. Git の SSH 認証の設定
パイプラインが SSH キーで設定されたリポジトリーからリソースを取得するには、そのパイプラインの SSH ベースの認証を設定する必要があります。
パイプラインの SSH ベースの認証を設定するには、secret.yaml
、serviceaccount.yaml
、および run.yaml
ファイルを、指定されたリポジトリーの SSH 秘密鍵からの認証情報を使用して更新します。このプロセスが完了すると、Pipeline はその情報を使用して指定されたパイプラインリソースを取得できます。
注記
Basic 認証ではなく SSH ベースの認証を使用することを検討してください。
手順
-
SSH 秘密鍵 を生成するか、既存の秘密鍵をコピーします。これは通常
~/.ssh/id_rsa
ファイルで入手できます。 secret.yaml
ファイルで、ssh-privatekey
の値を SSH 秘密鍵ファイルの名前に設定し、known_hosts
の値を既知のホストファイルの名前に設定します。apiVersion: v1 kind: Secret metadata: name: ssh-key 1 annotations: tekton.dev/git-0: github.com type: kubernetes.io/ssh-auth stringData: ssh-privatekey: 2 known_hosts: 3
注意秘密鍵を省略すると、Pipelines は任意のサーバーの公開鍵を受け入れます。
-
オプション: カスタム SSH ポートを指定するには、
annotation
値の最後に:<port number>
を追加します。たとえば、tekton.dev/git-0: github.com:2222
などになります。 serviceaccount.yaml
ファイルで、ssh-key
シークレットをbuild-bot
サービスアカウントに関連付けます。apiVersion: v1 kind: ServiceAccount metadata: name: build-bot 1 secrets: - name: ssh-key 2
run.yaml
ファイルで、サービスアカウントをタスク実行またはパイプライン実行に関連付けます。サービスアカウントをタスク実行に関連付けます。
apiVersion: tekton.dev/v1beta1 kind: TaskRun metadata: name: build-push-task-run-2 1 spec: serviceAccountName: build-bot 2 taskRef: name: build-push 3
サービスアカウントをパイプライン実行に関連付けます。
apiVersion: tekton.dev/v1beta1 kind: PipelineRun metadata: name: demo-pipeline 1 namespace: default spec: serviceAccountName: build-bot 2 pipelineRef: name: demo-pipeline 3
変更を適用します。
$ kubectl apply --filename secret.yaml,serviceaccount.yaml,run.yaml