You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+28-17Lines changed: 28 additions & 17 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -16,7 +16,7 @@ To connect to this VPN, your VPN client must be configured with your [Jenkins ac
16
16
* The CertificateAuthority **[`ca.crt`](https://github.com/jenkins-infra/docker-openvpn/blob/main/cert/pki/ca.crt)**
17
17
* Your private key **`<your-jenkins-username>.key`**
18
18
19
-
> ###your private key **must** remain **secret**!
19
+
> ⚠️ your private key **must** remain **secret**! ⚠️
20
20
21
21
* Your certificate **`<your-jenkins-username>.crt`**
22
22
@@ -31,6 +31,7 @@ Then this certificate must be signed by an administrator who also assigns you a
31
31
32
32
Feel free to follow the next action points:
33
33
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
34
35
*[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)
35
36
* Clone your fork locally: `git clone https://github.com/<your-github-username>/docker-openvpn && cd docker-openvpn`
36
37
* 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:
40
41
* Generate your private key and certificate request: `./easyvpn request <your-jenkins-username>`
41
42
Your private key will be generated in `./cert/pki/private`
42
43
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/)
44
51
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
47
52
* Grab a cup of coffee and wait patiently for an administrator to sign your certificate request
48
53
* 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`
49
54
* 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:
55
60
cp ./cert/pki/ca.crt ~/.cert/jenkins-infra/ca.crt
56
61
```
57
62
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:
@@ -80,7 +81,13 @@ Example here for [Tunnelblick](https://tunnelblick.net/), an OSX VPN client, ope
80
81
group nobody
81
82
```
82
83
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.
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:
109
116
117
+
<!-- markdownlint-disable MD033 -->
110
118
<details><summary>dig output (click to expand)</summary>
* 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)
179
188
* Approve and merge the Pull Request to the `main` branch with the signed CRL
180
189
* Once merged, a new tag should be created automatically with automatic publishing of the image
181
190
* 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.
*`make init_windows` and copy `./utils/easyvpn/easyvpn.exe` at the root of this repository
189
198
* 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)
190
201
* 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.
191
202
192
203
#### HowTo review certificate revocation list
@@ -241,7 +252,7 @@ Some examples can be found inside [docker-compose.yaml](docker/docker-compose.ya
241
252
242
253
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.
243
254
244
-
> ####Certificates must be readable by UID 101!
255
+
> ⚠️ Certificates must be readable by UID 101! ⚠️
245
256
246
257
## Infrastructure
247
258
@@ -256,12 +267,12 @@ Feel free to contribute to this image by:
256
267
257
268
1. Fork this project into your account
258
269
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)
260
271
4. Ask for a review
261
272
262
273
## Issue
263
274
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)
0 commit comments