Skip to content

Commit a05da56

Browse files
authored
Merge pull request github#18292 from github/repo-sync
repo sync
2 parents ce668d5 + aca6bc8 commit a05da56

File tree

115 files changed

+1026
-810
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

115 files changed

+1026
-810
lines changed
Lines changed: 104 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,104 @@
1+
---
2+
title: Conectarse a una red privada
3+
intro: 'You can connect {% data variables.product.prodname_dotcom %}-hosted runners to resources on a private network, including package registries, secret managers, and other on-premises services.'
4+
versions:
5+
fpt: '*'
6+
ghes: '*'
7+
ghec: '*'
8+
type: how_to
9+
topics:
10+
- Actions
11+
- Developer
12+
---
13+
14+
{% data reusables.actions.enterprise-beta %}
15+
{% data reusables.actions.enterprise-github-hosted-runners %}
16+
17+
## About {% data variables.product.prodname_dotcom %}-hosted runners networking
18+
19+
By default, {% data variables.product.prodname_dotcom %}-hosted runners have access to the public internet. However, you may also want these runners to access resources on your private network, such as a package registry, a secret manager, or other on-premise services.
20+
21+
{% data variables.product.prodname_dotcom %}-hosted runners are shared across all {% data variables.product.prodname_dotcom %} customers, so you will need a way of connecting your private network to just your runners while they are running your workflows. There are a few different approaches you could take to configure this access, each with different advantages and disadvantages.
22+
23+
{% ifversion fpt or ghec or ghes > 3.4 %}
24+
### Using an API Gateway with OIDC
25+
26+
With {% data variables.product.prodname_actions %}, you can use OpenID Connect (OIDC) tokens to authenticate your workflow outside of {% data variables.product.prodname_actions %}. For example, you could run an API Gateway on the edge of your private network that authenticates incoming requests with the OIDC token and then makes API requests on behalf of your workflow in your private network.
27+
28+
The following diagram gives an overview of this solution's architecture:
29+
30+
![Diagram of an OIDC gateway](/assets/images/help/images/actions-oidc-gateway.png)
31+
32+
It's important that you authenticate not just that the OIDC token came from {% data variables.product.prodname_actions %}, but that it came specifically from your expected workflows, so that other {% data variables.product.prodname_actions %} users aren't able to access services in your private network. You can use OIDC claims to create these conditions. For more information, see "[Defining trust conditions on cloud roles using OIDC claims](/actions/deployment/security-hardening-your-deployments/about-security-hardening-with-openid-connect#defining-trust-conditions-on-cloud-roles-using-oidc-claims)."
33+
34+
The main disadvantage of this approach is you have to implement the API gateway to make requests on your behalf, as well as run it on the edge of your network.
35+
36+
But there are various advantages too:
37+
- You don't need to configure any firewalls, or modify the routing of your private network.
38+
- The API gateway is stateless, and so it scales horizontally to handle high availability and high throughput.
39+
40+
For more information, see [a reference implementation of an API Gateway](https://github.com/github/actions-oidc-gateway-example) (note that this requires customization for your use case and is not ready-to-run as-is), and "[About security hardening with OpenID Connect](/actions/deployment/security-hardening-your-deployments/about-security-hardening-with-openid-connect)".
41+
{% endif %}
42+
43+
### Using WireGuard to create a network overlay
44+
45+
If you don't want to maintain separate infrastructure for an API Gateway, you can create an overlay network between your runner and a service in your private network, by running WireGuard in both places.
46+
47+
There are various disadvantages to this approach:
48+
49+
- To reach WireGuard running on your private service, you will need a well-known IP address and port that your workflow can reference: this can either be a public IP address and port, a port mapping on a network gateway, or a service that dynamically updates DNS.
50+
- WireGuard doesn't handle NAT traversal out of the box, so you'll need to identify a way to provide this service.
51+
- This connection is one-to-one, so if you need high availability or high throughput you'll need to build that on top of WireGuard.
52+
- You'll need to generate and securely store keys for both the runner and your private service. WireGuard uses UDP, so your network must support UDP traffic.
53+
54+
There are some advantages too, as you can run WireGuard on an existing server so you don't have to maintain separate infrastructure, and it's well supported on {% data variables.product.prodname_dotcom %}-hosted runners.
55+
56+
### Example: Configuring WireGuard
57+
58+
This example workflow configures WireGuard to connect to a private service.
59+
60+
For this example, the WireGuard instance running in the private network has this configuration:
61+
- Overlay network IP address of `192.168.1.1`
62+
- Public IP address and port of `1.2.3.4:56789`
63+
- Public key `examplepubkey1234...`
64+
65+
The WireGuard instance in the {% data variables.product.prodname_actions %} runner has this configuration:
66+
- Overlay network IP address of `192.168.1.2`
67+
- Private key stores as an {% data variables.product.prodname_actions %} secret under `WIREGUARD_PRIVATE_KEY`
68+
69+
```yaml
70+
name: WireGuard example
71+
72+
on:
73+
workflow_dispatch:
74+
75+
jobs:
76+
wireguard_example:
77+
runs-on: ubuntu-latest
78+
steps:
79+
- run: sudo apt install wireguard
80+
81+
- run: echo "${{ secrets.WIREGUARD_PRIVATE_KEY }}" > privatekey
82+
83+
- run: sudo ip link add dev wg0 type wireguard
84+
85+
- run: sudo ip address add dev wg0 192.168.1.2 peer 192.168.1.1
86+
87+
- run: sudo wg set wg0 listen-port 48123 private-key privatekey peer examplepubkey1234... allowed-ips 0.0.0.0/0 endpoint 1.2.3.4:56789
88+
89+
- run: sudo ip link set up dev wg0
90+
91+
- run: curl -vvv http://192.168.1.1
92+
```
93+
94+
For more information, see [WireGuard's Quick Start](https://www.wireguard.com/quickstart/), as well as "[Encrypted Secrets](/actions/security-guides/encrypted-secrets)" for how to securely store keys.
95+
96+
### Using Tailscale to create a network overlay
97+
98+
Tailscale is a commercial product built on top of WireGuard. This option is very similar to WireGuard, except Tailscale is more of a complete product experience instead of an open source component.
99+
100+
It's disadvantages are similar to WireGuard: The connection is one-to-one, so you might need to do additional work for high availability or high throughput. You still need to generate and securely store keys. The protocol is still UDP, so your network must support UDP traffic.
101+
102+
However, there are some advantages over WireGuard: NAT traversal is built-in, so you don't need to expose a port to the public internet. It is by far the quickest of these options to get up and running, since Tailscale provides an {% data variables.product.prodname_actions %} workflow with a single step to connect to the overlay network.
103+
104+
For more information, see the [Tailscale GitHub Action](https://github.com/tailscale/github-action), as well as "[Encrypted Secrets](/actions/security-guides/encrypted-secrets)" for how to securely store keys.

translations/es-ES/content/actions/using-github-hosted-runners/index.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ children:
99
- /about-github-hosted-runners
1010
- /monitoring-your-current-jobs
1111
- /customizing-github-hosted-runners
12+
- /connecting-to-a-private-network
1213
shortTitle: Utilizar los ejecutores hospedados en GitHub
1314
---
1415

translations/es-ES/content/actions/using-github-hosted-runners/monitoring-your-current-jobs.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -19,12 +19,12 @@ You can get a list of all jobs currently running on {% data variables.product.pr
1919

2020
![Screenshot of the list of active jobs](/assets/images/help/settings/actions-runner-active-jobs.png)
2121

22-
## Viewing queued jobs in your organization or enterprise
22+
## Ver los jobs en cola en tu organización o empresa
2323

24-
{% data variables.product.prodname_dotcom %}-hosted runners allow you to run jobs concurrently, and the maximum number of concurrent jobs will vary depending on your plan. If you reach the maximum number of concurrent jobs, any new jobs will start to enter a queue. To find out more about the number of concurrent jobs available to your plan, see "[Usage limits, billing, and administration](/actions/learn-github-actions/usage-limits-billing-and-administration)."
24+
Los ejecutores hospedados en {% data variables.product.prodname_dotcom %} te permiten ejecutar jobs simultáneamente y la máxima cantidad de jobs simultáneos variará dependiendo de tu plan. Si llegas a la cantidad máximo de jobs simultáneos, cualquier job nuevo comenzará a ingresar en cola. Para saber más sobre la cantidad de jobs simultáneos disponibles en tu plan, consulta la sección "[Límites de uso, facturación y administración](/actions/learn-github-actions/usage-limits-billing-and-administration)".
2525

26-
The following procedure demonstrates how to check the maximum number of concurrent jobs you can run.
26+
El siguiente procedimiento demuestra cómo verificar la cantidad máxima de jobs simultáneos que puedes ejecutar.
2727

2828
{% data reusables.actions.github-hosted-runners-navigate-to-repo-org-enterprise %}
2929
{% data reusables.actions.github-hosted-runners-table-entry %}
30-
1. Review the "All jobs usage" section, which lists the number of active jobs and the maximum number of jobs you can run. In this example, `9` jobs are currently running out of a maximum of `180`. ![Screenshot of the maximum jobs for an account](/assets/images/help/settings/github-hosted-runners-max-jobs.png)
30+
1. Revisa la sección "Uso de todos los jobs", la cual lista la cantidad de jobs activos y la cantidad máxima de jobs que puedes ejecutar. En este ejemplo, hay `9` jobs ejecutándose actualmente de un máximo de `180`. ![Captura de pantalla de la cantidad máxima de jobs para una cuenta](/assets/images/help/settings/github-hosted-runners-max-jobs.png)

translations/es-ES/content/actions/using-jobs/running-jobs-in-a-container.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
---
22
title: Ejecutar trabajos en un contenedor
33
shortTitle: Ejecutar trabajos en un contenedor
4-
intro: Use a container to run the steps in a job.
4+
intro: Utiliza un contenedor para ejecutar los pasos de un job.
55
versions:
66
fpt: '*'
77
ghes: '*'

translations/es-ES/content/actions/using-jobs/using-environments-for-jobs.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
---
22
title: Utilizar a los ambientes para los jobs
33
shortTitle: Utiilizar ambientes para los jobs
4-
intro: Specify an environment for a job.
4+
intro: Especifica un ambiente para un job.
55
versions:
66
fpt: '*'
77
ghes: '> 3.0'

0 commit comments

Comments
 (0)