90 lines
		
	
	
		
			2.8 KiB
		
	
	
	
		
			Markdown
		
	
	
	
			
		
		
	
	
			90 lines
		
	
	
		
			2.8 KiB
		
	
	
	
		
			Markdown
		
	
	
	
| # ADR 2022-12-05: Adding labels to our resources
 | |
| 
 | |
| **Date**: 2022-12-05
 | |
| 
 | |
| **Status**: Superceded [^1]
 | |
| 
 | |
| ## Context
 | |
| 
 | |
| users need to provide us with logs so that we can help support and troubleshoot their issues. We need a way for our users to filter and retrieve the logs we need.
 | |
| 
 | |
| ## Proposal
 | |
| 
 | |
| A good start would be a catch-all label to get all logs that are
 | |
| ARC-related: one of the [recommended labels](https://kubernetes.io/docs/concepts/overview/working-with-objects/common-labels/)
 | |
| is `app.kubernetes.io/part-of` and we can set that for all ARC components
 | |
| to be `actions-runner-controller`.
 | |
| 
 | |
| Assuming standard logging that would allow us to get all ARC logs by running
 | |
| 
 | |
| ```bash
 | |
| kubectl logs -l 'app.kubernetes.io/part-of=actions-runner-controller'
 | |
| ```
 | |
| 
 | |
| which would be very useful for development to begin with.
 | |
| 
 | |
| The proposal is to add these sets of labels to the pods ARC creates:
 | |
| 
 | |
| #### controller-manager
 | |
| 
 | |
| Labels to be set by the Helm chart:
 | |
| 
 | |
| ```yaml
 | |
| metadata:
 | |
|   labels:
 | |
|     app.kubernetes.io/part-of: actions-runner-controller
 | |
|     app.kubernetes.io/component: controller-manager
 | |
|     app.kubernetes.io/version: "x.x.x"
 | |
| ```
 | |
| 
 | |
| #### Listener
 | |
| 
 | |
| Labels to be set by controller at creation:
 | |
| 
 | |
| ```yaml
 | |
| metadata:
 | |
|   labels:
 | |
|     app.kubernetes.io/part-of: actions-runner-controller
 | |
|     app.kubernetes.io/component: runner-scale-set-listener
 | |
|     app.kubernetes.io/version: "x.x.x"
 | |
|     actions.github.com/scale-set-name: scale-set-name # this corresponds to metadata.name as set for AutoscalingRunnerSet
 | |
| 
 | |
|     # the following labels are to be extracted by the config URL
 | |
|     actions.github.com/enterprise: enterprise
 | |
|     actions.github.com/organization: organization
 | |
|     actions.github.com/repository: repository
 | |
| ```
 | |
| 
 | |
| #### Runner
 | |
| 
 | |
| Labels to be set by controller at creation:
 | |
| 
 | |
| ```yaml
 | |
| metadata:
 | |
|   labels:
 | |
|     app.kubernetes.io/part-of: actions-runner-controller
 | |
|     app.kubernetes.io/component: runner
 | |
|     app.kubernetes.io/version: "x.x.x"
 | |
|     actions.github.com/scale-set-name: scale-set-name # this corresponds to metadata.name as set for AutoscalingRunnerSet
 | |
|     actions.github.com/runner-name: runner-name
 | |
|     actions.github.com/runner-group-name: runner-group-name
 | |
| 
 | |
|     # the following labels are to be extracted by the config URL
 | |
|     actions.github.com/enterprise: enterprise
 | |
|     actions.github.com/organization: organization
 | |
|     actions.github.com/repository: repository
 | |
| ```
 | |
| 
 | |
| This would allow us to ask users:
 | |
| 
 | |
| > Can you please send us the logs coming from pods labelled 'app.kubernetes.io/part-of=actions-runner-controller'?
 | |
| 
 | |
| Or for example if they're having problems specifically with runners:
 | |
| 
 | |
| > Can you please send us the logs coming from pods labelled 'app.kubernetes.io/component=runner'?
 | |
| 
 | |
| This way users don't have to understand ARC moving parts but we still have a
 | |
| way to target them specifically if we need to.
 | |
| 
 | |
| [^1]: Superseded by [ADR 2023-03-14](2023-03-14-adding-labels-k8s-resources.md)
 |