Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

docs: Add password-protected SSH keys information #801

Merged
merged 1 commit into from
Jul 1, 2022
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
25 changes: 21 additions & 4 deletions docs/spec/v1beta2/gitrepositories.md
Original file line number Diff line number Diff line change
Expand Up @@ -152,7 +152,7 @@ data:
#### SSH authentication

To authenticate towards a Git repository over SSH, the referenced Secret is
expected to contain `.data.identity` and `known_hosts` fields. With the respective
expected to contain `identity` and `known_hosts` fields. With the respective
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Removed .data. to align with the approach with known_hosts. Alternatively, we could add the .data. prefix on both.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We should be using stringData in examples, since flux create secret generates secrets that way, so GitHub and others will alert when you push unencrypted tokens. We should tell people to use flux create secret --export especially for Git where the CLI helps generating know hosts like SC expects.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I updated the example, but did not mention the data/stringData conundrum, as we support both and it will come down to user preference.

Also added a Flux CLI example for SSH secret creation. PTAL

private key of the SSH key pair, and the host keys of the Git repository.

```yaml
Expand All @@ -162,11 +162,28 @@ kind: Secret
metadata:
name: ssh-credentials
type: Opaque
data:
identity: <BASE64>
known_hosts: <BASE64>
stringData:
identity: |
-----BEGIN OPENSSH PRIVATE KEY-----
...
-----END OPENSSH PRIVATE KEY-----
known_hosts: |
github.com ecdsa-sha2-nistp256 AAAA...
```

Alternatively, the Flux CLI can be used to automatically create the
secret, and also populate the known_hosts:

```sh
flux create secret git podinfo-auth \
--url=ssh://[email protected]/stefanprodan/podinfo \
--private-key-file=./identity
```

For password-protected SSH private keys, the password must be provided
via an additional `password` field in the secret. Flux CLI also supports
this via the `--password` flag.

### Interval

`.spec.interval` is a required field that specifies the interval at which the
Expand Down