115 lines
		
	
	
		
			3.9 KiB
		
	
	
	
		
			Markdown
		
	
	
	
			
		
		
	
	
			115 lines
		
	
	
		
			3.9 KiB
		
	
	
	
		
			Markdown
		
	
	
	
| # Using entrypoint features
 | |
| 
 | |
| > [!WARNING]
 | |
| > This documentation covers the legacy mode of ARC (resources in the `actions.summerwind.net` namespace). If you're looking for documentation on the newer autoscaling runner scale sets, it is available in [GitHub Docs](https://docs.github.com/en/actions/hosting-your-own-runners/managing-self-hosted-runners-with-actions-runner-controller/quickstart-for-actions-runner-controller). To understand why these resources are considered legacy (and the benefits of using the newer autoscaling runner scale sets), read [this discussion (#2775)](https://github.com/actions/actions-runner-controller/discussions/2775).
 | |
| 
 | |
| ## Runner Entrypoint Features
 | |
| 
 | |
| > Environment variable values must all be strings
 | |
| 
 | |
| The entrypoint script is aware of a few environment variables for configuring features:
 | |
| 
 | |
| ```yaml
 | |
| apiVersion: actions.summerwind.dev/v1alpha1
 | |
| kind: RunnerDeployment
 | |
| metadata:
 | |
|   name: example-runnerdeployment
 | |
| spec:
 | |
|   template:
 | |
|     spec:
 | |
|       env:
 | |
|         # Disable various runner entrypoint log levels 
 | |
|         - name: LOG_DEBUG_DISABLED
 | |
|           value: "true"
 | |
|         - name: LOG_NOTICE_DISABLED
 | |
|           value: "true"
 | |
|         - name: LOG_WARNING_DISABLED
 | |
|           value: "true"
 | |
|         - name: LOG_ERROR_DISABLED
 | |
|           value: "true"
 | |
|         - name: LOG_SUCCESS_DISABLED
 | |
|           value: "true"
 | |
|         # Issues a sleep command at the start of the entrypoint
 | |
|         - name: STARTUP_DELAY_IN_SECONDS
 | |
|           value: "2"
 | |
|         # Specify the duration to wait for the docker daemon to be available
 | |
|         # The default duration of 120 seconds is sometimes too short
 | |
|         # to reliably wait for the docker daemon to start
 | |
|         # See https://github.com/actions/actions-runner-controller/issues/1804
 | |
|         - name: WAIT_FOR_DOCKER_SECONDS
 | |
|           value: 120
 | |
|         # Disables the wait for the docker daemon to be available check
 | |
|         - name: DISABLE_WAIT_FOR_DOCKER
 | |
|           value: "true"
 | |
|         # Disables automatic runner updates
 | |
|         # WARNING : Upon a new version of the actions/runner software being released 
 | |
|         # GitHub stops allocating jobs to runners on the previous version of the
 | |
|         # actions/runner software after 30 days.
 | |
|         - name: DISABLE_RUNNER_UPDATE
 | |
|           value: "true"
 | |
| ```
 | |
| 
 | |
| There are a few advanced envvars also that are available only for dind runners:
 | |
| 
 | |
| ```yaml
 | |
| apiVersion: actions.summerwind.dev/v1alpha1
 | |
| kind: RunnerDeployment
 | |
| metadata:
 | |
|   name: example-runnerdeployment
 | |
| spec:
 | |
|   template:
 | |
|     spec:
 | |
|       dockerdWithinRunnerContainer: true
 | |
|       image: summerwind/actions-runner-dind
 | |
|       env:
 | |
|         # Sets the respective default-address-pools fields within dockerd daemon.json
 | |
|         # See https://github.com/actions/actions-runner-controller/pull/1971 for more information.
 | |
|         # Also see https://github.com/docker/docs/issues/8663 for the default base/size values in dockerd.
 | |
|         - name: DOCKER_DEFAULT_ADDRESS_POOL_BASE
 | |
|           value: "172.17.0.0/12"
 | |
|         - name: DOCKER_DEFAULT_ADDRESS_POOL_SIZE
 | |
|           value: "24"
 | |
| ```
 | |
| 
 | |
| More options can be configured by mounting a configmap to the daemon.json location:
 | |
| 
 | |
| - rootless: /home/runner/.config/docker/daemon.json
 | |
| - rootful: /etc/docker/daemon.json
 | |
| 
 | |
| ```yaml
 | |
| apiVersion: actions.summerwind.dev/v1alpha1
 | |
| kind: RunnerDeployment
 | |
| metadata:
 | |
|   name: example-runnerdeployment
 | |
| spec:
 | |
|   template:
 | |
|     spec:
 | |
|       dockerdWithinRunnerContainer: true
 | |
|       image: summerwind/actions-runner-dind(-rootless)
 | |
|       volumeMounts:
 | |
|         - mountPath: /home/runner/.config/docker/daemon.json
 | |
|           name: daemon-config-volume
 | |
|           subPath: daemon.json
 | |
|       volumes:
 | |
|         - name: daemon-config-volume
 | |
|           configMap:
 | |
|             name: daemon-cm
 | |
|             items:
 | |
|               - key: daemon.json
 | |
|                 path: daemon.json
 | |
|       securityContext:
 | |
|         fsGroup: 1001 # runner user id
 | |
| ```
 | |
| 
 | |
| ```yaml
 | |
| apiVersion: v1
 | |
| kind: ConfigMap
 | |
| metadata:
 | |
|   name: daemon-cm
 | |
| data:
 | |
|   daemon.json: |
 | |
|     {
 | |
|       "log-level": "warn",
 | |
|       "dns": ["x.x.x.x"]
 | |
|     }    
 | |
| ``` |