Skip to content

Commit f8b7abf

Browse files
committed
Docs: add known limitation and workaround for multiple Git SSH credentials in Tekton
Signed-off-by: Abhishek Ghosh <[email protected]>
1 parent 22c30c2 commit f8b7abf

File tree

1 file changed

+43
-0
lines changed

1 file changed

+43
-0
lines changed

docs/auth.md

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)