@@ -119,6 +119,49 @@ stringData:
119119 # This is non-standard, but its use is encouraged to make this more secure.
120120 # Omitting this results in the server's public key being blindly accepted.
121121` ` `
122+ # # Known limitation with multiple Git SSH credentials
123+
124+ When annotating a `Secret` with multiple `tekton.dev/git-*` entries for different Git hosts, only the
125+ first annotated Git credential may be used successfully.
126+
127+ For example :
128+
129+ ` ` ` yaml
130+ apiVersion: v1
131+ kind: Secret
132+ metadata:
133+ annotations:
134+ tekton.dev/git-0: github.com
135+ tekton.dev/git-1: gitlab.com
136+ type: kubernetes.io/ssh-auth
137+ stringData:
138+ ssh-privatekey: <private-key>
139+ ` ` `
140+ In this case, the repository for tekton.dev/git-0 might clone correctly, while the repository for
141+ tekton.dev/git-1 can fail with SSH authentication errors.
142+
143+ # # Workaround with multiple Git SSH credentials
144+
145+ As a workaround, you can configure multiple SSH keys for different repositories by mounting a workspace
146+ that provides a custom SSH configuration file instead of relying solely on annotations.
147+ If neither the annotation tekton.dev/git-* nor the Task param USER_HOME=/home/nonroot is set, and
148+ you mount a workspace that contains a Secret with multiple SSH keys, git clone works as expected
149+ by following the configuration in .ssh/config.
150+
151+ For example :
152+
153+ ` ` ` yaml
154+ apiVersion: v1
155+ kind: Secret
156+ metadata:
157+ name: git-credentials
158+ namespace: test
159+ type: Opaque
160+ data:
161+ config: <.ssh.config>
162+ id_test: <private key for repo 1>
163+ id_prod: <private key for repo 2>
164+ ` ` `
122165
123166# # Using `Secrets` as a non-root user
124167
0 commit comments