docs: remove runner kind
This commit is contained in:
		
							parent
							
								
									86e1a4a8f3
								
							
						
					
					
						commit
						4b9a6c6700
					
				
							
								
								
									
										100
									
								
								README.md
								
								
								
								
							
							
						
						
									
										100
									
								
								README.md
								
								
								
								
							|  | @ -29,8 +29,9 @@ ToC: | |||
|     - [Webhook Driven Scaling](#webhook-driven-scaling) | ||||
|     - [Autoscaling to/from 0](#autoscaling-tofrom-0) | ||||
|     - [Scheduled Overrides](#scheduled-overrides) | ||||
|   - [Runner with DinD](#runner-with-dind) | ||||
|   - [Runner with k8s jobs](#runner-with-k8s-jobs) | ||||
|   - [Alternative Runners](#alternative-runners) | ||||
|     - [Runner with DinD](#runner-with-dind) | ||||
|     - [Runner with k8s jobs](#runner-with-k8s-jobs) | ||||
|   - [Additional Tweaks](#additional-tweaks) | ||||
|   - [Custom Volume mounts](#custom-volume-mounts) | ||||
|   - [Runner Labels](#runner-labels) | ||||
|  | @ -270,52 +271,30 @@ Alternatively, you can install each controller stack into a unique namespace (re | |||
| - The organization level | ||||
| - The enterprise level | ||||
| 
 | ||||
| There are two ways to use this controller: | ||||
| Runners can be deployed as 1 of 2 abstractions:  | ||||
| 
 | ||||
| - Manage runners one by one with `Runner`. | ||||
| - Manage a set of runners with `RunnerDeployment`. | ||||
| - A `RunnerDeployment` (based on k8s's `Deployments`) | ||||
| - A `RunnerSet` (based on k8s's `StatefulSets`) | ||||
| 
 | ||||
| We go into details about the differences between the 2 later, initially lets look at how to deploy a basic `RunnerDeployment` at the 3 possible management hierarchies. | ||||
| 
 | ||||
| ### Repository Runners | ||||
| 
 | ||||
| To launch a single self-hosted runner, you need to create a manifest file that includes a `Runner` resource as follows. This example launches a self-hosted runner with name *example-runner* for the *actions-runner-controller/actions-runner-controller* repository. | ||||
| To launch a single self-hosted runner, you need to create a manifest file that includes a `RunnerDeployment` resource as follows. This example launches a self-hosted runner with name *example-runnerdeploy* for the *actions-runner-controller/actions-runner-controller* repository. | ||||
| 
 | ||||
| ```yaml | ||||
| # runner.yaml | ||||
| apiVersion: actions.summerwind.dev/v1alpha1 | ||||
| kind: Runner | ||||
| kind: RunnerDeployment | ||||
| metadata: | ||||
|   name: example-runner | ||||
|   name: example-runnerdeploy | ||||
| spec: | ||||
|   repository: example/myrepo | ||||
|   env: [] | ||||
|   replicas: 1 | ||||
|   template: | ||||
|     spec: | ||||
|       repository: mumoshu/actions-runner-controller-ci | ||||
| ``` | ||||
| 
 | ||||
| Apply the created manifest file to your Kubernetes. | ||||
| 
 | ||||
| ```shell | ||||
| $ kubectl apply -f runner.yaml | ||||
| runner.actions.summerwind.dev/example-runner created | ||||
| ``` | ||||
| 
 | ||||
| You can see that the Runner resource has been created. | ||||
| 
 | ||||
| ```shell | ||||
| $ kubectl get runners | ||||
| NAME             REPOSITORY                             STATUS | ||||
| example-runner   actions-runner-controller/actions-runner-controller   Running | ||||
| ``` | ||||
| 
 | ||||
| You can also see that the runner pod has been running. | ||||
| 
 | ||||
| ```shell | ||||
| $ kubectl get pods | ||||
| NAME           READY   STATUS    RESTARTS   AGE | ||||
| example-runner 2/2     Running   0          1m | ||||
| ``` | ||||
| 
 | ||||
| The runner you created has been registered to your repository. | ||||
| 
 | ||||
| <img width="756" alt="Actions tab in your repository settings" src="https://user-images.githubusercontent.com/230145/73618667-8cbf9700-466c-11ea-80b6-c67e6d3f70e7.png"> | ||||
| The runner you created has been registered directly to the defined repository, you should be able to see it in the settings of the repository. | ||||
| 
 | ||||
| Now you can use your self-hosted runner. See the [official documentation](https://help.github.com/en/actions/automating-your-workflow-with-github-actions/using-self-hosted-runners-in-a-workflow) on how to run a job with it. | ||||
| 
 | ||||
|  | @ -324,13 +303,15 @@ Now you can use your self-hosted runner. See the [official documentation](https: | |||
| To add the runner to an organization, you only need to replace the `repository` field with `organization`, so the runner will register itself to the organization. | ||||
| 
 | ||||
| ```yaml | ||||
| # runner.yaml | ||||
| apiVersion: actions.summerwind.dev/v1alpha1 | ||||
| kind: Runner | ||||
| kind: RunnerDeployment | ||||
| metadata: | ||||
|   name: example-org-runner | ||||
|   name: example-runnerdeploy | ||||
| spec: | ||||
|   organization: your-organization-name | ||||
|   replicas: 1 | ||||
|   template: | ||||
|     spec: | ||||
|       organization: your-organization-name | ||||
| ``` | ||||
| 
 | ||||
| Now you can see the runner on the organization level (if you have organization owner permissions). | ||||
|  | @ -340,24 +321,22 @@ Now you can see the runner on the organization level (if you have organization o | |||
| To add the runner to an enterprise, you only need to replace the `repository` field with `enterprise`, so the runner will register itself to the enterprise. | ||||
| 
 | ||||
| ```yaml | ||||
| # runner.yaml | ||||
| apiVersion: actions.summerwind.dev/v1alpha1 | ||||
| kind: Runner | ||||
| kind: RunnerDeployment | ||||
| metadata: | ||||
|   name: example-enterprise-runner | ||||
|   name: example-runnerdeploy | ||||
| spec: | ||||
|   enterprise: your-enterprise-name | ||||
|   replicas: 1 | ||||
|   template: | ||||
|     spec: | ||||
|       enterprise: your-enterprise-name | ||||
| ``` | ||||
| 
 | ||||
| Now you can see the runner on the enterprise level (if you have enterprise access permissions). | ||||
| 
 | ||||
| ### RunnerDeployments | ||||
| 
 | ||||
| You can manage sets of runners instead of individually through the `RunnerDeployment` kind and its `replicas:` attribute. This kind is required for many of the advanced features. | ||||
| 
 | ||||
| There are `RunnerReplicaSet` and `RunnerDeployment` kinds that corresponds to the `ReplicaSet` and `Deployment` kinds but for the `Runner` kind. | ||||
| 
 | ||||
| You typically only need `RunnerDeployment` rather than `RunnerReplicaSet` as the former is for managing the latter. | ||||
| In our previous examples we were deploying a single runner via the `RunnerDeployment` kind, the amount of runners deployed is controlled statically via the `replicas:` field, we can increase this value to deploy additioanl sets of runners instead: | ||||
| 
 | ||||
| ```yaml | ||||
| # runnerdeployment.yaml | ||||
|  | @ -366,11 +345,11 @@ kind: RunnerDeployment | |||
| metadata: | ||||
|   name: example-runnerdeploy | ||||
| spec: | ||||
|   # This will deploy 2 runners now | ||||
|   replicas: 2 | ||||
|   template: | ||||
|     spec: | ||||
|       repository: mumoshu/actions-runner-controller-ci | ||||
|       env: [] | ||||
| ``` | ||||
| 
 | ||||
| Apply the manifest file to your cluster: | ||||
|  | @ -389,15 +368,13 @@ example-runnerdeploy2475h595fr   mumoshu/actions-runner-controller-ci   Running | |||
| example-runnerdeploy2475ht2qbr   mumoshu/actions-runner-controller-ci   Running | ||||
| ``` | ||||
| 
 | ||||
|   ### RunnerSets | ||||
| ### RunnerSets | ||||
| 
 | ||||
| > This feature requires controller version => [v0.20.0](https://github.com/actions-runner-controller/actions-runner-controller/releases/tag/v0.20.0) | ||||
| 
 | ||||
| _Ensure you see the limitations before using this kind!!!!!_ | ||||
| 
 | ||||
| For scenarios where you require the advantages of a `StatefulSet`, for example persistent storage, ARC implements a runner based on Kubernetes' `StatefulSets`, the `RunnerSet`. | ||||
| 
 | ||||
| A basic `RunnerSet` would look like this: | ||||
| We can also deploy sets of RunnerSets the same way, a basic `RunnerSet` would look like this: | ||||
| 
 | ||||
| ```yaml | ||||
| apiVersion: actions.summerwind.dev/v1alpha1 | ||||
|  | @ -406,6 +383,7 @@ metadata: | |||
|   name: example | ||||
| spec: | ||||
|   ephemeral: false | ||||
|   # This will deploy 2 runners now | ||||
|   replicas: 2 | ||||
|   repository: mumoshu/actions-runner-controller-ci | ||||
|   # Other mandatory fields from StatefulSet | ||||
|  | @ -1143,9 +1121,13 @@ The earlier entry is prioritized higher than later entries. So you usually defin | |||
| 
 | ||||
| A common use case for this may be to have 1 override to scale to 0 during the week outside of core business hours and another override to scale to 0 during all hours of the weekend. | ||||
| 
 | ||||
| ### Runner with DinD | ||||
| ### Alternative Runners | ||||
| 
 | ||||
| When using the default runner, the runner pod starts up 2 containers: runner and DinD (Docker-in-Docker). This might create issues if there's `LimitRange` set to namespace. | ||||
| ARC also offers a few altenrative runner options | ||||
| 
 | ||||
| #### Runner with DinD | ||||
| 
 | ||||
| When using the default runner, the runner pod starts up 2 containers: runner and DinD (Docker-in-Docker). ARC maintains an alternative all in one runner image with docker running in the same container as the runner. This may be prefered from a resource or complexity perspective or to be compliant with a `LimitRange` namespace configuration. | ||||
| 
 | ||||
| ```yaml | ||||
| # dindrunnerdeployment.yaml | ||||
|  | @ -1163,9 +1145,7 @@ spec: | |||
|       env: [] | ||||
| ``` | ||||
| 
 | ||||
| This also helps with resources, as you don't need to give resources separately to docker and runner. | ||||
| 
 | ||||
| ### Runner with K8s Jobs | ||||
| #### Runner with K8s Jobs | ||||
| 
 | ||||
| When using the default runner, jobs that use a container will run in docker. This necessitates privileged mode, either on the runner pod or the sidecar container | ||||
| 
 | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue