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: docs/faq.md
+56-29Lines changed: 56 additions & 29 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -43,45 +43,53 @@ Actuated uses a one-shot VM that is destroyed immediately after a build is compl
43
43
44
44
## Who is actuated for?
45
45
46
-
actuated is primarily for software engineering teams who are currently using GitHub Actions. A GitHub organisation is required for installation, and runners are attached to individual repositories as required, to execute builds.
46
+
actuated is primarily for software engineering teams who are currently using GitHub Actions or GitLab CI.
47
+
48
+
* You can outsource your CI infrastructure to the actuated team
49
+
* You'll get VM-level isolation, with no risks of side-effects between builds
50
+
* You can run on much faster hardware
51
+
* You'll get insights on how to fine-tune the performance of your builds
52
+
* And save a significant amount of money vs. larger hosted runners if you use 10s or 100s of thousands of minutes per month
53
+
54
+
For GitHub users, a GitHub organisation is required for installation, and runners are attached to individual repositories as required to execute builds.
47
55
48
56
## Is there a sponsored subscription for Open Source projects?
49
57
50
58
We have a sponsored program with the CNCF and Ampere for various Open Source projects, you can find out more here: [Announcing managed Arm CI for CNCF projects](https://actuated.dev/blog/arm-ci-cncf-ampere).
51
59
52
60
Sponsored projects are required to [add our GitHub badge](/images/actuated-badge.png) to the top of their README file for each repository where the actuated is being used, along with any other GitHub badges such as build status, code coverage, etc.
53
61
54
-
```html
55
-
<ahref="https://actuated.dev/"><imgalt="Arm CI sponsored by Actuated"src="https://docs.actuated.dev/images/actuated-badge.png"width="120px"></img></a>
62
+
```md
63
+
[](https://actuated.dev/)
56
64
```
57
65
58
66
or
59
67
60
-
```md
61
-
[](https://actuated.dev/)
68
+
```html
69
+
<ahref="https://actuated.dev/"><imgalt="Arm CI sponsored by Actuated"src="https://docs.actuated.dev/images/actuated-badge.png"width="120px"></img></a>
62
70
```
63
71
64
72
For an example of what this would look like, see the [inletsctl project README](https://github.com/inlets/inletsctl).
65
73
66
74
## What kind of machines do I need for the agent?
67
75
68
-
You'll need either: a bare-metal host (your own, AWS i3.metal or Equinix Metal), or a VM that supports nested virtualisation such as those provided by GCP, DigitalOcean and Azure.
76
+
You'll need either: a bare-metal host (your own machine, Hetzner Dedicated, Equinix Metal, etc), or a VM that supports nested virtualisation such as those provided by OpenStack, GCP, DigitalOcean, Azure, or VMware.
69
77
70
-
## When will Jenkins, GitLab CI, BitBucket Pipeline Runners, Drone or Azure DevOps be supported?
78
+
See also: [Provision a Server section](/provision-server)
71
79
72
-
For the pilot phase, we're targeting GitHub Actions because it has fine-grained access controls and the ability to schedule exactly one build to a runner. Most other CI systems expect self-hosted runners to perform many builds, and we believe that to be an anti-pattern. We'll offer advice to teams accepted into the pilot who wish to evaluate GitHub Actions or migrate away from another solution.
80
+
## When will Jenkins, GitLab CI, BitBucket Pipeline Runners, Drone or Azure DevOps be supported?
73
81
74
-
That said, if you're using these tools within your organisation, and face similar issues or concerns, we'd like to hear from you. And we have a proof of concept that works with GitLab CI, so feel free to reach out to us if you feel actuated would be a good fit for your team.
82
+
Support for GitHub Actions and GitLab CI is available.
75
83
76
-
[Watch the actuated for GitLab preview](https://twitter.com/alexellisuk/status/1667130226327863298?s=20)
84
+
Unfortunately, other CI systems tend to expect runners to be available indefinitely, which is an anti-pattern. Why? They gather side-effects and often rely on the insecure use of Docker in Docker, privileged containers, or mounting the Docker socket.
If you'd like to migrate to GitHub Actions, or GitLab CI, feel free to reach out to us for help.
79
87
80
88
## Is GitHub Enterprise supported?
81
89
82
90
GitHub.com's Pro, Team and Enterprise Cloud plans are supported.
83
91
84
-
[GitHub Enterprise Server (GHES)](https://docs.github.com/en/[email protected]/admin/overview/about-github-enterprise-server) is a self-hosted version of GitHub and may require additional configuration. Please reach out to us if you're interested in using actuated with your installation of GHES.
92
+
[GitHub Enterprise Server (GHES)](https://docs.github.com/en/[email protected]/admin/overview/about-github-enterprise-server) is a self-hosted version of GitHub and requires additional onboarding steps. Please reach out to us if you're interested in using actuated with your installation of GHES.
85
93
86
94
## What kind of access is required to my GitHub Organisation?
87
95
@@ -94,10 +102,12 @@ The actuated GitHub App will request:
94
102
* Administrative access to add/remove GitHub Actions Runners to individual repositories
95
103
* Events via webhook for Workflow Runs and Workflow Jobs
96
104
97
-
Did you know? The actuated service does not need any access to your code or private or public repositories.
105
+
Did you know? The actuated service **does not have any access to your code** or private or public repositories.
98
106
99
107
## Can GitHub's self-hosted runner be used on public repos?
100
108
109
+
Actuated VMs can be used with public repositories, however the standard self-hosted runner when used stand-alone, with Docker, or with Kubernetes cannot.
110
+
101
111
The GitHub team recommends only running their self-hosted runners on private repositories.
102
112
103
113
Why?
@@ -118,18 +128,19 @@ Actuated fixes the isolation problem, and prevents side-effects between builds.
118
128
119
129
## Can I use the containers feature of GitHub Actions?
120
130
131
+
Yes, it is supported, however it is not required, and may make it harder to debug your builds. We prefer and recommend running on the host directly, which gives better performance and a simpler experience. Common software and packages are already within the root filesystem, and can be added with `setup-X` actions, or `arkade get` or `arkade system install`.
132
+
121
133
GitHub Action's [Running jobs in a container](https://docs.github.com/en/actions/using-jobs/running-jobs-in-a-container) feature is supported, as is Docker, Buildx, Kubernetes, KinD, K3s, eBPF, etc.
122
134
123
-
Example of running commands with the `docker.io/node:16` image.
135
+
Example of running commands with the `docker.io/node:latest` image.
124
136
125
137
```yaml
126
-
127
138
jobs:
128
139
specs:
129
140
name: test
130
141
runs-on: actuated
131
142
container:
132
-
image: docker.io/node:16
143
+
image: docker.io/node:latest
133
144
env:
134
145
NODE_ENV: development
135
146
ports:
@@ -176,7 +187,11 @@ Depending on your provider, you may also be able to hibernate or suspend servers
176
187
177
188
## What do I need to change in my workflows to use actuated?
178
189
179
-
Very little, just add / set `runs-on: actuated`
190
+
The changes to your workflow YAML file are minimal.
191
+
192
+
Just set `runs-on` to the actuated label plus the amount of CPUs and RAM you'd like. The order is fixed, but the values for vCPU/RAM are flexible and can be set as required.
193
+
194
+
You can set something like: `runs-on: actuated-4cpu-16gb`or `runs-on: actuated-arm64-8cpu-32gb`.
180
195
181
196
## Is 64-bit Arm supported?
182
197
@@ -188,6 +203,8 @@ The VM image contains similar software to the hosted runner image: `ubuntu-lates
188
203
189
204
The image is built automatically using GitHub Actions and is available on a container registry.
190
205
206
+
The primary guest OS version is Ubuntu 22.04. Ubuntu 20.04 is available on request.
207
+
191
208
## What Kernel version is being used?
192
209
193
210
The Firecracker team [provides guest configurations](https://github.com/firecracker-microvm/firecracker/tree/master/resources/guest_configs). These may not LTS, or the latest version available, however they are fully functional for CI/CD use-cases and are known to work with Firecracker.
@@ -215,8 +232,8 @@ For actuated, you'll need to take a different approach to build a DKMS or kmod m
215
232
Add [self-actuated/get-kernel-sources](https://github.com/self-actuated/get-kernel-sources) to your workflow and run it before your build step.
216
233
217
234
```yaml
218
-
- name: Install kernel headers (actuated)
219
-
uses: self-actuated/get-kernel-sources@master
235
+
- name: Install Kernel headers
236
+
uses: self-actuated/get-kernel-sources@v1
220
237
```
221
238
222
239
An `if` statement can be added to the block, if you also run the same job on various other types of runners outside of actuated.
@@ -245,6 +262,14 @@ We also offer a SSH gateway in some of our tiers, tell us if this is important t
245
262
246
263
See also: [Debug a GitHub Action with SSH](/tasks/debug-ssh)
247
264
265
+
## How can an actuated runner get IAM permissions for AWS?
266
+
267
+
If you need to publish images to Amazon Elastic Container Registry (ECR), you can either assign a role to any EC2 bare-metal instances that you're using with actuated, or use GitHub's built-in OpenID Connect support.
268
+
269
+
Web Identity Federation means that a job can assume a role within AWS using Secure Token Service (STS) without needing any long-lived credentials.
270
+
271
+
Read more: [Configuring OpenID Connect in Amazon Web Services](https://docs.github.com/en/actions/deployment/security-hardening-your-deployments/configuring-openid-connect-in-amazon-web-services)
272
+
248
273
## Comparison to other solutions
249
274
250
275
Feel free [to book a call with us](register) if you'd like to understand this comparison in more detail.
@@ -262,14 +287,6 @@ Feel free [to book a call with us](register) if you'd like to understand this co
262
287
263
288
You can only get VM-level isolation from either GitHub hosted runners or Actuated. Standard self-hosted runners have no isolation between builds and actions-runtime-controller requires either a Docker socket to be mounted or Docker In Docker (a privileged container) to build and run containers.
264
289
265
-
### What about IAM permissions for AWS?
266
-
267
-
If you need to publish images to Amazon Elastic Container Registry (ECR), you can either assign a role to any EC2 bare-metal instances that you're using with actuated, or use GitHub's built-in OpenID Connect support.
268
-
269
-
Web Identity Federation means that a job can assume a role within AWS using Secure Token Service (STS) without needing any long-lived credentials.
270
-
271
-
Read more: [Configuring OpenID Connect in Amazon Web Services](https://docs.github.com/en/actions/deployment/security-hardening-your-deployments/configuring-openid-connect-in-amazon-web-services)
272
-
273
290
### How does actuated compare to a actions-runtime-controller (ARC)?
274
291
275
292
[actions-runtime-controller (ARC)](https://github.com/actions-runner-controller/actions-runner-controller) describes itself as "still in its early stage of development". It was created by an individual developer called [Yusuke Kuoka](https://github.com/mumoshu), and now receives updates from GitHub's team, after having been adopted into the [actions GitHub Organisation](https://github.com/actions/actions-runner-controller).
@@ -321,7 +338,9 @@ If you only needed to run Arm builds from 9-5pm, you could absolutely delete the
321
338
322
339
## Is there GPU support?
323
340
324
-
We are [currently exploring](https://twitter.com/alexellisuk/status/1594368789864501254?s=20&t=VwSXsR_yeC0hlU7wdFF4Mg) dedicating a GPU to a build. So if an Actuated Server had 8x GPUs, you could run 8x GPU-based builds on that host at once, each with one GPU, or 2x jobs with 4x GPUS etc. Let us know if this is something you need when you get in touch with us.
341
+
Yes, both for GitHub and GitLab CI.
342
+
343
+
See also: [Accelerate GitHub Actions with dedicated GPUs](https://actuated.dev/blog/gpus-for-github-actions)
325
344
326
345
## Can Virtual Machines be launched within a GitHub Action?
327
346
@@ -333,7 +352,15 @@ It's disabled by default, but you can opt-in to the feature by following the ste
333
352
334
353
[How to run a KVM guest in your GitHub Actions](https://actuated.dev/blog/kvm-in-github-actions)
335
354
336
-
At time of writing, only Intel and AMD CPUs support nested virtualisation. This may be on by default, but if not, you can enable it in the system's BIOS or out of band console.
355
+
At time of writing, only Intel and AMD CPUs support nested virtualisation.
356
+
357
+
What about Arm? According to our contacts at Ampere, the latest versions of Arm hardware have some support for nested virtualisation, but the patches for the Linux Kernel are not ready.
358
+
359
+
## Can I use a VM for an actuated server instead of bare-metal?
360
+
361
+
If `/dev/kvm` is available within the VM, or the VM can be configured so that nested virtualisation is available, then you can use a VM as an actuated server. Any VMs that are launched for CI jobs will be launched with nested virtualisation, and will have some additional overheads compared to a bare-metal server.
0 commit comments