Skip to content

Commit 2d67eb8

Browse files
authored
Chore: fix readme (#154)
* chore(readme) markdownlint Signed-off-by: Damien Duportal <damien.duportal@gmail.com> * chore(readme) fix readme error around issues and CRL approval procedure Signed-off-by: Damien Duportal <damien.duportal@gmail.com> * chore(readme) improve user configuration step Signed-off-by: Damien Duportal <damien.duportal@gmail.com> * chore(readme) PR review feedbacks Signed-off-by: Damien Duportal <damien.duportal@gmail.com>
1 parent 8e86720 commit 2d67eb8

File tree

1 file changed

+28
-17
lines changed

1 file changed

+28
-17
lines changed

README.md

Lines changed: 28 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ To connect to this VPN, your VPN client must be configured with your [Jenkins ac
1616
* The CertificateAuthority **[`ca.crt`](https://github.com/jenkins-infra/docker-openvpn/blob/main/cert/pki/ca.crt)**
1717
* Your private key **`<your-jenkins-username>.key`**
1818

19-
> ### your private key **must** remain **secret**!
19+
> ⚠️ your private key **must** remain **secret**! ⚠️
2020
2121
* Your certificate **`<your-jenkins-username>.crt`**
2222

@@ -31,6 +31,7 @@ Then this certificate must be signed by an administrator who also assigns you a
3131

3232
Feel free to follow the next action points:
3333

34+
* Open an issue on [jenkins-infra/helpdesk](https://github.com/jenkins-infra/helpdesk) describing the reason why you need an access to the VPN
3435
* [Fork](https://help.github.com/articles/fork-a-repo/) this repository on your own Github account: [fork the repo](https://github.com/jenkins-infra/docker-openvpn/fork)
3536
* Clone your fork locally: `git clone https://github.com/<your-github-username>/docker-openvpn && cd docker-openvpn`
3637
* Build EASYVPN binary by running one of the following commands depending on your operating system:
@@ -40,10 +41,14 @@ Feel free to follow the next action points:
4041
* Generate your private key and certificate request: `./easyvpn request <your-jenkins-username>`
4142
Your private key will be generated in `./cert/pki/private`
4243

43-
> ### This key **must** remain **secret**!
44+
> ⚠️ This key **must** remain **secret**! ⚠️
45+
46+
* Create a new pull request on [jenkins-infra/docker-openvpn](https://github.com/jenkins-infra/docker-openvpn)
47+
* From your local branch (usually the `main` branch)
48+
* Targeted to the remote `main` branch
49+
* References the helpdesk issue in the PR message
50+
* [GitHub documentation on how to create a pull request](https://help.github.com/articles/creating-a-pull-request/)
4451

45-
* Create a new Pull Request on [jenkinsinfra/docker-openvpn](https://github.com/jenkins-infra/docker-openvpn), `main` branch: [How to Create a pull request](https://help.github.com/articles/creating-a-pull-request/)
46-
* Open an INFRA ticket on [JIRA](https://issues.jenkins-ci.org) referencing your PR
4752
* Grab a cup of coffee and wait patiently for an administrator to sign your certificate request
4853
* Once an admin notifies you that everything is setup, you can [sync your fork](https://docs.github.com/en/github/collaborating-with-pull-requests/working-with-forks/syncing-a-fork) then pull it to retrieve your certificate from `./cert/pki/issued/<your-jenkins-username>.crt`
4954
* We recommend you to move the generated files and the ca.cert to an hidden folder in your home (`~/.cert`):
@@ -55,18 +60,14 @@ Feel free to follow the next action points:
5560
cp ./cert/pki/ca.crt ~/.cert/jenkins-infra/ca.crt
5661
```
5762

58-
* You can finally create the config file used by your VPN client.
59-
60-
Example here for [Tunnelblick](https://tunnelblick.net/), an OSX VPN client, opening this file from the Finder should launch it:
61-
62-
_jenkins-infra.ovpn_
63+
* Then, create the following configuration file (wether your are on Linux, macOS or Windows) `jenkins-infra.ovpn` on your Desktop:
6364

6465
```text
6566
client
6667
remote vpn.jenkins.io 443
67-
ca "~/.cert/jenkins-infra/ca.crt"
68-
cert "~/.cert/jenkins-infra/<your-jenkins-username>.crt"
69-
key "~/.cert/jenkins-infra/<your-jenkins-username>.key"
68+
ca "/absolute/path/to/.cert/ca.crt"
69+
cert "/absolute/path/to/.cert/<your-jenkins-username>.crt"
70+
key "/absolute/path/to/.cert/<your-jenkins-username>.key"
7071
auth-user-pass
7172
dev tun
7273
proto tcp
@@ -80,7 +81,13 @@ Example here for [Tunnelblick](https://tunnelblick.net/), an OSX VPN client, ope
8081
group nobody
8182
```
8283

83-
> #### With the [NetworkManager](https://wiki.archlinux.org/title/NetworkManager) client, **you must enable** the option `Use this connection only for resources on its network`
84+
* Some important rules:
85+
* The file name does not matter but it MUST have an extension `.ovpn` to let your system detect it
86+
* The content of the file does not support the `~` shortcut, neither variables (`$HOME`/`%HOME%`). Please use absolute paths.
87+
* Then import this file (e.g. double click or use the appropriate command line) into your VPN tool:
88+
* on macOS, we recommend using [Tunnelblick](https://tunnelblick.net/), an OpenVPN client
89+
* on Linux, we recommend using [NetworkManager](https://wiki.archlinux.org/title/NetworkManager) client. Note that in that case, **you must enable** the option `Use this connection only for resources on its network`
90+
* on Windows, we recommend using [OpenVPN Connect](https://openvpn.net/client-connect-vpn-for-windows/) client.
8491

8592
#### Windows only
8693

@@ -107,6 +114,7 @@ openssl req -in ~/.cert/pki/reqs/<your-jenkins-username>.req -pubkey -noout -out
107114

108115
If you are having issues connecting to resources behind the VPN, but the VPN appears to be working correctly, check your DNS settings. Some providers seem to filter out requests to the zone. To test, try `dig release.ci.jenkins.io`, you should get something like this:
109116

117+
<!-- markdownlint-disable MD033 -->
110118
<details><summary>dig output (click to expand)</summary>
111119

112120
```text
@@ -175,7 +183,8 @@ gh pr checkout <Pull Request ID>
175183
```
176184

177185
* Sign the certificate request: `./easyvpn sign <CN_to_sign>`
178-
* Commit and push on the current PR with `git add . && git commit -s -m "Sign CRL of <requester name>" && git push`
186+
* A git commit is automatically created on the local branch
187+
* Push the approval commit on the current pull request with `git push` (the remote and local branch name are configured by the `gh` command line)
179188
* Approve and merge the Pull Request to the `main` branch with the signed CRL
180189
* Once merged, a new tag should be created automatically with automatic publishing of the image
181190
* The Docker image tag should be automatically updated in the next 24h in the [puppet](https://github.com/jenkins-infra/jenkins-infra/blob/production/dist/profile/manifests/openvpn.pp) configuration.
@@ -187,6 +196,8 @@ gh pr checkout <Pull Request ID>
187196
* `make init_linux`
188197
* `make init_windows` and copy `./utils/easyvpn/easyvpn.exe` at the root of this repository
189198
* Revoke the certificate: `./easyvpn revoke <CN_to_sign>`
199+
* A git commit is automatically created on the local branch
200+
* Push the revocation commit (PR or branch, whatever you choose)
190201
* The Docker image tag should be automatically updated in the next 24h in the [puppet](https://github.com/jenkins-infra/jenkins-infra/blob/production/dist/profile/manifests/openvpn.pp) configuration.
191202

192203
#### HowTo review certificate revocation list
@@ -241,7 +252,7 @@ Some examples can be found inside [docker-compose.yaml](docker/docker-compose.ya
241252

242253
To test this image, you need a "mock" ldap and SSL certificates, then go in the root folder and run `make start` to start the ldap and vpn service.
243254

244-
> #### Certificates must be readable by UID 101!
255+
> ⚠️ Certificates must be readable by UID 101! ⚠️
245256
246257
## Infrastructure
247258

@@ -256,12 +267,12 @@ Feel free to contribute to this image by:
256267

257268
1. Fork this project into your account
258269
2. Make your changes in your local fork
259-
3. Submit a pull request with a description and a link to a Jira ticket
270+
3. Submit a pull request with a description and a link to a [jenkins-infra/helpdesk issue](https://github.com/jenkins-infra/helpdesk)
260271
4. Ask for a review
261272

262273
## Issue
263274

264-
Please report any issue on the Jenkins infrastructure [project](https://issues.jenkins-ci.org/secure/Dashboard.jspa)
275+
Please report any issue on the Jenkins infrastructure [jenkins-infra/helpdesk tracker](https://github.com/jenkins-infra/helpdesk)
265276

266277
## Links
267278

0 commit comments

Comments
 (0)